]> git.tdb.fi Git - libs/gl.git/blobdiff - source/renderer.cpp
Add functions for setting arrays of 2x2 and 3x3 matrix uniforms
[libs/gl.git] / source / renderer.cpp
index e59949a3683f938797251a4a5d3f34a7ebbddc46..cc00ac8e3affda145ec8e2f8afcc5c1d7bb4af40 100644 (file)
@@ -269,18 +269,16 @@ void Renderer::draw(const Batch &batch)
 {
        apply_state();
 
-       bool legacy_bindings = (!state->shprog || state->shprog->uses_legacy_variables());
-       if(state->mesh && legacy_bindings)
-       {
-               if(const Buffer *ibuf = state->mesh->get_index_buffer())
-                       ibuf->bind_to(ELEMENT_ARRAY_BUFFER);
-               else
-                       Buffer::unbind_from(ELEMENT_ARRAY_BUFFER);
-       }
-
        batch.draw();
 }
 
+void Renderer::draw_instanced(const Batch &batch, unsigned count)
+{
+       apply_state();
+
+       batch.draw_instanced(count);
+}
+
 void Renderer::apply_state()
 {
        /* We (mostly) let the objects themselves figure out if the binding has
@@ -386,6 +384,10 @@ void Renderer::apply_state()
                {
                        Mesh::unbind();
                        state->mesh->get_vertices().apply();
+                       if(const Buffer *ibuf = state->mesh->get_index_buffer())
+                               ibuf->bind_to(ELEMENT_ARRAY_BUFFER);
+                       else
+                               Buffer::unbind_from(ELEMENT_ARRAY_BUFFER);
                }
                else
                        state->mesh->bind();