]> git.tdb.fi Git - libs/gl.git/blob - source/effects/effect.cpp
Copy layout of InterfaceBlock
[libs/gl.git] / source / effects / effect.cpp
1 #include <msp/core/algorithm.h>
2 #include "effect.h"
3
4 namespace Msp {
5 namespace GL {
6
7 Effect::Effect(Renderable &c):
8         content(c)
9 {
10         enable_for_method(Tag());
11 }
12
13 void Effect::enable_for_method(Tag tag)
14 {
15         auto i = lower_bound(enabled_methods, tag);
16         if(i==enabled_methods.end() || *i!=tag)
17                 enabled_methods.insert(i, tag);
18 }
19
20 void Effect::disable_for_method(Tag tag)
21 {
22         auto i = lower_bound(enabled_methods, tag);
23         if(i!=enabled_methods.end() && *i==tag)
24                 enabled_methods.erase(i);
25 }
26
27 bool Effect::is_enabled_for_method(Tag tag) const
28 {
29         auto i = lower_bound(enabled_methods, tag);
30         return (i!=enabled_methods.end() && *i==tag);
31 }
32
33
34 Effect::Template::Loader::Loader(Template &t, Collection &c):
35         CollectionObjectLoader<Template>(t, &c)
36 { }
37
38 void Effect::Template::Loader::init_actions()
39 {
40         add("content", &Template::content_name);
41 }
42
43 } // namespace GL
44 } // namespace Msp