remove TexCoordInterleaveFactor. Clean up _mesa_InterleavedArrays()
authorBrian Paul <brian.paul@tungstengraphics.com>
Fri, 12 Dec 2003 18:40:02 +0000 (18:40 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Fri, 12 Dec 2003 18:40:02 +0000 (18:40 +0000)
src/mesa/main/mtypes.h
src/mesa/main/varray.c

index 686dd4aac8d6b9866faa6b86171cb0381334e979..7e14da2559535bd7d79bcd58500cb6f4749af157 100644 (file)
@@ -1317,7 +1317,6 @@ struct gl_array_attrib {
 
    struct gl_client_array VertexAttrib[VERT_ATTRIB_MAX];  /**< GL_NV_vertex_program */
 
-   GLint TexCoordInterleaveFactor;
    GLint ActiveTexture;                /**< Client Active Texture */
    GLuint LockFirst;            /**< GL_EXT_compiled_vertex_array */
    GLuint LockCount;            /**< GL_EXT_compiled_vertex_array */
index 8141cf92817d2f91c35028ed646d4659de6aee50..dc6cb39adc7b99863152635454d26acb10789063 100644 (file)
@@ -618,6 +618,7 @@ _mesa_InterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer)
    GLint tcomps, ccomps, vcomps;   /* components per texcoord, color, vertex */
    GLenum ctype = 0;               /* color type */
    GLint coffset = 0, noffset = 0, voffset;/* color, normal, vertex offsets */
+   const GLint toffset = 0;        /* always zero */
    GLint defstride;                /* default stride */
    GLint c, f;
    GLint coordUnitSave;
@@ -753,22 +754,22 @@ _mesa_InterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer)
    /* Texcoords */
    coordUnitSave = ctx->Array.ActiveTexture;
    if (tflag) {
-      GLint i;
-      GLint factor = ctx->Array.TexCoordInterleaveFactor;
-      for (i = 0; i < factor; i++) {
-         _mesa_ClientActiveTextureARB( (GLenum) (GL_TEXTURE0_ARB + i) );
-         _mesa_EnableClientState( GL_TEXTURE_COORD_ARRAY );
-         _mesa_TexCoordPointer( tcomps, GL_FLOAT, stride,
-                               (GLubyte *) pointer + i * coffset );
-      }
-      for (i = factor; i < (GLint) ctx->Const.MaxTextureCoordUnits; i++) {
+      GLuint i;
+      /* enable unit 0 texcoord array */
+      _mesa_ClientActiveTextureARB( GL_TEXTURE0_ARB );
+      _mesa_EnableClientState( GL_TEXTURE_COORD_ARRAY );
+      _mesa_TexCoordPointer( tcomps, GL_FLOAT, stride,
+                             (GLubyte *) pointer + i * toffset );
+      /* disable all other texcoord arrays */
+      for (i = 1; i < ctx->Const.MaxTextureCoordUnits; i++) {
          _mesa_ClientActiveTextureARB( (GLenum) (GL_TEXTURE0_ARB + i) );
          _mesa_DisableClientState( GL_TEXTURE_COORD_ARRAY );
       }
    }
    else {
-      GLint i;
-      for (i = 0; i < (GLint) ctx->Const.MaxTextureCoordUnits; i++) {
+      /* disable all texcoord arrays */
+      GLuint i;
+      for (i = 0; i < ctx->Const.MaxTextureCoordUnits; i++) {
          _mesa_ClientActiveTextureARB( (GLenum) (GL_TEXTURE0_ARB + i) );
          _mesa_DisableClientState( GL_TEXTURE_COORD_ARRAY );
       }
@@ -781,7 +782,7 @@ _mesa_InterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer)
    if (cflag) {
       _mesa_EnableClientState( GL_COLOR_ARRAY );
       _mesa_ColorPointer( ccomps, ctype, stride,
-                         (GLubyte*) pointer + coffset );
+                         (GLubyte *) pointer + coffset );
    }
    else {
       _mesa_DisableClientState( GL_COLOR_ARRAY );
@@ -791,13 +792,13 @@ _mesa_InterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer)
    /* Normals */
    if (nflag) {
       _mesa_EnableClientState( GL_NORMAL_ARRAY );
-      _mesa_NormalPointer( GL_FLOAT, stride,
-                          (GLubyte*) pointer + noffset );
+      _mesa_NormalPointer( GL_FLOAT, stride, (GLubyte *) pointer + noffset );
    }
    else {
       _mesa_DisableClientState( GL_NORMAL_ARRAY );
    }
 
+   /* Vertices */
    _mesa_EnableClientState( GL_VERTEX_ARRAY );
    _mesa_VertexPointer( vcomps, GL_FLOAT, stride,
                        (GLubyte *) pointer + voffset );
@@ -988,7 +989,6 @@ _mesa_init_varray( GLcontext * ctx )
       ctx->Array.TexCoord[i].Enabled = GL_FALSE;
       ctx->Array.TexCoord[i].Flags = CA_CLIENT_DATA;
    }
-   ctx->Array.TexCoordInterleaveFactor = 1;
    ctx->Array.EdgeFlag.Stride = 0;
    ctx->Array.EdgeFlag.StrideB = 0;
    ctx->Array.EdgeFlag.Ptr = NULL;