]> git.tdb.fi Git - libs/gl.git/blobdiff - source/ambientocclusion.cpp
Better lifecycle management of the fullscreen quad in PostProcessor
[libs/gl.git] / source / ambientocclusion.cpp
index 8826964a8223f65941e0f0a40467f80191cd5442..17e4789d0ace5a1ef520d4169a66599aae6a3fa1 100644 (file)
@@ -12,7 +12,7 @@ namespace Msp {
 namespace GL {
 
 AmbientOcclusion::AmbientOcclusion(unsigned w, unsigned h, float):
-       occlude_target(w, h, (RENDER_COLOR,RED)),
+       occlude_target(w, h, (RENDER_COLOR,R8)),
        occlude_shader("ambientocclusion_occlude.glsl"),
        combine_shader("ambientocclusion_combine.glsl"),
        quad(get_fullscreen_quad())
@@ -21,7 +21,7 @@ AmbientOcclusion::AmbientOcclusion(unsigned w, unsigned h, float):
        texturing.attach(2, occlude_target.get_target_texture(RENDER_COLOR));
 
        unsigned seed = 1;
-       rotate_lookup.storage(RGBA, 4, 4, 1);
+       rotate_lookup.storage(RGBA8, 4, 4, 1);
        rotate_lookup.get_default_sampler().set_filter(NEAREST);
        unsigned char data[64];
        for(unsigned i=0; i<16; ++i)
@@ -34,7 +34,7 @@ AmbientOcclusion::AmbientOcclusion(unsigned w, unsigned h, float):
                data[i*4+2] = 255-s;
                data[i*4+3] = ((i+i/4)%2)*255;
        }
-       rotate_lookup.image(0, RGBA, UNSIGNED_BYTE, data);
+       rotate_lookup.image(0, data);
 
        texturing.attach(3, rotate_lookup);
 
@@ -103,11 +103,11 @@ void AmbientOcclusion::render(Renderer &renderer, const Texture2D &color, const
 
        {
                BindRestore bind_fbo(occlude_target.get_framebuffer());
-               quad.draw(renderer);
+               quad->draw(renderer);
        }
 
        renderer.set_shader_program(&combine_shader);
-       quad.draw(renderer);
+       quad->draw(renderer);
 }