X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Ftexunit.cpp;h=0659d6154e80523ffaa0baf75f6bf00ff96a05f2;hb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;hp=31c90777aad10eccd5a4e9d110de2a0846809f26;hpb=e19309340e90ee881e9cb2f8b7c33a5b89681aa6;p=libs%2Fgl.git diff --git a/source/texunit.cpp b/source/texunit.cpp index 31c90777..0659d615 100644 --- a/source/texunit.cpp +++ b/source/texunit.cpp @@ -1,9 +1,9 @@ #include #include #include -#include #include "gl.h" #include "misc.h" +#include "texture.h" #include "texunit.h" using namespace std; @@ -15,8 +15,8 @@ vector TexUnit::units; TexUnit *TexUnit::cur_unit = 0; TexUnit::TexUnit(): - legacy(false), - texture(0) + texture(0), + sampler(0) { } bool TexUnit::set_texture(const Texture *tex) @@ -26,6 +26,13 @@ bool TexUnit::set_texture(const Texture *tex) return result; } +bool TexUnit::set_sampler(const Sampler *samp) +{ + bool result = (samp!=sampler); + sampler = samp; + return result; +} + void TexUnit::bind() { if(cur_unit!=this && (cur_unit || index)) @@ -48,19 +55,6 @@ unsigned TexUnit::get_n_units() return count; } -unsigned TexUnit::get_n_legacy_units() -{ - static int count = -1; - if(count<0) - { - if(MSP_legacy_features) - count = get_i(GL_MAX_TEXTURE_UNITS); - else - count = 0; - } - return count; -} - TexUnit &TexUnit::get_unit(unsigned n) { if(n>0) @@ -71,13 +65,9 @@ TexUnit &TexUnit::get_unit(unsigned n) if(units.size()<=n) { unsigned i = units.size(); - unsigned n_legacy = get_n_legacy_units(); units.resize(n+1, TexUnit()); for(; i