X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fshadowmap.cpp;h=6056141f763376edaa39531b0070d348c9effb9f;hp=4ad192cad1d737cb90dc464f4e9ca7b639ca8d70;hb=6a045019fbd68738b77849629e6dfd3dfd9a4d93;hpb=e645768be035f155e1deda931079cf1e84851a86 diff --git a/source/shadowmap.cpp b/source/shadowmap.cpp index 4ad192ca..6056141f 100644 --- a/source/shadowmap.cpp +++ b/source/shadowmap.cpp @@ -15,7 +15,7 @@ using namespace std; namespace Msp { namespace GL { -ShadowMap::ShadowMap(unsigned s, const Renderable &r, const Light &l): +ShadowMap::ShadowMap(unsigned s, Renderable &r, const Light &l): Effect(r), size(s), light(l), @@ -56,13 +56,13 @@ void ShadowMap::set_depth_bias(float b) depth_bias = b; } -void ShadowMap::setup_frame() const +void ShadowMap::setup_frame(Renderer &renderer) { if(rendered) return; rendered = true; - renderable.setup_frame(); + renderable.setup_frame(renderer); Camera camera; const Vector4 &lpos = light.get_position(); @@ -84,11 +84,13 @@ void ShadowMap::setup_frame() const Bind bind_depth(DepthTest::lequal()); fbo.clear(DEPTH_BUFFER_BIT); - Renderer renderer(&camera); - renderable.render(renderer, "shadow"); + Renderer::Push push(renderer); + renderer.set_camera(camera); + + renderer.render(renderable, "shadow"); } -void ShadowMap::finish_frame() const +void ShadowMap::finish_frame() { renderable.finish_frame(); rendered = false;