static HRESULT WINAPI IDirect3DSurface8Impl_GetDesc(LPDIRECT3DSURFACE8 iface, D3DSURFACE_DESC *pDesc) { IDirect3DSurface8Impl *This = (IDirect3DSurface8Impl *)iface; WINED3DSURFACE_DESC wined3ddesc; HRESULT hr; TRACE("iface %p, desc %p.\n", iface, pDesc); wined3d_mutex_lock(); hr = IWineD3DSurface_GetDesc(This->wineD3DSurface, &wined3ddesc); wined3d_mutex_unlock(); if (SUCCEEDED(hr)) { pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.format); pDesc->Type = wined3ddesc.resource_type; pDesc->Usage = wined3ddesc.usage; pDesc->Pool = wined3ddesc.pool; pDesc->Size = wined3ddesc.size; pDesc->MultiSampleType = wined3ddesc.multisample_type; pDesc->Width = wined3ddesc.width; pDesc->Height = wined3ddesc.height; } return hr; }
/* ******************************************* IWineD3DTexture IWineD3DTexture parts follow ******************************************* */ static HRESULT WINAPI IWineD3DTextureImpl_GetLevelDesc(IWineD3DTexture *iface, UINT Level, WINED3DSURFACE_DESC* pDesc) { IWineD3DTextureImpl *This = (IWineD3DTextureImpl *)iface; if (Level < This->baseTexture.levels) { TRACE("(%p) Level (%d)\n", This, Level); return IWineD3DSurface_GetDesc(This->surfaces[Level], pDesc); } WARN("(%p) level(%d) overflow Levels(%d)\n", This, Level, This->baseTexture.levels); return WINED3DERR_INVALIDCALL; }
/* ******************************************* IWineD3DTexture IWineD3DTexture parts follow ******************************************* */ static HRESULT WINAPI IWineD3DTextureImpl_GetLevelDesc(IWineD3DTexture *iface, UINT level, WINED3DSURFACE_DESC *desc) { IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; IWineD3DSurface *surface; TRACE("iface %p, level %u, desc %p.\n", iface, level, desc); if (!(surface = (IWineD3DSurface *)basetexture_get_sub_resource(texture, 0, level))) { WARN("Failed to get sub-resource.\n"); return WINED3DERR_INVALIDCALL; } return IWineD3DSurface_GetDesc(surface, desc); }
static HRESULT WINAPI IDirect3DSurface9Impl_GetDesc(LPDIRECT3DSURFACE9 iface, D3DSURFACE_DESC* pDesc) { IDirect3DSurface9Impl *This = (IDirect3DSurface9Impl *)iface; WINED3DSURFACE_DESC wined3ddesc; TRACE("iface %p, desc %p.\n", iface, pDesc); wined3d_mutex_lock(); IWineD3DSurface_GetDesc(This->wineD3DSurface, &wined3ddesc); wined3d_mutex_unlock(); pDesc->Format = d3dformat_from_wined3dformat(wined3ddesc.format); pDesc->Type = wined3ddesc.resource_type; pDesc->Usage = wined3ddesc.usage; pDesc->Pool = wined3ddesc.pool; pDesc->MultiSampleType = wined3ddesc.multisample_type; pDesc->MultiSampleQuality = wined3ddesc.multisample_quality; pDesc->Width = wined3ddesc.width; pDesc->Height = wined3ddesc.height; return D3D_OK; }