+void GlState::glGetIntegerv(void *user_data, GLenum pname, int *param)
+{
+ GlState *self = reinterpret_cast<GlState *>(user_data);
+ if(pname==GL_MAX_TEXTURE_UNITS)
+ {
+ self->texcoord.resize(*param);
+ self->texunits.resize(*param);
+ self->texcoord_arrays.resize(*param);
+ for(unsigned i=0; i<self->texcoord_arrays.size(); ++i)
+ {
+ self->texcoord_arrays[i].kind = GL_TEXTURE_COORD_ARRAY;
+ self->texcoord_arrays[i].index = i;
+ }
+ }
+ else if(pname==GL_MAX_VERTEX_ATTRIBS)
+ {
+ self->attrib_arrays.resize(*param);
+ for(unsigned i=0; i<self->attrib_arrays.size(); ++i)
+ self->attrib_arrays[i].index = i;
+ }
+ else if(pname==GL_MAX_UNIFORM_BUFFER_BINDINGS)
+ self->uniform_bind_points.resize(*param);
+}
+