+ if (m->tex3d[i] || m->texcubemap[i])
+ {
+ if (!unit->arrayis3d)
+ {
+#ifdef MESH_BATCH
+ if (gl_batchelementcount)
+ R_Mesh_EndBatch();
+#endif
+ unit->arrayis3d = true;
+ if (gl_state.clientunit != i)
+ {
+ qglClientActiveTexture(GL_TEXTURE0_ARB + (gl_state.clientunit = i));CHECKGLERROR
+ }
+ qglTexCoordPointer(3, GL_FLOAT, sizeof(float[3]), varray_buf_texcoord3f[i]);
+ }
+ if (!unit->arrayenabled)
+ {
+#ifdef MESH_BATCH
+ if (gl_batchelementcount)
+ R_Mesh_EndBatch();
+#endif
+ unit->arrayenabled = true;
+ if (gl_state.clientunit != i)
+ {
+ qglClientActiveTexture(GL_TEXTURE0_ARB + (gl_state.clientunit = i));CHECKGLERROR
+ }
+ qglEnableClientState(GL_TEXTURE_COORD_ARRAY);CHECKGLERROR
+ }
+ }
+ else if (m->tex1d[i] || m->tex[i])
+ {
+ if (unit->arrayis3d)
+ {
+#ifdef MESH_BATCH
+ if (gl_batchelementcount)
+ R_Mesh_EndBatch();
+#endif
+ unit->arrayis3d = false;
+ if (gl_state.clientunit != i)
+ {
+ qglClientActiveTexture(GL_TEXTURE0_ARB + (gl_state.clientunit = i));CHECKGLERROR
+ }
+ qglTexCoordPointer(2, GL_FLOAT, sizeof(float[2]), varray_buf_texcoord2f[i]);
+ }
+ if (!unit->arrayenabled)
+ {
+#ifdef MESH_BATCH
+ if (gl_batchelementcount)
+ R_Mesh_EndBatch();
+#endif
+ unit->arrayenabled = true;
+ if (gl_state.clientunit != i)
+ {
+ qglClientActiveTexture(GL_TEXTURE0_ARB + (gl_state.clientunit = i));CHECKGLERROR
+ }
+ qglEnableClientState(GL_TEXTURE_COORD_ARRAY);CHECKGLERROR
+ }
+ }
+ else
+ {
+ if (unit->arrayenabled)
+ {
+#ifdef MESH_BATCH
+ if (gl_batchelementcount)
+ R_Mesh_EndBatch();
+#endif
+ unit->arrayenabled = false;
+ if (gl_state.clientunit != i)
+ {
+ qglClientActiveTexture(GL_TEXTURE0_ARB + (gl_state.clientunit = i));CHECKGLERROR
+ }
+ qglDisableClientState(GL_TEXTURE_COORD_ARRAY);CHECKGLERROR
+ }
+ }
+ if (unit->t1d != m->tex1d[i])
+ {
+#ifdef MESH_BATCH
+ if (gl_batchelementcount)
+ R_Mesh_EndBatch();
+#endif
+ if (gl_state.unit != i)
+ {
+ qglActiveTexture(GL_TEXTURE0_ARB + (gl_state.unit = i));CHECKGLERROR
+ }
+ if (m->tex1d[i])
+ {
+ if (unit->t1d == 0)
+ qglEnable(GL_TEXTURE_1D);CHECKGLERROR
+ }
+ else
+ {
+ if (unit->t1d)
+ qglDisable(GL_TEXTURE_1D);CHECKGLERROR
+ }
+ qglBindTexture(GL_TEXTURE_1D, (unit->t1d = m->tex1d[i]));CHECKGLERROR
+ }
+ if (unit->t2d != m->tex[i])
+ {
+#ifdef MESH_BATCH
+ if (gl_batchelementcount)
+ R_Mesh_EndBatch();
+#endif
+ if (gl_state.unit != i)
+ {
+ qglActiveTexture(GL_TEXTURE0_ARB + (gl_state.unit = i));CHECKGLERROR
+ }
+ if (m->tex[i])
+ {
+ if (unit->t2d == 0)
+ qglEnable(GL_TEXTURE_2D);CHECKGLERROR
+ }
+ else
+ {
+ if (unit->t2d)
+ qglDisable(GL_TEXTURE_2D);CHECKGLERROR
+ }
+ qglBindTexture(GL_TEXTURE_2D, (unit->t2d = m->tex[i]));CHECKGLERROR
+ }
+ if (unit->t3d != m->tex3d[i])
+ {
+#ifdef MESH_BATCH
+ if (gl_batchelementcount)
+ R_Mesh_EndBatch();
+#endif
+ if (gl_state.unit != i)
+ {
+ qglActiveTexture(GL_TEXTURE0_ARB + (gl_state.unit = i));CHECKGLERROR
+ }
+ if (m->tex3d[i])
+ {
+ if (unit->t3d == 0)
+ qglEnable(GL_TEXTURE_3D);CHECKGLERROR
+ }
+ else
+ {
+ if (unit->t3d)
+ qglDisable(GL_TEXTURE_3D);CHECKGLERROR
+ }
+ qglBindTexture(GL_TEXTURE_3D, (unit->t3d = m->tex3d[i]));CHECKGLERROR
+ }
+ if (unit->tcubemap != m->texcubemap[i])
+ {
+#ifdef MESH_BATCH
+ if (gl_batchelementcount)
+ R_Mesh_EndBatch();
+#endif
+ if (gl_state.unit != i)
+ {
+ qglActiveTexture(GL_TEXTURE0_ARB + (gl_state.unit = i));CHECKGLERROR
+ }
+ if (m->texcubemap[i])
+ {
+ if (unit->tcubemap == 0)
+ qglEnable(GL_TEXTURE_CUBE_MAP_ARB);CHECKGLERROR
+ }
+ else
+ {
+ if (unit->tcubemap)
+ qglDisable(GL_TEXTURE_CUBE_MAP_ARB);CHECKGLERROR
+ }
+ qglBindTexture(GL_TEXTURE_CUBE_MAP_ARB, (unit->tcubemap = m->texcubemap[i]));CHECKGLERROR
+ }