=?UTF-8?Q?Rico=20Sch=C3=BCller=20?=: d3dx9: Move bool cropping into helper function.

Alexandre Julliard julliard at winehq.org
Thu Sep 6 13:37:22 CDT 2012


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

Author: Rico Schüller <kgbricola at web.de>
Date:   Wed Sep  5 22:51:42 2012 +0200

d3dx9: Move bool cropping into helper function.

---

 dlls/d3dx9_36/effect.c |    5 ++---
 dlls/d3dx9_36/util.c   |   20 +++++++++++++-------
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index f3a5549..a6dcd98 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -1649,8 +1649,6 @@ static HRESULT WINAPI ID3DXBaseEffectImpl_SetBool(ID3DXBaseEffect *iface, D3DXHA
 
     if (param && !param->element_count && param->rows == 1 && param->columns == 1)
     {
-        /* crop input */
-        b = b != 0;
         set_number(param->data, param->type, &b, D3DXPT_BOOL);
         return D3D_OK;
     }
@@ -1699,7 +1697,8 @@ static HRESULT WINAPI ID3DXBaseEffectImpl_SetBoolArray(ID3DXBaseEffect *iface, D
             case D3DXPC_MATRIX_ROWS:
                 for (i = 0; i < size; ++i)
                 {
-                    set_number((DWORD *)param->data + i, param->type, &b[i], D3DXPT_BOOL);
+                    /* don't crop the input, use D3DXPT_INT instead of D3DXPT_BOOL */
+                    set_number((DWORD *)param->data + i, param->type, &b[i], D3DXPT_INT);
                 }
                 return D3D_OK;
 
diff --git a/dlls/d3dx9_36/util.c b/dlls/d3dx9_36/util.c
index 6daddd7..c5160fa 100644
--- a/dlls/d3dx9_36/util.c
+++ b/dlls/d3dx9_36/util.c
@@ -271,6 +271,11 @@ const char *debug_d3dxparameter_registerset(D3DXREGISTER_SET r)
 #undef WINE_D3DX_TO_STR
 
 /* parameter type conversion helpers */
+BOOL get_bool(LPCVOID data)
+{
+    return (*(DWORD *)data) != 0;
+}
+
 INT get_int(D3DXPARAMETER_TYPE type, LPCVOID data)
 {
     INT i;
@@ -286,7 +291,7 @@ INT get_int(D3DXPARAMETER_TYPE type, LPCVOID data)
             break;
 
         case D3DXPT_BOOL:
-            i = *(BOOL *)data;
+            i = get_bool(data);
             break;
 
         default:
@@ -313,7 +318,7 @@ FLOAT get_float(D3DXPARAMETER_TYPE type, LPCVOID data)
             break;
 
         case D3DXPT_BOOL:
-            f = *(BOOL *)data;
+            f = get_bool(data);
             break;
 
         default:
@@ -325,15 +330,16 @@ FLOAT get_float(D3DXPARAMETER_TYPE type, LPCVOID data)
     return f;
 }
 
-BOOL get_bool(LPCVOID data)
-{
-    return (*(DWORD *)data) != 0;
-}
-
 void set_number(LPVOID outdata, D3DXPARAMETER_TYPE outtype, LPCVOID indata, D3DXPARAMETER_TYPE intype)
 {
     TRACE("Changing from type %s to type %s\n", debug_d3dxparameter_type(intype), debug_d3dxparameter_type(outtype));
 
+    if (outtype == intype)
+    {
+        *(DWORD *)outdata = *(DWORD *)indata;
+        return;
+    }
+
     switch (outtype)
     {
         case D3DXPT_FLOAT:




More information about the wine-cvs mailing list