1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

#269 add workaround for Quest for Glory 5 movies

This commit is contained in:
FunkyFr3sh 2023-12-12 00:39:25 +01:00
parent 3ab1f7ff11
commit dc3be1243a
2 changed files with 6 additions and 1 deletions

View File

@ -42,6 +42,7 @@ typedef struct IDirectDrawSurfaceImpl
DWORD last_flip_tick;
DWORD last_blt_tick;
BOOL queried;
BOOL skip_flip; /* Quest for Glory 5 */
struct IDirectDrawSurfaceImpl* backbuffer;
struct IDirectDrawClipperImpl* clipper;

View File

@ -747,7 +747,7 @@ HRESULT dds_Flip(IDirectDrawSurfaceImpl* This, IDirectDrawSurfaceImpl* lpDDSurfa
{
dbg_dump_dds_flip_flags(dwFlags);
if (This->backbuffer)
if (This->backbuffer && !This->skip_flip)
{
EnterCriticalSection(&g_ddraw->cs);
IDirectDrawSurfaceImpl* backbuffer = lpDDSurfaceTargetOverride ? lpDDSurfaceTargetOverride : This->backbuffer;
@ -775,6 +775,8 @@ HRESULT dds_Flip(IDirectDrawSurfaceImpl* This, IDirectDrawSurfaceImpl* lpDDSurfa
}
}
This->skip_flip = FALSE;
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw && g_ddraw->render.run)
{
This->last_flip_tick = timeGetTime();
@ -1318,6 +1320,8 @@ HRESULT dd_CreateSurface(
g_ddraw->primary->height == g_ddraw->height &&
g_ddraw->primary->bpp == g_ddraw->bpp)
{
g_ddraw->primary->skip_flip = TRUE;
*lpDDSurface = g_ddraw->primary;
IDirectDrawSurface_AddRef(g_ddraw->primary);