]> git.tdb.fi Git - libs/gl.git/blobdiff - source/renderer.cpp
Convert Matrix to use floats
[libs/gl.git] / source / renderer.cpp
index 3a44dcd3c0b21bd5afd1fac151405d6e0936f5d1..c56216edf0fe88950a251949ea0ace70664429c6 100644 (file)
@@ -23,6 +23,7 @@ Renderer::Renderer(const Camera *c):
        mtx_changed(false),
        camera(c),
        state_stack(1),
+       lighting_changed(false),
        vertex_array(0),
        element_buffer(0)
 {
@@ -50,6 +51,7 @@ Renderer::~Renderer()
        Texturing::unbind();
        Texture::unbind_from(0);
        Material::unbind();
+       Lighting::unbind();
        Program::unbind();
        Buffer::unbind_from(ELEMENT_ARRAY_BUFFER);
        WindingTest::unbind();
@@ -112,6 +114,11 @@ void Renderer::set_winding_test(const WindingTest *w)
        state->winding_test = w;
 }
 
+void Renderer::set_reverse_winding(bool r)
+{
+       state->reverse_winding = r;
+}
+
 void Renderer::push_state()
 {
        state_stack.push_back(state_stack.back());
@@ -220,7 +227,12 @@ void Renderer::apply_state()
                Program::unbind();
 
        if(state->winding_test)
-               state->winding_test->bind();
+       {
+               if(state->reverse_winding)
+                       state->winding_test->get_reverse().bind();
+               else
+                       state->winding_test->bind();
+       }
        else
                WindingTest::unbind();