X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Frender%2Fwindowview.cpp;fp=source%2Frender%2Fwindowview.cpp;h=2cce075c9b5f80509c5bc98e1fc889a4d63039ae;hp=0000000000000000000000000000000000000000;hb=7aaec9a70b8d7733429bec043f8e33e02956f266;hpb=bec07999d95b76f4b47cffcc564d0cd0afc0435e diff --git a/source/render/windowview.cpp b/source/render/windowview.cpp new file mode 100644 index 00000000..2cce075c --- /dev/null +++ b/source/render/windowview.cpp @@ -0,0 +1,33 @@ +#include "camera.h" +#include "windowview.h" + +using namespace std; + +namespace Msp { +namespace GL { + +WindowView::WindowView(Graphics::Window &w, Graphics::GLContext &c): + View(Framebuffer::system()), + window(w), + context(c) +{ + window.signal_resize.connect(sigc::mem_fun(this, &WindowView::window_resized)); + window_resized(window.get_width(), window.get_height()); +} + +void WindowView::render(Renderer &renderer) +{ + View::render(renderer); + context.swap_buffers(); +} + +void WindowView::window_resized(unsigned w, unsigned h) +{ + target.viewport(0, 0, w, h); + float aspect = static_cast(w)/h; + if(camera) + camera->set_aspect_ratio(aspect); +} + +} // namespace GL +} // namespace Msp