mirror of
https://github.com/reactos/wine.git
synced 2025-01-26 22:24:37 +00:00
d3d8: Add a separate function for volume initialization.
This commit is contained in:
parent
8ffca99fb0
commit
ff923245e1
@ -218,7 +218,6 @@ struct IDirect3DDevice8Impl
|
||||
/*****************************************************************************
|
||||
* IDirect3DVolume8 implementation structure
|
||||
*/
|
||||
extern const IDirect3DVolume8Vtbl Direct3DVolume8_Vtbl;
|
||||
struct IDirect3DVolume8Impl
|
||||
{
|
||||
/* IUnknown fields */
|
||||
@ -235,6 +234,9 @@ struct IDirect3DVolume8Impl
|
||||
IUnknown *forwardReference;
|
||||
};
|
||||
|
||||
HRESULT volume_init(IDirect3DVolume8Impl *volume, IDirect3DDevice8Impl *device, UINT width, UINT height,
|
||||
UINT depth, DWORD usage, WINED3DFORMAT format, WINED3DPOOL pool);
|
||||
|
||||
/* ------------------- */
|
||||
/* IDirect3DSwapChain8 */
|
||||
/* ------------------- */
|
||||
|
@ -2753,15 +2753,11 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateVolume(IWineD3DDeviceParent
|
||||
return D3DERR_OUTOFVIDEOMEMORY;
|
||||
}
|
||||
|
||||
object->lpVtbl = &Direct3DVolume8_Vtbl;
|
||||
object->ref = 1;
|
||||
hr = IWineD3DDevice_CreateVolume(This->WineD3DDevice, width, height, depth, usage,
|
||||
format, pool, &object->wineD3DVolume, (IUnknown *)object);
|
||||
hr = volume_init(object, This, width, height, depth, usage, format, pool);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
ERR("(%p) CreateVolume failed, returning %#x\n", iface, hr);
|
||||
WARN("Failed to initialize volume, hr %#x.\n", hr);
|
||||
HeapFree(GetProcessHeap(), 0, object);
|
||||
*volume = NULL;
|
||||
return hr;
|
||||
}
|
||||
|
||||
@ -2769,7 +2765,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateVolume(IWineD3DDeviceParent
|
||||
object->container = superior;
|
||||
object->forwardReference = superior;
|
||||
|
||||
TRACE("(%p) Created volume %p\n", iface, *volume);
|
||||
TRACE("(%p) Created volume %p\n", iface, object);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
@ -202,7 +202,7 @@ static HRESULT WINAPI IDirect3DVolume8Impl_UnlockBox(LPDIRECT3DVOLUME8 iface) {
|
||||
return hr;
|
||||
}
|
||||
|
||||
const IDirect3DVolume8Vtbl Direct3DVolume8_Vtbl =
|
||||
static const IDirect3DVolume8Vtbl Direct3DVolume8_Vtbl =
|
||||
{
|
||||
/* IUnknown */
|
||||
IDirect3DVolume8Impl_QueryInterface,
|
||||
@ -228,3 +228,22 @@ ULONG WINAPI D3D8CB_DestroyVolume(IWineD3DVolume *pVolume) {
|
||||
volumeParent->forwardReference = NULL;
|
||||
return IDirect3DVolume8_Release((IDirect3DVolume8*) volumeParent);
|
||||
}
|
||||
|
||||
HRESULT volume_init(IDirect3DVolume8Impl *volume, IDirect3DDevice8Impl *device, UINT width, UINT height,
|
||||
UINT depth, DWORD usage, WINED3DFORMAT format, WINED3DPOOL pool)
|
||||
{
|
||||
HRESULT hr;
|
||||
|
||||
volume->lpVtbl = &Direct3DVolume8_Vtbl;
|
||||
volume->ref = 1;
|
||||
|
||||
hr = IWineD3DDevice_CreateVolume(device->WineD3DDevice, width, height, depth, usage,
|
||||
format, pool, &volume->wineD3DVolume, (IUnknown *)volume);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
WARN("Failed to create wined3d volume, hr %#x.\n", hr);
|
||||
return hr;
|
||||
}
|
||||
|
||||
return D3D_OK;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user