diff --git a/reactos/subsystems/win32/win32k/include/dc.h b/reactos/subsystems/win32/win32k/include/dc.h index be8a079eb08..e79568abb3f 100644 --- a/reactos/subsystems/win32/win32k/include/dc.h +++ b/reactos/subsystems/win32/win32k/include/dc.h @@ -180,8 +180,6 @@ VOID FASTCALL IntGdiUnreferencePdev(PPDEVOBJ pPDev, DWORD CleanUpType); HDC FASTCALL IntGdiCreateDisplayDC(HDEV hDev, ULONG DcType, BOOL EmptyDC); BOOL FASTCALL IntGdiCleanDC(HDC hDC); VOID FASTCALL IntvGetDeviceCaps(PPDEVOBJ, PDEVCAPS); -HPEN FASTCALL IntGdiSelectPen(PDC,HPEN); -HBRUSH FASTCALL IntGdiSelectBrush(PDC,HBRUSH); INT FASTCALL IntGdiGetDeviceCaps(PDC,INT); extern PPDEVOBJ pPrimarySurface; diff --git a/reactos/subsystems/win32/win32k/objects/bitblt.c b/reactos/subsystems/win32/win32k/objects/bitblt.c index 7cb730023bc..8c73cfbf963 100644 --- a/reactos/subsystems/win32/win32k/objects/bitblt.c +++ b/reactos/subsystems/win32/win32k/objects/bitblt.c @@ -1047,8 +1047,8 @@ IntGdiPolyPatBlt( pdcattr = dc->pdcattr; - if (pdcattr->ulDirty_ & DC_BRUSH_DIRTY) - IntGdiSelectBrush(dc,pdcattr->hbrush); + if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY)) + DC_vUpdateFillBrush(dc); for (r = pRects, i = 0; i < cRects; i++) { @@ -1110,8 +1110,8 @@ NtGdiPatBlt( pdcattr = dc->pdcattr; - if (pdcattr->ulDirty_ & DC_BRUSH_DIRTY) - IntGdiSelectBrush(dc,pdcattr->hbrush); + if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY)) + DC_vUpdateFillBrush(dc); pbrush = BRUSH_LockBrush(pdcattr->hbrush); if (pbrush == NULL) diff --git a/reactos/subsystems/win32/win32k/objects/dcobjs.c b/reactos/subsystems/win32/win32k/objects/dcobjs.c index 9e15603d078..f75163e938f 100644 --- a/reactos/subsystems/win32/win32k/objects/dcobjs.c +++ b/reactos/subsystems/win32/win32k/objects/dcobjs.c @@ -284,49 +284,6 @@ GdiSelectPalette( return oldPal; } -HBRUSH -FASTCALL -IntGdiSelectBrush( - PDC pDC, - HBRUSH hBrush) -{ - PDC_ATTR pdcattr; - HBRUSH hOrgBrush; - - if (pDC == NULL || hBrush == NULL) return NULL; - - pdcattr = pDC->pdcattr; - - hOrgBrush = pdcattr->hbrush; - pdcattr->hbrush = hBrush; - - DC_vUpdateFillBrush(pDC); - - return hOrgBrush; -} - -HPEN -FASTCALL -IntGdiSelectPen( - PDC pDC, - HPEN hPen) -{ - PDC_ATTR pdcattr; - HPEN hOrgPen = NULL; - - if (pDC == NULL || hPen == NULL) return NULL; - - pdcattr = pDC->pdcattr; - - hOrgPen = pdcattr->hpen; - pdcattr->hpen = hPen; - - DC_vUpdateLineBrush(pDC); - - return hOrgPen; -} - - /* * @implemented */ @@ -347,7 +304,7 @@ NtGdiSelectBrush( return NULL; } -// hOrgBrush = IntGdiSelectBrush(pDC,hBrush); + /* Simply return the user mode value, without checking */ hOrgBrush = pDC->pdcattr->hbrush; pDC->pdcattr->hbrush = hBrush; DC_vUpdateFillBrush(pDC); @@ -377,7 +334,7 @@ NtGdiSelectPen( return NULL; } -// hOrgPen = IntGdiSelectPen(pDC, hPen); + /* Simply return the user mode value, without checking */ hOrgPen = pDC->pdcattr->hpen; pDC->pdcattr->hpen = hPen; DC_vUpdateLineBrush(pDC); @@ -547,11 +504,11 @@ NtGdiGetDCObject(HDC hDC, INT ObjectType) } pdcattr = pdc->pdcattr; - if (pdcattr->ulDirty_ & DC_BRUSH_DIRTY) - IntGdiSelectBrush(pdc, pdcattr->hbrush); + if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY)) + DC_vUpdateFillBrush(pdc); - if (pdcattr->ulDirty_ & DC_PEN_DIRTY) - IntGdiSelectPen(pdc, pdcattr->hpen); + if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY)) + DC_vUpdateLineBrush(pdc); switch(ObjectType) { diff --git a/reactos/subsystems/win32/win32k/objects/fillshap.c b/reactos/subsystems/win32/win32k/objects/fillshap.c index c3f85f5637b..15458fb15da 100644 --- a/reactos/subsystems/win32/win32k/objects/fillshap.c +++ b/reactos/subsystems/win32/win32k/objects/fillshap.c @@ -243,11 +243,11 @@ NtGdiEllipse( pdcattr = dc->pdcattr; - if (pdcattr->ulDirty_ & DC_BRUSH_DIRTY) - IntGdiSelectBrush(dc,pdcattr->hbrush); + if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY)) + DC_vUpdateFillBrush(dc); - if (pdcattr->ulDirty_ & DC_PEN_DIRTY) - IntGdiSelectPen(dc,pdcattr->hpen); + if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY)) + DC_vUpdateLineBrush(dc); pbrush = PEN_LockPen(pdcattr->hpen); if (!pbrush) @@ -726,11 +726,11 @@ IntRoundRect( pdcattr = dc->pdcattr; - if (pdcattr->ulDirty_ & DC_BRUSH_DIRTY) - IntGdiSelectBrush(dc,pdcattr->hbrush); + if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY)) + DC_vUpdateFillBrush(dc); - if (pdcattr->ulDirty_ & DC_PEN_DIRTY) - IntGdiSelectPen(dc,pdcattr->hpen); + if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY)) + DC_vUpdateLineBrush(dc); pbrushLine = PEN_LockPen(pdcattr->hpen); if (!pbrushLine) diff --git a/reactos/subsystems/win32/win32k/objects/path.c b/reactos/subsystems/win32/win32k/objects/path.c index caec53359a2..6e768235251 100644 --- a/reactos/subsystems/win32/win32k/objects/path.c +++ b/reactos/subsystems/win32/win32k/objects/path.c @@ -2294,8 +2294,8 @@ NtGdiFillPath(HDC hDC) pdcattr = dc->pdcattr; - if (pdcattr->ulDirty_ & DC_BRUSH_DIRTY) - IntGdiSelectBrush(dc,pdcattr->hbrush); + if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY)) + DC_vUpdateLineBrush(dc); ret = PATH_FillPath( dc, pPath ); if ( ret ) @@ -2569,10 +2569,11 @@ NtGdiStrokeAndFillPath(HDC hDC) pdcattr = pDc->pdcattr; - if (pdcattr->ulDirty_ & DC_BRUSH_DIRTY) - IntGdiSelectBrush(pDc,pdcattr->hbrush); - if (pdcattr->ulDirty_ & DC_PEN_DIRTY) - IntGdiSelectPen(pDc,pdcattr->hpen); + if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY)) + DC_vUpdateFillBrush(pDc); + + if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY)) + DC_vUpdateLineBrush(pDc); bRet = PATH_FillPath(pDc, pPath); if (bRet) bRet = PATH_StrokePath(pDc, pPath); @@ -2608,8 +2609,8 @@ NtGdiStrokePath(HDC hDC) pdcattr = pDc->pdcattr; - if (pdcattr->ulDirty_ & DC_PEN_DIRTY) - IntGdiSelectPen(pDc,pdcattr->hpen); + if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY)) + DC_vUpdateLineBrush(pDc); bRet = PATH_StrokePath(pDc, pPath); PATH_EmptyPath(pPath);