+ 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;
+}
+
+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;
+}