add option to lock surfaces

This commit is contained in:
FunkyFr3sh 2022-09-17 13:46:45 +02:00
parent 484022b97d
commit 8d6b2f3bfe
8 changed files with 33 additions and 0 deletions

View file

@ -728,6 +728,9 @@ HRESULT dds_Lock(
DWORD dwFlags,
HANDLE hEvent)
{
if (g_ddraw->lock_surfaces)
EnterCriticalSection(&This->cs);
dbg_dump_dds_lock_flags(dwFlags);
if (g_ddraw && g_ddraw->fixnotresponding)
@ -942,6 +945,9 @@ HRESULT dds_Unlock(IDirectDrawSurfaceImpl* This, LPRECT lpRect)
}
}
if (g_ddraw->lock_surfaces)
LeaveCriticalSection(&This->cs);
return DD_OK;
}
@ -995,6 +1001,8 @@ HRESULT dd_CreateSurface(
lpDDSurfaceDesc->dwFlags |= DDSD_CAPS;
InitializeCriticalSection(&dst_surface->cs);
dst_surface->bpp = g_ddraw->bpp == 0 ? 16 : g_ddraw->bpp;
dst_surface->flags = lpDDSurfaceDesc->dwFlags;
dst_surface->caps = lpDDSurfaceDesc->ddsCaps.dwCaps;