wined3d: Pass an IWineD3DResourceImpl pointer to resource_get_private_data().
This commit is contained in:
parent
a97ae0db6a
commit
92e439b0f0
|
@ -770,7 +770,7 @@ static HRESULT STDMETHODCALLTYPE buffer_SetPrivateData(IWineD3DBuffer *iface,
|
||||||
static HRESULT STDMETHODCALLTYPE buffer_GetPrivateData(IWineD3DBuffer *iface,
|
static HRESULT STDMETHODCALLTYPE buffer_GetPrivateData(IWineD3DBuffer *iface,
|
||||||
REFGUID guid, void *data, DWORD *data_size)
|
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)
|
static HRESULT STDMETHODCALLTYPE buffer_FreePrivateData(IWineD3DBuffer *iface, REFGUID guid)
|
||||||
|
|
|
@ -218,8 +218,10 @@ static HRESULT WINAPI IWineD3DCubeTextureImpl_SetPrivateData(IWineD3DCubeTexture
|
||||||
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
|
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) {
|
static HRESULT WINAPI IWineD3DCubeTextureImpl_GetPrivateData(IWineD3DCubeTexture *iface,
|
||||||
return resource_get_private_data((IWineD3DResource *)iface, refguid, pData, pSizeOfData);
|
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)
|
static HRESULT WINAPI IWineD3DCubeTextureImpl_FreePrivateData(IWineD3DCubeTexture *iface, REFGUID refguid)
|
||||||
|
|
|
@ -192,33 +192,36 @@ HRESULT resource_set_private_data(IWineD3DResource *iface, REFGUID refguid,
|
||||||
return WINED3D_OK;
|
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;
|
const struct private_data *d;
|
||||||
struct private_data *data;
|
|
||||||
|
|
||||||
TRACE("(%p) : %p %p %p\n", This, refguid, pData, pSizeOfData);
|
TRACE("resource %p, guid %s, data %p, data_size %p.\n",
|
||||||
data = resource_find_private_data(This, refguid);
|
resource, debugstr_guid(guid), data, data_size);
|
||||||
if (!data) return WINED3DERR_NOTFOUND;
|
|
||||||
|
|
||||||
if (*pSizeOfData < data->size) {
|
d = resource_find_private_data(resource, guid);
|
||||||
*pSizeOfData = data->size;
|
if (!d) return WINED3DERR_NOTFOUND;
|
||||||
|
|
||||||
|
if (*data_size < d->size)
|
||||||
|
{
|
||||||
|
*data_size = d->size;
|
||||||
return WINED3DERR_MOREDATA;
|
return WINED3DERR_MOREDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data->flags & WINED3DSPD_IUNKNOWN) {
|
if (d->flags & WINED3DSPD_IUNKNOWN)
|
||||||
*(LPUNKNOWN *)pData = data->ptr.object;
|
|
||||||
if (((IWineD3DImpl *)This->resource.device->wined3d)->dxVersion != 7)
|
|
||||||
{
|
{
|
||||||
/* D3D8 and D3D9 addref the private data, DDraw does not. This can't be handled in
|
*(IUnknown **)data = d->ptr.object;
|
||||||
* ddraw because it doesn't know if the pointer returned is an IUnknown * or just a
|
if (((IWineD3DImpl *)resource->resource.device->wined3d)->dxVersion != 7)
|
||||||
* Blob
|
{
|
||||||
*/
|
/* D3D8 and D3D9 addref the private data, DDraw does not. This
|
||||||
IUnknown_AddRef(data->ptr.object);
|
* 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 {
|
else
|
||||||
memcpy(pData, data->ptr.data, data->size);
|
{
|
||||||
|
memcpy(data, d->ptr.data, d->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
return WINED3D_OK;
|
return WINED3D_OK;
|
||||||
|
|
|
@ -117,8 +117,10 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPrivateData(IWineD3DSurface *iface,
|
||||||
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
|
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPrivateData(IWineD3DSurface *iface, REFGUID refguid, void* pData, DWORD* pSizeOfData) {
|
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPrivateData(IWineD3DSurface *iface,
|
||||||
return resource_get_private_data((IWineD3DResource *)iface, refguid, pData, pSizeOfData);
|
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)
|
HRESULT WINAPI IWineD3DBaseSurfaceImpl_FreePrivateData(IWineD3DSurface *iface, REFGUID refguid)
|
||||||
|
|
|
@ -243,8 +243,10 @@ static HRESULT WINAPI IWineD3DTextureImpl_SetPrivateData(IWineD3DTexture *iface,
|
||||||
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
|
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) {
|
static HRESULT WINAPI IWineD3DTextureImpl_GetPrivateData(IWineD3DTexture *iface,
|
||||||
return resource_get_private_data((IWineD3DResource *)iface, refguid, pData, pSizeOfData);
|
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)
|
static HRESULT WINAPI IWineD3DTextureImpl_FreePrivateData(IWineD3DTexture *iface, REFGUID refguid)
|
||||||
|
|
|
@ -156,8 +156,10 @@ static HRESULT WINAPI IWineD3DVolumeImpl_SetPrivateData(IWineD3DVolume *iface,
|
||||||
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
|
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) {
|
static HRESULT WINAPI IWineD3DVolumeImpl_GetPrivateData(IWineD3DVolume *iface,
|
||||||
return resource_get_private_data((IWineD3DResource *)iface, refguid, pData, pSizeOfData);
|
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)
|
static HRESULT WINAPI IWineD3DVolumeImpl_FreePrivateData(IWineD3DVolume *iface, REFGUID refguid)
|
||||||
|
|
|
@ -163,8 +163,10 @@ static HRESULT WINAPI IWineD3DVolumeTextureImpl_SetPrivateData(IWineD3DVolumeTex
|
||||||
return resource_set_private_data((IWineD3DResource *)iface, riid, data, data_size, flags);
|
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) {
|
static HRESULT WINAPI IWineD3DVolumeTextureImpl_GetPrivateData(IWineD3DVolumeTexture *iface,
|
||||||
return resource_get_private_data((IWineD3DResource *)iface, refguid, pData, pSizeOfData);
|
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)
|
static HRESULT WINAPI IWineD3DVolumeTextureImpl_FreePrivateData(IWineD3DVolumeTexture *iface, REFGUID refguid)
|
||||||
|
|
|
@ -1831,7 +1831,7 @@ typedef struct IWineD3DResourceImpl
|
||||||
void resource_cleanup(struct IWineD3DResourceImpl *resource) DECLSPEC_HIDDEN;
|
void resource_cleanup(struct IWineD3DResourceImpl *resource) DECLSPEC_HIDDEN;
|
||||||
HRESULT resource_free_private_data(struct IWineD3DResourceImpl *resource, REFGUID guid) DECLSPEC_HIDDEN;
|
HRESULT resource_free_private_data(struct IWineD3DResourceImpl *resource, REFGUID guid) DECLSPEC_HIDDEN;
|
||||||
DWORD resource_get_priority(IWineD3DResource *iface) 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;
|
void *data, DWORD *data_size) DECLSPEC_HIDDEN;
|
||||||
HRESULT resource_init(struct IWineD3DResourceImpl *resource, WINED3DRESOURCETYPE resource_type,
|
HRESULT resource_init(struct IWineD3DResourceImpl *resource, WINED3DRESOURCETYPE resource_type,
|
||||||
IWineD3DDeviceImpl *device, UINT size, DWORD usage, const struct wined3d_format *format,
|
IWineD3DDeviceImpl *device, UINT size, DWORD usage, const struct wined3d_format *format,
|
||||||
|
|
Loading…
Reference in New Issue