]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/ambientocclusion.cpp
Convert framebuffers and related functionality to new state management
[libs/gl.git] / source / effects / ambientocclusion.cpp
index 21271acf2555d8a7f6b474d9cf3657cc69dccdb9..6ba51853d6d288814bd716fbb76881d13e8185af 100644 (file)
@@ -5,7 +5,6 @@
 #include "renderer.h"
 #include "resources.h"
 #include "shader.h"
-#include "tests.h"
 
 using namespace std;
 
@@ -100,6 +99,8 @@ void AmbientOcclusion::set_edge_depth_threshold(float edt)
 
 void AmbientOcclusion::render(Renderer &renderer, const Texture2D &color, const Texture2D &depth)
 {
+       const Framebuffer *out_fbo = renderer.get_framebuffer();
+
        Renderer::Push push(renderer);
        renderer.set_texture("source", &color, &nearest_clamp_sampler);
        renderer.set_texture("depth", &depth, &nearest_clamp_sampler);
@@ -107,11 +108,10 @@ void AmbientOcclusion::render(Renderer &renderer, const Texture2D &color, const
        renderer.set_texture("rotate", &rotate_lookup, &nearest_sampler);
        renderer.set_shader_program(&occlude_shader, &shdata);
 
-       {
-               BindRestore bind_fbo(occlude_target.get_framebuffer());
-               quad.draw(renderer);
-       }
+       renderer.set_framebuffer(&occlude_target.get_framebuffer());
+       quad.draw(renderer);
 
+       renderer.set_framebuffer(out_fbo);
        renderer.set_shader_program(&combine_shader);
        quad.draw(renderer);
 }