X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexunit.cpp;h=622599a213d2481acba6707e573286b0d4145f9d;hb=f17794d55923d4fb4f63e9d082d8d84a735a04e8;hp=91a33ecc378d966644e11aaf90c11524ffbc1bd0;hpb=f098a871fc6dc7b61a5aca5581fa327e4124c036;p=libs%2Fgl.git diff --git a/source/texunit.cpp b/source/texunit.cpp index 91a33ecc..622599a2 100644 --- a/source/texunit.cpp +++ b/source/texunit.cpp @@ -1,14 +1,14 @@ /* $Id$ This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions +Copyright © 2007-2008 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ -#define GL_GLEXT_PROTOTYPES -#include -#include +#include "extension.h" +#include "gl.h" #include "texunit.h" +#include "version_1_3.h" using namespace std; @@ -17,7 +17,8 @@ namespace GL { TexUnit::TexUnit(): texture(0) -{ } +{ +} bool TexUnit::set_texture(const Texture *tex) { @@ -26,12 +27,23 @@ bool TexUnit::set_texture(const Texture *tex) return result; } +bool TexUnit::set_texenv(const TexEnv *env) +{ + bool result=(texenv!=env); + texenv=env; + return result; +} + 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];