X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Feffects%2Feffect.cpp;fp=source%2Feffects%2Feffect.cpp;h=e59aeed8e039dcbc352d6daf6904a3b44eacaa06;hp=05ef5a10f1c2acee31f801053ffe94fc50259d5a;hb=84e0e55710123e54617d342df852007f8b60af24;hpb=0fa506250545acb83bc86f1734826544d6f1eda6 diff --git a/source/effects/effect.cpp b/source/effects/effect.cpp index 05ef5a10..e59aeed8 100644 --- a/source/effects/effect.cpp +++ b/source/effects/effect.cpp @@ -1,3 +1,4 @@ +#include #include "effect.h" namespace Msp { @@ -6,17 +7,27 @@ namespace GL { Effect::Effect(Renderable &r): renderable(r) { - enabled_methods.insert(Tag()); + enable_for_method(Tag()); } void Effect::enable_for_method(Tag tag) { - enabled_methods.insert(tag); + auto i = lower_bound(enabled_methods, tag); + if(i==enabled_methods.end() || *i!=tag) + enabled_methods.insert(i, tag); } void Effect::disable_for_method(Tag tag) { - enabled_methods.erase(tag); + auto i = lower_bound(enabled_methods, tag); + if(i!=enabled_methods.end() && *i==tag) + enabled_methods.erase(i); +} + +bool Effect::is_enabled_for_method(Tag tag) const +{ + auto i = lower_bound(enabled_methods, tag); + return (i!=enabled_methods.end() && *i==tag); }