wined3d: Queries don't need parents.
This commit is contained in:
parent
2ef400901d
commit
7c675b522a
|
@ -158,7 +158,7 @@ HRESULT query_init(IDirect3DQuery9Impl *query, IDirect3DDevice9Impl *device, D3D
|
||||||
query->ref = 1;
|
query->ref = 1;
|
||||||
|
|
||||||
wined3d_mutex_lock();
|
wined3d_mutex_lock();
|
||||||
hr = IWineD3DDevice_CreateQuery(device->WineD3DDevice, type, &query->wineD3DQuery, (IUnknown *)query);
|
hr = IWineD3DDevice_CreateQuery(device->WineD3DDevice, type, &query->wineD3DQuery);
|
||||||
wined3d_mutex_unlock();
|
wined3d_mutex_unlock();
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1230,13 +1230,13 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateCubeTexture(IWineD3DDevice *iface
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI IWineD3DDeviceImpl_CreateQuery(IWineD3DDevice *iface,
|
static HRESULT WINAPI IWineD3DDeviceImpl_CreateQuery(IWineD3DDevice *iface,
|
||||||
WINED3DQUERYTYPE type, IWineD3DQuery **query, IUnknown *parent)
|
WINED3DQUERYTYPE type, IWineD3DQuery **query)
|
||||||
{
|
{
|
||||||
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
|
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
|
||||||
IWineD3DQueryImpl *object;
|
IWineD3DQueryImpl *object;
|
||||||
HRESULT hr;
|
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));
|
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
|
||||||
if (!object)
|
if (!object)
|
||||||
|
@ -1245,7 +1245,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateQuery(IWineD3DDevice *iface,
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = query_init(object, This, type, parent);
|
hr = query_init(object, This, type);
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
{
|
{
|
||||||
WARN("Failed to initialize query, hr %#x.\n", hr);
|
WARN("Failed to initialize query, hr %#x.\n", hr);
|
||||||
|
|
|
@ -230,27 +230,21 @@ void wined3d_event_query_issue(struct wined3d_event_query *query, IWineD3DDevice
|
||||||
context_release(context);
|
context_release(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
static HRESULT WINAPI IWineD3DQueryImpl_QueryInterface(IWineD3DQuery *iface, REFIID riid, void **object)
|
||||||
* 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)
|
|
||||||
{
|
{
|
||||||
IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
|
TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object);
|
||||||
TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(riid),ppobj);
|
|
||||||
if (IsEqualGUID(riid, &IID_IUnknown)
|
if (IsEqualGUID(riid, &IID_IWineD3DQuery)
|
||||||
|| IsEqualGUID(riid, &IID_IWineD3DBase)
|
|| IsEqualGUID(riid, &IID_IUnknown))
|
||||||
|| IsEqualGUID(riid, &IID_IWineD3DQuery)) {
|
{
|
||||||
IUnknown_AddRef(iface);
|
IUnknown_AddRef(iface);
|
||||||
*ppobj = This;
|
*object = iface;
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
*ppobj = NULL;
|
|
||||||
|
WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
|
||||||
|
|
||||||
|
*object = NULL;
|
||||||
return E_NOINTERFACE;
|
return E_NOINTERFACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -288,21 +282,6 @@ static ULONG WINAPI IWineD3DQueryImpl_Release(IWineD3DQuery *iface) {
|
||||||
return ref;
|
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) {
|
static HRESULT WINAPI IWineD3DOcclusionQueryImpl_GetData(IWineD3DQuery* iface, void* pData, DWORD dwSize, DWORD dwGetDataFlags) {
|
||||||
IWineD3DQueryImpl *This = (IWineD3DQueryImpl *) iface;
|
IWineD3DQueryImpl *This = (IWineD3DQueryImpl *) iface;
|
||||||
struct wined3d_occlusion_query *query = This->extendedData;
|
struct wined3d_occlusion_query *query = This->extendedData;
|
||||||
|
@ -554,7 +533,6 @@ static const IWineD3DQueryVtbl IWineD3DEventQuery_Vtbl =
|
||||||
IWineD3DQueryImpl_AddRef,
|
IWineD3DQueryImpl_AddRef,
|
||||||
IWineD3DQueryImpl_Release,
|
IWineD3DQueryImpl_Release,
|
||||||
/*** IWineD3Dquery methods ***/
|
/*** IWineD3Dquery methods ***/
|
||||||
IWineD3DQueryImpl_GetParent,
|
|
||||||
IWineD3DEventQueryImpl_GetData,
|
IWineD3DEventQueryImpl_GetData,
|
||||||
IWineD3DEventQueryImpl_GetDataSize,
|
IWineD3DEventQueryImpl_GetDataSize,
|
||||||
IWineD3DQueryImpl_GetType,
|
IWineD3DQueryImpl_GetType,
|
||||||
|
@ -568,15 +546,13 @@ static const IWineD3DQueryVtbl IWineD3DOcclusionQuery_Vtbl =
|
||||||
IWineD3DQueryImpl_AddRef,
|
IWineD3DQueryImpl_AddRef,
|
||||||
IWineD3DQueryImpl_Release,
|
IWineD3DQueryImpl_Release,
|
||||||
/*** IWineD3Dquery methods ***/
|
/*** IWineD3Dquery methods ***/
|
||||||
IWineD3DQueryImpl_GetParent,
|
|
||||||
IWineD3DOcclusionQueryImpl_GetData,
|
IWineD3DOcclusionQueryImpl_GetData,
|
||||||
IWineD3DOcclusionQueryImpl_GetDataSize,
|
IWineD3DOcclusionQueryImpl_GetDataSize,
|
||||||
IWineD3DQueryImpl_GetType,
|
IWineD3DQueryImpl_GetType,
|
||||||
IWineD3DOcclusionQueryImpl_Issue
|
IWineD3DOcclusionQueryImpl_Issue
|
||||||
};
|
};
|
||||||
|
|
||||||
HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device,
|
HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device, WINED3DQUERYTYPE type)
|
||||||
WINED3DQUERYTYPE type, IUnknown *parent)
|
|
||||||
{
|
{
|
||||||
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
|
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->type = type;
|
||||||
query->state = QUERY_CREATED;
|
query->state = QUERY_CREATED;
|
||||||
query->device = device;
|
query->device = device;
|
||||||
query->parent = parent;
|
|
||||||
query->ref = 1;
|
query->ref = 1;
|
||||||
|
|
||||||
return WINED3D_OK;
|
return WINED3D_OK;
|
||||||
|
|
|
@ -2442,7 +2442,6 @@ typedef struct IWineD3DQueryImpl
|
||||||
const IWineD3DQueryVtbl *lpVtbl;
|
const IWineD3DQueryVtbl *lpVtbl;
|
||||||
LONG ref; /* Note: Ref counting not required */
|
LONG ref; /* Note: Ref counting not required */
|
||||||
|
|
||||||
IUnknown *parent;
|
|
||||||
IWineD3DDeviceImpl *device;
|
IWineD3DDeviceImpl *device;
|
||||||
|
|
||||||
/* IWineD3DQuery fields */
|
/* IWineD3DQuery fields */
|
||||||
|
@ -2452,8 +2451,7 @@ typedef struct IWineD3DQueryImpl
|
||||||
void *extendedData;
|
void *extendedData;
|
||||||
} IWineD3DQueryImpl;
|
} IWineD3DQueryImpl;
|
||||||
|
|
||||||
HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device,
|
HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device, WINED3DQUERYTYPE type) DECLSPEC_HIDDEN;
|
||||||
WINED3DQUERYTYPE type, IUnknown *parent) DECLSPEC_HIDDEN;
|
|
||||||
|
|
||||||
/* IWineD3DBuffer */
|
/* IWineD3DBuffer */
|
||||||
|
|
||||||
|
|
|
@ -2658,7 +2658,7 @@ interface IWineD3DStateBlock : IUnknown
|
||||||
local,
|
local,
|
||||||
uuid(905ddbac-6f30-11d9-c687-00046142c14f)
|
uuid(905ddbac-6f30-11d9-c687-00046142c14f)
|
||||||
]
|
]
|
||||||
interface IWineD3DQuery : IWineD3DBase
|
interface IWineD3DQuery : IUnknown
|
||||||
{
|
{
|
||||||
HRESULT GetData(
|
HRESULT GetData(
|
||||||
[out] void *data,
|
[out] void *data,
|
||||||
|
@ -2888,8 +2888,7 @@ interface IWineD3DDevice : IUnknown
|
||||||
);
|
);
|
||||||
HRESULT CreateQuery(
|
HRESULT CreateQuery(
|
||||||
[in] WINED3DQUERYTYPE type,
|
[in] WINED3DQUERYTYPE type,
|
||||||
[out] IWineD3DQuery **query,
|
[out] IWineD3DQuery **query
|
||||||
[in] IUnknown *parent
|
|
||||||
);
|
);
|
||||||
HRESULT CreateSwapChain(
|
HRESULT CreateSwapChain(
|
||||||
[in] WINED3DPRESENT_PARAMETERS *present_parameters,
|
[in] WINED3DPRESENT_PARAMETERS *present_parameters,
|
||||||
|
|
Loading…
Reference in New Issue