X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fview.cpp;h=19d583ae19b04d1c2eb0f8348b9469255b15d5cf;hb=c1e297b01f07be122e9909a1ae9c04f0c51dfc21;hp=ad6e266c4468ba477e9f8f72ad55423fce8ee8b1;hpb=d531a1f0a8ea50eb6ff1a372aca81e827e1d2034;p=libs%2Fgl.git diff --git a/source/view.cpp b/source/view.cpp index ad6e266c..19d583ae 100644 --- a/source/view.cpp +++ b/source/view.cpp @@ -9,9 +9,15 @@ namespace GL { View::View(Framebuffer &t): target(t), camera(0), - content(0) + content(0), + internal_renderer(0) { } +View::~View() +{ + delete internal_renderer; +} + void View::set_camera(Camera *c) { camera = c; @@ -26,8 +32,9 @@ void View::set_content(Renderable *r) void View::render() { - Renderer renderer; - render(renderer); + if(!internal_renderer) + internal_renderer = new Renderer; + render(*internal_renderer); } void View::render(Renderer &renderer) @@ -37,7 +44,8 @@ void View::render(Renderer &renderer) if(content) { Renderer::Push push(renderer); - renderer.set_camera(*camera); + if(camera) + renderer.set_camera(*camera); content->setup_frame(renderer); content->render(renderer); content->finish_frame();