X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Ftexunit.cpp;h=0659d6154e80523ffaa0baf75f6bf00ff96a05f2;hb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;hp=9b905120db6861d54204b172264d58c6f5340383;hpb=f1b12c992db974c679d85ae6ec22cd318199d0d5;p=libs%2Fgl.git diff --git a/source/texunit.cpp b/source/texunit.cpp index 9b905120..0659d615 100644 --- a/source/texunit.cpp +++ b/source/texunit.cpp @@ -3,6 +3,7 @@ #include #include "gl.h" #include "misc.h" +#include "texture.h" #include "texunit.h" using namespace std; @@ -14,7 +15,8 @@ vector TexUnit::units; TexUnit *TexUnit::cur_unit = 0; TexUnit::TexUnit(): - texture(0) + texture(0), + sampler(0) { } bool TexUnit::set_texture(const Texture *tex) @@ -24,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)) @@ -37,7 +46,7 @@ unsigned TexUnit::get_n_units() if(count<0) { if(ARB_vertex_shader) - count = get_i(GL_MAX_TEXTURE_IMAGE_UNITS); + count = get_i(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS); else if(ARB_multitexture) count = get_i(GL_MAX_TEXTURE_UNITS); else