X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Ftexunit.cpp;fp=source%2Fcore%2Ftexunit.cpp;h=0000000000000000000000000000000000000000;hb=9b3bce7ae76ff8c0c81315d2505ea96bf422a318;hp=7405d8da10a8d31ce1b8f70d757b28fff375067c;hpb=a482029babea3210840d8c62e9df9ece4342b2b9;p=libs%2Fgl.git diff --git a/source/core/texunit.cpp b/source/core/texunit.cpp deleted file mode 100644 index 7405d8da..00000000 --- a/source/core/texunit.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include -#include -#include -#include "deviceinfo.h" -#include "gl.h" -#include "misc.h" -#include "texture.h" -#include "texunit.h" - -using namespace std; - -namespace Msp { -namespace GL { - -vector TexUnit::units; -TexUnit *TexUnit::cur_unit = 0; - -TexUnit::TexUnit(): - texture(0), - sampler(0) -{ } - -bool TexUnit::set_texture(const Texture *tex) -{ - bool result = (tex!=texture); - 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)) - glActiveTexture(GL_TEXTURE0+index); - cur_unit = this; -} - -unsigned TexUnit::get_n_units() -{ - return Limits::get_global().max_texture_bindings; -} - -TexUnit &TexUnit::get_unit(unsigned n) -{ - if(n>0) - static Require _req(ARB_multitexture); - if(n>=Limits::get_global().max_texture_bindings) - throw out_of_range("TexUnit::get_unit"); - - if(units.size()<=n) - { - unsigned i = units.size(); - units.resize(n+1, TexUnit()); - for(; i::iterator i=units.begin(); i!=units.end(); ++i) - if(i->texture==tex) - return &*i; - return 0; -} - -} // namespace GL -} // namespace Msp