]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/windowview.cpp
Rearrange soucre files into subdirectories
[libs/gl.git] / source / render / windowview.cpp
diff --git a/source/render/windowview.cpp b/source/render/windowview.cpp
new file mode 100644 (file)
index 0000000..2cce075
--- /dev/null
@@ -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<float>(w)/h;
+       if(camera)
+               camera->set_aspect_ratio(aspect);
+}
+
+} // namespace GL
+} // namespace Msp