[WINESYNC]d3dx9_36: Add support for FOURCC surface to save_dds_surface_to_memory.
authorwinesync <ros-dev@reactos.org>
Sat, 4 Jan 2020 01:09:33 +0000 (02:09 +0100)
committerJérôme Gardou <zefklop@users.noreply.github.com>
Wed, 26 Feb 2020 17:19:18 +0000 (18:19 +0100)
wine-staging patch by Christian Costa <titan.costa@gmail.com>

dll/directx/wine/d3dx9_36/surface.c
sdk/tools/winesync/d3dx9_staging/0012-d3dx9_36__Add_support_for_FOURCC_surface_to_save_dds_surface_to_memory.diff [new file with mode: 0644]

index 01729ea..185d4f4 100644 (file)
@@ -395,6 +395,14 @@ static HRESULT d3dformat_to_dds_pixel_format(struct dds_pixel_format *pixel_form
         }
     }
 
+    /* Reuse dds_fourcc_to_d3dformat as D3DFORMAT and FOURCC are DWORD with same values */
+    if (dds_fourcc_to_d3dformat(d3dformat) != D3DFMT_UNKNOWN)
+    {
+        pixel_format->flags |= DDS_PF_FOURCC;
+        pixel_format->fourcc = d3dformat;
+        return D3D_OK;
+    }
+
     WARN("Unknown pixel format %#x\n", d3dformat);
     return E_NOTIMPL;
 }
diff --git a/sdk/tools/winesync/d3dx9_staging/0012-d3dx9_36__Add_support_for_FOURCC_surface_to_save_dds_surface_to_memory.diff b/sdk/tools/winesync/d3dx9_staging/0012-d3dx9_36__Add_support_for_FOURCC_surface_to_save_dds_surface_to_memory.diff
new file mode 100644 (file)
index 0000000..b1a114b
--- /dev/null
@@ -0,0 +1,19 @@
+diff --git a/dll/directx/wine/d3dx9_36/surface.c b/dll/directx/wine/d3dx9_36/surface.c
+index 01729ea..185d4f4 100644
+--- a/dll/directx/wine/d3dx9_36/surface.c
++++ b/dll/directx/wine/d3dx9_36/surface.c
+@@ -395,6 +395,14 @@ static HRESULT d3dformat_to_dds_pixel_format(struct dds_pixel_format *pixel_form
+         }
+     }
++    /* Reuse dds_fourcc_to_d3dformat as D3DFORMAT and FOURCC are DWORD with same values */
++    if (dds_fourcc_to_d3dformat(d3dformat) != D3DFMT_UNKNOWN)
++    {
++        pixel_format->flags |= DDS_PF_FOURCC;
++        pixel_format->fourcc = d3dformat;
++        return D3D_OK;
++    }
++
+     WARN("Unknown pixel format %#x\n", d3dformat);
+     return E_NOTIMPL;
+ }