]> git.tdb.fi Git - libs/gl.git/blobdiff - source/postprocessor.h
Support slopes in keyframe interpolation
[libs/gl.git] / source / postprocessor.h
index ffc9045dbed954119262218441eba1cc6e32e66f..6e3153dab69f9dea7639ffc675ad4386c8d45725 100644 (file)
@@ -1,10 +1,13 @@
 #ifndef MSP_GL_POSTPROCESSOR_H_
 #define MSP_GL_POSTPROCESSOR_H_
 
+#include <msp/datafile/objectloader.h>
+
 namespace Msp {
 namespace GL {
 
 class Mesh;
+class Renderer;
 class Shader;
 class Texture2D;
 
@@ -15,13 +18,32 @@ process.
 */
 class PostProcessor
 {
+public:
+       struct Template
+       {
+               class Loader: public Msp::DataFile::ObjectLoader<Template>
+               {
+               public:
+                       Loader(Template &);
+               };
+
+               unsigned size_divisor;
+
+               Template();
+               virtual ~Template() { }
+
+               virtual PostProcessor *create(unsigned, unsigned) const = 0;
+       };
+
 protected:
        PostProcessor() { }
 public:
        virtual ~PostProcessor() { }
 
        /// Renders the effect.
-       virtual void render(const Texture2D &color, const Texture2D &depth) = 0;
+       virtual void render(const Texture2D &, const Texture2D &) { }
+
+       virtual void render(Renderer &, const Texture2D &, const Texture2D &);
 
 protected:
        /** Returns a vertex shader suitable for rendering a full-screen quad.