]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/view.h
Rearrange soucre files into subdirectories
[libs/gl.git] / source / render / view.h
diff --git a/source/render/view.h b/source/render/view.h
new file mode 100644 (file)
index 0000000..df623c3
--- /dev/null
@@ -0,0 +1,43 @@
+#ifndef MSP_GL_VIEW_H_
+#define MSP_GL_VIEW_H_
+
+#include <list>
+#include "framebuffer.h"
+
+namespace Msp {
+namespace GL {
+
+class Camera;
+class Renderable;
+class Renderer;
+
+/**
+Manages the presentation of rendering results on the screen.
+*/
+class View: public sigc::trackable
+{
+protected:
+       Framebuffer &target;
+       Camera *camera;
+       Renderable *content;
+       Renderer *internal_renderer;
+
+       View(Framebuffer &);
+public:
+       virtual ~View();
+
+       virtual unsigned get_width() const { return target.get_width(); }
+       virtual unsigned get_height() const { return target.get_height(); }
+       float get_aspect_ratio() const { return static_cast<float>(get_width())/get_height(); }
+
+       void set_camera(Camera *);
+       void set_content(Renderable *);
+
+       virtual void render();
+       virtual void render(Renderer &);
+};
+
+} // namespace GL
+} // namespace Msp
+
+#endif