]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/sky.cpp
Redesign framebuffer attachment management
[libs/gl.git] / source / effects / sky.cpp
index 19fb526b1bdaa83b911954ef6f26b7c37c241c4b..d9c95b3bd79839fed84d1ad3f06235a4f5ac626e 100644 (file)
@@ -4,6 +4,7 @@
 #include "mesh.h"
 #include "renderer.h"
 #include "resources.h"
+#include "texture2d.h"
 #include "sky.h"
 
 using namespace std;
@@ -14,10 +15,10 @@ namespace GL {
 Sky::Sky(Renderable &r, Light &s):
        Effect(r),
        sun(s),
-       transmittance_lookup(128, 64, (RENDER_COLOR, RGB16F)),
+       transmittance_lookup(128, 64, (COLOR_ATTACHMENT,RGB16F)),
        transmittance_shprog(Resources::get_global().get<Program>("_sky_transmittance.glsl.shader")),
        transmittance_lookup_dirty(true),
-       distant(256, 128, (RENDER_COLOR, RGB16F)),
+       distant(256, 128, (COLOR_ATTACHMENT,RGB16F)),
        distant_shprog(Resources::get_global().get<Program>("_sky_distant.glsl.shader")),
        fullscreen_mesh(Resources::get_global().get<Mesh>("_fullscreen_quad.mesh")),
        backdrop_shprog(Resources::get_global().get<Program>("_sky_backdrop.glsl.shader")),
@@ -104,12 +105,12 @@ void Sky::setup_frame(Renderer &renderer)
        if(transmittance_lookup_dirty)
        {
                transmittance_lookup_dirty = false;
-               Bind bind_fbo(transmittance_lookup.get_framebuffer());
+               renderer.set_framebuffer(&transmittance_lookup.get_framebuffer());
                renderer.set_shader_program(&transmittance_shprog, &shdata);
                fullscreen_mesh.draw(renderer);
        }
 
-       Bind bind_fbo(distant.get_framebuffer());
+       renderer.set_framebuffer(&distant.get_framebuffer());
        renderer.set_shader_program(&distant_shprog, &shdata);
        renderer.set_texture("transmittance_lookup", &transmittance_lookup.get_target_texture(0), &sampler);
        fullscreen_mesh.draw(renderer);