]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/effect.cpp
Update and improve documentation
[libs/gl.git] / source / effects / effect.cpp
index 4ab867ff23f538a0a52fbb08e4dbe0dc750691be..e59aeed8e039dcbc352d6daf6904a3b44eacaa06 100644 (file)
@@ -1,3 +1,4 @@
+#include <msp/core/algorithm.h>
 #include "effect.h"
 
 namespace Msp {
@@ -6,17 +7,37 @@ 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);
+}
+
+
+Effect::Template::Loader::Loader(Template &t, Collection &c):
+       CollectionObjectLoader<Template>(t, &c)
+{ }
+
+void Effect::Template::Loader::init_actions()
+{
+       add("content", &Template::content_name);
 }
 
 } // namespace GL