X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fpostprocessor.h;h=c107d885f658e028522fdb0fe463bbd755d60d1d;hp=6e3153dab69f9dea7639ffc675ad4386c8d45725;hb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;hpb=18240e2bb031551e9c72a55c7d974904d209760a diff --git a/source/postprocessor.h b/source/postprocessor.h index 6e3153da..c107d885 100644 --- a/source/postprocessor.h +++ b/source/postprocessor.h @@ -8,6 +8,7 @@ namespace GL { class Mesh; class Renderer; +class Sampler; class Shader; class Texture2D; @@ -35,6 +36,11 @@ public: virtual PostProcessor *create(unsigned, unsigned) const = 0; }; +private: + static WeakPtr fullscreen_quad; + static WeakPtr nearest_sampler; + static WeakPtr linear_sampler; + protected: PostProcessor() { } public: @@ -46,20 +52,12 @@ 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 get_fullscreen_quad(); -private: - static const Mesh &create_fullscreen_quad(); + static RefPtr get_nearest_sampler(); + static RefPtr get_linear_sampler(); }; } // namespace GL