https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ea80aaf8ad7fbe12ac7201...
commit ea80aaf8ad7fbe12ac72018fc39a3fabf07c6437 Author: winesync ros-dev@reactos.org AuthorDate: Sat Jan 4 02:09:33 2020 +0100 Commit: Jérôme Gardou zefklop@users.noreply.github.com CommitDate: Wed Feb 26 18:19:18 2020 +0100
[WINESYNC]d3dx9_36: Add support for FOURCC surface to save_dds_surface_to_memory.
wine-staging patch by Christian Costa titan.costa@gmail.com --- dll/directx/wine/d3dx9_36/surface.c | 8 ++++++++ ..._FOURCC_surface_to_save_dds_surface_to_memory.diff | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+)
diff --git a/dll/directx/wine/d3dx9_36/surface.c b/dll/directx/wine/d3dx9_36/surface.c index 01729ea9a60..185d4f44c0d 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; } 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 index 00000000000..b1a114bf1b1 --- /dev/null +++ b/sdk/tools/winesync/d3dx9_staging/0012-d3dx9_36__Add_support_for_FOURCC_surface_to_save_dds_surface_to_memory.diff @@ -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; + }