]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texunit.cpp
Use RAII checks for extensions and versions
[libs/gl.git] / source / texunit.cpp
index fd0fe31423db1c6f76413f818f493eb661167b02..7aced5cc3ba2ab182a4c5e37ce6b37f42e6e21a6 100644 (file)
@@ -1,7 +1,14 @@
-#define GL_GLEXT_PROTOTYPES
-#include <GL/gl.h>
-#include <GL/glext.h>
+/* $Id$
+
+This file is part of libmspgl
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
+#include "extension.h"
+#include "gl.h"
 #include "texunit.h"
+#include "version_1_3.h"
 
 using namespace std;
 
@@ -10,7 +17,8 @@ namespace GL {
 
 TexUnit::TexUnit():
        texture(0)
-{ }
+{
+}
 
 bool TexUnit::set_texture(const Texture *tex)
 {
@@ -24,7 +32,11 @@ TexUnit &TexUnit::activate(unsigned n)
        if(units.size()<=n)
                units.resize(n+1);
 
-       glActiveTextureARB(GL_TEXTURE0+n);
+       if(cur_unit!=&units[n] && (cur_unit || n))
+       {
+               static RequireVersion _ver(1, 3);
+               glActiveTexture(GL_TEXTURE0+n);
+       }
        cur_unit=&units[n];
 
        return units[n];