1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-24 17:49:52 +01:00

add some additional checks

This commit is contained in:
FunkyFr3sh 2021-06-15 03:20:41 +02:00
parent 4bb1cffee7
commit b97af7a4f9
4 changed files with 12 additions and 6 deletions

View File

@ -999,7 +999,7 @@ HRESULT dds_GetDC(IDirectDrawSurfaceImpl* This, HDC FAR* lpHDC)
if (This->backbuffer || (This->caps & DDSCAPS_BACKBUFFER)) if (This->backbuffer || (This->caps & DDSCAPS_BACKBUFFER))
dc = (HDC)InterlockedExchangeAdd((LONG*)&This->hdc, 0); dc = (HDC)InterlockedExchangeAdd((LONG*)&This->hdc, 0);
if (data) if (This->bpp == 8 && data)
SetDIBColorTable(dc, 0, 256, data); SetDIBColorTable(dc, 0, 256, data);
if (lpHDC) if (lpHDC)
@ -1170,7 +1170,7 @@ HRESULT dds_Unlock(IDirectDrawSurfaceImpl* This, LPRECT lpRect)
if (hwnd && (This->caps & DDSCAPS_PRIMARYSURFACE)) if (hwnd && (This->caps & DDSCAPS_PRIMARYSURFACE))
{ {
HDC primary_dc; HDC primary_dc;
dds_GetDC(g_ddraw->primary, &primary_dc); dds_GetDC(This, &primary_dc);
/* GdiTransparentBlt idea taken from Aqrit's war2 ddraw */ /* GdiTransparentBlt idea taken from Aqrit's war2 ddraw */
@ -1225,7 +1225,7 @@ HRESULT dds_Unlock(IDirectDrawSurfaceImpl* This, LPRECT lpRect)
if (hwnd && (This->caps & DDSCAPS_PRIMARYSURFACE)) if (hwnd && (This->caps & DDSCAPS_PRIMARYSURFACE))
{ {
HDC primary_dc; HDC primary_dc;
dds_GetDC(g_ddraw->primary, &primary_dc); dds_GetDC(This, &primary_dc);
RECT rc; RECT rc;
if (fake_GetWindowRect(hwnd, &rc)) if (fake_GetWindowRect(hwnd, &rc))

View File

@ -328,7 +328,9 @@ DWORD WINAPI d3d9_render_main(void)
EnterCriticalSection(&g_ddraw->cs); EnterCriticalSection(&g_ddraw->cs);
if (g_ddraw->primary && (g_ddraw->bpp == 16 || g_ddraw->bpp == 32 || g_ddraw->primary->palette)) if (g_ddraw->primary &&
g_ddraw->primary->bpp == g_ddraw->bpp &&
(g_ddraw->bpp == 16 || g_ddraw->bpp == 32 || g_ddraw->primary->palette))
{ {
if (g_ddraw->vhack) if (g_ddraw->vhack)
{ {

View File

@ -47,7 +47,9 @@ DWORD WINAPI gdi_render_main(void)
EnterCriticalSection(&g_ddraw->cs); EnterCriticalSection(&g_ddraw->cs);
if (g_ddraw->primary && (g_ddraw->bpp == 16 || g_ddraw->bpp == 32 || g_ddraw->primary->palette)) if (g_ddraw->primary &&
g_ddraw->primary->bpp == g_ddraw->bpp &&
(g_ddraw->bpp == 16 || g_ddraw->bpp == 32 || g_ddraw->primary->palette))
{ {
if (warning_end_tick) if (warning_end_tick)
{ {

View File

@ -582,7 +582,9 @@ static void ogl_render()
EnterCriticalSection(&g_ddraw->cs); EnterCriticalSection(&g_ddraw->cs);
if (g_ddraw->primary && (g_ddraw->bpp == 16 || g_ddraw->bpp == 32 || g_ddraw->primary->palette)) if (g_ddraw->primary &&
g_ddraw->primary->bpp == g_ddraw->bpp &&
(g_ddraw->bpp == 16 || g_ddraw->bpp == 32 || g_ddraw->primary->palette))
{ {
if (g_ddraw->vhack) if (g_ddraw->vhack)
{ {