if (This->parentDevice) IUnknown_Release(This->parentDevice);
/* Implicit surfaces are destroyed with the device, not if refcount reaches 0. */
if (!This->isImplicit) {
- EnterCriticalSection(&d3d8_cs);
+ wined3d_mutex_lock();
IWineD3DSurface_Release(This->wineD3DSurface);
- LeaveCriticalSection(&d3d8_cs);
+ wined3d_mutex_unlock();
+
HeapFree(GetProcessHeap(), 0, This);
}
}
HRESULT hr;
TRACE("(%p)->(%p)\n", This, ppDevice);
- EnterCriticalSection(&d3d8_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(&d3d8_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d8_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_SetPrivateData(This->wineD3DSurface, refguid, pData, SizeOfData, Flags);
- LeaveCriticalSection(&d3d8_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d8_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_GetPrivateData(This->wineD3DSurface, refguid, pData, pSizeOfData);
- LeaveCriticalSection(&d3d8_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d8_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_FreePrivateData(This->wineD3DSurface, refguid);
- LeaveCriticalSection(&d3d8_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- /* As d3d8 and d3d9 structures differ, pass in ptrs to where data needs to go */
- memset(&wined3ddesc, 0, sizeof(wined3ddesc));
- wined3ddesc.Format = (WINED3DFORMAT *)&pDesc->Format;
- wined3ddesc.Type = (WINED3DRESOURCETYPE *)&pDesc->Type;
- wined3ddesc.Usage = &pDesc->Usage;
- wined3ddesc.Pool = (WINED3DPOOL *) &pDesc->Pool;
- wined3ddesc.Size = &pDesc->Size;
- wined3ddesc.MultiSampleType = (WINED3DMULTISAMPLE_TYPE *) &pDesc->MultiSampleType;
- wined3ddesc.Width = &pDesc->Width;
- wined3ddesc.Height = &pDesc->Height;
-
- EnterCriticalSection(&d3d8_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_GetDesc(This->wineD3DSurface, &wined3ddesc);
- LeaveCriticalSection(&d3d8_cs);
+ wined3d_mutex_unlock();
- if (SUCCEEDED(hr)) pDesc->Format = d3dformat_from_wined3dformat(pDesc->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->Size = wined3ddesc.size;
+ pDesc->MultiSampleType = wined3ddesc.multisample_type;
+ pDesc->Width = wined3ddesc.width;
+ pDesc->Height = wined3ddesc.height;
+ }
return hr;
}
TRACE("(%p) Relay\n", This);
TRACE("(%p) calling IWineD3DSurface_LockRect %p %p %p %d\n", This, This->wineD3DSurface, pLockedRect, pRect, Flags);
- EnterCriticalSection(&d3d8_cs);
+ wined3d_mutex_lock();
if (pRect) {
D3DSURFACE_DESC desc;
IDirect3DSurface8_GetDesc(iface, &desc);
|| (pRect->right > desc.Width)
|| (pRect->bottom > desc.Height)) {
WARN("Trying to lock an invalid rectangle, returning D3DERR_INVALIDCALL\n");
- LeaveCriticalSection(&d3d8_cs);
+ wined3d_mutex_unlock();
+
return D3DERR_INVALIDCALL;
}
}
hr = IWineD3DSurface_LockRect(This->wineD3DSurface, (WINED3DLOCKED_RECT *) pLockedRect, pRect, Flags);
- LeaveCriticalSection(&d3d8_cs);
+ wined3d_mutex_unlock();
+
return hr;
}
HRESULT hr;
TRACE("(%p) Relay\n", This);
- EnterCriticalSection(&d3d8_cs);
+ wined3d_mutex_lock();
hr = IWineD3DSurface_UnlockRect(This->wineD3DSurface);
- LeaveCriticalSection(&d3d8_cs);
+ wined3d_mutex_unlock();
+
switch(hr)
{
case WINEDDERR_NOTLOCKED: return D3DERR_INVALIDCALL;