update bitblt hook
This commit is contained in:
parent
a221c67842
commit
66a31e2282
1 changed files with 21 additions and 3 deletions
|
@ -1027,7 +1027,22 @@ BOOL WINAPI fake_BitBlt(
|
|||
{
|
||||
HWND hwnd = WindowFromDC(hdc);
|
||||
|
||||
if (g_ddraw.ref && g_ddraw.hwnd && hwnd == g_ddraw.hwnd)
|
||||
char class_name[MAX_PATH] = { 0 };
|
||||
|
||||
if (g_ddraw.ref && g_ddraw.hwnd && hwnd && hwnd != g_ddraw.hwnd)
|
||||
{
|
||||
GetClassNameA(hwnd, class_name, sizeof(class_name) - 1);
|
||||
}
|
||||
|
||||
if (g_ddraw.ref && g_ddraw.hwnd &&
|
||||
(hwnd == g_ddraw.hwnd ||
|
||||
(g_config.fixchilds && IsChild(g_ddraw.hwnd, hwnd) &&
|
||||
(g_config.fixchilds == FIX_CHILDS_DETECT_HIDE ||
|
||||
strcmp(class_name, "VideoRenderer") == 0 ||
|
||||
strcmp(class_name, "AVI Window") == 0 ||
|
||||
strcmp(class_name, "MCIAVI") == 0 ||
|
||||
strcmp(class_name, "AVIWnd32") == 0 ||
|
||||
strcmp(class_name, "MCIWndClass") == 0))))
|
||||
{
|
||||
if (g_ddraw.primary && (g_ddraw.primary->bpp == 16 || g_ddraw.primary->bpp == 32 || g_ddraw.primary->palette))
|
||||
{
|
||||
|
@ -1036,11 +1051,14 @@ BOOL WINAPI fake_BitBlt(
|
|||
|
||||
if (primary_dc)
|
||||
{
|
||||
POINT pt = { 0 };
|
||||
real_MapWindowPoints(hwnd, g_ddraw.hwnd, &pt, 1);
|
||||
|
||||
int result =
|
||||
real_BitBlt(
|
||||
primary_dc,
|
||||
x,
|
||||
y,
|
||||
x + pt.x,
|
||||
y + pt.y,
|
||||
cx,
|
||||
cy,
|
||||
hdcSrc,
|
||||
|
|
Loading…
Reference in a new issue