[PATCH 1/2] d3d11: Partially implement d3d11_immediate_context_CopySubresourceRegion1().

Pablo Martin pmart-wine at riseup.net
Wed May 16 04:30:32 CDT 2018


Forwards calls to CopySubresourceRegion ignoring copy flags.

Signed-off-by: Pablo Martin <pmart-wine at riseup.net>
---
Some remarks:

- I changed argument names for consistency with d3d11_immediate_CopySubresourceRegion.
- I believe inverse forwarding would be better (CopySubresourceRegion to CopySubresourceRegion1), but I'm initially implementing like this for consistency with UpdateSubresource1. I can invert this and UpdateSubresource1 in a further patch if this is desired.
- I'm also not sure about the benefit in the double trace here, but again, doing it like UpdateSubresource1 is doing.

 dlls/d3d11/device.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 5bc5018d63..c0e9b0d3dd 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -2606,12 +2606,19 @@ static HRESULT STDMETHODCALLTYPE d3d11_immediate_context_FinishCommandList(ID3D1
 }
 
 static void STDMETHODCALLTYPE d3d11_immediate_context_CopySubresourceRegion1(ID3D11DeviceContext1 *iface,
-        ID3D11Resource *resource, UINT subresource, UINT dst_x, UINT dst_y, UINT dst_z, ID3D11Resource *src_resource,
-        UINT src_subresource, const D3D11_BOX *src_box, UINT flags)
+        ID3D11Resource *dst_resource, UINT dst_subresource_idx, UINT dst_x, UINT dst_y, UINT dst_z,
+        ID3D11Resource *src_resource, UINT src_subresource_idx, const D3D11_BOX *src_box, UINT flags)
 {
-    FIXME("iface %p, resource %p, subresource %u, dst_x %u, dst_y %u, dst_z %u, src_resource %p, src_subresource %u, "
-            "src_box %p, flags %#x stub!\n", iface, resource, subresource, dst_x, dst_y, dst_z, src_resource,
-            src_subresource, src_box, flags);
+    TRACE("iface %p, dst_resource %p, dst_subresource_idx %u, dst_x %u, dst_y %u, dst_z %u, "
+            "src_resource %p, src_subresource_idx %u, src_box %p, flags %#x.\n",
+            iface, dst_resource, dst_subresource_idx, dst_x, dst_y, dst_z,
+            src_resource, src_subresource_idx, src_box, flags);
+
+    if (flags)
+        FIXME("Ignoring flags %#x.\n", flags);
+
+    d3d11_immediate_context_CopySubresourceRegion(iface, dst_resource, dst_subresource_idx, dst_x, dst_y, dst_z,
+            src_resource, src_subresource_idx, src_box);
 }
 
 static void STDMETHODCALLTYPE d3d11_immediate_context_UpdateSubresource1(ID3D11DeviceContext1 *iface,
-- 
2.14.1




More information about the wine-devel mailing list