]> git.tdb.fi Git - libs/gl.git/blobdiff - source/renderer.h
Add vertex setup state to Renderer
[libs/gl.git] / source / renderer.h
index 1f4624ce889476370c25fef2e0077db723c8ded1..b2fcf4c4e6fba065980c7739ecf375a5a4bbda87 100644 (file)
@@ -21,6 +21,7 @@ class Program;
 class Renderable;
 class Texture;
 class Texturing;
+class VertexSetup;
 class WindingTest;
 
 /**
@@ -77,6 +78,7 @@ private:
                const Program *shprog;
                unsigned shdata_count;
                const Mesh *mesh;
+               const VertexSetup *vertex_setup;
                const WindingTest *winding_test;
                bool reverse_winding;
 
@@ -96,9 +98,9 @@ private:
                LEGACY_PROJECTION = 128
        };
 
+       const Camera *default_camera;
        unsigned char changed;
        bool matrices_loaded;
-       unsigned shdata_applied;
        std::vector<State> state_stack;
        State *state;
        ProgramData standard_shdata;
@@ -111,7 +113,9 @@ public:
 
        /** Resets all internal state and restarts rendering.  There must be no
        unpopped state in the stack.  It is permissible to call begin() multiple
-       times without an intervening end(). */
+       times without an intervening end().
+
+       Deprecated; use end() and set_camera() instead.*/
        void begin(const Camera *);
 
        /** Sets the camera to render from.  The modelview matrix is reset to the
@@ -147,6 +151,7 @@ public:
        void add_shader_data(const ProgramData &data);
 
        void set_mesh(const Mesh *);
+       void set_vertex_setup(const VertexSetup *);
        void set_winding_test(const WindingTest *);
        void set_reverse_winding(bool);
 
@@ -157,14 +162,9 @@ public:
        push_state call. */
        void pop_state();
 
-       /** Prepares for temporarily bypassing the Renderer by synchronizing the
-       current state with GL.  No additional call is necessary to resume using the
-       Renderer.  DEPRECATED. */
-       void escape();
-
        /** Unbinds all objects and resets related state.  There must be no unpopped
-       state in the stack.  Rendering with the same camera can be restarted without
-       an explicit begin() call. */
+       state in the stack.  The Renderer remains valid and may be reused for
+       further rendering. */
        void end();
 
        void exclude(const Renderable &);
@@ -175,7 +175,6 @@ public:
 
 private:
        void apply_state();
-       void reset_state();
 };
 
 } // namespace GL