Use ENTER_DRAWING_NOCHECK for BitBlt

This commit is contained in:
Vincent Wei
2019-07-14 15:26:53 +08:00
parent 8040f7abd5
commit 3d0e33d2b3
2 changed files with 10 additions and 12 deletions
+8 -11
View File
@@ -85,8 +85,6 @@ void _dc_fillbox_clip (PDC pdc, const GAL_Rect* rect)
while (cliprect) {
if (IntersectRect (&eff_rc, &pdc->rc_output, &cliprect->rc)) {
SET_GAL_CLIPRECT (pdc, eff_rc);
_DBG_PRINTF("%s (%d, %d, %d, %d)\n",
__func__, rect->x, rect->y, rect->w, rect->h);
GAL_FillRect (pdc->surface, rect, pdc->cur_pixel);
}
cliprect = cliprect->next;
@@ -1128,18 +1126,17 @@ void GUIAPI BitBlt (HDC hsdc, int sx, int sy, int sw, int sh,
goto empty_ret;
GetBoundRect (&pddc->rc_output, &srcOutput, &dstOutput);
}
else
else {
pddc->rc_output = dstOutput;
}
ENTER_DRAWING_NOCHECK (pddc);
if (pddc->surface != psdc->surface && (psdc->surface ==
__gal_screen))
__gal_screen)) {
psdc->rc_output = srcOutput;
ENTER_DRAWING (pddc);
if (pddc->surface != psdc->surface && (psdc->surface ==
__gal_screen))
kernel_ShowCursorForGDI (FALSE, psdc);
}
/*
* The CLIPRECT's RECT order is: rc1 rc2 rc3 rc4 rc5 rc6
@@ -1273,11 +1270,11 @@ void GUIAPI BitBlt (HDC hsdc, int sx, int sy, int sw, int sh,
}
}
if (pddc->surface != psdc->surface && (psdc->surface ==
if (pddc->surface != psdc->surface && (psdc->surface ==
__gal_screen))
kernel_ShowCursorForGDI (TRUE, psdc);
LEAVE_DRAWING (pddc);
LEAVE_DRAWING_NOCHECK (pddc);
empty_ret:
UNLOCK_GCRINFO (pddc);
+2 -1
View File
@@ -560,8 +560,9 @@ int __mg_enter_drawing (PDC pdc)
goto fail;
#endif
if (!IntersectRect (&pdc->rc_output, &pdc->rc_output, &pdc->ecrgn.rcBound))
if (!IntersectRect (&pdc->rc_output, &pdc->rc_output, &pdc->ecrgn.rcBound)) {
goto fail;
}
LOCK (&__mg_gdilock);
if (!dc_IsMemDC (pdc))