if (ref == 0) {
if (This->parentDevice) IDirect3DDevice9Ex_Release(This->parentDevice);
if (!This->isImplicit) {
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
IWineD3DSurface_Release(This->wineD3DSurface);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
HeapFree(GetProcessHeap(), 0, This);
}
}
HRESULT hr;
TRACE("(%p)->(%p)\n", This, ppDevice);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_GetDevice(This->wineD3DSurface, &wined3d_device);
if (SUCCEEDED(hr))
{
IWineD3DDevice_GetParent(wined3d_device, (IUnknown **)ppDevice);
IWineD3DDevice_Release(wined3d_device);
}
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_SetPrivateData(This->wineD3DSurface, refguid, pData, SizeOfData, Flags);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_GetPrivateData(This->wineD3DSurface, refguid, pData, pSizeOfData);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_FreePrivateData(This->wineD3DSurface, refguid);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_SetPriority(This->wineD3DSurface, PriorityNew);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_GetPriority(This->wineD3DSurface);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
IDirect3DSurface9Impl *This = (IDirect3DSurface9Impl *)iface;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
IWineD3DSurface_PreLoad(This->wineD3DSurface);
- LeaveCriticalSection(&d3d9_cs);
- return ;
+ wined3d_mutex_unlock();
}
static D3DRESOURCETYPE WINAPI IDirect3DSurface9Impl_GetType(LPDIRECT3DSURFACE9 iface) {
D3DRESOURCETYPE ret;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
ret = IWineD3DSurface_GetType(This->wineD3DSurface);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
return ret;
}
static HRESULT WINAPI IDirect3DSurface9Impl_GetDesc(LPDIRECT3DSURFACE9 iface, D3DSURFACE_DESC* pDesc) {
IDirect3DSurface9Impl *This = (IDirect3DSurface9Impl *)iface;
- WINED3DSURFACE_DESC wined3ddesc;
- UINT tmpInt = -1;
- WINED3DFORMAT format;
+ WINED3DSURFACE_DESC wined3ddesc;
HRESULT hr;
TRACE("(%p) Relay\n", This);
- /* As d3d8 and d3d9 structures differ, pass in ptrs to where data needs to go */
- wined3ddesc.Format = &format;
- wined3ddesc.Type = (WINED3DRESOURCETYPE *)&pDesc->Type;
- wined3ddesc.Usage = &pDesc->Usage;
- wined3ddesc.Pool = (WINED3DPOOL *) &pDesc->Pool;
- wined3ddesc.Size = &tmpInt;
- wined3ddesc.MultiSampleType = (WINED3DMULTISAMPLE_TYPE *) &pDesc->MultiSampleType;
- wined3ddesc.MultiSampleQuality = &pDesc->MultiSampleQuality;
- wined3ddesc.Width = &pDesc->Width;
- wined3ddesc.Height = &pDesc->Height;
-
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_GetDesc(This->wineD3DSurface, &wined3ddesc);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
- if (SUCCEEDED(hr)) pDesc->Format = d3dformat_from_wined3dformat(format);
+ if (SUCCEEDED(hr))
+ {
+ 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 hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
TRACE("(%p) calling IWineD3DSurface_LockRect %p %p %p %d\n", This, This->wineD3DSurface, pLockedRect, pRect, Flags);
hr = IWineD3DSurface_LockRect(This->wineD3DSurface, (WINED3DLOCKED_RECT *) pLockedRect, pRect, Flags);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_UnlockRect(This->wineD3DSurface);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
switch(hr)
{
case WINEDDERR_NOTLOCKED: return D3DERR_INVALIDCALL;
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_GetDC(This->wineD3DSurface, phdc);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d9_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_ReleaseDC(This->wineD3DSurface, hdc);
- LeaveCriticalSection(&d3d9_cs);
+ wined3d_mutex_unlock();
+
switch(hr) {
case WINEDDERR_NODC: return WINED3DERR_INVALIDCALL;
default: return hr;