change some explicit references to texture units 0/1 to unit < MaxTextureUnits (Andre...
authorRoland Scheidegger <rscheidegger@gmx.ch>
Thu, 27 May 2004 16:56:47 +0000 (16:56 +0000)
committerRoland Scheidegger <rscheidegger@gmx.ch>
Thu, 27 May 2004 16:56:47 +0000 (16:56 +0000)
src/mesa/drivers/dri/r200/r200_cmdbuf.c
src/mesa/drivers/dri/r200/r200_maos_arrays.c
src/mesa/drivers/dri/r200/r200_state.c
src/mesa/drivers/dri/r200/r200_tcl.c

index edea2df572173d7393c211294b2baf7eb1e96cd5..26812d50b628e44f59f0637d43d23af356bce634 100644 (file)
@@ -63,7 +63,7 @@ static void r200_emit_state_list( r200ContextPtr rmesa,
 {
    struct r200_state_atom *state, *tmp;
    char *dest;
-   int i, size;
+   int i, size, mtu;
 
    size = 0;
    foreach_s( state, tmp, list ) {
@@ -84,6 +84,7 @@ static void r200_emit_state_list( r200ContextPtr rmesa,
       return;
 
    dest = r200AllocCmdBuf( rmesa, size * 4, __FUNCTION__);
+   mtu = rmesa->glCtx->Const.MaxTextureUnits;
 
 #define EMIT_ATOM(ATOM) \
 do { \
@@ -112,13 +113,13 @@ do { \
    EMIT_ATOM (fog);
    EMIT_ATOM (tam);
    EMIT_ATOM (tf);
-   for (i = 0; i < 2; ++i) {
+   for (i = 0; i < mtu; ++i) {
        EMIT_ATOM (tex[i]);
    }
-   for (i = 0; i < 2; ++i) {
+   for (i = 0; i < mtu; ++i) {
        EMIT_ATOM (cube[i]);
    }
-   for (i = 0; i < 5; ++i)
+   for (i = 0; i < 3 + mtu; ++i)
        EMIT_ATOM (mat[i]);
    EMIT_ATOM (eye);
    EMIT_ATOM (glt);
index 301b265396afb82b45147a93f123cb9b36be3d51..7bfa316836a91fb1cfa272970c0f0734a5a02404 100644 (file)
@@ -422,7 +422,7 @@ void r200EmitArrays( GLcontext *ctx, GLuint inputs )
    }
 
 /*    vtx = (rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXFMT] & */
-/*       ~(R200_TCL_VTX_Q0|R200_TCL_VTX_Q1)); */
+/*       ~(R200_TCL_VTX_Q0|R200_TCL_VTX_Q1|R200_TCL_VTX_Q2|R200_TCL_VTX_Q3|R200_TCL_VTX_Q4|R200_TCL_VTX_Q5)); */
       
    re_cntl = rmesa->hw.set.cmd[SET_RE_CNTL] & ~(R200_VTX_STQ0_D3D |
                                                R200_VTX_STQ1_D3D |
@@ -468,6 +468,7 @@ void r200EmitArrays( GLcontext *ctx, GLuint inputs )
 
 void r200ReleaseArrays( GLcontext *ctx, GLuint newinputs )
 {
+   GLuint unit;
    r200ContextPtr rmesa = R200_CONTEXT( ctx );
 
 /*    if (R200_DEBUG & DEBUG_VERTS)  */
@@ -485,9 +486,8 @@ void r200ReleaseArrays( GLcontext *ctx, GLuint newinputs )
    if (newinputs & VERT_BIT_COLOR1) 
       r200ReleaseDmaRegion( rmesa, &rmesa->tcl.spec, __FUNCTION__ );
 
-   if (newinputs & VERT_BIT_TEX0)
-      r200ReleaseDmaRegion( rmesa, &rmesa->tcl.tex[0], __FUNCTION__ );
-
-   if (newinputs & VERT_BIT_TEX1)
-      r200ReleaseDmaRegion( rmesa, &rmesa->tcl.tex[1], __FUNCTION__ );
+   for (unit = 0 ; unit < ctx->Const.MaxTextureUnits; unit++) {
+      if (newinputs & VERT_BIT_TEX(unit))
+        r200ReleaseDmaRegion( rmesa, &rmesa->tcl.tex[unit], __FUNCTION__ );
+   }
 }
index 347ee3ca40627810cad77a75a45575a3e5439d4f..8210d6cfbe5f3b60de7bab18053f48fa39aa5998 100644 (file)
@@ -2120,7 +2120,7 @@ static void update_texturematrix( GLcontext *ctx )
    rmesa->TexMatEnabled = 0;
    rmesa->TexMatCompSel = 0;
 
-   for (unit = 0 ; unit < 2; unit++) {
+   for (unit = 0 ; unit < ctx->Const.MaxTextureUnits; unit++) {
       if (!ctx->Texture.Unit[unit]._ReallyEnabled) 
         continue;
 
index daf449060888aceab4a063f51230d925c382e37d..1090666dd3f40fb31f9db8cfa1826c5dd3738e79 100644 (file)
@@ -302,6 +302,7 @@ static void r200_check_tcl_render( GLcontext *ctx,
 {
    r200ContextPtr rmesa = R200_CONTEXT(ctx);
    GLuint inputs = VERT_BIT_POS;
+   GLuint unit;
 
    /* Validate state:
     */
@@ -326,23 +327,15 @@ static void r200_check_tcl_render( GLcontext *ctx,
         }
       }
 
-      if (ctx->Texture.Unit[0]._ReallyEnabled) {
-        if (ctx->Texture.Unit[0].TexGenEnabled) {
-           if (rmesa->TexGenNeedNormals[0]) {
-              inputs |= VERT_BIT_NORMAL;
+      for (unit = 0 ; unit < ctx->Const.MaxTextureUnits; unit++) {
+        if (ctx->Texture.Unit[unit]._ReallyEnabled) {
+           if (ctx->Texture.Unit[unit].TexGenEnabled) {
+              if (rmesa->TexGenNeedNormals[unit]) {
+                 inputs |= VERT_BIT_NORMAL;
+              }
+           } else {
+              inputs |= VERT_BIT_TEX(unit);
            }
-        } else {
-           inputs |= VERT_BIT_TEX0;
-        }
-      }
-
-      if (ctx->Texture.Unit[1]._ReallyEnabled) {
-        if (ctx->Texture.Unit[1].TexGenEnabled) {
-           if (rmesa->TexGenNeedNormals[1]) {
-              inputs |= VERT_BIT_NORMAL;
-           }
-        } else {
-           inputs |= VERT_BIT_TEX1;
         }
       }