[PATCH 1/5] d3drm: Load transform matrix and aply it to the current frame.

Christian Costa titan.costa at gmail.com
Thu May 17 03:09:31 CDT 2012


---
 dlls/d3drm/d3drm.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/dlls/d3drm/d3drm.c b/dlls/d3drm/d3drm.c
index ba666dc..a96ff52 100644
--- a/dlls/d3drm/d3drm.c
+++ b/dlls/d3drm/d3drm.c
@@ -1423,6 +1423,27 @@ HRESULT load_data(IDirect3DRM3* iface, LPDIRECTXFILEDATA data_object, LPIID* GUI
             FIXME("Processing material not supported yet\n");
          }
     }
+    else if (IsEqualGUID(guid, &TID_D3DRMFrameTransformMatrix))
+    {
+        TRACE("Found TID_D3DRMFrameTransformMatrix\n");
+
+        if (parent_frame)
+        {
+            D3DRMMATRIX4D matrix;
+            DWORD size;
+
+            TRACE("Load Frame Transform Matrix data\n");
+
+            size = sizeof(matrix);
+            hr = IDirectXFileData_GetData(data_object, NULL, &size, (void**)matrix);
+            if ((hr != DXFILE_OK) || (size != sizeof(matrix)))
+                goto end;
+
+            hr = IDirect3DRMFrame3_AddTransform(parent_frame, D3DRMCOMBINE_REPLACE, matrix);
+            if (FAILED(hr))
+                goto end;
+        }
+    }
     else
     {
         FIXME("Found unknown TID %s\n", debugstr_guid(guid));




More information about the wine-patches mailing list