diff --git a/inc/dd.h b/inc/dd.h index 2a5a766..a2aa12b 100644 --- a/inc/dd.h +++ b/inc/dd.h @@ -112,6 +112,7 @@ typedef struct cnc_ddraw BOOL fixchildwindows; BOOL fixwndprochook; BOOL d3d9linear; + BOOL gdilinear; BOOL backbuffer; BOOL passthrough; int maxgameticks; diff --git a/src/config.c b/src/config.c index 7186ef3..3d0768c 100644 --- a/src/config.c +++ b/src/config.c @@ -52,6 +52,7 @@ void cfg_load() g_ddraw->fixchildwindows = cfg_get_bool("fixchildwindows", TRUE); g_ddraw->fixwndprochook = cfg_get_bool("fixwndprochook", FALSE); g_ddraw->d3d9linear = cfg_get_bool("d3d9linear", TRUE); + g_ddraw->gdilinear = cfg_get_bool("gdilinear", FALSE); g_ddraw->backbuffer = cfg_get_bool("backbuffer", TRUE); g_ddraw->passthrough = cfg_get_bool("passthrough", TRUE); diff --git a/src/render_gdi.c b/src/render_gdi.c index c3334c7..8ef5a53 100644 --- a/src/render_gdi.c +++ b/src/render_gdi.c @@ -80,6 +80,12 @@ DWORD WINAPI gdi_render_main(void) memcpy(&g_ddraw->primary->bmi->bmiColors[0], g_ddraw->primary->palette->data_rgb, 256 * sizeof(int)); } + if (g_ddraw->gdilinear) + { + SetStretchBltMode(g_ddraw->render.hdc, HALFTONE); + SetBrushOrgEx(g_ddraw->render.hdc, 0, 0, NULL); + } + if (g_ddraw->bnet_active) { RECT rc = { 0, 0, g_ddraw->render.width, g_ddraw->render.height };