mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-25 01:57:47 +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_flip_tick;
|
||||||
DWORD last_blt_tick;
|
DWORD last_blt_tick;
|
||||||
BOOL queried;
|
BOOL queried;
|
||||||
|
BOOL skip_flip; /* Quest for Glory 5 */
|
||||||
|
|
||||||
struct IDirectDrawSurfaceImpl* backbuffer;
|
struct IDirectDrawSurfaceImpl* backbuffer;
|
||||||
struct IDirectDrawClipperImpl* clipper;
|
struct IDirectDrawClipperImpl* clipper;
|
||||||
|
@ -747,7 +747,7 @@ HRESULT dds_Flip(IDirectDrawSurfaceImpl* This, IDirectDrawSurfaceImpl* lpDDSurfa
|
|||||||
{
|
{
|
||||||
dbg_dump_dds_flip_flags(dwFlags);
|
dbg_dump_dds_flip_flags(dwFlags);
|
||||||
|
|
||||||
if (This->backbuffer)
|
if (This->backbuffer && !This->skip_flip)
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&g_ddraw->cs);
|
EnterCriticalSection(&g_ddraw->cs);
|
||||||
IDirectDrawSurfaceImpl* backbuffer = lpDDSurfaceTargetOverride ? lpDDSurfaceTargetOverride : This->backbuffer;
|
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)
|
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw && g_ddraw->render.run)
|
||||||
{
|
{
|
||||||
This->last_flip_tick = timeGetTime();
|
This->last_flip_tick = timeGetTime();
|
||||||
@ -1318,6 +1320,8 @@ HRESULT dd_CreateSurface(
|
|||||||
g_ddraw->primary->height == g_ddraw->height &&
|
g_ddraw->primary->height == g_ddraw->height &&
|
||||||
g_ddraw->primary->bpp == g_ddraw->bpp)
|
g_ddraw->primary->bpp == g_ddraw->bpp)
|
||||||
{
|
{
|
||||||
|
g_ddraw->primary->skip_flip = TRUE;
|
||||||
|
|
||||||
*lpDDSurface = g_ddraw->primary;
|
*lpDDSurface = g_ddraw->primary;
|
||||||
IDirectDrawSurface_AddRef(g_ddraw->primary);
|
IDirectDrawSurface_AddRef(g_ddraw->primary);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user