]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/postprocessor.h
Check the flat qualifier from the correct member
[libs/gl.git] / source / effects / postprocessor.h
index aabace6c94159aa120a6e59e4352ce18f5f4f9cc..02d9d17a6f104d3672dc152849eced83f5ca9adf 100644 (file)
@@ -9,17 +9,20 @@ namespace GL {
 class Mesh;
 class Renderer;
 class Sampler;
-class Shader;
 class Texture2D;
 
 /**
-Base class for post-processing effects.  Post-processors receive the contents
-of the entire framebuffer as a texture and render it back, altering it in the
-process.
+Base class for post-processing effects.
+
+PostProcessors can be added to a Sequence.  They receive the contents of the
+entire framebuffer as a texture and render it back, altering it in the process.
 */
 class PostProcessor
 {
 public:
+       /**
+       Holds the parameters for a PostProcessor.  Used with SequenceTemplate.
+       */
        struct Template
        {
                class Loader: public Msp::DataFile::ObjectLoader<Template>
@@ -28,10 +31,9 @@ public:
                        Loader(Template &);
                };
 
-               unsigned size_divisor;
+               unsigned size_divisor = 1;
 
-               Template();
-               virtual ~Template() { }
+               virtual ~Template() = default;
 
                virtual PostProcessor *create(unsigned, unsigned) const = 0;
        };
@@ -41,10 +43,9 @@ protected:
 public:
        virtual ~PostProcessor() { }
 
-       /// Renders the effect.
-       virtual void render(const Texture2D &, const Texture2D &) { }
+       virtual void render(Renderer &, const Texture2D &, const Texture2D &) = 0;
 
-       virtual void render(Renderer &, const Texture2D &, const Texture2D &);
+       virtual void set_debug_name(const std::string &) = 0;
 };
 
 } // namespace GL