Henri Verbeet : wined3d: Pass an IWineD3DResourceImpl pointer to resource_get_private_data().
Alexandre Julliard
julliard at winehq.org
Thu Jan 6 12:33:51 CST 2011
Module: wine
Branch: master
Commit: 92e439b0f0853c7554862e963a74f2075f0417ee
URL: http://source.winehq.org/git/wine.git/?a=commit;h=92e439b0f0853c7554862e963a74f2075f0417ee
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Thu Jan 6 09:39:02 2011 +0100
wined3d: Pass an IWineD3DResourceImpl pointer to resource_get_private_data().
---
dlls/wined3d/buffer.c | 2 +-
dlls/wined3d/cubetexture.c | 6 ++++--
dlls/wined3d/resource.c | 39 +++++++++++++++++++++------------------
dlls/wined3d/surface_base.c | 6 ++++--
dlls/wined3d/texture.c | 6 ++++--
dlls/wined3d/volume.c | 6 ++++--
dlls/wined3d/volumetexture.c | 6 ++++--
dlls/wined3d/wined3d_private.h | 2 +-
8 files changed, 43 insertions(+), 30 deletions(-)
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index e3f71a0..43fe20e 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -770,7 +770,7 @@ static HRESULT STDMETHODCALLTYPE buffer_SetPrivateData(IWineD3DBuffer *iface,
static HRESULT STDMETHODCALLTYPE buffer_GetPrivateData(IWineD3DBuffer *iface,
REFGUID guid, void *data, DWORD *data_size)
{
- return resource_get_private_data((IWineD3DResource *)iface, guid, data, data_size);
+ return resource_get_private_data((IWineD3DResourceImpl *)iface, guid, data, data_size);
}
static HRESULT STDMETHODCALLTYPE buffer_FreePrivateData(IWineD3DBuffer *iface, REFGUID guid)
diff --git a/dlls/wined3d/cubetexture.c b/dlls/wined3d/cubetexture.c
index 2449b79..89afcbf 100644
--- a/dlls/wined3d/cubetexture.c
+++ b/dlls/wined3d/cubetexture.c
@@ -218,8 +218,10 @@ static HRESULT WINAPI IWineD3DCubeTextureImpl_SetPrivateData(IWineD3DCubeTexture
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
}
-static HRESULT WINAPI IWineD3DCubeTextureImpl_GetPrivateData(IWineD3DCubeTexture *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
- return resource_get_private_data((IWineD3DResource *)iface, refguid, pData, pSizeOfData);
+static HRESULT WINAPI IWineD3DCubeTextureImpl_GetPrivateData(IWineD3DCubeTexture *iface,
+ REFGUID guid, void *data, DWORD *data_size)
+{
+ return resource_get_private_data((IWineD3DResourceImpl *)iface, guid, data, data_size);
}
static HRESULT WINAPI IWineD3DCubeTextureImpl_FreePrivateData(IWineD3DCubeTexture *iface, REFGUID refguid)
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 76267d5..173fa58 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -192,33 +192,36 @@ HRESULT resource_set_private_data(IWineD3DResource *iface, REFGUID refguid,
return WINED3D_OK;
}
-HRESULT resource_get_private_data(IWineD3DResource *iface, REFGUID refguid, void *pData, DWORD *pSizeOfData)
+HRESULT resource_get_private_data(struct IWineD3DResourceImpl *resource, REFGUID guid, void *data, DWORD *data_size)
{
- IWineD3DResourceImpl *This = (IWineD3DResourceImpl *)iface;
- struct private_data *data;
+ const struct private_data *d;
- TRACE("(%p) : %p %p %p\n", This, refguid, pData, pSizeOfData);
- data = resource_find_private_data(This, refguid);
- if (!data) return WINED3DERR_NOTFOUND;
+ TRACE("resource %p, guid %s, data %p, data_size %p.\n",
+ resource, debugstr_guid(guid), data, data_size);
+
+ d = resource_find_private_data(resource, guid);
+ if (!d) return WINED3DERR_NOTFOUND;
- if (*pSizeOfData < data->size) {
- *pSizeOfData = data->size;
+ if (*data_size < d->size)
+ {
+ *data_size = d->size;
return WINED3DERR_MOREDATA;
}
- if (data->flags & WINED3DSPD_IUNKNOWN) {
- *(LPUNKNOWN *)pData = data->ptr.object;
- if (((IWineD3DImpl *)This->resource.device->wined3d)->dxVersion != 7)
+ if (d->flags & WINED3DSPD_IUNKNOWN)
+ {
+ *(IUnknown **)data = d->ptr.object;
+ if (((IWineD3DImpl *)resource->resource.device->wined3d)->dxVersion != 7)
{
- /* D3D8 and D3D9 addref the private data, DDraw does not. This can't be handled in
- * ddraw because it doesn't know if the pointer returned is an IUnknown * or just a
- * Blob
- */
- IUnknown_AddRef(data->ptr.object);
+ /* D3D8 and D3D9 addref the private data, DDraw does not. This
+ * can't be handled in ddraw because it doesn't know if the
+ * pointer returned is an IUnknown * or just a blob. */
+ IUnknown_AddRef(d->ptr.object);
}
}
- else {
- memcpy(pData, data->ptr.data, data->size);
+ else
+ {
+ memcpy(data, d->ptr.data, d->size);
}
return WINED3D_OK;
diff --git a/dlls/wined3d/surface_base.c b/dlls/wined3d/surface_base.c
index 14268b8..c499d71 100644
--- a/dlls/wined3d/surface_base.c
+++ b/dlls/wined3d/surface_base.c
@@ -117,8 +117,10 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPrivateData(IWineD3DSurface *iface,
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
}
-HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPrivateData(IWineD3DSurface *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
- return resource_get_private_data((IWineD3DResource *)iface, refguid, pData, pSizeOfData);
+HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPrivateData(IWineD3DSurface *iface,
+ REFGUID guid, void *data, DWORD *data_size)
+{
+ return resource_get_private_data((IWineD3DResourceImpl *)iface, guid, data, data_size);
}
HRESULT WINAPI IWineD3DBaseSurfaceImpl_FreePrivateData(IWineD3DSurface *iface, REFGUID refguid)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index bb00fc4..7759435 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -243,8 +243,10 @@ static HRESULT WINAPI IWineD3DTextureImpl_SetPrivateData(IWineD3DTexture *iface,
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
}
-static HRESULT WINAPI IWineD3DTextureImpl_GetPrivateData(IWineD3DTexture *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
- return resource_get_private_data((IWineD3DResource *)iface, refguid, pData, pSizeOfData);
+static HRESULT WINAPI IWineD3DTextureImpl_GetPrivateData(IWineD3DTexture *iface,
+ REFGUID guid, void *data, DWORD *data_size)
+{
+ return resource_get_private_data((IWineD3DResourceImpl *)iface, guid, data, data_size);
}
static HRESULT WINAPI IWineD3DTextureImpl_FreePrivateData(IWineD3DTexture *iface, REFGUID refguid)
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
index 4c55170..6334966 100644
--- a/dlls/wined3d/volume.c
+++ b/dlls/wined3d/volume.c
@@ -156,8 +156,10 @@ static HRESULT WINAPI IWineD3DVolumeImpl_SetPrivateData(IWineD3DVolume *iface,
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
}
-static HRESULT WINAPI IWineD3DVolumeImpl_GetPrivateData(IWineD3DVolume *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
- return resource_get_private_data((IWineD3DResource *)iface, refguid, pData, pSizeOfData);
+static HRESULT WINAPI IWineD3DVolumeImpl_GetPrivateData(IWineD3DVolume *iface,
+ REFGUID guid, void *data, DWORD *data_size)
+{
+ return resource_get_private_data((IWineD3DResourceImpl *)iface, guid, data, data_size);
}
static HRESULT WINAPI IWineD3DVolumeImpl_FreePrivateData(IWineD3DVolume *iface, REFGUID refguid)
diff --git a/dlls/wined3d/volumetexture.c b/dlls/wined3d/volumetexture.c
index e3e16d3..ed837a7 100644
--- a/dlls/wined3d/volumetexture.c
+++ b/dlls/wined3d/volumetexture.c
@@ -163,8 +163,10 @@ static HRESULT WINAPI IWineD3DVolumeTextureImpl_SetPrivateData(IWineD3DVolumeTex
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
}
-static HRESULT WINAPI IWineD3DVolumeTextureImpl_GetPrivateData(IWineD3DVolumeTexture *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
- return resource_get_private_data((IWineD3DResource *)iface, refguid, pData, pSizeOfData);
+static HRESULT WINAPI IWineD3DVolumeTextureImpl_GetPrivateData(IWineD3DVolumeTexture *iface,
+ REFGUID guid, void *data, DWORD *data_size)
+{
+ return resource_get_private_data((IWineD3DResourceImpl *)iface, guid, data, data_size);
}
static HRESULT WINAPI IWineD3DVolumeTextureImpl_FreePrivateData(IWineD3DVolumeTexture *iface, REFGUID refguid)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 5a0d068..d6de00e 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1831,7 +1831,7 @@ typedef struct IWineD3DResourceImpl
void resource_cleanup(struct IWineD3DResourceImpl *resource) DECLSPEC_HIDDEN;
HRESULT resource_free_private_data(struct IWineD3DResourceImpl *resource, REFGUID guid) DECLSPEC_HIDDEN;
DWORD resource_get_priority(IWineD3DResource *iface) DECLSPEC_HIDDEN;
-HRESULT resource_get_private_data(IWineD3DResource *iface, REFGUID guid,
+HRESULT resource_get_private_data(struct IWineD3DResourceImpl *resource, REFGUID guid,
void *data, DWORD *data_size) DECLSPEC_HIDDEN;
HRESULT resource_init(struct IWineD3DResourceImpl *resource, WINED3DRESOURCETYPE resource_type,
IWineD3DDeviceImpl *device, UINT size, DWORD usage, const struct wined3d_format *format,
More information about the wine-cvs
mailing list