wined3d: Improve traces for D3DTRANSFORMSTATETYPE

Jason Green jave27 at gmail.com
Sun Jul 23 21:54:30 CDT 2006


Added debug function for WINED3DTRANSFORMSTATETYPE and changed all
references from D3DTS_* to WINED3DTS_*.
-------------- next part --------------
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 6a86132..7a96833 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -156,7 +156,7 @@ static void setup_light(IWineD3DDevice *
     /* Light settings are affected by the model view in OpenGL, the View transform in direct3d*/
     glMatrixMode(GL_MODELVIEW);
     glPushMatrix();
-    glLoadMatrixf((float *)&This->stateBlock->transforms[D3DTS_VIEW].u.m[0][0]);
+    glLoadMatrixf((float *)&This->stateBlock->transforms[WINED3DTS_VIEW].u.m[0][0]);
 
     /* Diffuse: */
     colRGBA[0] = lightInfo->OriginalParms.Diffuse.r;
@@ -2450,7 +2450,7 @@ static HRESULT  WINAPI  IWineD3DDeviceIm
     IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
 
     /* Most of this routine, comments included copied from ddraw tree initially: */
-    TRACE("(%p) : Transform State=%d\n", This, d3dts);
+    TRACE("(%p) : Transform State=%s\n", This, debug_d3dtstype(d3dts));
 
     /* Handle recording of state blocks */
     if (This->isRecordingState) {
@@ -2485,27 +2485,27 @@ static HRESULT  WINAPI  IWineD3DDeviceIm
      */
 
     /* Capture the times we can just ignore the change for now */
-    if (d3dts == D3DTS_WORLDMATRIX(0)) {
+    if (d3dts == WINED3DTS_WORLDMATRIX(0)) {
         This->modelview_valid = FALSE;
         return WINED3D_OK;
 
-    } else if (d3dts == D3DTS_PROJECTION) {
+    } else if (d3dts == WINED3DTS_PROJECTION) {
         This->proj_valid = FALSE;
         return WINED3D_OK;
 
-    } else if (d3dts >= D3DTS_WORLDMATRIX(1) && d3dts <= D3DTS_WORLDMATRIX(255)) {
+    } else if (d3dts >= WINED3DTS_WORLDMATRIX(1) && d3dts <= WINED3DTS_WORLDMATRIX(255)) {
         /* Indexed Vertex Blending Matrices 256 -> 511  */
         /* Use arb_vertex_blend or NV_VERTEX_WEIGHTING? */
-        FIXME("D3DTS_WORLDMATRIX(1..255) not handled\n");
+        FIXME("WINED3DTS_WORLDMATRIX(1..255) not handled\n");
         return WINED3D_OK;
     }
 
     /* Now we really are going to have to change a matrix */
     ENTER_GL();
 
-    if (d3dts >= D3DTS_TEXTURE0 && d3dts <= D3DTS_TEXTURE7) { /* handle texture matrices */
+    if (d3dts >= WINED3DTS_TEXTURE0 && d3dts <= WINED3DTS_TEXTURE7) { /* handle texture matrices */
         /* This is now set with the texture unit states, it may be a good idea to flag the change though! */
-    } else if (d3dts == D3DTS_VIEW) { /* handle the VIEW matrice */
+    } else if (d3dts == WINED3DTS_VIEW) { /* handle the VIEW matrice */
         unsigned int k;
 
         /* If we are changing the View matrix, reset the light and clipping planes to the new view
@@ -2552,7 +2552,7 @@ static HRESULT  WINAPI  IWineD3DDeviceIm
 }
 static HRESULT WINAPI IWineD3DDeviceImpl_GetTransform(IWineD3DDevice *iface, D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) {
     IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
-    TRACE("(%p) : for Transform State %d\n", This, State);
+    TRACE("(%p) : for Transform State %s\n", This, debug_d3dtstype(State));
     memcpy(pMatrix, &This->stateBlock->transforms[State], sizeof(D3DMATRIX));
     return WINED3D_OK;
 }
@@ -2567,7 +2567,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl
      * If this is found to be wrong, change to StateBlock.
      */
     IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
-    TRACE("(%p) : For state %u\n", This, State);
+    TRACE("(%p) : For state %s\n", This, debug_d3dtstype(State));
 
     if (State < HIGHEST_TRANSFORMSTATE)
     {
@@ -3016,7 +3016,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl
     /* Clip Plane settings are affected by the model view in OpenGL, the View transform in direct3d */
     glMatrixMode(GL_MODELVIEW);
     glPushMatrix();
-    glLoadMatrixf((float *) &This->stateBlock->transforms[D3DTS_VIEW].u.m[0][0]);
+    glLoadMatrixf((float *) &This->stateBlock->transforms[WINED3DTS_VIEW].u.m[0][0]);
 
     TRACE("Clipplane [%f,%f,%f,%f]\n",
           This->updateStateBlock->clipplane[Index][0],
@@ -5024,13 +5024,13 @@ process_vertices_strided(IWineD3DDeviceI
     }
 
     IWineD3DDevice_GetTransform( (IWineD3DDevice *) This,
-                                 D3DTS_VIEW,
+                                 WINED3DTS_VIEW,
                                  &view_mat);
     IWineD3DDevice_GetTransform( (IWineD3DDevice *) This,
-                                 D3DTS_PROJECTION,
+                                 WINED3DTS_PROJECTION,
                                  &proj_mat);
     IWineD3DDevice_GetTransform( (IWineD3DDevice *) This,
-                                 D3DTS_WORLDMATRIX(0),
+                                 WINED3DTS_WORLDMATRIX(0),
                                  &world_mat);
 
     TRACE("View mat:\n");
@@ -5520,7 +5520,7 @@ #endif
 
         /* Unhandled */
     case WINED3DTSS_TEXTURETRANSFORMFLAGS :
-        set_texture_matrix((float *)&This->stateBlock->transforms[D3DTS_TEXTURE0 + Stage].u.m[0][0], Value, (This->stateBlock->textureState[Stage][WINED3DTSS_TEXCOORDINDEX] & 0xFFFF0000) != D3DTSS_TCI_PASSTHRU);
+        set_texture_matrix((float *)&This->stateBlock->transforms[WINED3DTS_TEXTURE0 + Stage].u.m[0][0], Value, (This->stateBlock->textureState[Stage][WINED3DTSS_TEXCOORDINDEX] & 0xFFFF0000) != D3DTSS_TCI_PASSTHRU);
         break;
 
     case WINED3DTSS_BUMPENVMAT00          :
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index a5672a2..b9dd6f8 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -267,12 +267,12 @@ static void primitiveInitState(
 
             /* In the general case, the view matrix is the identity matrix */
             if (This->view_ident) {
-                glLoadMatrixf((float *) &This->stateBlock->transforms[D3DTS_WORLDMATRIX(0)].u.m[0][0]);
+                glLoadMatrixf((float *) &This->stateBlock->transforms[WINED3DTS_WORLDMATRIX(0)].u.m[0][0]);
                 checkGLcall("glLoadMatrixf");
             } else {
-                glLoadMatrixf((float *) &This->stateBlock->transforms[D3DTS_VIEW].u.m[0][0]);
+                glLoadMatrixf((float *) &This->stateBlock->transforms[WINED3DTS_VIEW].u.m[0][0]);
                 checkGLcall("glLoadMatrixf");
-                glMultMatrixf((float *) &This->stateBlock->transforms[D3DTS_WORLDMATRIX(0)].u.m[0][0]);
+                glMultMatrixf((float *) &This->stateBlock->transforms[WINED3DTS_WORLDMATRIX(0)].u.m[0][0]);
                 checkGLcall("glMultMatrixf");
             }
         }
@@ -299,7 +299,7 @@ static void primitiveInitState(
                 glMultMatrixf(invymat);
                 checkGLcall("glMultMatrixf(invymat)");
             }
-            glMultMatrixf((float *) &This->stateBlock->transforms[D3DTS_PROJECTION].u.m[0][0]);
+            glMultMatrixf((float *) &This->stateBlock->transforms[WINED3DTS_PROJECTION].u.m[0][0]);
             checkGLcall("glLoadMatrixf");
         }
 
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index 85697f4..6242697 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -816,10 +816,10 @@ static HRESULT  WINAPI IWineD3DStateBloc
     This->blockType = WINED3DSBT_INIT;
 
     /* Set some of the defaults for lights, transforms etc */
-    memcpy(&This->transforms[D3DTS_PROJECTION], &identity, sizeof(identity));
-    memcpy(&This->transforms[D3DTS_VIEW], &identity, sizeof(identity));
+    memcpy(&This->transforms[WINED3DTS_PROJECTION], &identity, sizeof(identity));
+    memcpy(&This->transforms[WINED3DTS_VIEW], &identity, sizeof(identity));
     for (i = 0; i < 256; ++i) {
-      memcpy(&This->transforms[D3DTS_WORLDMATRIX(i)], &identity, sizeof(identity));
+      memcpy(&This->transforms[WINED3DTS_WORLDMATRIX(i)], &identity, sizeof(identity));
     }
 
     TRACE("Render states\n");
@@ -970,7 +970,7 @@ static HRESULT  WINAPI IWineD3DStateBloc
     /* Texture Stage States - Put directly into state block, we will call function below */
     for (i = 0; i < GL_LIMITS(texture_stages); i++) {
         TRACE("Setting up default texture states for texture Stage %d\n", i);
-        memcpy(&This->transforms[D3DTS_TEXTURE0 + i], &identity, sizeof(identity));
+        memcpy(&This->transforms[WINED3DTS_TEXTURE0 + i], &identity, sizeof(identity));
         This->textureState[i][D3DTSS_COLOROP               ] = (i==0)? D3DTOP_MODULATE :  D3DTOP_DISABLE;
         This->textureState[i][D3DTSS_COLORARG1             ] = D3DTA_TEXTURE;
         This->textureState[i][D3DTSS_COLORARG2             ] = D3DTA_CURRENT;
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 8275953..23bf383 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -542,6 +542,31 @@ #undef D3DTOP_TO_STR
     }
 }
 
+const char* debug_d3dtstype(WINED3DTRANSFORMSTATETYPE tstype) {
+    switch (tstype) {
+#define TSTYPE_TO_STR(tstype) case tstype: return #tstype
+    TSTYPE_TO_STR(WINED3DTS_VIEW);
+    TSTYPE_TO_STR(WINED3DTS_PROJECTION);
+    TSTYPE_TO_STR(WINED3DTS_TEXTURE0);
+    TSTYPE_TO_STR(WINED3DTS_TEXTURE1);
+    TSTYPE_TO_STR(WINED3DTS_TEXTURE2);
+    TSTYPE_TO_STR(WINED3DTS_TEXTURE3);
+    TSTYPE_TO_STR(WINED3DTS_TEXTURE4);
+    TSTYPE_TO_STR(WINED3DTS_TEXTURE5);
+    TSTYPE_TO_STR(WINED3DTS_TEXTURE6);
+    TSTYPE_TO_STR(WINED3DTS_TEXTURE7);
+    TSTYPE_TO_STR(WINED3DTS_WORLDMATRIX(0));
+#undef TSTYPE_TO_STR
+    default:
+        if (tstype > 256 && tstype < 512) {
+            FIXME("WINED3DTS_WORLDMATRIX(%u). 1..255 not currently supported\n", tstype);
+            return ("WINED3DTS_WORLDMATRIX > 0");
+        }
+        FIXME("Unrecognized %u WINED3DTS\n", tstype);
+        return "unrecognized";
+    }
+}
+
 const char* debug_d3dpool(WINED3DPOOL Pool) {
   switch (Pool) {
 #define POOL_TO_STR(p) case p: return #p;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index cd73c3a..1c5464c 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1212,6 +1212,7 @@ const char* debug_d3dprimitivetype(D3DPR
 const char* debug_d3drenderstate(DWORD state);
 const char* debug_d3dsamplerstate(DWORD state);
 const char* debug_d3dtexturestate(DWORD state);
+const char* debug_d3dtstype(WINED3DTRANSFORMSTATETYPE tstype);
 const char* debug_d3dpool(WINED3DPOOL pool);
 
 /* Routines for GL <-> D3D values */
diff --git a/include/wine/wined3d_types.h b/include/wine/wined3d_types.h
index d586545..2e65e1b 100644
--- a/include/wine/wined3d_types.h
+++ b/include/wine/wined3d_types.h
@@ -455,6 +455,27 @@ typedef enum _WINED3DTEXTURESTAGESTATETY
 
 #define WINED3D_HIGHEST_TEXTURE_STATE WINED3DTSS_CONSTANT
 
+typedef enum _WINED3DTRANSFORMSTATETYPE {
+    WINED3DTS_VIEW            =  2,
+    WINED3DTS_PROJECTION      =  3,
+    WINED3DTS_TEXTURE0        = 16,
+    WINED3DTS_TEXTURE1        = 17,
+    WINED3DTS_TEXTURE2        = 18,
+    WINED3DTS_TEXTURE3        = 19,
+    WINED3DTS_TEXTURE4        = 20,
+    WINED3DTS_TEXTURE5        = 21,
+    WINED3DTS_TEXTURE6        = 22,
+    WINED3DTS_TEXTURE7        = 23,
+
+    WINED3DTS_FORCE_DWORD     = 0x7fffffff
+} WINED3DTRANSFORMSTATETYPE;
+
+#define WINED3DTS_WORLD  WINED3DTS_WORLDMATRIX(0)
+#define WINED3DTS_WORLD1 WINED3DTS_WORLDMATRIX(1)
+#define WINED3DTS_WORLD2 WINED3DTS_WORLDMATRIX(2)
+#define WINED3DTS_WORLD3 WINED3DTS_WORLDMATRIX(3)
+#define WINED3DTS_WORLDMATRIX(index) (WINED3DTRANSFORMSTATETYPE)(index + 256)
+
 typedef enum _WINED3DBASISTYPE {
    WINED3DBASIS_BEZIER        = 0,
    WINED3DBASIS_BSPLINE       = 1,


More information about the wine-patches mailing list