1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

tweak StretchBlt hook

This commit is contained in:
FunkyFr3sh 2022-10-02 20:55:20 +02:00
parent c9262a5ee9
commit 5595dbeff7
2 changed files with 28 additions and 9 deletions

View File

@ -1001,7 +1001,7 @@ static void cfg_create_ini()
"nonexclusive=true\n"
"maxgameticks=60\n"
"adjmouse=true\n"
"fixchilds=1\n"
"fixchilds=2\n"
"maintas=false\n"
"boxing=false\n"
"\n"

View File

@ -559,18 +559,37 @@ BOOL WINAPI fake_StretchBlt(
int hSrc,
DWORD rop)
{
if (g_ddraw && g_ddraw->primary && WindowFromDC(hdcDest) == g_ddraw->hwnd)
if (g_ddraw && WindowFromDC(hdcDest) == g_ddraw->hwnd)
{
HDC primary_dc;
dds_GetDC(g_ddraw->primary, &primary_dc);
if (primary_dc)
if (g_ddraw->primary)
{
BOOL result = real_StretchBlt(primary_dc, xDest, yDest, wDest, hDest, hdcSrc, xSrc, ySrc, wSrc, hSrc, rop);
HDC primary_dc;
dds_GetDC(g_ddraw->primary, &primary_dc);
dds_ReleaseDC(g_ddraw->primary, primary_dc);
if (primary_dc)
{
BOOL result =
real_StretchBlt(primary_dc, xDest, yDest, wDest, hDest, hdcSrc, xSrc, ySrc, wSrc, hSrc, rop);
return result;
dds_ReleaseDC(g_ddraw->primary, primary_dc);
return result;
}
}
else if (g_ddraw->width > 0)
{
return real_StretchBlt(
hdcDest,
xDest + g_ddraw->render.viewport.x,
yDest + g_ddraw->render.viewport.y,
wDest * g_ddraw->render.scale_w,
hDest * g_ddraw->render.scale_h,
hdcSrc,
xSrc,
ySrc,
wSrc,
hSrc,
rop);
}
}