]> git.tdb.fi Git - libs/gl.git/blobdiff - source/renderer.cpp
Automatically determine texture units for effects
[libs/gl.git] / source / renderer.cpp
index b6ece6ded24efbf6f45c6d8dde8a27f0e8d51b09..af0d087398da9010816a0cce0f8bf563dc1f69d0 100644 (file)
@@ -11,6 +11,7 @@
 #include "renderer.h"
 #include "texture.h"
 #include "texturing.h"
+#include "texunit.h"
 #include "vertexarray.h"
 #include "windingtest.h"
 
@@ -74,6 +75,11 @@ void Renderer::set_texturing(const Texturing *t)
        state->texture = 0;
 }
 
+unsigned Renderer::allocate_effect_texunit()
+{
+       return --state->lowest_effect_texunit;
+}
+
 void Renderer::set_material(const Material *m)
 {
        state->material = m;
@@ -291,6 +297,7 @@ void Renderer::apply_state()
 Renderer::State::State():
        texture(0),
        texturing(0),
+       lowest_effect_texunit(TexUnit::get_n_units()),
        material(0),
        lighting(0),
        shprog(0),