mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
#101 clear backbuffer on flip
This commit is contained in:
parent
19c4d67087
commit
b03600fb4f
@ -21,6 +21,7 @@ typedef struct IDirectDrawSurfaceImpl
|
||||
DWORD width;
|
||||
DWORD height;
|
||||
DWORD bpp;
|
||||
DWORD size;
|
||||
DWORD flags;
|
||||
DWORD caps;
|
||||
|
||||
|
1
inc/dd.h
1
inc/dd.h
@ -146,6 +146,7 @@ typedef struct CNCDDRAW
|
||||
int fixchilds;
|
||||
BOOL fixwndprochook;
|
||||
BOOL fixnotresponding;
|
||||
BOOL flipclear;
|
||||
BOOL locktopleft;
|
||||
BOOL d3d9linear;
|
||||
BOOL gdilinear;
|
||||
|
@ -39,6 +39,7 @@ void cfg_load()
|
||||
g_ddraw->fixpitch = cfg_get_bool("fixpitch", TRUE);
|
||||
g_ddraw->fixchilds = cfg_get_int("fixchilds", FIX_CHILDS_DETECT_PAINT);
|
||||
g_ddraw->fixwndprochook = cfg_get_bool("fixwndprochook", FALSE);
|
||||
g_ddraw->flipclear = cfg_get_bool("flipclear", FALSE);
|
||||
g_ddraw->novidmem = cfg_get_bool("novidmem", FALSE);
|
||||
g_ddraw->fixnotresponding = cfg_get_bool("fixnotresponding", FALSE);
|
||||
g_ddraw->locktopleft = cfg_get_bool("locktopleft", FALSE);
|
||||
@ -357,6 +358,7 @@ static void cfg_create_ini()
|
||||
"gdilinear=false\n"
|
||||
"allow_wmactivate=false\n"
|
||||
"dinputhook=false\n"
|
||||
"flipclear=false\n"
|
||||
"bpp=0\n"
|
||||
"\n"
|
||||
"\n"
|
||||
@ -491,6 +493,7 @@ static void cfg_create_ini()
|
||||
"[CARMA95]\n"
|
||||
"renderer=opengl\n"
|
||||
"noactivateapp=true\n"
|
||||
"flipclear=true\n"
|
||||
"\n"
|
||||
"; Carmageddon\n"
|
||||
"[CARM95]\n"
|
||||
|
@ -545,6 +545,12 @@ HRESULT dds_Flip(IDirectDrawSurfaceImpl* This, IDirectDrawSurfaceImpl* lpDDSurfa
|
||||
InterlockedExchangePointer(&backbuffer->surface, buf);
|
||||
InterlockedExchangePointer(&backbuffer->bitmap, bitmap);
|
||||
InterlockedExchangePointer(&backbuffer->hdc, dc);
|
||||
|
||||
if (g_ddraw->flipclear)
|
||||
{
|
||||
memset(buf, 0, backbuffer->size);
|
||||
}
|
||||
|
||||
LeaveCriticalSection(&g_ddraw->cs);
|
||||
|
||||
if (!lpDDSurfaceTargetOverride && This->backbuffer->backbuffer)
|
||||
@ -1092,6 +1098,7 @@ HRESULT dd_CreateSurface(
|
||||
CreateDIBSection(dst_surface->hdc, dst_surface->bmi, DIB_RGB_COLORS, (void**)&dst_surface->surface, NULL, 0);
|
||||
|
||||
dst_surface->bmi->bmiHeader.biHeight = -((int)bmp_height);
|
||||
dst_surface->size = dst_surface->l_pitch * bmp_height * dst_surface->lx_pitch;
|
||||
|
||||
if (!dst_surface->bitmap)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user