- if (gl_state.units[j].pointer_texcoord_components == 4)
- qglTexCoord4f(sb[0], sb[1], sb[2], sb[3]);
- else if (gl_state.units[j].pointer_texcoord_components == 3)
- qglTexCoord3f(sb[0], sb[1], sb[2]);
- else if (gl_state.units[j].pointer_texcoord_components == 2)
- qglTexCoord2f(sb[0], sb[1]);
- else if (gl_state.units[j].pointer_texcoord_components == 1)
- qglTexCoord1f(sb[0]);
+ const GLshort *s = (const GLshort *)((const unsigned char *)gl_state.units[j].pointer_texcoord_pointer + element * gl_state.units[j].pointer_texcoord_stride);
+ if (vid.texarrayunits > 1)
+ {
+ if (gl_state.units[j].pointer_texcoord_components == 4)
+ qglMultiTexCoord4f(GL_TEXTURE0_ARB + j, s[0], s[1], s[2], s[3]);
+ else if (gl_state.units[j].pointer_texcoord_components == 3)
+ qglMultiTexCoord3f(GL_TEXTURE0_ARB + j, s[0], s[1], s[2]);
+ else if (gl_state.units[j].pointer_texcoord_components == 2)
+ qglMultiTexCoord2f(GL_TEXTURE0_ARB + j, s[0], s[1]);
+ else if (gl_state.units[j].pointer_texcoord_components == 1)
+ qglMultiTexCoord1f(GL_TEXTURE0_ARB + j, s[0]);
+ }
+ else
+ {
+ if (gl_state.units[j].pointer_texcoord_components == 4)
+ qglTexCoord4f(s[0], s[1], s[2], s[3]);
+ else if (gl_state.units[j].pointer_texcoord_components == 3)
+ qglTexCoord3f(s[0], s[1], s[2]);
+ else if (gl_state.units[j].pointer_texcoord_components == 2)
+ qglTexCoord2f(s[0], s[1]);
+ else if (gl_state.units[j].pointer_texcoord_components == 1)
+ qglTexCoord1f(s[0]);
+ }
+ }
+ else if (gl_state.units[j].pointer_texcoord_gltype == GL_BYTE)
+ {
+ const GLbyte *sb = (const GLbyte *)((const unsigned char *)gl_state.units[j].pointer_texcoord_pointer + element * gl_state.units[j].pointer_texcoord_stride);
+ if (vid.texarrayunits > 1)
+ {
+ if (gl_state.units[j].pointer_texcoord_components == 4)
+ qglMultiTexCoord4f(GL_TEXTURE0_ARB + j, sb[0], sb[1], sb[2], sb[3]);
+ else if (gl_state.units[j].pointer_texcoord_components == 3)
+ qglMultiTexCoord3f(GL_TEXTURE0_ARB + j, sb[0], sb[1], sb[2]);
+ else if (gl_state.units[j].pointer_texcoord_components == 2)
+ qglMultiTexCoord2f(GL_TEXTURE0_ARB + j, sb[0], sb[1]);
+ else if (gl_state.units[j].pointer_texcoord_components == 1)
+ qglMultiTexCoord1f(GL_TEXTURE0_ARB + j, sb[0]);
+ }
+ else
+ {
+ if (gl_state.units[j].pointer_texcoord_components == 4)
+ qglTexCoord4f(sb[0], sb[1], sb[2], sb[3]);
+ else if (gl_state.units[j].pointer_texcoord_components == 3)
+ qglTexCoord3f(sb[0], sb[1], sb[2]);
+ else if (gl_state.units[j].pointer_texcoord_components == 2)
+ qglTexCoord2f(sb[0], sb[1]);
+ else if (gl_state.units[j].pointer_texcoord_components == 1)
+ qglTexCoord1f(sb[0]);
+ }