]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/view.h
Move WindowView::render to the backend
[libs/gl.git] / source / render / view.h
index 9c756bbcdb453c62b1701a8421d3df075c6076f0..b7cb2256e937a6ef014415ae635c31d7d4e2b7fd 100644 (file)
@@ -11,29 +11,37 @@ class Renderable;
 class Renderer;
 
 /**
-Manages the presentation of rendering results on the screen.
+An ultimate render target, which is typically visible to the user of the
+application in some way.
+
+The content renderable's render() function is called with an empty tag.  A
+Sequence can be used to specify other tags and add post-processing.
 */
 class View
 {
 protected:
-       Framebuffer ⌖
        Camera *camera;
        Renderable *content;
        Renderer *internal_renderer;
 
-       View(Framebuffer &);
+       View();
 public:
        virtual ~View();
 
-       virtual unsigned get_width() const { return target.get_width(); }
-       virtual unsigned get_height() const { return target.get_height(); }
+       virtual unsigned get_width() const { return get_target().get_width(); }
+       virtual unsigned get_height() const { return get_target().get_height(); }
        float get_aspect_ratio() const { return static_cast<float>(get_width())/get_height(); }
 
+       /** Sets the camera to render with.  The camera's aspect ratio is set to
+       match that of the view. */
        void set_camera(Camera *);
+
        void set_content(Renderable *);
 
        virtual void render();
        virtual void render(Renderer &);
+protected:
+       virtual const Framebuffer &get_target() const = 0;
 };
 
 } // namespace GL