]> git.tdb.fi Git - libs/gl.git/blobdiff - source/renderer.cpp
Deprecate Renderer::begin() and remove the already deprecated escape()
[libs/gl.git] / source / renderer.cpp
index 45cf241e8ec3798ab0a0368c389b8794fa11f5d3..e57967d9c46b227c5a9bad4da50c7af1320b1864 100644 (file)
@@ -31,7 +31,8 @@ Renderer::Renderer(const Camera *c):
        shdata_stack.reserve(32);
        state = &state_stack.back();
 
-       begin(c);
+       if(c)
+               set_camera(*c);
 }
 
 Renderer::~Renderer()
@@ -41,12 +42,7 @@ Renderer::~Renderer()
 
 void Renderer::begin(const Camera *c)
 {
-       if(state_stack.size()>1)
-               throw invalid_operation("Renderer::begin");
-
-       reset_state();
-       excluded.clear();
-
+       end();
        if(c)
                set_camera(*c);
 }
@@ -195,19 +191,14 @@ void Renderer::pop_state()
        }
 }
 
-void Renderer::escape()
-{
-       apply_state();
-       Buffer::unbind_from(ELEMENT_ARRAY_BUFFER);
-       matrices_loaded = false;
-}
-
 void Renderer::end()
 {
        if(state_stack.size()>1)
                throw invalid_operation("Renderer::end");
 
-       reset_state();
+       *state = State();
+       shdata_stack.clear();
+       excluded.clear();
 
        Mesh::unbind();
        Texturing::unbind();
@@ -218,6 +209,13 @@ void Renderer::end()
        Program::unbind();
        Buffer::unbind_from(ELEMENT_ARRAY_BUFFER);
        WindingTest::unbind();
+
+       if(matrices_loaded)
+       {
+               MatrixStack::projection().pop();
+               MatrixStack::modelview().pop();
+               matrices_loaded = false;
+       }
 }
 
 void Renderer::exclude(const Renderable &renderable)
@@ -396,20 +394,6 @@ void Renderer::apply_state()
        }
 }
 
-void Renderer::reset_state()
-{
-       if(!matrices_loaded)
-               return;
-
-       if(camera)
-               MatrixStack::projection().pop();
-       MatrixStack::modelview().pop();
-       matrices_loaded = false;
-       changed |= MATRIX;
-
-       *state = State();
-}
-
 
 Renderer::State::State():
        camera(0),