+++ /dev/null
-#ifndef MSP_GL_POSTPROCESSOR_H_
-#define MSP_GL_POSTPROCESSOR_H_
-
-namespace Msp {
-namespace GL {
-
-class Mesh;
-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.
-*/
-class PostProcessor
-{
-protected:
- PostProcessor() { }
-public:
- virtual ~PostProcessor() { }
-
- /// Renders the effect.
- virtual void render(const Texture2D &color, const Texture2D &depth) = 0;
-
-protected:
- /** Returns a vertex shader suitable for rendering a fullscreen quad. Input
- vertices are assumed to be in normalized device coordinates; no transform is
- done. The shader provides a varying vec2 texcoord for fragment a shader to
- access textures. */
- static Shader &get_fullscreen_vertex_shader();
-
- /** Returns a mesh consisting of a single quad, covering the entire screen.
- The vertices are in normalized device coordinates. */
- static const Mesh &get_fullscreen_quad();
-
-private:
- static const Mesh &create_fullscreen_quad();
-};
-
-} // namespace GL
-} // namespace Msp
-
-#endif