Zebediah Figura : ddraw: Update the primary stateblock in d3d_device1_SetMatrix().

Alexandre Julliard julliard at winehq.org
Thu Jan 30 16:10:22 CST 2020


Module: wine
Branch: master
Commit: 703a290fcfd5505b67643554820c77aa46d16f90
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=703a290fcfd5505b67643554820c77aa46d16f90

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Wed Jan 29 19:24:44 2020 -0600

ddraw: Update the primary stateblock in d3d_device1_SetMatrix().

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ddraw/device.c | 45 +++++++++++++++++++++++++++++----------------
 1 file changed, 29 insertions(+), 16 deletions(-)

diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 0999c01cb2..f19d81ccea 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -1332,18 +1332,19 @@ static HRESULT WINAPI d3d_device1_CreateMatrix(IDirect3DDevice *iface, D3DMATRIX
  *
  *****************************************************************************/
 static HRESULT WINAPI d3d_device1_SetMatrix(IDirect3DDevice *iface,
-        D3DMATRIXHANDLE D3DMatHandle, D3DMATRIX *D3DMatrix)
+        D3DMATRIXHANDLE matrix_handle, D3DMATRIX *matrix)
 {
-    struct d3d_device *This = impl_from_IDirect3DDevice(iface);
+    struct d3d_device *device = impl_from_IDirect3DDevice(iface);
     D3DMATRIX *m;
 
-    TRACE("iface %p, matrix_handle %#x, matrix %p.\n", iface, D3DMatHandle, D3DMatrix);
+    TRACE("iface %p, matrix_handle %#x, matrix %p.\n", iface, matrix_handle, matrix);
 
-    if (!D3DMatrix) return DDERR_INVALIDPARAMS;
+    if (!matrix)
+        return DDERR_INVALIDPARAMS;
 
     wined3d_mutex_lock();
 
-    m = ddraw_get_object(&This->handle_table, D3DMatHandle - 1, DDRAW_HANDLE_MATRIX);
+    m = ddraw_get_object(&device->handle_table, matrix_handle - 1, DDRAW_HANDLE_MATRIX);
     if (!m)
     {
         WARN("Invalid matrix handle.\n");
@@ -1352,21 +1353,33 @@ static HRESULT WINAPI d3d_device1_SetMatrix(IDirect3DDevice *iface,
     }
 
     if (TRACE_ON(ddraw))
-        dump_D3DMATRIX(D3DMatrix);
+        dump_D3DMATRIX(matrix);
 
-    *m = *D3DMatrix;
+    *m = *matrix;
 
-    if (D3DMatHandle == This->world)
-        wined3d_device_set_transform(This->wined3d_device,
-                WINED3D_TS_WORLD_MATRIX(0), (struct wined3d_matrix *)D3DMatrix);
+    if (matrix_handle == device->world)
+    {
+        wined3d_stateblock_set_transform(device->state,
+                WINED3D_TS_WORLD_MATRIX(0), (struct wined3d_matrix *)matrix);
+        wined3d_device_set_transform(device->wined3d_device,
+                WINED3D_TS_WORLD_MATRIX(0), (struct wined3d_matrix *)matrix);
+    }
 
-    if (D3DMatHandle == This->view)
-        wined3d_device_set_transform(This->wined3d_device,
-                WINED3D_TS_VIEW, (struct wined3d_matrix *)D3DMatrix);
+    if (matrix_handle == device->view)
+    {
+        wined3d_stateblock_set_transform(device->state,
+                WINED3D_TS_VIEW, (struct wined3d_matrix *)matrix);
+        wined3d_device_set_transform(device->wined3d_device,
+                WINED3D_TS_VIEW, (struct wined3d_matrix *)matrix);
+    }
 
-    if (D3DMatHandle == This->proj)
-        wined3d_device_set_transform(This->wined3d_device,
-                WINED3D_TS_PROJECTION, (struct wined3d_matrix *)D3DMatrix);
+    if (matrix_handle == device->proj)
+    {
+        wined3d_stateblock_set_transform(device->state,
+                WINED3D_TS_PROJECTION, (struct wined3d_matrix *)matrix);
+        wined3d_device_set_transform(device->wined3d_device,
+                WINED3D_TS_PROJECTION, (struct wined3d_matrix *)matrix);
+    }
 
     wined3d_mutex_unlock();
 




More information about the wine-cvs mailing list