X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Feffects%2Feffect.cpp;h=878e23fb571cf1881e0af3cf163a1696a3cfd661;hb=bdcae47bf2f4e49d2d9e4ba15e6f17171ce5fa0c;hp=ad789af06019785deb0d1a68f16236b3c37157af;hpb=7aaec9a70b8d7733429bec043f8e33e02956f266;p=libs%2Fgl.git diff --git a/source/effects/effect.cpp b/source/effects/effect.cpp index ad789af0..878e23fb 100644 --- a/source/effects/effect.cpp +++ b/source/effects/effect.cpp @@ -1,38 +1,43 @@ +#include #include "effect.h" -#include "sampler.h" namespace Msp { namespace GL { -WeakPtr Effect::linear_sampler; +Effect::Effect(Renderable &c): + content(c) +{ + enable_for_method(Tag()); +} -Effect::Effect(Renderable &r): - renderable(r) +void Effect::enable_for_method(Tag tag) { - enabled_passes.insert(Tag()); + auto i = lower_bound(enabled_methods, tag); + if(i==enabled_methods.end() || *i!=tag) + enabled_methods.insert(i, tag); } -void Effect::enable_for_pass(const Tag &tag) +void Effect::disable_for_method(Tag tag) { - enabled_passes.insert(tag); + auto i = lower_bound(enabled_methods, tag); + if(i!=enabled_methods.end() && *i==tag) + enabled_methods.erase(i); } -void Effect::disable_for_pass(const Tag &tag) +bool Effect::is_enabled_for_method(Tag tag) const { - enabled_passes.erase(tag); + auto i = lower_bound(enabled_methods, tag); + return (i!=enabled_methods.end() && *i==tag); } -RefPtr Effect::get_linear_sampler() + +Effect::Template::Loader::Loader(Template &t, Collection &c): + CollectionObjectLoader