class Mesh;
class Renderer;
+class Sampler;
class Shader;
class Texture2D;
virtual PostProcessor *create(unsigned, unsigned) const = 0;
};
+private:
+ static WeakPtr<Mesh> fullscreen_quad;
+ static WeakPtr<Sampler> nearest_sampler;
+ static WeakPtr<Sampler> linear_sampler;
+
protected:
PostProcessor() { }
public:
virtual void render(Renderer &, const Texture2D &, const Texture2D &);
protected:
- /** Returns a vertex shader suitable for rendering a full-screen quad.
- Input vertices are assumed to be in normalized device coordinates; no
- transform is performed. The shader provides a varying vec2 texcoord for
- a fragment shader to access textures.
-
- Deprecated in favor of the builtin postprocess.glsl module. */
- 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();
+ static RefPtr<Mesh> get_fullscreen_quad();
-private:
- static const Mesh &create_fullscreen_quad();
+ static RefPtr<Sampler> get_nearest_sampler();
+ static RefPtr<Sampler> get_linear_sampler();
};
} // namespace GL