[PATCH] WineD3D: Handle texture transforms in the =

Stefan Doesinger stefan at codeweavers.com
Tue Aug 26 14:25:56 CDT 2008


TEXTURETRANSFORMFLAGS state=0A=
=0A=
This is a nop by itself, but it makes it easier for fragment pipelines to=0A=
read WINED3DTSS_TEXTURETRANSFORMFLAGS=0A=
---=0A=
 dlls/wined3d/state.c |   40 ++++++++++++++++++++--------------------=0A=
 1 files changed, 20 insertions(+), 20 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c=0A=
index 31c76ae..22b0e7b 100644=0A=
--- a/dlls/wined3d/state.c=0A=
+++ b/dlls/wined3d/state.c=0A=
@@ -3105,7 +3105,7 @@ void tex_alphaop(DWORD state, =
IWineD3DStateBlockImpl *stateblock, WineD3DContext=0A=
 }=0A=
 =0A=
 static void transform_texture(DWORD state, IWineD3DStateBlockImpl =
*stateblock, WineD3DContext *context) {=0A=
-    DWORD texUnit =3D state - STATE_TRANSFORM(WINED3DTS_TEXTURE0);=0A=
+    DWORD texUnit =3D (state - STATE_TEXTURESTAGE(0, 0)) / =
WINED3D_HIGHEST_TEXTURE_STATE;=0A=
     DWORD mapped_stage =3D =
stateblock->wineD3DDevice->texUnitMap[texUnit];=0A=
     BOOL generated;=0A=
     int coordIdx;=0A=
@@ -3375,7 +3375,7 @@ static void tex_coordindex(DWORD state, =
IWineD3DStateBlockImpl *stateblock, Wine=0A=
 =0A=
     /* Update the texture matrix */=0A=
     if(!isStateDirty(context, STATE_TRANSFORM(WINED3DTS_TEXTURE0 + =
stage))) {=0A=
-        transform_texture(STATE_TRANSFORM(WINED3DTS_TEXTURE0 + stage), =
stateblock, context);=0A=
+        transform_texture(STATE_TEXTURESTAGE(stage, =
WINED3DTSS_TEXTURETRANSFORMFLAGS), stateblock, context);=0A=
     }=0A=
 =0A=
     if(!isStateDirty(context, STATE_VDECL) && =
context->namedArraysLoaded) {=0A=
@@ -3448,7 +3448,7 @@ static void sampler_texmatrix(DWORD state, =
IWineD3DStateBlockImpl *stateblock, W=0A=
 =0A=
         if(texIsPow2 || context->lastWasPow2Texture[sampler]) {=0A=
             context->lastWasPow2Texture[sampler] =3D texIsPow2;=0A=
-            transform_texture(STATE_TRANSFORM(WINED3DTS_TEXTURE0 + =
stateblock->wineD3DDevice->texUnitMap[sampler]), stateblock, context);=0A=
+            =
transform_texture(STATE_TEXTURESTAGE(stateblock->wineD3DDevice->texUnitMa=
p[sampler], WINED3DTSS_TEXTURETRANSFORMFLAGS), stateblock, context);=0A=
         }=0A=
     }=0A=
 }=0A=
@@ -4624,7 +4624,7 @@ static void vertexdeclaration(DWORD state, =
IWineD3DStateBlockImpl *stateblock, W=0A=
         int i;=0A=
         for(i =3D 0; i < MAX_TEXTURES; i++) {=0A=
             if(!isStateDirty(context, =
STATE_TRANSFORM(WINED3DTS_TEXTURE0 + i))) {=0A=
-                transform_texture(STATE_TRANSFORM(WINED3DTS_TEXTURE0 + =
i), stateblock, context);=0A=
+                transform_texture(STATE_TEXTURESTAGE(i, =
WINED3DTSS_TEXTURETRANSFORMFLAGS), stateblock, context);=0A=
             }=0A=
         }=0A=
     }=0A=
@@ -5053,14 +5053,14 @@ const struct StateEntryTemplate =
ffp_vertexstate_template[] =3D {=0A=
       /* Transform states follow                    */=0A=
     { STATE_TRANSFORM(WINED3DTS_VIEW),                    { =
STATE_TRANSFORM(WINED3DTS_VIEW),                    transform_view      =
}, 0                               },=0A=
     { STATE_TRANSFORM(WINED3DTS_PROJECTION),              { =
STATE_TRANSFORM(WINED3DTS_PROJECTION),              =
transform_projection}, 0                               },=0A=
-    { STATE_TRANSFORM(WINED3DTS_TEXTURE0),                { =
STATE_TRANSFORM(WINED3DTS_TEXTURE0),                transform_texture   =
}, 0                               },=0A=
-    { STATE_TRANSFORM(WINED3DTS_TEXTURE1),                { =
STATE_TRANSFORM(WINED3DTS_TEXTURE1),                transform_texture   =
}, 0                               },=0A=
-    { STATE_TRANSFORM(WINED3DTS_TEXTURE2),                { =
STATE_TRANSFORM(WINED3DTS_TEXTURE2),                transform_texture   =
}, 0                               },=0A=
-    { STATE_TRANSFORM(WINED3DTS_TEXTURE3),                { =
STATE_TRANSFORM(WINED3DTS_TEXTURE3),                transform_texture   =
}, 0                               },=0A=
-    { STATE_TRANSFORM(WINED3DTS_TEXTURE4),                { =
STATE_TRANSFORM(WINED3DTS_TEXTURE4),                transform_texture   =
}, 0                               },=0A=
-    { STATE_TRANSFORM(WINED3DTS_TEXTURE5),                { =
STATE_TRANSFORM(WINED3DTS_TEXTURE5),                transform_texture   =
}, 0                               },=0A=
-    { STATE_TRANSFORM(WINED3DTS_TEXTURE6),                { =
STATE_TRANSFORM(WINED3DTS_TEXTURE6),                transform_texture   =
}, 0                               },=0A=
-    { STATE_TRANSFORM(WINED3DTS_TEXTURE7),                { =
STATE_TRANSFORM(WINED3DTS_TEXTURE7),                transform_texture   =
}, 0                               },=0A=
+    { STATE_TRANSFORM(WINED3DTS_TEXTURE0),                { =
STATE_TEXTURESTAGE(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),  =
transform_texture   }, 0                               },=0A=
+    { STATE_TRANSFORM(WINED3DTS_TEXTURE1),                { =
STATE_TEXTURESTAGE(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),  =
transform_texture   }, 0                               },=0A=
+    { STATE_TRANSFORM(WINED3DTS_TEXTURE2),                { =
STATE_TEXTURESTAGE(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),  =
transform_texture   }, 0                               },=0A=
+    { STATE_TRANSFORM(WINED3DTS_TEXTURE3),                { =
STATE_TEXTURESTAGE(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),  =
transform_texture   }, 0                               },=0A=
+    { STATE_TRANSFORM(WINED3DTS_TEXTURE4),                { =
STATE_TEXTURESTAGE(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),  =
transform_texture   }, 0                               },=0A=
+    { STATE_TRANSFORM(WINED3DTS_TEXTURE5),                { =
STATE_TEXTURESTAGE(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),  =
transform_texture   }, 0                               },=0A=
+    { STATE_TRANSFORM(WINED3DTS_TEXTURE6),                { =
STATE_TEXTURESTAGE(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),  =
transform_texture   }, 0                               },=0A=
+    { STATE_TRANSFORM(WINED3DTS_TEXTURE7),                { =
STATE_TEXTURESTAGE(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),  =
transform_texture   }, 0                               },=0A=
     { STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(  0)),        { =
STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(  0)),        transform_world     =
}, 0                               },=0A=
     { STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(  1)),        { =
STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(  1)),        transform_world     =
}, 0                               },=0A=
     { STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(  2)),        { =
STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(  2)),        transform_world     =
}, 0                               },=0A=
@@ -5317,14 +5317,14 @@ const struct StateEntryTemplate =
ffp_vertexstate_template[] =3D {=0A=
     { STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(253)),        { =
STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(253)),        transform_world     =
}, 0                               },=0A=
     { STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(254)),        { =
STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(254)),        transform_world     =
}, 0                               },=0A=
     { STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(255)),        { =
STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(255)),        transform_world     =
}, 0                               },=0A=
-    { =
STATE_TEXTURESTAGE(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TRANSFORM(W=
INED3DTS_TEXTURE0),              transform_texture   }, 0                =
               },=0A=
-    { =
STATE_TEXTURESTAGE(1,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TRANSFORM(W=
INED3DTS_TEXTURE1),              transform_texture   }, 0                =
               },=0A=
-    { =
STATE_TEXTURESTAGE(2,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TRANSFORM(W=
INED3DTS_TEXTURE2),              transform_texture   }, 0                =
               },=0A=
-    { =
STATE_TEXTURESTAGE(3,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TRANSFORM(W=
INED3DTS_TEXTURE3),              transform_texture   }, 0                =
               },=0A=
-    { =
STATE_TEXTURESTAGE(4,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TRANSFORM(W=
INED3DTS_TEXTURE4),              transform_texture   }, 0                =
               },=0A=
-    { =
STATE_TEXTURESTAGE(5,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TRANSFORM(W=
INED3DTS_TEXTURE5),              transform_texture   }, 0                =
               },=0A=
-    { =
STATE_TEXTURESTAGE(6,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TRANSFORM(W=
INED3DTS_TEXTURE6),              transform_texture   }, 0                =
               },=0A=
-    { =
STATE_TEXTURESTAGE(7,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TRANSFORM(W=
INED3DTS_TEXTURE7),              transform_texture   }, 0                =
               },=0A=
+    { =
STATE_TEXTURESTAGE(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TEXTURESTAG=
E(0,WINED3DTSS_TEXTURETRANSFORMFLAGS),transform_texture   }, 0           =
                    },=0A=
+    { =
STATE_TEXTURESTAGE(1,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TEXTURESTAG=
E(1,WINED3DTSS_TEXTURETRANSFORMFLAGS),transform_texture   }, 0           =
                    },=0A=
+    { =
STATE_TEXTURESTAGE(2,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TEXTURESTAG=
E(2,WINED3DTSS_TEXTURETRANSFORMFLAGS),transform_texture   }, 0           =
                    },=0A=
+    { =
STATE_TEXTURESTAGE(3,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TEXTURESTAG=
E(3,WINED3DTSS_TEXTURETRANSFORMFLAGS),transform_texture   }, 0           =
                    },=0A=
+    { =
STATE_TEXTURESTAGE(4,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TEXTURESTAG=
E(4,WINED3DTSS_TEXTURETRANSFORMFLAGS),transform_texture   }, 0           =
                    },=0A=
+    { =
STATE_TEXTURESTAGE(5,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TEXTURESTAG=
E(5,WINED3DTSS_TEXTURETRANSFORMFLAGS),transform_texture   }, 0           =
                    },=0A=
+    { =
STATE_TEXTURESTAGE(6,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TEXTURESTAG=
E(6,WINED3DTSS_TEXTURETRANSFORMFLAGS),transform_texture   }, 0           =
                    },=0A=
+    { =
STATE_TEXTURESTAGE(7,WINED3DTSS_TEXTURETRANSFORMFLAGS),{STATE_TEXTURESTAG=
E(7,WINED3DTSS_TEXTURETRANSFORMFLAGS),transform_texture   }, 0           =
                    },=0A=
     { STATE_TEXTURESTAGE(0, WINED3DTSS_TEXCOORDINDEX),    { =
STATE_TEXTURESTAGE(0, WINED3DTSS_TEXCOORDINDEX),    tex_coordindex      =
}, 0                               },=0A=
     { STATE_TEXTURESTAGE(1, WINED3DTSS_TEXCOORDINDEX),    { =
STATE_TEXTURESTAGE(1, WINED3DTSS_TEXCOORDINDEX),    tex_coordindex      =
}, 0                               },=0A=
     { STATE_TEXTURESTAGE(2, WINED3DTSS_TEXCOORDINDEX),    { =
STATE_TEXTURESTAGE(2, WINED3DTSS_TEXCOORDINDEX),    tex_coordindex      =
}, 0                               },=0A=
-- =0A=
1.5.6.4=0A=
=0A=

------=_NextPart_000_01F9_01C90793.CACFC210--




More information about the wine-patches mailing list