X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Ftexunit.cpp;h=9277c27704ebd8347c3c6a782fc1b6ff05fc8658;hb=HEAD;hp=9b905120db6861d54204b172264d58c6f5340383;hpb=f1b12c992db974c679d85ae6ec22cd318199d0d5;p=libs%2Fgl.git diff --git a/source/texunit.cpp b/source/texunit.cpp deleted file mode 100644 index 9b905120..00000000 --- a/source/texunit.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include -#include -#include -#include "gl.h" -#include "misc.h" -#include "texunit.h" - -using namespace std; - -namespace Msp { -namespace GL { - -vector TexUnit::units; -TexUnit *TexUnit::cur_unit = 0; - -TexUnit::TexUnit(): - texture(0) -{ } - -bool TexUnit::set_texture(const Texture *tex) -{ - bool result = (tex!=texture); - texture = tex; - return result; -} - -void TexUnit::bind() -{ - if(cur_unit!=this && (cur_unit || index)) - glActiveTexture(GL_TEXTURE0+index); - cur_unit = this; -} - -unsigned TexUnit::get_n_units() -{ - static int count = -1; - if(count<0) - { - if(ARB_vertex_shader) - count = get_i(GL_MAX_TEXTURE_IMAGE_UNITS); - else if(ARB_multitexture) - count = get_i(GL_MAX_TEXTURE_UNITS); - else - count = 1; - } - return count; -} - -TexUnit &TexUnit::get_unit(unsigned n) -{ - if(n>0) - static Require _req(ARB_multitexture); - if(n>=get_n_units()) - 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