X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Ftexunit.cpp;h=7405d8da10a8d31ce1b8f70d757b28fff375067c;hp=0659d6154e80523ffaa0baf75f6bf00ff96a05f2;hb=2d3113a7dbbe4be2f1d1e8980c1c4e42175163da;hpb=c5583e23cc7b064ac28f2b2b6993d1e5fa415d5b diff --git a/source/core/texunit.cpp b/source/core/texunit.cpp index 0659d615..7405d8da 100644 --- a/source/core/texunit.cpp +++ b/source/core/texunit.cpp @@ -1,6 +1,7 @@ #include #include #include +#include "deviceinfo.h" #include "gl.h" #include "misc.h" #include "texture.h" @@ -42,24 +43,14 @@ void TexUnit::bind() unsigned TexUnit::get_n_units() { - static int count = -1; - if(count<0) - { - if(ARB_vertex_shader) - count = get_i(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS); - else if(ARB_multitexture) - count = get_i(GL_MAX_TEXTURE_UNITS); - else - count = 1; - } - return count; + return Limits::get_global().max_texture_bindings; } TexUnit &TexUnit::get_unit(unsigned n) { if(n>0) static Require _req(ARB_multitexture); - if(n>=get_n_units()) + if(n>=Limits::get_global().max_texture_bindings) throw out_of_range("TexUnit::get_unit"); if(units.size()<=n)