]> git.tdb.fi Git - libs/gl.git/commitdiff
Give TexEnv a default object since it can't be disabled
authorMikko Rasa <tdb@tdb.fi>
Thu, 28 Nov 2013 11:11:35 +0000 (13:11 +0200)
committerMikko Rasa <tdb@tdb.fi>
Thu, 28 Nov 2013 11:11:35 +0000 (13:11 +0200)
source/texenv.cpp
source/texenv.h

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
index 1327bb850de64999e297f504b82489811164104c..55a12f306ed2e33850b9b73788c1a122d69052a7 100644 (file)
@@ -25,6 +25,9 @@ private:
 
 public:
        TexEnv();
+
+       static const TexEnv &default_object();
+
        void set_mode(TexEnvMode);
        void set_color(const Color &);
        TexEnvMode get_mode() const { return mode; }