]> git.tdb.fi Git - libs/gl.git/blob - source/effect.h
Turn Effect into a Renderable
[libs/gl.git] / source / effect.h
1 #ifndef MSP_GL_EFFECT_H_
2 #define MSP_GL_EFFECT_H_
3
4 #include <set>
5 #include "renderable.h"
6
7 namespace Msp {
8 namespace GL {
9
10 /**
11 Effects are used to wrap other renderables and give them additional visual
12 properties.
13 */
14 class Effect: public Renderable
15 {
16 protected:
17         const Renderable &renderable;
18         std::set<Tag> enabled_passes;
19
20         Effect(const Renderable &);
21 public:
22         virtual ~Effect() { }
23
24         void enable_for_pass(const Tag &);
25         void disable_for_pass(const Tag &);
26 };
27
28 } // namespace GL
29 } // namespace Msp
30
31 #endif