]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texenv.cpp
Give TexEnv a default object since it can't be disabled
[libs/gl.git] / source / texenv.cpp
index ff77e8cead0d6afb77fe51fd837b960377be8096..ff9ea197b982cdb6a092137f14c5c8f8709e2d68 100644 (file)
@@ -5,9 +5,16 @@ namespace Msp {
 namespace GL {
 
 TexEnv::TexEnv():
-       mode(MODULATE)
+       mode(MODULATE),
+       color(0, 0, 0, 0)
 { }
 
+const TexEnv &TexEnv::default_object()
+{
+       static TexEnv obj;
+       return obj;
+}
+
 void TexEnv::set_mode(TexEnvMode m)
 {
        mode = m;
@@ -40,14 +47,7 @@ const TexEnv *TexEnv::current(unsigned i)
 
 void TexEnv::unbind_from(unsigned i)
 {
-       TexUnit &unit = TexUnit::get_unit(i);
-       if(unit.set_texenv(0))
-       {
-               unit.bind();
-               Color black(0, 0, 0, 0);
-               glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, MODULATE);
-               glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, &black.r);
-       }
+       default_object().bind_to(i);
 }
 
 } // namespace GL