[PATCH 3/5] wined3d: The stateblock doesn't really need a parent.
Henri Verbeet
hverbeet at codeweavers.com
Fri Dec 4 04:50:48 CST 2009
---
dlls/wined3d/device.c | 2 +-
dlls/wined3d/stateblock.c | 12 +-----------
dlls/wined3d/wined3d_private.h | 5 ++---
include/wine/wined3d.idl | 2 +-
4 files changed, 5 insertions(+), 16 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 98c5002..cefabea 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -605,7 +605,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateStateBlock(IWineD3DDevice *iface,
return E_OUTOFMEMORY;
}
- hr = stateblock_init(object, This, type, parent);
+ hr = stateblock_init(object, This, type);
if (FAILED(hr))
{
WARN("Failed to initialize stateblock, hr %#x.\n", hr);
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index 9082c3d..41fca71 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -535,13 +535,6 @@ static ULONG WINAPI IWineD3DStateBlockImpl_Release(IWineD3DStateBlock *iface) {
/**********************************************************
* IWineD3DStateBlockImpl parts follows
**********************************************************/
-static HRESULT WINAPI IWineD3DStateBlockImpl_GetParent(IWineD3DStateBlock *iface, IUnknown **pParent) {
- IWineD3DStateBlockImpl *This = (IWineD3DStateBlockImpl *)iface;
- IUnknown_AddRef(This->parent);
- *pParent = This->parent;
- return WINED3D_OK;
-}
-
static HRESULT WINAPI IWineD3DStateBlockImpl_GetDevice(IWineD3DStateBlock *iface, IWineD3DDevice** ppDevice){
IWineD3DStateBlockImpl *This = (IWineD3DStateBlockImpl *)iface;
@@ -1328,22 +1321,19 @@ static const IWineD3DStateBlockVtbl IWineD3DStateBlock_Vtbl =
IWineD3DStateBlockImpl_AddRef,
IWineD3DStateBlockImpl_Release,
/* IWineD3DStateBlock */
- IWineD3DStateBlockImpl_GetParent,
IWineD3DStateBlockImpl_GetDevice,
IWineD3DStateBlockImpl_Capture,
IWineD3DStateBlockImpl_Apply,
IWineD3DStateBlockImpl_InitStartupStateBlock
};
-HRESULT stateblock_init(IWineD3DStateBlockImpl *stateblock, IWineD3DDeviceImpl *device,
- WINED3DSTATEBLOCKTYPE type, IUnknown *parent)
+HRESULT stateblock_init(IWineD3DStateBlockImpl *stateblock, IWineD3DDeviceImpl *device, WINED3DSTATEBLOCKTYPE type)
{
unsigned int i;
HRESULT hr;
stateblock->lpVtbl = &IWineD3DStateBlock_Vtbl;
stateblock->ref = 1;
- stateblock->parent = parent;
stateblock->wineD3DDevice = device;
stateblock->blockType = type;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 7bb5b71..39519a1 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2194,7 +2194,6 @@ struct IWineD3DStateBlockImpl
LONG ref; /* Note: Ref counting not required */
/* IWineD3DStateBlock information */
- IUnknown *parent;
IWineD3DDeviceImpl *wineD3DDevice;
WINED3DSTATEBLOCKTYPE blockType;
@@ -2293,8 +2292,8 @@ struct IWineD3DStateBlockImpl
unsigned int num_contained_sampler_states;
};
-HRESULT stateblock_init(IWineD3DStateBlockImpl *stateblock, IWineD3DDeviceImpl *device,
- WINED3DSTATEBLOCKTYPE type, IUnknown *parent) DECLSPEC_HIDDEN;
+HRESULT stateblock_init(IWineD3DStateBlockImpl *stateblock,
+ IWineD3DDeviceImpl *device, WINED3DSTATEBLOCKTYPE type) DECLSPEC_HIDDEN;
void stateblock_init_contained_states(IWineD3DStateBlockImpl *object) DECLSPEC_HIDDEN;
/* Direct3D terminology with little modifications. We do not have an issued state
diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl
index 0658b74..da21af8 100644
--- a/include/wine/wined3d.idl
+++ b/include/wine/wined3d.idl
@@ -2724,7 +2724,7 @@ interface IWineD3DVertexDeclaration : IWineD3DBase
local,
uuid(83b073ce-6f30-11d9-c687-00046142c14f)
]
-interface IWineD3DStateBlock : IWineD3DBase
+interface IWineD3DStateBlock : IUnknown
{
HRESULT GetDevice(
[out] IWineD3DDevice **device
--
1.6.4.4
More information about the wine-patches
mailing list