=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: d3d11: Implement d3d10_query_GetData().

Alexandre Julliard julliard at winehq.org
Thu Jul 7 09:48:23 CDT 2016


Module: wine
Branch: master
Commit: a9f09cf06037e43b5a987e8e7d1bd5177c53c754
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a9f09cf06037e43b5a987e8e7d1bd5177c53c754

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Thu Jul  7 12:22:31 2016 +0200

d3d11: Implement d3d10_query_GetData().

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/d3d11/async.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/dlls/d3d11/async.c b/dlls/d3d11/async.c
index 2e57ed6..fa38484 100644
--- a/dlls/d3d11/async.c
+++ b/dlls/d3d11/async.c
@@ -292,9 +292,27 @@ static void STDMETHODCALLTYPE d3d10_query_End(ID3D10Query *iface)
 
 static HRESULT STDMETHODCALLTYPE d3d10_query_GetData(ID3D10Query *iface, void *data, UINT data_size, UINT flags)
 {
-    FIXME("iface %p, data %p, data_size %u, flags %#x stub!\n", iface, data, data_size, flags);
+    struct d3d_query *query = impl_from_ID3D10Query(iface);
+    unsigned int wined3d_flags;
+    HRESULT hr;
+
+    TRACE("iface %p, data %p, data_size %u, flags %#x.\n", iface, data, data_size, flags);
+
+    wined3d_flags = wined3d_getdata_flags_from_d3d11_async_getdata_flags(flags);
+
+    wined3d_mutex_lock();
+    if (!data_size || wined3d_query_get_data_size(query->wined3d_query) == data_size)
+    {
+        hr = wined3d_query_get_data(query->wined3d_query, data, data_size, wined3d_flags);
+    }
+    else
+    {
+        WARN("Invalid data size %u.\n", data_size);
+        hr = E_INVALIDARG;
+    }
+    wined3d_mutex_unlock();
 
-    return E_NOTIMPL;
+    return hr;
 }
 
 static UINT STDMETHODCALLTYPE d3d10_query_GetDataSize(ID3D10Query *iface)




More information about the wine-cvs mailing list