X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fview.cpp;h=7ab41912ef19d1be6251e279725a9fbfa7830bbe;hp=1518b6ee76b6012f51a4774ba7b5a5635e554d9d;hb=HEAD;hpb=0807680edd94a7f14560831db4dd52e4e48d0d19 diff --git a/source/view.cpp b/source/view.cpp deleted file mode 100644 index 1518b6ee..00000000 --- a/source/view.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include "camera.h" -#include "framebuffer.h" -#include "renderable.h" -#include "renderer.h" -#include "view.h" - -using namespace std; - -namespace Msp { -namespace GL { - -View::View(Graphics::Window &w, Graphics::GLContext &c): - window(w), - context(c), - target(Framebuffer::system()), - camera(0), - content(0) -{ - window.signal_resize.connect(sigc::mem_fun(this, &View::window_resized)); -} - -void View::set_camera(Camera *c) -{ - camera = c; - if(camera) - camera->set_aspect(static_cast(window.get_width())/window.get_height()); -} - -void View::set_content(Renderable *r) -{ - content = r; -} - -void View::synchronize_camera_aspect(Camera &c) -{ - synced_cameras.push_back(&c); - c.set_aspect(static_cast(window.get_width())/window.get_height()); -} - -void View::render() -{ - target.clear(COLOR_BUFFER_BIT|DEPTH_BUFFER_BIT); - if(content) - { - Renderer renderer(camera); - content->setup_frame(renderer); - content->render(renderer); - content->finish_frame(); - } - context.swap_buffers(); -} - -void View::window_resized(unsigned w, unsigned h) -{ - target.viewport(0, 0, w, h); - float aspect = static_cast(w)/h; - if(camera) - camera->set_aspect(aspect); - for(list::iterator i=synced_cameras.begin(); i!=synced_cameras.end(); ++i) - (*i)->set_aspect(aspect); -} - -} // namespace GL -} // namespace Msp