Henri Verbeet : wined3d: Queries don't need parents.
Alexandre Julliard
julliard at winehq.org
Wed Sep 1 11:08:53 CDT 2010
Module: wine
Branch: master
Commit: 7c675b522a6c52a9d8e587e07a6a28bf69522645
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7c675b522a6c52a9d8e587e07a6a28bf69522645
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Tue Aug 31 18:41:38 2010 +0200
wined3d: Queries don't need parents.
---
dlls/d3d9/query.c | 2 +-
dlls/wined3d/device.c | 6 ++--
dlls/wined3d/query.c | 49 +++++++++------------------------------
dlls/wined3d/wined3d_private.h | 4 +--
include/wine/wined3d.idl | 5 +--
5 files changed, 19 insertions(+), 47 deletions(-)
diff --git a/dlls/d3d9/query.c b/dlls/d3d9/query.c
index a38dc9d..4a58696 100644
--- a/dlls/d3d9/query.c
+++ b/dlls/d3d9/query.c
@@ -158,7 +158,7 @@ HRESULT query_init(IDirect3DQuery9Impl *query, IDirect3DDevice9Impl *device, D3D
query->ref = 1;
wined3d_mutex_lock();
- hr = IWineD3DDevice_CreateQuery(device->WineD3DDevice, type, &query->wineD3DQuery, (IUnknown *)query);
+ hr = IWineD3DDevice_CreateQuery(device->WineD3DDevice, type, &query->wineD3DQuery);
wined3d_mutex_unlock();
if (FAILED(hr))
{
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index caf332f..ce1910f 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1230,13 +1230,13 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateCubeTexture(IWineD3DDevice *iface
}
static HRESULT WINAPI IWineD3DDeviceImpl_CreateQuery(IWineD3DDevice *iface,
- WINED3DQUERYTYPE type, IWineD3DQuery **query, IUnknown *parent)
+ WINED3DQUERYTYPE type, IWineD3DQuery **query)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
IWineD3DQueryImpl *object;
HRESULT hr;
- TRACE("iface %p, type %#x, query %p, parent %p.\n", iface, type, query, parent);
+ TRACE("iface %p, type %#x, query %p.\n", iface, type, query);
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
if (!object)
@@ -1245,7 +1245,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateQuery(IWineD3DDevice *iface,
return E_OUTOFMEMORY;
}
- hr = query_init(object, This, type, parent);
+ hr = query_init(object, This, type);
if (FAILED(hr))
{
WARN("Failed to initialize query, hr %#x.\n", hr);
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
index b3c77ea..b3c7a40 100644
--- a/dlls/wined3d/query.c
+++ b/dlls/wined3d/query.c
@@ -230,27 +230,21 @@ void wined3d_event_query_issue(struct wined3d_event_query *query, IWineD3DDevice
context_release(context);
}
-/*
- * Occlusion Queries:
- * http://www.gris.uni-tuebingen.de/~bartz/Publications/paper/hww98.pdf
- * http://oss.sgi.com/projects/ogl-sample/registry/ARB/occlusion_query.txt
- */
-
-/* *******************************************
- IWineD3DQuery IUnknown parts follow
- ******************************************* */
-static HRESULT WINAPI IWineD3DQueryImpl_QueryInterface(IWineD3DQuery *iface, REFIID riid, LPVOID *ppobj)
+static HRESULT WINAPI IWineD3DQueryImpl_QueryInterface(IWineD3DQuery *iface, REFIID riid, void **object)
{
- IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
- TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(riid),ppobj);
- if (IsEqualGUID(riid, &IID_IUnknown)
- || IsEqualGUID(riid, &IID_IWineD3DBase)
- || IsEqualGUID(riid, &IID_IWineD3DQuery)) {
+ TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object);
+
+ if (IsEqualGUID(riid, &IID_IWineD3DQuery)
+ || IsEqualGUID(riid, &IID_IUnknown))
+ {
IUnknown_AddRef(iface);
- *ppobj = This;
+ *object = iface;
return S_OK;
}
- *ppobj = NULL;
+
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
+
+ *object = NULL;
return E_NOINTERFACE;
}
@@ -288,21 +282,6 @@ static ULONG WINAPI IWineD3DQueryImpl_Release(IWineD3DQuery *iface) {
return ref;
}
-/* *******************************************
- IWineD3DQuery IWineD3DQuery parts follow
- ******************************************* */
-static HRESULT WINAPI IWineD3DQueryImpl_GetParent(IWineD3DQuery *iface, IUnknown **parent)
-{
- TRACE("iface %p, parent %p.\n", iface, parent);
-
- *parent = (IUnknown *)parent;
- IUnknown_AddRef(*parent);
-
- TRACE("Returning %p.\n", *parent);
-
- return WINED3D_OK;
-}
-
static HRESULT WINAPI IWineD3DOcclusionQueryImpl_GetData(IWineD3DQuery* iface, void* pData, DWORD dwSize, DWORD dwGetDataFlags) {
IWineD3DQueryImpl *This = (IWineD3DQueryImpl *) iface;
struct wined3d_occlusion_query *query = This->extendedData;
@@ -554,7 +533,6 @@ static const IWineD3DQueryVtbl IWineD3DEventQuery_Vtbl =
IWineD3DQueryImpl_AddRef,
IWineD3DQueryImpl_Release,
/*** IWineD3Dquery methods ***/
- IWineD3DQueryImpl_GetParent,
IWineD3DEventQueryImpl_GetData,
IWineD3DEventQueryImpl_GetDataSize,
IWineD3DQueryImpl_GetType,
@@ -568,15 +546,13 @@ static const IWineD3DQueryVtbl IWineD3DOcclusionQuery_Vtbl =
IWineD3DQueryImpl_AddRef,
IWineD3DQueryImpl_Release,
/*** IWineD3Dquery methods ***/
- IWineD3DQueryImpl_GetParent,
IWineD3DOcclusionQueryImpl_GetData,
IWineD3DOcclusionQueryImpl_GetDataSize,
IWineD3DQueryImpl_GetType,
IWineD3DOcclusionQueryImpl_Issue
};
-HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device,
- WINED3DQUERYTYPE type, IUnknown *parent)
+HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device, WINED3DQUERYTYPE type)
{
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
@@ -638,7 +614,6 @@ HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device,
query->type = type;
query->state = QUERY_CREATED;
query->device = device;
- query->parent = parent;
query->ref = 1;
return WINED3D_OK;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 7c81754..a153f3c 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2442,7 +2442,6 @@ typedef struct IWineD3DQueryImpl
const IWineD3DQueryVtbl *lpVtbl;
LONG ref; /* Note: Ref counting not required */
- IUnknown *parent;
IWineD3DDeviceImpl *device;
/* IWineD3DQuery fields */
@@ -2452,8 +2451,7 @@ typedef struct IWineD3DQueryImpl
void *extendedData;
} IWineD3DQueryImpl;
-HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device,
- WINED3DQUERYTYPE type, IUnknown *parent) DECLSPEC_HIDDEN;
+HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device, WINED3DQUERYTYPE type) DECLSPEC_HIDDEN;
/* IWineD3DBuffer */
diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl
index f10c35f..001bc8a 100644
--- a/include/wine/wined3d.idl
+++ b/include/wine/wined3d.idl
@@ -2658,7 +2658,7 @@ interface IWineD3DStateBlock : IUnknown
local,
uuid(905ddbac-6f30-11d9-c687-00046142c14f)
]
-interface IWineD3DQuery : IWineD3DBase
+interface IWineD3DQuery : IUnknown
{
HRESULT GetData(
[out] void *data,
@@ -2888,8 +2888,7 @@ interface IWineD3DDevice : IUnknown
);
HRESULT CreateQuery(
[in] WINED3DQUERYTYPE type,
- [out] IWineD3DQuery **query,
- [in] IUnknown *parent
+ [out] IWineD3DQuery **query
);
HRESULT CreateSwapChain(
[in] WINED3DPRESENT_PARAMETERS *present_parameters,
More information about the wine-cvs
mailing list