X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Feffects%2Fenvironmentmap.cpp;h=1cefde1be840649cab8dab4059366299116d5a10;hb=ce36589;hp=465e4fee74fc65dd2ab462710c46ac2f6922d45e;hpb=2b2676392aff2eb6b38c3e463cc67f4d67a4ef8b;p=libs%2Fgl.git diff --git a/source/effects/environmentmap.cpp b/source/effects/environmentmap.cpp index 465e4fee..1cefde1b 100644 --- a/source/effects/environmentmap.cpp +++ b/source/effects/environmentmap.cpp @@ -63,7 +63,6 @@ void EnvironmentMap::init(unsigned s, PixelFormat f, unsigned l) TextureCubeFace face = TextureCube::enumerate_faces(i); faces[i].fbo.attach(COLOR_ATTACHMENT0, env_tex, face, 0); faces[i].fbo.attach(DEPTH_ATTACHMENT, depth_buf); - faces[i].fbo.require_complete(); faces[i].camera.set_look_direction(TextureCube::get_face_direction(face)); faces[i].camera.set_up_direction(TextureCube::get_t_direction(face)); faces[i].camera.set_field_of_view(Geometry::Angle::right()); @@ -143,17 +142,16 @@ void EnvironmentMap::setup_frame(Renderer &renderer) Vector3 center = matrix->column(3).slice<3>(0); - BindRestore bind_fbo(faces[0].fbo); for(unsigned i=0; i<6; ++i) { faces[i].camera.set_position(center); - faces[i].fbo.bind(); - faces[i].fbo.clear(); + renderer.set_framebuffer(&faces[i].fbo); + renderer.clear(); renderer.set_camera(faces[i].camera); renderer.render(environment); } - irradiance_fbo.bind(); + renderer.set_framebuffer(&irradiance_fbo); renderer.set_shader_program(&irradiance_shprog, &prefilter_shdata); renderer.set_texture("environment_map", &env_tex, &sampler); fullscreen_mesh.draw(renderer); @@ -162,7 +160,7 @@ void EnvironmentMap::setup_frame(Renderer &renderer) for(unsigned i=0; i(i+1)/specular_fbos.size())); - specular_fbos[i].bind(); + renderer.set_framebuffer(&specular_fbos[i]); fullscreen_mesh.draw(renderer); } }