X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Feffect.h;h=7eeae682dffb00d593601b94e9eca82735a23f2e;hb=904de4f7fd994886adbd3a6c03bc1b7c14ebc562;hp=2f9c56d2572f2703723044c25e058df995b7fec8;hpb=f14435e58bfa0fa697a06ba9a454bb30cd37d9d8;p=libs%2Fgl.git diff --git a/source/effect.h b/source/effect.h index 2f9c56d2..7eeae682 100644 --- a/source/effect.h +++ b/source/effect.h @@ -1,16 +1,29 @@ #ifndef MSP_GL_EFFECT_H_ #define MSP_GL_EFFECT_H_ +#include +#include "renderable.h" + namespace Msp { namespace GL { -class Effect +/** +Effects are used to wrap other renderables and give them additional visual +properties. An Effect's render method should set up the necessary state, call +the wrapped Renderable's render method, and clean up after itself. +*/ +class Effect: public Renderable { +protected: + const Renderable &renderable; + std::set enabled_passes; + + Effect(const Renderable &); public: virtual ~Effect() { } - virtual void prepare() =0; - virtual void cleanup() =0; + void enable_for_pass(const Tag &); + void disable_for_pass(const Tag &); }; } // namespace GL