Stefan Dösinger : ddraw: Forward D3DRS_TEXTUREADDRESS* and D3DTSS_ADDRESS* to sampler states.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Feb 15 12:52:21 CST 2007


Module: wine
Branch: master
Commit: 7c40f9aaa242607596ad67254479c3dc7045639f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7c40f9aaa242607596ad67254479c3dc7045639f

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Thu Feb 15 13:48:23 2007 +0100

ddraw: Forward D3DRS_TEXTUREADDRESS* and D3DTSS_ADDRESS* to sampler states.

---

 dlls/ddraw/device.c |   99 +++++++++++++++++++++++++++------------------------
 1 files changed, 52 insertions(+), 47 deletions(-)

diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 12455fd..c1ff5cd 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -2195,28 +2195,15 @@ IDirect3DDeviceImpl_7_GetRenderState(IDirect3DDevice7 *iface,
             return hr;
         }
 
+        case D3DRENDERSTATE_TEXTUREADDRESS:
         case D3DRENDERSTATE_TEXTUREADDRESSU:
+            return IWineD3DDevice_GetSamplerState(This->wineD3DDevice,
+                                                  0, WINED3DSAMP_ADDRESSU,
+                                                  Value);
         case D3DRENDERSTATE_TEXTUREADDRESSV:
-        case D3DRENDERSTATE_TEXTUREADDRESS:
-        {
-            WINED3DTEXTURESTAGESTATETYPE TexStageStateType;
-
-            if (RenderStateType == D3DRENDERSTATE_TEXTUREADDRESS)
-            {
-                TexStageStateType = WINED3DTSS_ADDRESS;
-            }
-            else if (RenderStateType == D3DRENDERSTATE_TEXTUREADDRESSU)
-            {
-                TexStageStateType = WINED3DTSS_ADDRESSU;
-            }
-            else
-            {
-                TexStageStateType = WINED3DTSS_ADDRESSV;
-            }
-            return IWineD3DDevice_GetTextureStageState(This->wineD3DDevice,
-                                                       0, TexStageStateType,
-                                                       Value);
-        }
+            return IWineD3DDevice_GetSamplerState(This->wineD3DDevice,
+                                                  0, WINED3DSAMP_ADDRESSV,
+                                                  Value);
 
         default:
             /* FIXME: Unhandled: D3DRENDERSTATE_STIPPLEPATTERN00 - 31 */
@@ -2348,29 +2335,19 @@ IDirect3DDeviceImpl_7_SetRenderState(IDirect3DDevice7 *iface,
                                                   tex_min);
         }
 
+        case D3DRENDERSTATE_TEXTUREADDRESS:
+                   IWineD3DDevice_SetSamplerState(This->wineD3DDevice,
+                                                  0, WINED3DSAMP_ADDRESSV,
+                                                  Value);
+            /* Drop through */
         case D3DRENDERSTATE_TEXTUREADDRESSU:
+            return IWineD3DDevice_SetSamplerState(This->wineD3DDevice,
+                                                  0, WINED3DSAMP_ADDRESSU,
+                                                  Value);
         case D3DRENDERSTATE_TEXTUREADDRESSV:
-        case D3DRENDERSTATE_TEXTUREADDRESS:
-        {
-            WINED3DTEXTURESTAGESTATETYPE TexStageStateType;
-
-            if (RenderStateType == D3DRENDERSTATE_TEXTUREADDRESS)
-            {
-                TexStageStateType = WINED3DTSS_ADDRESS;
-            }
-            else if (RenderStateType == D3DRENDERSTATE_TEXTUREADDRESSU)
-            {
-                TexStageStateType = WINED3DTSS_ADDRESSU;
-            }
-            else
-            {
-                TexStageStateType = WINED3DTSS_ADDRESSV;
-            }
-
-            return IWineD3DDevice_SetTextureStageState(This->wineD3DDevice,
-                                                       0, TexStageStateType,
-                                                       Value);
-        }
+            return IWineD3DDevice_SetSamplerState(This->wineD3DDevice,
+                                                  0, WINED3DSAMP_ADDRESSV,
+                                                  Value);
 
         case D3DRENDERSTATE_TEXTUREMAPBLEND:
         {
@@ -4020,11 +3997,23 @@ IDirect3DDeviceImpl_7_GetTextureStageState(IDirect3DDevice7 *iface,
                                                   Stage,
                                                   WINED3DSAMP_MAGFILTER,
                                                   State);
+
+        case D3DTSS_ADDRESS:
+        case D3DTSS_ADDRESSU:
+            return IWineD3DDevice_GetSamplerState(This->wineD3DDevice,
+                                                  Stage,
+                                                  WINED3DSAMP_ADDRESSU,
+                                                  State);
+        case D3DTSS_ADDRESSV:
+            return IWineD3DDevice_GetSamplerState(This->wineD3DDevice,
+                                                  Stage,
+                                                  WINED3DSAMP_ADDRESSV,
+                                                  State);
         default:
             return IWineD3DDevice_GetTextureStageState(This->wineD3DDevice,
-                                                    Stage,
-                                                    TexStageStateType,
-                                                    State);
+                                                       Stage,
+                                                       TexStageStateType,
+                                                       State);
     }
 }
 
@@ -4103,12 +4092,28 @@ IDirect3DDeviceImpl_7_SetTextureStageState(IDirect3DDevice7 *iface,
                                                   WINED3DSAMP_MAGFILTER,
                                                   State);
 
+        case D3DTSS_ADDRESS:
+                   IWineD3DDevice_SetSamplerState(This->wineD3DDevice,
+                                                  Stage,
+                                                  WINED3DSAMP_ADDRESSV,
+                                                  State);
+            /* Drop through */
+        case D3DTSS_ADDRESSU:
+            return IWineD3DDevice_SetSamplerState(This->wineD3DDevice,
+                                                  Stage,
+                                                  WINED3DSAMP_ADDRESSU,
+                                                  State);
+        case D3DTSS_ADDRESSV:
+            return IWineD3DDevice_SetSamplerState(This->wineD3DDevice,
+                                                  Stage,
+                                                  WINED3DSAMP_ADDRESSV,
+                                                  State);
         default:
 
             return IWineD3DDevice_SetTextureStageState(This->wineD3DDevice,
-                                                      Stage,
-                                                      TexStageStateType,
-                                                      State);
+                                                       Stage,
+                                                       TexStageStateType,
+                                                       State);
     }
 }
 




More information about the wine-cvs mailing list