X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Frender%2Fview.cpp;h=cac82d5d309815bb044b9fbc64b2f07b64b0ab5b;hp=db06bb33fb51f8db7c0fd1a78055ff50ba4d9f42;hb=HEAD;hpb=9b3bce7ae76ff8c0c81315d2505ea96bf422a318 diff --git a/source/render/view.cpp b/source/render/view.cpp index db06bb33..cac82d5d 100644 --- a/source/render/view.cpp +++ b/source/render/view.cpp @@ -6,18 +6,19 @@ namespace Msp { namespace GL { -View::View(Framebuffer &t): - target(t), - camera(0), - content(0), - internal_renderer(0) -{ } - View::~View() { delete internal_renderer; } +View::View(View &&other): + camera(other.camera), + content(other.content), + internal_renderer(other.internal_renderer) +{ + other.internal_renderer = 0; +} + void View::set_camera(Camera *c) { camera = c; @@ -34,17 +35,17 @@ void View::render() { if(!internal_renderer) internal_renderer = new Renderer; + internal_renderer->begin(); render(*internal_renderer); internal_renderer->end(); } void View::render(Renderer &renderer) { - Bind bind_fbo(target); - target.clear(); + Renderer::Push _push(renderer); + renderer.set_framebuffer(&get_target()); if(content) { - Renderer::Push push(renderer); if(camera) renderer.set_camera(*camera); content->setup_frame(renderer);