wined3d: Merge the various resource desc structures.

This commit is contained in:
Henri Verbeet 2011-03-08 19:41:05 +01:00 committed by Alexandre Julliard
parent 1913ff3a42
commit 756fdb7c5a
27 changed files with 223 additions and 246 deletions

View File

@ -209,7 +209,7 @@ static HRESULT WINAPI d3d8_vertexbuffer_Unlock(IDirect3DVertexBuffer8 *iface)
static HRESULT WINAPI d3d8_vertexbuffer_GetDesc(IDirect3DVertexBuffer8 *iface, D3DVERTEXBUFFER_DESC *desc) static HRESULT WINAPI d3d8_vertexbuffer_GetDesc(IDirect3DVertexBuffer8 *iface, D3DVERTEXBUFFER_DESC *desc)
{ {
IDirect3DVertexBuffer8Impl *buffer = (IDirect3DVertexBuffer8Impl *)iface; IDirect3DVertexBuffer8Impl *buffer = (IDirect3DVertexBuffer8Impl *)iface;
WINED3DBUFFER_DESC wined3d_desc; struct wined3d_resource_desc wined3d_desc;
TRACE("iface %p, desc %p.\n", iface, desc); TRACE("iface %p, desc %p.\n", iface, desc);
@ -218,9 +218,9 @@ static HRESULT WINAPI d3d8_vertexbuffer_GetDesc(IDirect3DVertexBuffer8 *iface, D
wined3d_mutex_unlock(); wined3d_mutex_unlock();
desc->Type = D3DRTYPE_VERTEXBUFFER; desc->Type = D3DRTYPE_VERTEXBUFFER;
desc->Usage = wined3d_desc.Usage; desc->Usage = wined3d_desc.usage;
desc->Pool = wined3d_desc.Pool; desc->Pool = wined3d_desc.pool;
desc->Size = wined3d_desc.Size; desc->Size = wined3d_desc.size;
desc->FVF = buffer->fvf; desc->FVF = buffer->fvf;
desc->Format = D3DFMT_VERTEXDATA; desc->Format = D3DFMT_VERTEXDATA;
@ -471,7 +471,7 @@ static HRESULT WINAPI d3d8_indexbuffer_Unlock(IDirect3DIndexBuffer8 *iface)
static HRESULT WINAPI d3d8_indexbuffer_GetDesc(IDirect3DIndexBuffer8 *iface, D3DINDEXBUFFER_DESC *desc) static HRESULT WINAPI d3d8_indexbuffer_GetDesc(IDirect3DIndexBuffer8 *iface, D3DINDEXBUFFER_DESC *desc)
{ {
IDirect3DIndexBuffer8Impl *buffer = (IDirect3DIndexBuffer8Impl *)iface; IDirect3DIndexBuffer8Impl *buffer = (IDirect3DIndexBuffer8Impl *)iface;
WINED3DBUFFER_DESC wined3d_desc; struct wined3d_resource_desc wined3d_desc;
TRACE("iface %p, desc %p.\n", iface, desc); TRACE("iface %p, desc %p.\n", iface, desc);
@ -481,9 +481,9 @@ static HRESULT WINAPI d3d8_indexbuffer_GetDesc(IDirect3DIndexBuffer8 *iface, D3D
desc->Format = d3dformat_from_wined3dformat(buffer->format); desc->Format = d3dformat_from_wined3dformat(buffer->format);
desc->Type = D3DRTYPE_INDEXBUFFER; desc->Type = D3DRTYPE_INDEXBUFFER;
desc->Usage = wined3d_desc.Usage; desc->Usage = wined3d_desc.usage;
desc->Pool = wined3d_desc.Pool; desc->Pool = wined3d_desc.pool;
desc->Size = wined3d_desc.Size; desc->Size = wined3d_desc.size;
return D3D_OK; return D3D_OK;
} }

View File

@ -251,28 +251,28 @@ static DWORD WINAPI IDirect3DCubeTexture8Impl_GetLevelCount(IDirect3DCubeTexture
/* IDirect3DCubeTexture8 Interface follow: */ /* IDirect3DCubeTexture8 Interface follow: */
static HRESULT WINAPI IDirect3DCubeTexture8Impl_GetLevelDesc(IDirect3DCubeTexture8 *iface, static HRESULT WINAPI IDirect3DCubeTexture8Impl_GetLevelDesc(IDirect3DCubeTexture8 *iface,
UINT Level, D3DSURFACE_DESC *pDesc) UINT level, D3DSURFACE_DESC *desc)
{ {
IDirect3DCubeTexture8Impl *This = impl_from_IDirect3DCubeTexture8(iface); IDirect3DCubeTexture8Impl *This = impl_from_IDirect3DCubeTexture8(iface);
struct wined3d_resource_desc wined3d_desc;
HRESULT hr; HRESULT hr;
WINED3DSURFACE_DESC wined3ddesc;
TRACE("iface %p, level %u, desc %p.\n", iface, Level, pDesc); TRACE("iface %p, level %u, desc %p.\n", iface, level, desc);
wined3d_mutex_lock(); wined3d_mutex_lock();
hr = IWineD3DCubeTexture_GetLevelDesc(This->wineD3DCubeTexture, Level, &wined3ddesc); hr = IWineD3DCubeTexture_GetLevelDesc(This->wineD3DCubeTexture, level, &wined3d_desc);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.format); desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
pDesc->Type = wined3ddesc.resource_type; desc->Type = wined3d_desc.resource_type;
pDesc->Usage = wined3ddesc.usage; desc->Usage = wined3d_desc.usage;
pDesc->Pool = wined3ddesc.pool; desc->Pool = wined3d_desc.pool;
pDesc->Size = wined3ddesc.size; desc->Size = wined3d_desc.size;
pDesc->MultiSampleType = wined3ddesc.multisample_type; desc->MultiSampleType = wined3d_desc.multisample_type;
pDesc->Width = wined3ddesc.width; desc->Width = wined3d_desc.width;
pDesc->Height = wined3ddesc.height; desc->Height = wined3d_desc.height;
} }
return hr; return hr;

View File

@ -923,13 +923,14 @@ static HRESULT WINAPI IDirect3DDevice8Impl_CreateImageSurface(IDirect3DDevice8 *
return hr; return hr;
} }
static HRESULT WINAPI IDirect3DDevice8Impl_CopyRects(LPDIRECT3DDEVICE8 iface, IDirect3DSurface8 *pSourceSurface, CONST RECT *pSourceRects, UINT cRects, IDirect3DSurface8 *pDestinationSurface, CONST POINT *pDestPoints) { static HRESULT WINAPI IDirect3DDevice8Impl_CopyRects(IDirect3DDevice8 *iface,
IDirect3DSurface8 *pSourceSurface, const RECT *pSourceRects, UINT cRects,
IDirect3DSurface8 *pDestinationSurface, const POINT *pDestPoints)
{
IDirect3DSurface8Impl *Source = (IDirect3DSurface8Impl *) pSourceSurface; IDirect3DSurface8Impl *Source = (IDirect3DSurface8Impl *) pSourceSurface;
IDirect3DSurface8Impl *Dest = (IDirect3DSurface8Impl *) pDestinationSurface; IDirect3DSurface8Impl *Dest = (IDirect3DSurface8Impl *) pDestinationSurface;
HRESULT hr = WINED3D_OK;
enum wined3d_format_id srcFormat, destFormat; enum wined3d_format_id srcFormat, destFormat;
WINED3DSURFACE_DESC winedesc; struct wined3d_resource_desc wined3d_desc;
TRACE("iface %p, src_surface %p, src_rects %p, rect_count %u, dst_surface %p, dst_points %p.\n", TRACE("iface %p, src_surface %p, src_rects %p, rect_count %u, dst_surface %p, dst_points %p.\n",
iface, pSourceSurface, pSourceRects, cRects, pDestinationSurface, pDestPoints); iface, pSourceSurface, pSourceRects, cRects, pDestinationSurface, pDestPoints);
@ -938,11 +939,11 @@ static HRESULT WINAPI IDirect3DDevice8Impl_CopyRects(LPDIRECT3DDEVICE8 iface, ID
* destination texture is in WINED3DPOOL_DEFAULT. */ * destination texture is in WINED3DPOOL_DEFAULT. */
wined3d_mutex_lock(); wined3d_mutex_lock();
IWineD3DSurface_GetDesc(Source->wineD3DSurface, &winedesc); IWineD3DSurface_GetDesc(Source->wineD3DSurface, &wined3d_desc);
srcFormat = winedesc.format; srcFormat = wined3d_desc.format;
IWineD3DSurface_GetDesc(Dest->wineD3DSurface, &winedesc); IWineD3DSurface_GetDesc(Dest->wineD3DSurface, &wined3d_desc);
destFormat = winedesc.format; destFormat = wined3d_desc.format;
/* Check that the source and destination formats match */ /* Check that the source and destination formats match */
if (srcFormat != destFormat && WINED3DFMT_UNKNOWN != destFormat) if (srcFormat != destFormat && WINED3DFMT_UNKNOWN != destFormat)
@ -976,7 +977,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_CopyRects(LPDIRECT3DDEVICE8 iface, ID
} }
wined3d_mutex_unlock(); wined3d_mutex_unlock();
return hr; return WINED3D_OK;
} }
static HRESULT WINAPI IDirect3DDevice8Impl_UpdateTexture(IDirect3DDevice8 *iface, static HRESULT WINAPI IDirect3DDevice8Impl_UpdateTexture(IDirect3DDevice8 *iface,

View File

@ -187,24 +187,25 @@ static HRESULT WINAPI IDirect3DSurface8Impl_GetContainer(LPDIRECT3DSURFACE8 ifac
return res; return res;
} }
static HRESULT WINAPI IDirect3DSurface8Impl_GetDesc(LPDIRECT3DSURFACE8 iface, D3DSURFACE_DESC *pDesc) { static HRESULT WINAPI IDirect3DSurface8Impl_GetDesc(IDirect3DSurface8 *iface, D3DSURFACE_DESC *desc)
{
IDirect3DSurface8Impl *This = (IDirect3DSurface8Impl *)iface; IDirect3DSurface8Impl *This = (IDirect3DSurface8Impl *)iface;
WINED3DSURFACE_DESC wined3ddesc; struct wined3d_resource_desc wined3d_desc;
TRACE("iface %p, desc %p.\n", iface, pDesc); TRACE("iface %p, desc %p.\n", iface, desc);
wined3d_mutex_lock(); wined3d_mutex_lock();
IWineD3DSurface_GetDesc(This->wineD3DSurface, &wined3ddesc); IWineD3DSurface_GetDesc(This->wineD3DSurface, &wined3d_desc);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.format); desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
pDesc->Type = wined3ddesc.resource_type; desc->Type = wined3d_desc.resource_type;
pDesc->Usage = wined3ddesc.usage; desc->Usage = wined3d_desc.usage;
pDesc->Pool = wined3ddesc.pool; desc->Pool = wined3d_desc.pool;
pDesc->Size = wined3ddesc.size; desc->Size = wined3d_desc.size;
pDesc->MultiSampleType = wined3ddesc.multisample_type; desc->MultiSampleType = wined3d_desc.multisample_type;
pDesc->Width = wined3ddesc.width; desc->Width = wined3d_desc.width;
pDesc->Height = wined3ddesc.height; desc->Height = wined3d_desc.height;
return D3D_OK; return D3D_OK;
} }

View File

@ -247,30 +247,29 @@ static DWORD WINAPI IDirect3DTexture8Impl_GetLevelCount(IDirect3DTexture8 *iface
return ret; return ret;
} }
/* IDirect3DTexture8 Interface follow: */ static HRESULT WINAPI IDirect3DTexture8Impl_GetLevelDesc(IDirect3DTexture8 *iface,
static HRESULT WINAPI IDirect3DTexture8Impl_GetLevelDesc(IDirect3DTexture8 *iface, UINT Level, UINT level, D3DSURFACE_DESC *desc)
D3DSURFACE_DESC *pDesc)
{ {
IDirect3DTexture8Impl *This = impl_from_IDirect3DTexture8(iface); IDirect3DTexture8Impl *This = impl_from_IDirect3DTexture8(iface);
WINED3DSURFACE_DESC wined3ddesc; struct wined3d_resource_desc wined3d_desc;
HRESULT hr; HRESULT hr;
TRACE("iface %p, level %u, desc %p.\n", iface, Level, pDesc); TRACE("iface %p, level %u, desc %p.\n", iface, level, desc);
wined3d_mutex_lock(); wined3d_mutex_lock();
hr = IWineD3DTexture_GetLevelDesc(This->wineD3DTexture, Level, &wined3ddesc); hr = IWineD3DTexture_GetLevelDesc(This->wineD3DTexture, level, &wined3d_desc);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.format); desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
pDesc->Type = wined3ddesc.resource_type; desc->Type = wined3d_desc.resource_type;
pDesc->Usage = wined3ddesc.usage; desc->Usage = wined3d_desc.usage;
pDesc->Pool = wined3ddesc.pool; desc->Pool = wined3d_desc.pool;
pDesc->Size = wined3ddesc.size; desc->Size = wined3d_desc.size;
pDesc->MultiSampleType = wined3ddesc.multisample_type; desc->MultiSampleType = wined3d_desc.multisample_type;
pDesc->Width = wined3ddesc.width; desc->Width = wined3d_desc.width;
pDesc->Height = wined3ddesc.height; desc->Height = wined3d_desc.height;
} }
return hr; return hr;

View File

@ -186,25 +186,25 @@ static HRESULT WINAPI IDirect3DVolume8Impl_GetContainer(IDirect3DVolume8 *iface,
return res; return res;
} }
static HRESULT WINAPI IDirect3DVolume8Impl_GetDesc(IDirect3DVolume8 *iface, D3DVOLUME_DESC *pDesc) static HRESULT WINAPI IDirect3DVolume8Impl_GetDesc(IDirect3DVolume8 *iface, D3DVOLUME_DESC *desc)
{ {
IDirect3DVolume8Impl *This = impl_from_IDirect3DVolume8(iface); IDirect3DVolume8Impl *This = impl_from_IDirect3DVolume8(iface);
WINED3DVOLUME_DESC wined3ddesc; struct wined3d_resource_desc wined3d_desc;
TRACE("iface %p, desc %p.\n", iface, pDesc); TRACE("iface %p, desc %p.\n", iface, desc);
wined3d_mutex_lock(); wined3d_mutex_lock();
IWineD3DVolume_GetDesc(This->wineD3DVolume, &wined3ddesc); IWineD3DVolume_GetDesc(This->wineD3DVolume, &wined3d_desc);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.Format); desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
pDesc->Type = wined3ddesc.Type; desc->Type = wined3d_desc.resource_type;
pDesc->Usage = wined3ddesc.Usage; desc->Usage = wined3d_desc.usage;
pDesc->Pool = wined3ddesc.Pool; desc->Pool = wined3d_desc.pool;
pDesc->Size = wined3ddesc.Size; desc->Size = wined3d_desc.size;
pDesc->Width = wined3ddesc.Width; desc->Width = wined3d_desc.width;
pDesc->Height = wined3ddesc.Height; desc->Height = wined3d_desc.height;
pDesc->Depth = wined3ddesc.Depth; desc->Depth = wined3d_desc.depth;
return D3D_OK; return D3D_OK;
} }

View File

@ -224,28 +224,29 @@ static DWORD WINAPI IDirect3DVolumeTexture8Impl_GetLevelCount(LPDIRECT3DVOLUMETE
return ret; return ret;
} }
/* IDirect3DVolumeTexture8 Interface follow: */ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_GetLevelDesc(IDirect3DVolumeTexture8 *iface,
static HRESULT WINAPI IDirect3DVolumeTexture8Impl_GetLevelDesc(LPDIRECT3DVOLUMETEXTURE8 iface, UINT Level, D3DVOLUME_DESC* pDesc) { UINT level, D3DVOLUME_DESC *desc)
{
IDirect3DVolumeTexture8Impl *This = (IDirect3DVolumeTexture8Impl *)iface; IDirect3DVolumeTexture8Impl *This = (IDirect3DVolumeTexture8Impl *)iface;
WINED3DVOLUME_DESC wined3ddesc; struct wined3d_resource_desc wined3d_desc;
HRESULT hr; HRESULT hr;
TRACE("iface %p, level %u, desc %p.\n", iface, Level, pDesc); TRACE("iface %p, level %u, desc %p.\n", iface, level, desc);
wined3d_mutex_lock(); wined3d_mutex_lock();
hr = IWineD3DVolumeTexture_GetLevelDesc(This->wineD3DVolumeTexture, Level, &wined3ddesc); hr = IWineD3DVolumeTexture_GetLevelDesc(This->wineD3DVolumeTexture, level, &wined3d_desc);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.Format); desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
pDesc->Type = wined3ddesc.Type; desc->Type = wined3d_desc.resource_type;
pDesc->Usage = wined3ddesc.Usage; desc->Usage = wined3d_desc.usage;
pDesc->Pool = wined3ddesc.Pool; desc->Pool = wined3d_desc.pool;
pDesc->Size = wined3ddesc.Size; desc->Size = wined3d_desc.size;
pDesc->Width = wined3ddesc.Width; desc->Width = wined3d_desc.width;
pDesc->Height = wined3ddesc.Height; desc->Height = wined3d_desc.height;
pDesc->Depth = wined3ddesc.Depth; desc->Depth = wined3d_desc.depth;
} }
return hr; return hr;

View File

@ -211,7 +211,7 @@ static HRESULT WINAPI d3d9_vertexbuffer_Unlock(IDirect3DVertexBuffer9 *iface)
static HRESULT WINAPI d3d9_vertexbuffer_GetDesc(IDirect3DVertexBuffer9 *iface, D3DVERTEXBUFFER_DESC *desc) static HRESULT WINAPI d3d9_vertexbuffer_GetDesc(IDirect3DVertexBuffer9 *iface, D3DVERTEXBUFFER_DESC *desc)
{ {
IDirect3DVertexBuffer9Impl *buffer = (IDirect3DVertexBuffer9Impl *)iface; IDirect3DVertexBuffer9Impl *buffer = (IDirect3DVertexBuffer9Impl *)iface;
WINED3DBUFFER_DESC wined3d_desc; struct wined3d_resource_desc wined3d_desc;
TRACE("iface %p, desc %p.\n", iface, desc); TRACE("iface %p, desc %p.\n", iface, desc);
@ -220,9 +220,9 @@ static HRESULT WINAPI d3d9_vertexbuffer_GetDesc(IDirect3DVertexBuffer9 *iface, D
wined3d_mutex_unlock(); wined3d_mutex_unlock();
desc->Format = D3DFMT_VERTEXDATA; desc->Format = D3DFMT_VERTEXDATA;
desc->Usage = wined3d_desc.Usage; desc->Usage = wined3d_desc.usage;
desc->Pool = wined3d_desc.Pool; desc->Pool = wined3d_desc.pool;
desc->Size = wined3d_desc.Size; desc->Size = wined3d_desc.size;
desc->Type = D3DRTYPE_VERTEXBUFFER; desc->Type = D3DRTYPE_VERTEXBUFFER;
desc->FVF = buffer->fvf; desc->FVF = buffer->fvf;
@ -473,7 +473,7 @@ static HRESULT WINAPI d3d9_indexbuffer_Unlock(IDirect3DIndexBuffer9 *iface)
static HRESULT WINAPI d3d9_indexbuffer_GetDesc(IDirect3DIndexBuffer9 *iface, D3DINDEXBUFFER_DESC *desc) static HRESULT WINAPI d3d9_indexbuffer_GetDesc(IDirect3DIndexBuffer9 *iface, D3DINDEXBUFFER_DESC *desc)
{ {
IDirect3DIndexBuffer9Impl *buffer = (IDirect3DIndexBuffer9Impl *)iface; IDirect3DIndexBuffer9Impl *buffer = (IDirect3DIndexBuffer9Impl *)iface;
WINED3DBUFFER_DESC wined3d_desc; struct wined3d_resource_desc wined3d_desc;
TRACE("iface %p, desc %p.\n", iface, desc); TRACE("iface %p, desc %p.\n", iface, desc);
@ -482,9 +482,9 @@ static HRESULT WINAPI d3d9_indexbuffer_GetDesc(IDirect3DIndexBuffer9 *iface, D3D
wined3d_mutex_unlock(); wined3d_mutex_unlock();
desc->Format = d3dformat_from_wined3dformat(buffer->format); desc->Format = d3dformat_from_wined3dformat(buffer->format);
desc->Usage = wined3d_desc.Usage; desc->Usage = wined3d_desc.usage;
desc->Pool = wined3d_desc.Pool; desc->Pool = wined3d_desc.pool;
desc->Size = wined3d_desc.Size; desc->Size = wined3d_desc.size;
desc->Type = D3DRTYPE_INDEXBUFFER; desc->Type = D3DRTYPE_INDEXBUFFER;
return D3D_OK; return D3D_OK;

View File

@ -266,27 +266,29 @@ static void WINAPI IDirect3DCubeTexture9Impl_GenerateMipSubLevels(LPDIRECT3DCUBE
} }
/* IDirect3DCubeTexture9 Interface follow: */ /* IDirect3DCubeTexture9 Interface follow: */
static HRESULT WINAPI IDirect3DCubeTexture9Impl_GetLevelDesc(LPDIRECT3DCUBETEXTURE9 iface, UINT Level, D3DSURFACE_DESC* pDesc) { static HRESULT WINAPI IDirect3DCubeTexture9Impl_GetLevelDesc(IDirect3DCubeTexture9 *iface,
UINT level, D3DSURFACE_DESC *desc)
{
IDirect3DCubeTexture9Impl *This = (IDirect3DCubeTexture9Impl *)iface; IDirect3DCubeTexture9Impl *This = (IDirect3DCubeTexture9Impl *)iface;
WINED3DSURFACE_DESC wined3ddesc; struct wined3d_resource_desc wined3d_desc;
HRESULT hr; HRESULT hr;
TRACE("iface %p, level %u, desc %p.\n", iface, Level, pDesc); TRACE("iface %p, level %u, desc %p.\n", iface, level, desc);
wined3d_mutex_lock(); wined3d_mutex_lock();
hr = IWineD3DCubeTexture_GetLevelDesc(This->wineD3DCubeTexture, Level, &wined3ddesc); hr = IWineD3DCubeTexture_GetLevelDesc(This->wineD3DCubeTexture, level, &wined3d_desc);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.format); desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
pDesc->Type = wined3ddesc.resource_type; desc->Type = wined3d_desc.resource_type;
pDesc->Usage = wined3ddesc.usage; desc->Usage = wined3d_desc.usage;
pDesc->Pool = wined3ddesc.pool; desc->Pool = wined3d_desc.pool;
pDesc->MultiSampleType = wined3ddesc.multisample_type; desc->MultiSampleType = wined3d_desc.multisample_type;
pDesc->MultiSampleQuality = wined3ddesc.multisample_quality; desc->MultiSampleQuality = wined3d_desc.multisample_quality;
pDesc->Width = wined3ddesc.width; desc->Width = wined3d_desc.width;
pDesc->Height = wined3ddesc.height; desc->Height = wined3d_desc.height;
} }
return hr; return hr;

View File

@ -1070,10 +1070,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_ColorFill(IDirect3DDevice9Ex *iface,
}; };
IDirect3DDevice9Impl *This = (IDirect3DDevice9Impl *)iface; IDirect3DDevice9Impl *This = (IDirect3DDevice9Impl *)iface;
IDirect3DSurface9Impl *surface = (IDirect3DSurface9Impl *)pSurface; IDirect3DSurface9Impl *surface = (IDirect3DSurface9Impl *)pSurface;
WINED3DPOOL pool; struct wined3d_resource_desc desc;
WINED3DRESOURCETYPE restype;
DWORD usage;
WINED3DSURFACE_DESC desc;
HRESULT hr; HRESULT hr;
TRACE("iface %p, surface %p, rect %p, color 0x%08x.\n", iface, pSurface, pRect, color); TRACE("iface %p, surface %p, rect %p, color 0x%08x.\n", iface, pSurface, pRect, color);
@ -1081,14 +1078,12 @@ static HRESULT WINAPI IDirect3DDevice9Impl_ColorFill(IDirect3DDevice9Ex *iface,
wined3d_mutex_lock(); wined3d_mutex_lock();
IWineD3DSurface_GetDesc(surface->wineD3DSurface, &desc); IWineD3DSurface_GetDesc(surface->wineD3DSurface, &desc);
usage = desc.usage;
pool = desc.pool;
restype = desc.resource_type;
/* This method is only allowed with surfaces that are render targets, or offscreen plain surfaces /* This method is only allowed with surfaces that are render targets, or
* in D3DPOOL_DEFAULT * offscreen plain surfaces in D3DPOOL_DEFAULT. */
*/ if (!(desc.usage & WINED3DUSAGE_RENDERTARGET)
if(!(usage & WINED3DUSAGE_RENDERTARGET) && (pool != WINED3DPOOL_DEFAULT || restype != WINED3DRTYPE_SURFACE)) { && (desc.pool != WINED3DPOOL_DEFAULT || desc.resource_type != WINED3DRTYPE_SURFACE))
{
wined3d_mutex_unlock(); wined3d_mutex_unlock();
WARN("Surface is not a render target, or not a stand-alone D3DPOOL_DEFAULT surface\n"); WARN("Surface is not a render target, or not a stand-alone D3DPOOL_DEFAULT surface\n");
return D3DERR_INVALIDCALL; return D3DERR_INVALIDCALL;

View File

@ -239,24 +239,25 @@ static HRESULT WINAPI IDirect3DSurface9Impl_GetContainer(LPDIRECT3DSURFACE9 ifac
return res; return res;
} }
static HRESULT WINAPI IDirect3DSurface9Impl_GetDesc(LPDIRECT3DSURFACE9 iface, D3DSURFACE_DESC* pDesc) { static HRESULT WINAPI IDirect3DSurface9Impl_GetDesc(IDirect3DSurface9 *iface, D3DSURFACE_DESC *desc)
{
IDirect3DSurface9Impl *This = (IDirect3DSurface9Impl *)iface; IDirect3DSurface9Impl *This = (IDirect3DSurface9Impl *)iface;
WINED3DSURFACE_DESC wined3ddesc; struct wined3d_resource_desc wined3d_desc;
TRACE("iface %p, desc %p.\n", iface, pDesc); TRACE("iface %p, desc %p.\n", iface, desc);
wined3d_mutex_lock(); wined3d_mutex_lock();
IWineD3DSurface_GetDesc(This->wineD3DSurface, &wined3ddesc); IWineD3DSurface_GetDesc(This->wineD3DSurface, &wined3d_desc);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.format); desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
pDesc->Type = wined3ddesc.resource_type; desc->Type = wined3d_desc.resource_type;
pDesc->Usage = wined3ddesc.usage; desc->Usage = wined3d_desc.usage;
pDesc->Pool = wined3ddesc.pool; desc->Pool = wined3d_desc.pool;
pDesc->MultiSampleType = wined3ddesc.multisample_type; desc->MultiSampleType = wined3d_desc.multisample_type;
pDesc->MultiSampleQuality = wined3ddesc.multisample_quality; desc->MultiSampleQuality = wined3d_desc.multisample_quality;
pDesc->Width = wined3ddesc.width; desc->Width = wined3d_desc.width;
pDesc->Height = wined3ddesc.height; desc->Height = wined3d_desc.height;
return D3D_OK; return D3D_OK;
} }

View File

@ -262,28 +262,29 @@ static void WINAPI IDirect3DTexture9Impl_GenerateMipSubLevels(LPDIRECT3DTEXTURE9
wined3d_mutex_unlock(); wined3d_mutex_unlock();
} }
/* IDirect3DTexture9 Interface follow: */ static HRESULT WINAPI IDirect3DTexture9Impl_GetLevelDesc(IDirect3DTexture9 *iface,
static HRESULT WINAPI IDirect3DTexture9Impl_GetLevelDesc(LPDIRECT3DTEXTURE9 iface, UINT Level, D3DSURFACE_DESC* pDesc) { UINT level, D3DSURFACE_DESC *desc)
{
IDirect3DTexture9Impl *This = (IDirect3DTexture9Impl *)iface; IDirect3DTexture9Impl *This = (IDirect3DTexture9Impl *)iface;
WINED3DSURFACE_DESC wined3ddesc; struct wined3d_resource_desc wined3d_desc;
HRESULT hr; HRESULT hr;
TRACE("iface %p, level %u, desc %p.\n", iface, Level, pDesc); TRACE("iface %p, level %u, desc %p.\n", iface, level, desc);
wined3d_mutex_lock(); wined3d_mutex_lock();
hr = IWineD3DTexture_GetLevelDesc(This->wineD3DTexture, Level, &wined3ddesc); hr = IWineD3DTexture_GetLevelDesc(This->wineD3DTexture, level, &wined3d_desc);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.format); desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
pDesc->Type = wined3ddesc.resource_type; desc->Type = wined3d_desc.resource_type;
pDesc->Usage = wined3ddesc.usage; desc->Usage = wined3d_desc.usage;
pDesc->Pool = wined3ddesc.pool; desc->Pool = wined3d_desc.pool;
pDesc->MultiSampleType = wined3ddesc.multisample_type; desc->MultiSampleType = wined3d_desc.multisample_type;
pDesc->MultiSampleQuality = wined3ddesc.multisample_quality; desc->MultiSampleQuality = wined3d_desc.multisample_quality;
pDesc->Width = wined3ddesc.width; desc->Width = wined3d_desc.width;
pDesc->Height = wined3ddesc.height; desc->Height = wined3d_desc.height;
} }
return hr; return hr;

View File

@ -176,25 +176,26 @@ static HRESULT WINAPI IDirect3DVolume9Impl_GetContainer(LPDIRECT3DVOLUME9 iface,
return res; return res;
} }
static HRESULT WINAPI IDirect3DVolume9Impl_GetDesc(LPDIRECT3DVOLUME9 iface, D3DVOLUME_DESC* pDesc) { static HRESULT WINAPI IDirect3DVolume9Impl_GetDesc(IDirect3DVolume9 *iface, D3DVOLUME_DESC *desc)
{
IDirect3DVolume9Impl *This = (IDirect3DVolume9Impl *)iface; IDirect3DVolume9Impl *This = (IDirect3DVolume9Impl *)iface;
WINED3DVOLUME_DESC wined3ddesc; struct wined3d_resource_desc wined3d_desc;
TRACE("iface %p, desc %p.\n", iface, pDesc); TRACE("iface %p, desc %p.\n", iface, desc);
wined3d_mutex_lock(); wined3d_mutex_lock();
IWineD3DVolume_GetDesc(This->wineD3DVolume, &wined3ddesc); IWineD3DVolume_GetDesc(This->wineD3DVolume, &wined3d_desc);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.Format); desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
pDesc->Type = wined3ddesc.Type; desc->Type = wined3d_desc.resource_type;
pDesc->Usage = wined3ddesc.Usage; desc->Usage = wined3d_desc.usage;
pDesc->Pool = wined3ddesc.Pool; desc->Pool = wined3d_desc.pool;
pDesc->Width = wined3ddesc.Width; desc->Width = wined3d_desc.width;
pDesc->Height = wined3ddesc.Height; desc->Height = wined3d_desc.height;
pDesc->Depth = wined3ddesc.Depth; desc->Depth = wined3d_desc.depth;
return D3D_OK; return D3D_OK;
} }

View File

@ -287,29 +287,30 @@ static void WINAPI IDirect3DVolumeTexture9Impl_GenerateMipSubLevels(LPDIRECT3DVO
wined3d_mutex_unlock(); wined3d_mutex_unlock();
} }
/* IDirect3DVolumeTexture9 Interface follow: */ static HRESULT WINAPI IDirect3DVolumeTexture9Impl_GetLevelDesc(IDirect3DVolumeTexture9 *iface,
static HRESULT WINAPI IDirect3DVolumeTexture9Impl_GetLevelDesc(LPDIRECT3DVOLUMETEXTURE9 iface, UINT Level, D3DVOLUME_DESC* pDesc) { UINT level, D3DVOLUME_DESC *desc)
{
IDirect3DVolumeTexture9Impl *This = (IDirect3DVolumeTexture9Impl *)iface; IDirect3DVolumeTexture9Impl *This = (IDirect3DVolumeTexture9Impl *)iface;
WINED3DVOLUME_DESC wined3ddesc; struct wined3d_resource_desc wined3d_desc;
HRESULT hr; HRESULT hr;
TRACE("iface %p, level %u, desc %p.\n", iface, Level, pDesc); TRACE("iface %p, level %u, desc %p.\n", iface, level, desc);
wined3d_mutex_lock(); wined3d_mutex_lock();
hr = IWineD3DVolumeTexture_GetLevelDesc(This->wineD3DVolumeTexture, Level, &wined3ddesc); hr = IWineD3DVolumeTexture_GetLevelDesc(This->wineD3DVolumeTexture, level, &wined3d_desc);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.Format); desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
pDesc->Type = wined3ddesc.Type; desc->Type = wined3d_desc.resource_type;
pDesc->Usage = wined3ddesc.Usage; desc->Usage = wined3d_desc.usage;
pDesc->Pool = wined3ddesc.Pool; desc->Pool = wined3d_desc.pool;
pDesc->Width = wined3ddesc.Width; desc->Width = wined3d_desc.width;
pDesc->Height = wined3ddesc.Height; desc->Height = wined3d_desc.height;
pDesc->Depth = wined3ddesc.Depth; desc->Depth = wined3d_desc.depth;
} }
return hr; return hr;

View File

@ -2515,6 +2515,7 @@ static HRESULT WINAPI ddraw7_StartModeTest(IDirectDraw7 *iface, SIZE *Modes, DWO
HRESULT WINAPI ddraw_recreate_surfaces_cb(IDirectDrawSurface7 *surf, DDSURFACEDESC2 *desc, void *Context) HRESULT WINAPI ddraw_recreate_surfaces_cb(IDirectDrawSurface7 *surf, DDSURFACEDESC2 *desc, void *Context)
{ {
IDirectDrawSurfaceImpl *surfImpl = (IDirectDrawSurfaceImpl *)surf; IDirectDrawSurfaceImpl *surfImpl = (IDirectDrawSurfaceImpl *)surf;
struct wined3d_resource_desc wined3d_desc;
IDirectDrawImpl *This = surfImpl->ddraw; IDirectDrawImpl *This = surfImpl->ddraw;
struct wined3d_clipper *clipper = NULL; struct wined3d_clipper *clipper = NULL;
IWineD3DSurface *wineD3DSurface; IWineD3DSurface *wineD3DSurface;
@ -2522,16 +2523,6 @@ HRESULT WINAPI ddraw_recreate_surfaces_cb(IDirectDrawSurface7 *surf, DDSURFACEDE
void *parent; void *parent;
HRESULT hr; HRESULT hr;
WINED3DSURFACE_DESC Desc;
enum wined3d_format_id Format;
DWORD Usage;
WINED3DPOOL Pool;
WINED3DMULTISAMPLE_TYPE MultiSampleType;
DWORD MultiSampleQuality;
UINT Width;
UINT Height;
TRACE("surface %p, surface_desc %p, context %p.\n", TRACE("surface %p, surface_desc %p, context %p.\n",
surf, desc, Context); surf, desc, Context);
@ -2549,20 +2540,13 @@ HRESULT WINAPI ddraw_recreate_surfaces_cb(IDirectDrawSurface7 *surf, DDSURFACEDE
IWineD3DSurface_GetClipper(wineD3DSurface, &clipper); IWineD3DSurface_GetClipper(wineD3DSurface, &clipper);
/* Get the surface properties */ /* Get the surface properties */
IWineD3DSurface_GetDesc(wineD3DSurface, &Desc); IWineD3DSurface_GetDesc(wineD3DSurface, &wined3d_desc);
Format = Desc.format;
Usage = Desc.usage;
Pool = Desc.pool;
MultiSampleType = Desc.multisample_type;
MultiSampleQuality = Desc.multisample_quality;
Width = Desc.width;
Height = Desc.height;
parent = IWineD3DSurface_GetParent(wineD3DSurface); parent = IWineD3DSurface_GetParent(wineD3DSurface);
hr = IWineD3DDevice_CreateSurface(This->wineD3DDevice, Width, Height, Format, TRUE /* Lockable */, hr = IWineD3DDevice_CreateSurface(This->wineD3DDevice, wined3d_desc.width, wined3d_desc.height,
FALSE /* Discard */, surfImpl->mipmap_level, Usage, Pool, MultiSampleType, MultiSampleQuality, wined3d_desc.format, TRUE, FALSE, surfImpl->mipmap_level, wined3d_desc.usage, wined3d_desc.pool,
This->ImplType, parent, &ddraw_null_wined3d_parent_ops, &surfImpl->WineD3DSurface); wined3d_desc.multisample_type, wined3d_desc.multisample_quality, This->ImplType,
parent, &ddraw_null_wined3d_parent_ops, &surfImpl->WineD3DSurface);
if (FAILED(hr)) if (FAILED(hr))
{ {
surfImpl->WineD3DSurface = wineD3DSurface; surfImpl->WineD3DSurface = wineD3DSurface;

View File

@ -2497,7 +2497,7 @@ IDirect3DDeviceImpl_3_GetRenderState(IDirect3DDevice3 *iface,
HRESULT hr; HRESULT hr;
BOOL tex_alpha = FALSE; BOOL tex_alpha = FALSE;
IWineD3DBaseTexture *tex = NULL; IWineD3DBaseTexture *tex = NULL;
WINED3DSURFACE_DESC desc; struct wined3d_resource_desc desc;
DDPIXELFORMAT ddfmt; DDPIXELFORMAT ddfmt;
hr = IWineD3DDevice_GetTexture(This->wineD3DDevice, hr = IWineD3DDevice_GetTexture(This->wineD3DDevice,
@ -2805,7 +2805,7 @@ IDirect3DDeviceImpl_3_SetRenderState(IDirect3DDevice3 *iface,
{ {
BOOL tex_alpha = FALSE; BOOL tex_alpha = FALSE;
IWineD3DBaseTexture *tex = NULL; IWineD3DBaseTexture *tex = NULL;
WINED3DSURFACE_DESC desc; struct wined3d_resource_desc desc;
DDPIXELFORMAT ddfmt; DDPIXELFORMAT ddfmt;
hr = IWineD3DDevice_GetTexture(This->wineD3DDevice, hr = IWineD3DDevice_GetTexture(This->wineD3DDevice,
@ -4146,9 +4146,9 @@ IDirect3DDeviceImpl_7_DrawIndexedPrimitiveVB(IDirect3DDevice7 *iface,
IDirect3DDeviceImpl *This = (IDirect3DDeviceImpl *)iface; IDirect3DDeviceImpl *This = (IDirect3DDeviceImpl *)iface;
IDirect3DVertexBufferImpl *vb = (IDirect3DVertexBufferImpl *)D3DVertexBuf; IDirect3DVertexBufferImpl *vb = (IDirect3DVertexBufferImpl *)D3DVertexBuf;
DWORD stride = get_flexible_vertex_size(vb->fvf); DWORD stride = get_flexible_vertex_size(vb->fvf);
struct wined3d_resource_desc desc;
WORD *LockedIndices; WORD *LockedIndices;
HRESULT hr; HRESULT hr;
WINED3DBUFFER_DESC desc;
TRACE("iface %p, primitive_type %#x, vb %p, start_vertex %u, vertex_count %u, indices %p, index_count %u, flags %#x.\n", TRACE("iface %p, primitive_type %#x, vb %p, start_vertex %u, vertex_count %u, indices %p, index_count %u, flags %#x.\n",
iface, PrimitiveType, D3DVertexBuf, StartVertex, NumVertices, Indices, IndexCount, Flags); iface, PrimitiveType, D3DVertexBuf, StartVertex, NumVertices, Indices, IndexCount, Flags);
@ -4174,9 +4174,9 @@ IDirect3DDeviceImpl_7_DrawIndexedPrimitiveVB(IDirect3DDevice7 *iface,
/* check that the buffer is large enough to hold the indices, /* check that the buffer is large enough to hold the indices,
* reallocate if necessary. */ * reallocate if necessary. */
wined3d_buffer_get_desc(This->indexbuffer, &desc); wined3d_buffer_get_desc(This->indexbuffer, &desc);
if (desc.Size < IndexCount * sizeof(WORD)) if (desc.size < IndexCount * sizeof(WORD))
{ {
UINT size = max(desc.Size * 2, IndexCount * sizeof(WORD)); UINT size = max(desc.size * 2, IndexCount * sizeof(WORD));
struct wined3d_buffer *buffer; struct wined3d_buffer *buffer;
TRACE("Growing index buffer to %u bytes\n", size); TRACE("Growing index buffer to %u bytes\n", size);
@ -4575,9 +4575,9 @@ IDirect3DDeviceImpl_3_SetTexture(IDirect3DDevice3 *iface,
{ {
/* This fixup is required by the way D3DTBLEND_MODULATE maps to texture stage states. /* This fixup is required by the way D3DTBLEND_MODULATE maps to texture stage states.
See IDirect3DDeviceImpl_3_SetRenderState for details. */ See IDirect3DDeviceImpl_3_SetRenderState for details. */
struct wined3d_resource_desc desc;
BOOL tex_alpha = FALSE; BOOL tex_alpha = FALSE;
IWineD3DBaseTexture *tex = NULL; IWineD3DBaseTexture *tex = NULL;
WINED3DSURFACE_DESC desc;
DDPIXELFORMAT ddfmt; DDPIXELFORMAT ddfmt;
HRESULT result; HRESULT result;

View File

@ -3499,8 +3499,8 @@ static const struct IDirect3DTextureVtbl d3d_texture1_vtbl =
HRESULT ddraw_surface_init(IDirectDrawSurfaceImpl *surface, IDirectDrawImpl *ddraw, HRESULT ddraw_surface_init(IDirectDrawSurfaceImpl *surface, IDirectDrawImpl *ddraw,
DDSURFACEDESC2 *desc, UINT mip_level, WINED3DSURFTYPE surface_type) DDSURFACEDESC2 *desc, UINT mip_level, WINED3DSURFTYPE surface_type)
{ {
struct wined3d_resource_desc wined3d_desc;
WINED3DPOOL pool = WINED3DPOOL_DEFAULT; WINED3DPOOL pool = WINED3DPOOL_DEFAULT;
WINED3DSURFACE_DESC wined3d_desc;
enum wined3d_format_id format; enum wined3d_format_id format;
DWORD usage = 0; DWORD usage = 0;
HRESULT hr; HRESULT hr;

View File

@ -208,7 +208,7 @@ IDirect3DVertexBufferImpl_Lock(IDirect3DVertexBuffer7 *iface,
DWORD *Size) DWORD *Size)
{ {
IDirect3DVertexBufferImpl *This = (IDirect3DVertexBufferImpl *)iface; IDirect3DVertexBufferImpl *This = (IDirect3DVertexBufferImpl *)iface;
WINED3DBUFFER_DESC Desc; struct wined3d_resource_desc wined3d_desc;
HRESULT hr; HRESULT hr;
DWORD wined3d_flags = 0; DWORD wined3d_flags = 0;
@ -226,8 +226,8 @@ IDirect3DVertexBufferImpl_Lock(IDirect3DVertexBuffer7 *iface,
if(Size) if(Size)
{ {
/* Get the size, for returning it, and for locking */ /* Get the size, for returning it, and for locking */
wined3d_buffer_get_desc(This->wineD3DVertexBuffer, &Desc); wined3d_buffer_get_desc(This->wineD3DVertexBuffer, &wined3d_desc);
*Size = Desc.Size; *Size = wined3d_desc.size;
} }
hr = wined3d_buffer_map(This->wineD3DVertexBuffer, 0, 0, (BYTE **)Data, wined3d_flags); hr = wined3d_buffer_map(This->wineD3DVertexBuffer, 0, 0, (BYTE **)Data, wined3d_flags);
@ -400,20 +400,20 @@ IDirect3DVertexBufferImpl_GetVertexBufferDesc(IDirect3DVertexBuffer7 *iface,
D3DVERTEXBUFFERDESC *Desc) D3DVERTEXBUFFERDESC *Desc)
{ {
IDirect3DVertexBufferImpl *This = (IDirect3DVertexBufferImpl *)iface; IDirect3DVertexBufferImpl *This = (IDirect3DVertexBufferImpl *)iface;
WINED3DBUFFER_DESC WDesc; struct wined3d_resource_desc wined3d_desc;
TRACE("iface %p, desc %p.\n", iface, Desc); TRACE("iface %p, desc %p.\n", iface, Desc);
if(!Desc) return DDERR_INVALIDPARAMS; if(!Desc) return DDERR_INVALIDPARAMS;
EnterCriticalSection(&ddraw_cs); EnterCriticalSection(&ddraw_cs);
wined3d_buffer_get_desc(This->wineD3DVertexBuffer, &WDesc); wined3d_buffer_get_desc(This->wineD3DVertexBuffer, &wined3d_desc);
LeaveCriticalSection(&ddraw_cs); LeaveCriticalSection(&ddraw_cs);
/* Now fill the Desc structure */ /* Now fill the Desc structure */
Desc->dwCaps = This->Caps; Desc->dwCaps = This->Caps;
Desc->dwFVF = This->fvf; Desc->dwFVF = This->fvf;
Desc->dwNumVertices = WDesc.Size / get_flexible_vertex_size(This->fvf); Desc->dwNumVertices = wined3d_desc.size / get_flexible_vertex_size(This->fvf);
return D3D_OK; return D3D_OK;
} }

View File

@ -1395,14 +1395,20 @@ void CDECL wined3d_buffer_unmap(struct wined3d_buffer *buffer)
} }
} }
void CDECL wined3d_buffer_get_desc(const struct wined3d_buffer *buffer, WINED3DBUFFER_DESC *desc) void CDECL wined3d_buffer_get_desc(const struct wined3d_buffer *buffer, struct wined3d_resource_desc *desc)
{ {
TRACE("buffer %p, desc %p.\n", buffer, desc); TRACE("buffer %p, desc %p.\n", buffer, desc);
desc->Type = buffer->resource.resourceType; desc->format = buffer->resource.format->id;
desc->Usage = buffer->resource.usage; desc->resource_type = buffer->resource.resourceType;
desc->Pool = buffer->resource.pool; desc->usage = buffer->resource.usage;
desc->Size = buffer->resource.size; desc->pool = buffer->resource.pool;
desc->size = buffer->resource.size;
desc->multisample_type = WINED3DMULTISAMPLE_NONE;
desc->multisample_quality = 0;
desc->width = buffer->resource.size;
desc->height = 1;
desc->depth = 1;
} }
static const struct wined3d_resource_ops buffer_resource_ops = static const struct wined3d_resource_ops buffer_resource_ops =

View File

@ -327,7 +327,7 @@ static BOOL WINAPI IWineD3DCubeTextureImpl_IsCondNP2(IWineD3DCubeTexture *iface)
} }
static HRESULT WINAPI IWineD3DCubeTextureImpl_GetLevelDesc(IWineD3DCubeTexture *iface, static HRESULT WINAPI IWineD3DCubeTextureImpl_GetLevelDesc(IWineD3DCubeTexture *iface,
UINT sub_resource_idx, WINED3DSURFACE_DESC *desc) UINT sub_resource_idx, struct wined3d_resource_desc *desc)
{ {
IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface;
struct wined3d_resource *sub_resource; struct wined3d_resource *sub_resource;

View File

@ -1290,7 +1290,7 @@ void stateblock_init_default_state(struct wined3d_stateblock *stateblock)
hr = IWineD3DSwapChain_GetBackBuffer(swapchain, 0, WINED3DBACKBUFFER_TYPE_MONO, &backbuffer); hr = IWineD3DSwapChain_GetBackBuffer(swapchain, 0, WINED3DBACKBUFFER_TYPE_MONO, &backbuffer);
if (SUCCEEDED(hr) && backbuffer) if (SUCCEEDED(hr) && backbuffer)
{ {
WINED3DSURFACE_DESC desc; struct wined3d_resource_desc desc;
IWineD3DSurface_GetDesc(backbuffer, &desc); IWineD3DSurface_GetDesc(backbuffer, &desc);
IWineD3DSurface_Release(backbuffer); IWineD3DSurface_Release(backbuffer);

View File

@ -157,7 +157,7 @@ struct wined3d_resource * WINAPI IWineD3DBaseSurfaceImpl_GetResource(IWineD3DSur
return &((IWineD3DSurfaceImpl *)iface)->resource; return &((IWineD3DSurfaceImpl *)iface)->resource;
} }
void WINAPI IWineD3DBaseSurfaceImpl_GetDesc(IWineD3DSurface *iface, WINED3DSURFACE_DESC *desc) void WINAPI IWineD3DBaseSurfaceImpl_GetDesc(IWineD3DSurface *iface, struct wined3d_resource_desc *desc)
{ {
IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface; IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
@ -172,6 +172,7 @@ void WINAPI IWineD3DBaseSurfaceImpl_GetDesc(IWineD3DSurface *iface, WINED3DSURFA
desc->multisample_quality = surface->currentDesc.MultiSampleQuality; desc->multisample_quality = surface->currentDesc.MultiSampleQuality;
desc->width = surface->currentDesc.Width; desc->width = surface->currentDesc.Width;
desc->height = surface->currentDesc.Height; desc->height = surface->currentDesc.Height;
desc->depth = 1;
} }
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWORD flags) HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWORD flags)

View File

@ -352,7 +352,7 @@ static BOOL WINAPI IWineD3DTextureImpl_IsCondNP2(IWineD3DTexture *iface) {
} }
static HRESULT WINAPI IWineD3DTextureImpl_GetLevelDesc(IWineD3DTexture *iface, static HRESULT WINAPI IWineD3DTextureImpl_GetLevelDesc(IWineD3DTexture *iface,
UINT sub_resource_idx, WINED3DSURFACE_DESC *desc) UINT sub_resource_idx, struct wined3d_resource_desc *desc)
{ {
IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface;
struct wined3d_resource *sub_resource; struct wined3d_resource *sub_resource;

View File

@ -220,20 +220,22 @@ static WINED3DRESOURCETYPE WINAPI IWineD3DVolumeImpl_GetType(IWineD3DVolume *ifa
return resource_get_type(&((IWineD3DVolumeImpl *)iface)->resource); return resource_get_type(&((IWineD3DVolumeImpl *)iface)->resource);
} }
static void WINAPI IWineD3DVolumeImpl_GetDesc(IWineD3DVolume *iface, WINED3DVOLUME_DESC *desc) static void WINAPI IWineD3DVolumeImpl_GetDesc(IWineD3DVolume *iface, struct wined3d_resource_desc *desc)
{ {
IWineD3DVolumeImpl *volume = (IWineD3DVolumeImpl *)iface; IWineD3DVolumeImpl *volume = (IWineD3DVolumeImpl *)iface;
TRACE("iface %p, desc %p.\n", iface, desc); TRACE("iface %p, desc %p.\n", iface, desc);
desc->Format = volume->resource.format->id; desc->format = volume->resource.format->id;
desc->Type = volume->resource.resourceType; desc->resource_type = volume->resource.resourceType;
desc->Usage = volume->resource.usage; desc->usage = volume->resource.usage;
desc->Pool = volume->resource.pool; desc->pool = volume->resource.pool;
desc->Size = volume->resource.size; /* dx8 only */ desc->size = volume->resource.size; /* dx8 only */
desc->Width = volume->currentDesc.Width; desc->multisample_type = WINED3DMULTISAMPLE_NONE;
desc->Height = volume->currentDesc.Height; desc->multisample_quality = 0;
desc->Depth = volume->currentDesc.Depth; desc->width = volume->currentDesc.Width;
desc->height = volume->currentDesc.Height;
desc->depth = volume->currentDesc.Depth;
} }
static HRESULT WINAPI IWineD3DVolumeImpl_Map(IWineD3DVolume *iface, static HRESULT WINAPI IWineD3DVolumeImpl_Map(IWineD3DVolume *iface,

View File

@ -264,7 +264,7 @@ static BOOL WINAPI IWineD3DVolumeTextureImpl_IsCondNP2(IWineD3DVolumeTexture *if
} }
static HRESULT WINAPI IWineD3DVolumeTextureImpl_GetLevelDesc(IWineD3DVolumeTexture *iface, static HRESULT WINAPI IWineD3DVolumeTextureImpl_GetLevelDesc(IWineD3DVolumeTexture *iface,
UINT sub_resource_idx, WINED3DVOLUME_DESC *desc) UINT sub_resource_idx, struct wined3d_resource_desc *desc)
{ {
IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface;
struct wined3d_resource *sub_resource; struct wined3d_resource *sub_resource;

View File

@ -2214,7 +2214,7 @@ DWORD WINAPI IWineD3DBaseSurfaceImpl_SetPriority(IWineD3DSurface *iface, DWORD P
DWORD WINAPI IWineD3DBaseSurfaceImpl_GetPriority(IWineD3DSurface *iface) DECLSPEC_HIDDEN; DWORD WINAPI IWineD3DBaseSurfaceImpl_GetPriority(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
WINED3DRESOURCETYPE WINAPI IWineD3DBaseSurfaceImpl_GetType(IWineD3DSurface *iface) DECLSPEC_HIDDEN; WINED3DRESOURCETYPE WINAPI IWineD3DBaseSurfaceImpl_GetType(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
struct wined3d_resource * WINAPI IWineD3DBaseSurfaceImpl_GetResource(IWineD3DSurface *iface) DECLSPEC_HIDDEN; struct wined3d_resource * WINAPI IWineD3DBaseSurfaceImpl_GetResource(IWineD3DSurface *iface) DECLSPEC_HIDDEN;
void WINAPI IWineD3DBaseSurfaceImpl_GetDesc(IWineD3DSurface *iface, WINED3DSURFACE_DESC *desc) DECLSPEC_HIDDEN; void WINAPI IWineD3DBaseSurfaceImpl_GetDesc(IWineD3DSurface *iface, struct wined3d_resource_desc *desc) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWORD flags) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWORD flags) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetFlipStatus(IWineD3DSurface *iface, DWORD flags) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetFlipStatus(IWineD3DSurface *iface, DWORD flags) DECLSPEC_HIDDEN;
HRESULT WINAPI IWineD3DBaseSurfaceImpl_IsLost(IWineD3DSurface *iface) DECLSPEC_HIDDEN; HRESULT WINAPI IWineD3DBaseSurfaceImpl_IsLost(IWineD3DSurface *iface) DECLSPEC_HIDDEN;

View File

@ -1682,30 +1682,19 @@ typedef struct _WINED3DPRESENT_PARAMETERS
BOOL AutoRestoreDisplayMode; BOOL AutoRestoreDisplayMode;
} WINED3DPRESENT_PARAMETERS; } WINED3DPRESENT_PARAMETERS;
typedef struct _WINED3DSURFACE_DESC struct wined3d_resource_desc
{ {
enum wined3d_format_id format;
WINED3DRESOURCETYPE resource_type; WINED3DRESOURCETYPE resource_type;
enum wined3d_format_id format;
WINED3DMULTISAMPLE_TYPE multisample_type;
UINT multisample_quality;
DWORD usage; DWORD usage;
WINED3DPOOL pool; WINED3DPOOL pool;
UINT size;
WINED3DMULTISAMPLE_TYPE multisample_type;
DWORD multisample_quality;
UINT width; UINT width;
UINT height; UINT height;
} WINED3DSURFACE_DESC; UINT depth;
UINT size;
typedef struct _WINED3DVOLUME_DESC };
{
enum wined3d_format_id Format;
WINED3DRESOURCETYPE Type;
DWORD Usage;
WINED3DPOOL Pool;
UINT Size;
UINT Width;
UINT Height;
UINT Depth;
} WINED3DVOLUME_DESC;
typedef struct _WINED3DCLIPSTATUS typedef struct _WINED3DCLIPSTATUS
{ {
@ -1835,14 +1824,6 @@ typedef struct WINED3DDEVINFO_VCACHE
non user modifiable (only valid if OptMethod==1) */ non user modifiable (only valid if OptMethod==1) */
} WINED3DDEVINFO_VCACHE; } WINED3DDEVINFO_VCACHE;
typedef struct _WINED3DBUFFER_DESC
{
WINED3DRESOURCETYPE Type;
DWORD Usage;
WINED3DPOOL Pool;
UINT Size;
} WINED3DBUFFER_DESC;
typedef struct WineDirect3DStridedData typedef struct WineDirect3DStridedData
{ {
enum wined3d_format_id format; /* Format of the data */ enum wined3d_format_id format; /* Format of the data */
@ -2246,7 +2227,7 @@ interface IWineD3DSurface : IWineD3DResource
struct wined3d_resource *GetResource( struct wined3d_resource *GetResource(
); );
void GetDesc( void GetDesc(
[out] WINED3DSURFACE_DESC *desc [out] struct wined3d_resource_desc *desc
); );
HRESULT Map( HRESULT Map(
[out] WINED3DLOCKED_RECT *locked_rect, [out] WINED3DLOCKED_RECT *locked_rect,
@ -2347,7 +2328,7 @@ interface IWineD3DSurface : IWineD3DResource
interface IWineD3DVolume : IWineD3DResource interface IWineD3DVolume : IWineD3DResource
{ {
void GetDesc( void GetDesc(
[out] WINED3DVOLUME_DESC *desc [out] struct wined3d_resource_desc *desc
); );
HRESULT Map( HRESULT Map(
[out] WINED3DLOCKED_BOX *locked_box, [out] WINED3DLOCKED_BOX *locked_box,
@ -2392,7 +2373,7 @@ interface IWineD3DTexture : IWineD3DBaseTexture
{ {
HRESULT GetLevelDesc( HRESULT GetLevelDesc(
[in] UINT sub_resource_idx, [in] UINT sub_resource_idx,
[out] WINED3DSURFACE_DESC *desc [out] struct wined3d_resource_desc *desc
); );
HRESULT GetSurfaceLevel( HRESULT GetSurfaceLevel(
[in] UINT sub_resource_idx, [in] UINT sub_resource_idx,
@ -2421,7 +2402,7 @@ interface IWineD3DCubeTexture : IWineD3DBaseTexture
{ {
HRESULT GetLevelDesc( HRESULT GetLevelDesc(
[in] UINT sub_resource_idx, [in] UINT sub_resource_idx,
[out] WINED3DSURFACE_DESC *desc [out] struct wined3d_resource_desc *desc
); );
HRESULT GetCubeMapSurface( HRESULT GetCubeMapSurface(
[in] UINT sub_resource_idx, [in] UINT sub_resource_idx,
@ -2451,7 +2432,7 @@ interface IWineD3DVolumeTexture : IWineD3DBaseTexture
{ {
HRESULT GetLevelDesc( HRESULT GetLevelDesc(
[in] UINT sub_resource_idx, [in] UINT sub_resource_idx,
[out] WINED3DVOLUME_DESC *desc [out] struct wined3d_resource_desc *desc
); );
HRESULT GetVolumeLevel( HRESULT GetVolumeLevel(
[in] UINT sub_resource_idx, [in] UINT sub_resource_idx,
@ -3206,7 +3187,7 @@ HRESULT __cdecl wined3d_register_software_device(struct wined3d *wined3d, void *
ULONG __cdecl wined3d_buffer_decref(struct wined3d_buffer *buffer); ULONG __cdecl wined3d_buffer_decref(struct wined3d_buffer *buffer);
HRESULT __cdecl wined3d_buffer_free_private_data(struct wined3d_buffer *buffer, REFGUID guid); HRESULT __cdecl wined3d_buffer_free_private_data(struct wined3d_buffer *buffer, REFGUID guid);
void __cdecl wined3d_buffer_get_desc(const struct wined3d_buffer *buffer, WINED3DBUFFER_DESC *desc); void __cdecl wined3d_buffer_get_desc(const struct wined3d_buffer *buffer, struct wined3d_resource_desc *desc);
void * __cdecl wined3d_buffer_get_parent(const struct wined3d_buffer *buffer); void * __cdecl wined3d_buffer_get_parent(const struct wined3d_buffer *buffer);
DWORD __cdecl wined3d_buffer_get_priority(const struct wined3d_buffer *buffer); DWORD __cdecl wined3d_buffer_get_priority(const struct wined3d_buffer *buffer);
HRESULT __cdecl wined3d_buffer_get_private_data(const struct wined3d_buffer *buffer, HRESULT __cdecl wined3d_buffer_get_private_data(const struct wined3d_buffer *buffer,