]> git.tdb.fi Git - libs/gl.git/blobdiff - source/postprocessor.cpp
Remove the deprecated ProgramBuilder class
[libs/gl.git] / source / postprocessor.cpp
index ffc753e4b11ed658280b647e05af688ccec0039b..6af069e97df613c76fda5a4ed8399b88c4e69b87 100644 (file)
@@ -1,12 +1,15 @@
 #include "mesh.h"
 #include "meshbuilder.h"
 #include "postprocessor.h"
+#include "sampler.h"
 #include "shader.h"
 
 namespace Msp {
 namespace GL {
 
 WeakPtr<Mesh> PostProcessor::fullscreen_quad;
+WeakPtr<Sampler> PostProcessor::nearest_sampler;
+WeakPtr<Sampler> PostProcessor::linear_sampler;
 
 void PostProcessor::render(Renderer &, const Texture2D &color, const Texture2D &depth)
 {
@@ -15,8 +18,7 @@ void PostProcessor::render(Renderer &, const Texture2D &color, const Texture2D &
 
 RefPtr<Mesh> PostProcessor::get_fullscreen_quad()
 {
-       RefPtr<Mesh> mesh;
-       mesh = fullscreen_quad;
+       RefPtr<Mesh> mesh = fullscreen_quad;
        if(!mesh)
        {
                mesh = new Mesh(VERTEX2);
@@ -32,6 +34,32 @@ RefPtr<Mesh> PostProcessor::get_fullscreen_quad()
        return mesh;
 }
 
+RefPtr<Sampler> PostProcessor::get_nearest_sampler()
+{
+       RefPtr<Sampler> sampler = nearest_sampler;
+       if(!sampler)
+       {
+               sampler = new Sampler;
+               sampler->set_filter(NEAREST);
+               sampler->set_wrap(CLAMP_TO_EDGE);
+               nearest_sampler = sampler;
+       }
+       return sampler;
+}
+
+RefPtr<Sampler> PostProcessor::get_linear_sampler()
+{
+       RefPtr<Sampler> sampler = linear_sampler;
+       if(!sampler)
+       {
+               sampler = new Sampler;
+               sampler->set_filter(LINEAR);
+               sampler->set_wrap(CLAMP_TO_EDGE);
+               linear_sampler = sampler;
+       }
+       return sampler;
+}
+
 
 PostProcessor::Template::Template():
        size_divisor(1)