X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexunit.cpp;h=dde3d406ca71fcbb5cfa034805a91a9784da6fe7;hb=f14435e58bfa0fa697a06ba9a454bb30cd37d9d8;hp=a542796548f0ae120bc9037b81bf0e2e3071c0fd;hpb=7e9e15a12fb398798f2719545cc8553354c1e389;p=libs%2Fgl.git diff --git a/source/texunit.cpp b/source/texunit.cpp index a5427965..dde3d406 100644 --- a/source/texunit.cpp +++ b/source/texunit.cpp @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007-2008 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #include "extension.h" #include "gl.h" #include "texunit.h" @@ -41,19 +34,21 @@ unsigned TexUnit::get_n_units() { static int count = -1; if(count<0) - // XXX Should use GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS since GL 2.0 - glGetIntegerv(GL_MAX_TEXTURE_UNITS, &count); + { + if(is_version_at_least(2, 0) || is_supported("ARB_vertex_shader")) + glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &count); + else if(is_version_at_least(1, 3)) + glGetIntegerv(GL_MAX_TEXTURE_UNITS, &count); + else + count = 1; + } return count; } TexUnit &TexUnit::activate(unsigned n) { - if(n>0) - { - static RequireVersion _ver(1, 3); - if(n>=get_n_units()) - throw InvalidParameterValue("Invalid texture unit number"); - } + if(n>=get_n_units()) + throw InvalidParameterValue("Invalid texture unit number"); if(units.size()<=n) units.resize(n+1);