#define MSP_GL_WINDOWVIEW_H_
#include <sigc++/trackable.h>
-#include <msp/graphics/glcontext.h>
#include <msp/graphics/window.h>
+#include "device.h"
#include "view.h"
namespace Msp {
namespace GL {
+/**
+A view targeting a Graphics::Window.
+
+After rendering, buffers are swapped to show the result in the window.
+
+The aspect ratio of the view's Camera is automatically updated to match that of
+the window.
+*/
class WindowView: public View, public sigc::trackable
{
private:
Graphics::Window &window;
- Graphics::GLContext &context;
+ Device &device;
public:
- WindowView(Graphics::Window &, Graphics::GLContext &);
+ WindowView(Graphics::Window &);
Graphics::Window &get_window() { return window; }
- Graphics::GLContext &get_context() { return context; }
virtual unsigned get_width() const { return window.get_width(); }
virtual unsigned get_height() const { return window.get_height(); }
private:
void window_resized(unsigned, unsigned);
+
+ virtual const Framebuffer &get_target() const;
};
} // namespace GL