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:
parent
3ab1f7ff11
commit
dc3be1243a
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user