X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Feffect.h;h=4be963f653c686ac9a1688f2be8e13399645a341;hb=0991ffd3091d4002fe6e2811219f3a4dae2c41d1;hp=dfb369614c28c2388b1dcdd249e20e4d331224ec;hpb=7cbe8cc9893fe14f889321bd55e78b0ed6503e23;p=libs%2Fgl.git diff --git a/source/effect.h b/source/effect.h index dfb36961..4be963f6 100644 --- a/source/effect.h +++ b/source/effect.h @@ -9,20 +9,26 @@ namespace GL { /** Effects are used to wrap other renderables and give them additional visual -properties. +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; + Renderable &renderable; std::set enabled_passes; - Effect(const Renderable &); + Effect(Renderable &); public: virtual ~Effect() { } void enable_for_pass(const Tag &); void disable_for_pass(const Tag &); + + virtual const Matrix *get_matrix() const { return renderable.get_matrix(); } + + virtual void setup_frame(Renderer &r) { renderable.setup_frame(r); } + virtual void finish_frame() { renderable.finish_frame(); } }; } // namespace GL