X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Fview.cpp;h=cac82d5d309815bb044b9fbc64b2f07b64b0ab5b;hb=e70662d7812464159f2e47f4bebb69d88f89ae93;hp=005904f284b74cbb6c6e9b4343584f882eca70fe;hpb=fd9abcb1c63af181af1c8882c2b7c5438b0e376c;p=libs%2Fgl.git diff --git a/source/render/view.cpp b/source/render/view.cpp index 005904f2..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,16 +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);