]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/effect.cpp
Support specifying enabled methods in effect templates
[libs/gl.git] / source / effects / effect.cpp
index 878e23fb571cf1881e0af3cf163a1696a3cfd661..0ead01c32fb22ea3d91c43d0cfa1b677c37faf05 100644 (file)
@@ -1,6 +1,8 @@
 #include <msp/core/algorithm.h>
 #include "effect.h"
 
+using namespace std;
+
 namespace Msp {
 namespace GL {
 
@@ -31,6 +33,13 @@ bool Effect::is_enabled_for_method(Tag tag) const
 }
 
 
+void Effect::Template::create_base(Effect &effect) const
+{
+       for(Tag m: enabled_methods)
+               effect.enable_for_method(m);
+}
+
+
 Effect::Template::Loader::Loader(Template &t, Collection &c):
        CollectionObjectLoader<Template>(t, &c)
 { }
@@ -38,6 +47,12 @@ Effect::Template::Loader::Loader(Template &t, Collection &c):
 void Effect::Template::Loader::init_actions()
 {
        add("content", &Template::content_name);
+       add("enable_for_method", &Loader::enable_for_method);
+}
+
+void Effect::Template::Loader::enable_for_method(const string &m)
+{
+       obj.enabled_methods.push_back(m);
 }
 
 } // namespace GL