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

make sure we don't get a blackscreen if device doesn't support StretchDIBits

This commit is contained in:
FunkyFr3sh 2024-09-29 02:27:14 +02:00
parent da99931f8c
commit 5336f7d1ec

View File

@ -99,14 +99,17 @@ DWORD WINAPI gdi_render_main(void)
FillRect(g_ddraw.render.hdc, &rc, (HBRUSH)GetStockObject(BLACK_BRUSH)); FillRect(g_ddraw.render.hdc, &rc, (HBRUSH)GetStockObject(BLACK_BRUSH));
} }
int lines_copied = 0;
if (g_ddraw.bnet_active) if (g_ddraw.bnet_active)
{ {
RECT rc = { 0, 0, g_ddraw.render.width, g_ddraw.render.height }; RECT rc = { 0, 0, g_ddraw.render.width, g_ddraw.render.height };
FillRect(g_ddraw.render.hdc, &rc, (HBRUSH)GetStockObject(BLACK_BRUSH)); FillRect(g_ddraw.render.hdc, &rc, (HBRUSH)GetStockObject(BLACK_BRUSH));
lines_copied = 1;
} }
else if (upscale_hack) else if (upscale_hack)
{ {
real_StretchDIBits( lines_copied = real_StretchDIBits(
g_ddraw.render.hdc, g_ddraw.render.hdc,
g_ddraw.render.viewport.x, g_ddraw.render.viewport.x,
g_ddraw.render.viewport.y, g_ddraw.render.viewport.y,
@ -124,7 +127,7 @@ DWORD WINAPI gdi_render_main(void)
else if (!g_ddraw.child_window_exists && else if (!g_ddraw.child_window_exists &&
(g_ddraw.render.width != g_ddraw.width || g_ddraw.render.height != g_ddraw.height)) (g_ddraw.render.width != g_ddraw.width || g_ddraw.render.height != g_ddraw.height))
{ {
real_StretchDIBits( lines_copied = real_StretchDIBits(
g_ddraw.render.hdc, g_ddraw.render.hdc,
g_ddraw.render.viewport.x, g_ddraw.render.viewport.x,
g_ddraw.render.viewport.y, g_ddraw.render.viewport.y,
@ -139,7 +142,8 @@ DWORD WINAPI gdi_render_main(void)
DIB_RGB_COLORS, DIB_RGB_COLORS,
SRCCOPY); SRCCOPY);
} }
else
if (lines_copied == 0 || lines_copied == GDI_ERROR)
{ {
real_SetDIBitsToDevice( real_SetDIBitsToDevice(
g_ddraw.render.hdc, g_ddraw.render.hdc,