You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against f5d7d9cccc941024f1532a9ac23427d07810f337
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From 30578b99bc059003a1223e2e9752bb07d449c34e Mon Sep 17 00:00:00 2001
|
||||
From 076d1ae00db0f95713e64bea1d2649cbdcdf5939 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Fri, 30 Mar 2018 08:22:02 +0000
|
||||
Subject: [PATCH] d3dx9_36: add DXTn support
|
||||
@@ -17,8 +17,8 @@ Subject: [PATCH] d3dx9_36: add DXTn support
|
||||
dlls/d3dx9_34/Makefile.in | 2 +-
|
||||
dlls/d3dx9_35/Makefile.in | 2 +-
|
||||
dlls/d3dx9_36/Makefile.in | 2 +-
|
||||
dlls/d3dx9_36/surface.c | 101 +++++++++++++++++++++++++++++++---
|
||||
dlls/d3dx9_36/tests/surface.c | 8 +--
|
||||
dlls/d3dx9_36/surface.c | 102 ++++++++++++++++++++++++++++++++++++++----
|
||||
dlls/d3dx9_36/tests/surface.c | 8 ++--
|
||||
dlls/d3dx9_37/Makefile.in | 2 +-
|
||||
dlls/d3dx9_38/Makefile.in | 2 +-
|
||||
dlls/d3dx9_39/Makefile.in | 2 +-
|
||||
@@ -26,10 +26,10 @@ Subject: [PATCH] d3dx9_36: add DXTn support
|
||||
dlls/d3dx9_41/Makefile.in | 2 +-
|
||||
dlls/d3dx9_42/Makefile.in | 2 +-
|
||||
dlls/d3dx9_43/Makefile.in | 2 +-
|
||||
22 files changed, 117 insertions(+), 32 deletions(-)
|
||||
22 files changed, 118 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_24/Makefile.in b/dlls/d3dx9_24/Makefile.in
|
||||
index 482c92d64e2..d969a55b106 100644
|
||||
index 482c92d..d969a55 100644
|
||||
--- a/dlls/d3dx9_24/Makefile.in
|
||||
+++ b/dlls/d3dx9_24/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -41,7 +41,7 @@ index 482c92d64e2..d969a55b106 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_25/Makefile.in b/dlls/d3dx9_25/Makefile.in
|
||||
index be4c76980e1..b232290d255 100644
|
||||
index be4c769..b232290 100644
|
||||
--- a/dlls/d3dx9_25/Makefile.in
|
||||
+++ b/dlls/d3dx9_25/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -53,7 +53,7 @@ index be4c76980e1..b232290d255 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_26/Makefile.in b/dlls/d3dx9_26/Makefile.in
|
||||
index c5e9e85bfb7..525009d292c 100644
|
||||
index c5e9e85..525009d 100644
|
||||
--- a/dlls/d3dx9_26/Makefile.in
|
||||
+++ b/dlls/d3dx9_26/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -65,7 +65,7 @@ index c5e9e85bfb7..525009d292c 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_27/Makefile.in b/dlls/d3dx9_27/Makefile.in
|
||||
index ee7f0e2449c..da98482d243 100644
|
||||
index ee7f0e2..da98482 100644
|
||||
--- a/dlls/d3dx9_27/Makefile.in
|
||||
+++ b/dlls/d3dx9_27/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -77,7 +77,7 @@ index ee7f0e2449c..da98482d243 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_28/Makefile.in b/dlls/d3dx9_28/Makefile.in
|
||||
index 094420013d0..d50e035853f 100644
|
||||
index 0944200..d50e035 100644
|
||||
--- a/dlls/d3dx9_28/Makefile.in
|
||||
+++ b/dlls/d3dx9_28/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -89,7 +89,7 @@ index 094420013d0..d50e035853f 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_29/Makefile.in b/dlls/d3dx9_29/Makefile.in
|
||||
index 88cb110ff5e..cfc1a150349 100644
|
||||
index 88cb110..cfc1a15 100644
|
||||
--- a/dlls/d3dx9_29/Makefile.in
|
||||
+++ b/dlls/d3dx9_29/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -101,7 +101,7 @@ index 88cb110ff5e..cfc1a150349 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_30/Makefile.in b/dlls/d3dx9_30/Makefile.in
|
||||
index 6ab2ff24514..726c92e8fd5 100644
|
||||
index 6ab2ff2..726c92e 100644
|
||||
--- a/dlls/d3dx9_30/Makefile.in
|
||||
+++ b/dlls/d3dx9_30/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -113,7 +113,7 @@ index 6ab2ff24514..726c92e8fd5 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_31/Makefile.in b/dlls/d3dx9_31/Makefile.in
|
||||
index 3d44da147dc..201430127ce 100644
|
||||
index 3d44da1..2014301 100644
|
||||
--- a/dlls/d3dx9_31/Makefile.in
|
||||
+++ b/dlls/d3dx9_31/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -125,7 +125,7 @@ index 3d44da147dc..201430127ce 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_32/Makefile.in b/dlls/d3dx9_32/Makefile.in
|
||||
index 37cc2797afd..442258d8f31 100644
|
||||
index 37cc279..442258d 100644
|
||||
--- a/dlls/d3dx9_32/Makefile.in
|
||||
+++ b/dlls/d3dx9_32/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -137,7 +137,7 @@ index 37cc2797afd..442258d8f31 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_33/Makefile.in b/dlls/d3dx9_33/Makefile.in
|
||||
index 5b03ec134dd..cc98ed25016 100644
|
||||
index 5b03ec1..cc98ed2 100644
|
||||
--- a/dlls/d3dx9_33/Makefile.in
|
||||
+++ b/dlls/d3dx9_33/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -149,7 +149,7 @@ index 5b03ec134dd..cc98ed25016 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_34/Makefile.in b/dlls/d3dx9_34/Makefile.in
|
||||
index b7f9c46d5e7..4862fe94af1 100644
|
||||
index b7f9c46..4862fe9 100644
|
||||
--- a/dlls/d3dx9_34/Makefile.in
|
||||
+++ b/dlls/d3dx9_34/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -161,7 +161,7 @@ index b7f9c46d5e7..4862fe94af1 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_35/Makefile.in b/dlls/d3dx9_35/Makefile.in
|
||||
index 9c196ea038b..3f529c99154 100644
|
||||
index 9c196ea..3f529c9 100644
|
||||
--- a/dlls/d3dx9_35/Makefile.in
|
||||
+++ b/dlls/d3dx9_35/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -173,7 +173,7 @@ index 9c196ea038b..3f529c99154 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_36/Makefile.in b/dlls/d3dx9_36/Makefile.in
|
||||
index da8098dd8d1..166031e6a4e 100644
|
||||
index da8098d..166031e 100644
|
||||
--- a/dlls/d3dx9_36/Makefile.in
|
||||
+++ b/dlls/d3dx9_36/Makefile.in
|
||||
@@ -1,7 +1,7 @@
|
||||
@@ -186,7 +186,7 @@ index da8098dd8d1..166031e6a4e 100644
|
||||
C_SRCS = \
|
||||
animation.c \
|
||||
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c
|
||||
index 7d48cc6b132..85db27acadf 100644
|
||||
index cae80a8..0900d04 100644
|
||||
--- a/dlls/d3dx9_36/surface.c
|
||||
+++ b/dlls/d3dx9_36/surface.c
|
||||
@@ -27,6 +27,8 @@
|
||||
@@ -198,7 +198,7 @@ index 7d48cc6b132..85db27acadf 100644
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(d3dx);
|
||||
|
||||
|
||||
@@ -1715,6 +1717,24 @@ void point_filter_argb_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slic
|
||||
@@ -1784,6 +1786,24 @@ void point_filter_argb_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slic
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,14 +223,12 @@ index 7d48cc6b132..85db27acadf 100644
|
||||
/************************************************************
|
||||
* D3DXLoadSurfaceFromMemory
|
||||
*
|
||||
@@ -1753,12 +1773,14 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
|
||||
DWORD filter, D3DCOLOR color_key)
|
||||
@@ -1823,10 +1843,12 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
|
||||
{
|
||||
const struct pixel_format_desc *srcformatdesc, *destformatdesc;
|
||||
IDirect3DSurface9 *surface;
|
||||
+ void *tmp_src_memory = NULL, *tmp_dst_memory = NULL;
|
||||
+ dxtn_conversion_func pre_convert = NULL, post_convert = NULL;
|
||||
IDirect3DSurface9 *surface = dst_surface;
|
||||
IDirect3DDevice9 *device;
|
||||
D3DSURFACE_DESC surfdesc;
|
||||
D3DLOCKED_RECT lockrect;
|
||||
struct volume src_size, dst_size;
|
||||
@@ -239,7 +237,7 @@ index 7d48cc6b132..85db27acadf 100644
|
||||
|
||||
TRACE("(%p, %p, %s, %p, %#x, %u, %p, %s, %#x, 0x%08x)\n",
|
||||
dst_surface, dst_palette, wine_dbgstr_rect(dst_rect), src_memory, src_format,
|
||||
@@ -1856,18 +1878,65 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
|
||||
@@ -1907,18 +1929,65 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
|
||||
}
|
||||
else /* Stretching or format conversion. */
|
||||
{
|
||||
@@ -254,8 +252,8 @@ index 7d48cc6b132..85db27acadf 100644
|
||||
+ (!post_convert && !is_conversion_to_supported(destformatdesc)))
|
||||
{
|
||||
FIXME("Unsupported format conversion %#x -> %#x.\n", src_format, surfdesc.Format);
|
||||
hr = E_NOTIMPL;
|
||||
goto done;
|
||||
unlock_surface(dst_surface, &lockrect, surface, FALSE);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
+ /* handle pre-conversion */
|
||||
@@ -309,7 +307,7 @@ index 7d48cc6b132..85db27acadf 100644
|
||||
}
|
||||
else /* if ((filter & 0xf) == D3DX_FILTER_POINT) */
|
||||
{
|
||||
@@ -1876,12 +1945,22 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
|
||||
@@ -1927,12 +1996,29 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
|
||||
|
||||
/* Always apply a point filter until D3DX_FILTER_LINEAR,
|
||||
* D3DX_FILTER_TRIANGLE and D3DX_FILTER_BOX are implemented. */
|
||||
@@ -326,33 +324,27 @@ index 7d48cc6b132..85db27acadf 100644
|
||||
+ WINED3DFMT_B8G8R8A8_UNORM, dst_size.width, dst_size.height))
|
||||
+ {
|
||||
+ hr = E_FAIL;
|
||||
+ goto done;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
- hr = D3D_OK;
|
||||
done:
|
||||
IDirect3DSurface9_UnlockRect(surface);
|
||||
if (surface != dst_surface)
|
||||
@@ -1893,6 +1972,12 @@ done:
|
||||
IDirect3DDevice9_Release(device);
|
||||
}
|
||||
IDirect3DSurface9_Release(surface);
|
||||
- return unlock_surface(dst_surface, &lockrect, surface, TRUE);
|
||||
+done:
|
||||
+ if (pre_convert)
|
||||
+ HeapFree(GetProcessHeap(), 0, tmp_src_memory);
|
||||
+ if (post_convert)
|
||||
+ HeapFree(GetProcessHeap(), 0, tmp_dst_memory);
|
||||
+
|
||||
+ if (pre_convert)
|
||||
+ HeapFree(GetProcessHeap(), 0, tmp_src_memory);
|
||||
+ if (post_convert)
|
||||
+ HeapFree(GetProcessHeap(), 0, tmp_dst_memory);
|
||||
+ IDirect3DSurface9_UnlockRect(dst_surface);
|
||||
}
|
||||
+ unlock_surface(dst_surface, &lockrect, surface, TRUE);
|
||||
+ return hr;
|
||||
}
|
||||
|
||||
return hr;
|
||||
/************************************************************
|
||||
diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c
|
||||
index f153cd92c65..9cdf60a54c7 100644
|
||||
index 6cb1ddb..885191e 100644
|
||||
--- a/dlls/d3dx9_36/tests/surface.c
|
||||
+++ b/dlls/d3dx9_36/tests/surface.c
|
||||
@@ -1199,7 +1199,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
|
||||
@@ -1195,7 +1195,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
|
||||
hr = IDirect3DTexture9_GetSurfaceLevel(tex, 0, &newsurf);
|
||||
ok(SUCCEEDED(hr), "Failed to get the surface, hr %#x.\n", hr);
|
||||
hr = D3DXLoadSurfaceFromSurface(newsurf, NULL, NULL, surf, NULL, NULL, D3DX_FILTER_NONE, 0);
|
||||
@@ -361,7 +353,7 @@ index f153cd92c65..9cdf60a54c7 100644
|
||||
check_release((IUnknown*)newsurf, 1);
|
||||
check_release((IUnknown*)tex, 0);
|
||||
}
|
||||
@@ -1225,7 +1225,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
|
||||
@@ -1221,7 +1221,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
|
||||
hr = IDirect3DTexture9_GetSurfaceLevel(tex, 0, &newsurf);
|
||||
ok(SUCCEEDED(hr), "Failed to get the surface, hr %#x.\n", hr);
|
||||
hr = D3DXLoadSurfaceFromSurface(newsurf, NULL, NULL, surf, NULL, NULL, D3DX_FILTER_NONE, 0);
|
||||
@@ -370,7 +362,7 @@ index f153cd92c65..9cdf60a54c7 100644
|
||||
check_release((IUnknown*)newsurf, 1);
|
||||
check_release((IUnknown*)tex, 0);
|
||||
}
|
||||
@@ -1238,10 +1238,10 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
|
||||
@@ -1234,10 +1234,10 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
|
||||
hr = IDirect3DTexture9_GetSurfaceLevel(tex, 0, &newsurf);
|
||||
ok(SUCCEEDED(hr), "Failed to get the surface, hr %#x.\n", hr);
|
||||
hr = D3DXLoadSurfaceFromSurface(newsurf, NULL, NULL, surf, NULL, NULL, D3DX_FILTER_NONE, 0);
|
||||
@@ -384,7 +376,7 @@ index f153cd92c65..9cdf60a54c7 100644
|
||||
check_release((IUnknown*)newsurf, 1);
|
||||
check_release((IUnknown*)tex, 0);
|
||||
diff --git a/dlls/d3dx9_37/Makefile.in b/dlls/d3dx9_37/Makefile.in
|
||||
index ab790a4d5c4..51382c7109a 100644
|
||||
index ab790a4..51382c7 100644
|
||||
--- a/dlls/d3dx9_37/Makefile.in
|
||||
+++ b/dlls/d3dx9_37/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -396,7 +388,7 @@ index ab790a4d5c4..51382c7109a 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_38/Makefile.in b/dlls/d3dx9_38/Makefile.in
|
||||
index 6125c2da678..f6257cbdec7 100644
|
||||
index 6125c2d..f6257cb 100644
|
||||
--- a/dlls/d3dx9_38/Makefile.in
|
||||
+++ b/dlls/d3dx9_38/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -408,7 +400,7 @@ index 6125c2da678..f6257cbdec7 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_39/Makefile.in b/dlls/d3dx9_39/Makefile.in
|
||||
index d97a787c67a..a68ee9f3ad5 100644
|
||||
index d97a787..a68ee9f 100644
|
||||
--- a/dlls/d3dx9_39/Makefile.in
|
||||
+++ b/dlls/d3dx9_39/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -420,7 +412,7 @@ index d97a787c67a..a68ee9f3ad5 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_40/Makefile.in b/dlls/d3dx9_40/Makefile.in
|
||||
index 36c5a210cdb..7f2cfe1a47c 100644
|
||||
index 36c5a21..7f2cfe1 100644
|
||||
--- a/dlls/d3dx9_40/Makefile.in
|
||||
+++ b/dlls/d3dx9_40/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -432,7 +424,7 @@ index 36c5a210cdb..7f2cfe1a47c 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_41/Makefile.in b/dlls/d3dx9_41/Makefile.in
|
||||
index d4552cf608e..c5c3ab1aae5 100644
|
||||
index d4552cf..c5c3ab1 100644
|
||||
--- a/dlls/d3dx9_41/Makefile.in
|
||||
+++ b/dlls/d3dx9_41/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -444,7 +436,7 @@ index d4552cf608e..c5c3ab1aae5 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_42/Makefile.in b/dlls/d3dx9_42/Makefile.in
|
||||
index 5806fce66c6..e9a8e89da5f 100644
|
||||
index 5806fce..e9a8e89 100644
|
||||
--- a/dlls/d3dx9_42/Makefile.in
|
||||
+++ b/dlls/d3dx9_42/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -456,7 +448,7 @@ index 5806fce66c6..e9a8e89da5f 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_43/Makefile.in b/dlls/d3dx9_43/Makefile.in
|
||||
index 72ba8b4c1e0..33185bf7a8a 100644
|
||||
index 72ba8b4..33185bf 100644
|
||||
--- a/dlls/d3dx9_43/Makefile.in
|
||||
+++ b/dlls/d3dx9_43/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -468,5 +460,5 @@ index 72ba8b4c1e0..33185bf7a8a 100644
|
||||
|
||||
C_SRCS = \
|
||||
--
|
||||
2.19.1
|
||||
1.9.1
|
||||
|
||||
|
Reference in New Issue
Block a user