Author: tkreuzer Date: Thu Dec 18 08:11:42 2014 New Revision: 65724
URL: http://svn.reactos.org/svn/reactos?rev=65724&view=rev Log: [WIN32K] - Move NtGdiFillRgn and NtGdiFrameRgn to bitblt.c - Remove unused NtGdiUnionRectWithRgn - Rename REGION_CreateFrameRgn to GreCreateFrameRgn
Modified: trunk/reactos/win32ss/gdi/ntgdi/bitblt.c trunk/reactos/win32ss/gdi/ntgdi/region.c trunk/reactos/win32ss/gdi/ntgdi/region.h
Modified: trunk/reactos/win32ss/gdi/ntgdi/bitblt.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/bitblt.c?... ============================================================================== --- trunk/reactos/win32ss/gdi/ntgdi/bitblt.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/ntgdi/bitblt.c [iso-8859-1] Thu Dec 18 08:11:42 2014 @@ -1012,6 +1012,71 @@
BOOL APIENTRY +NtGdiFillRgn( + HDC hDC, + HRGN hRgn, + HBRUSH hBrush) +{ + HBRUSH oldhBrush; + PREGION rgn; + PRECTL r; + + rgn = RGNOBJAPI_Lock(hRgn, NULL); + if (rgn == NULL) + { + return FALSE; + } + + oldhBrush = NtGdiSelectBrush(hDC, hBrush); + if (oldhBrush == NULL) + { + RGNOBJAPI_Unlock(rgn); + return FALSE; + } + + for (r = rgn->Buffer; r < rgn->Buffer + rgn->rdh.nCount; r++) + { + NtGdiPatBlt(hDC, r->left, r->top, r->right - r->left, r->bottom - r->top, PATCOPY); + } + + RGNOBJAPI_Unlock(rgn); + NtGdiSelectBrush(hDC, oldhBrush); + + return TRUE; +} + +BOOL +APIENTRY +NtGdiFrameRgn( + HDC hDC, + HRGN hRgn, + HBRUSH hBrush, + INT Width, + INT Height) +{ + HRGN FrameRgn; + BOOL Ret; + + FrameRgn = NtGdiCreateRectRgn(0, 0, 0, 0); + if (FrameRgn == NULL) + { + return FALSE; + } + + if (!GreCreateFrameRgn(FrameRgn, hRgn, Width, Height)) + { + GreDeleteObject(FrameRgn); + return FALSE; + } + + Ret = NtGdiFillRgn(hDC, FrameRgn, hBrush); + + GreDeleteObject(FrameRgn); + return Ret; +} + +BOOL +APIENTRY NtGdiInvertRgn( HDC hDC, HRGN hRgn)
Modified: trunk/reactos/win32ss/gdi/ntgdi/region.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/region.c?... ============================================================================== --- trunk/reactos/win32ss/gdi/ntgdi/region.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/ntgdi/region.c [iso-8859-1] Thu Dec 18 08:11:42 2014 @@ -1840,7 +1840,7 @@
BOOL FASTCALL -REGION_CreateFrameRgn( +GreCreateFrameRgn( HRGN hDest, HRGN hSrc, INT x, @@ -3745,72 +3745,6 @@ return hRgn; }
-BOOL -APIENTRY -NtGdiFillRgn( - HDC hDC, - HRGN hRgn, - HBRUSH hBrush) -{ - HBRUSH oldhBrush; - PREGION rgn; - PRECTL r; - - rgn = RGNOBJAPI_Lock(hRgn, NULL); - if (rgn == NULL) - { - return FALSE; - } - - oldhBrush = NtGdiSelectBrush(hDC, hBrush); - if (oldhBrush == NULL) - { - RGNOBJAPI_Unlock(rgn); - return FALSE; - } - - for (r = rgn->Buffer; r < rgn->Buffer + rgn->rdh.nCount; r++) - { - NtGdiPatBlt(hDC, r->left, r->top, r->right - r->left, r->bottom - r->top, PATCOPY); - } - - RGNOBJAPI_Unlock(rgn); - NtGdiSelectBrush(hDC, oldhBrush); - - return TRUE; -} - -BOOL -APIENTRY -NtGdiFrameRgn( - HDC hDC, - HRGN hRgn, - HBRUSH hBrush, - INT Width, - INT Height) -{ - HRGN FrameRgn; - BOOL Ret; - - FrameRgn = NtGdiCreateRectRgn(0, 0, 0, 0); - if (FrameRgn == NULL) - { - return FALSE; - } - - if (!REGION_CreateFrameRgn(FrameRgn, hRgn, Width, Height)) - { - GreDeleteObject(FrameRgn); - return FALSE; - } - - Ret = NtGdiFillRgn(hDC, FrameRgn, hBrush); - - GreDeleteObject(FrameRgn); - return Ret; -} - - INT APIENTRY NtGdiGetRgnBox( @@ -3949,46 +3883,6 @@
RGNOBJAPI_Unlock(rgn); return TRUE; -} - -HRGN -APIENTRY -NtGdiUnionRectWithRgn( - HRGN hDest, - const RECTL *UnsafeRect) -{ - RECTL SafeRect = { 0 }; - PREGION Rgn; - NTSTATUS Status = STATUS_SUCCESS; - - Rgn = RGNOBJAPI_Lock(hDest, NULL); - if (Rgn == NULL) - { - EngSetLastError(ERROR_INVALID_HANDLE); - return NULL; - } - - _SEH2_TRY - { - ProbeForRead(UnsafeRect, sizeof(RECT), 1); - SafeRect = *UnsafeRect; - } - _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) - { - Status = _SEH2_GetExceptionCode(); - } - _SEH2_END; - - if (!NT_SUCCESS(Status)) - { - RGNOBJAPI_Unlock(Rgn); - SetLastNtError(Status); - return NULL; - } - - REGION_UnionRectWithRgn(Rgn, &SafeRect); - RGNOBJAPI_Unlock(Rgn); - return hDest; }
/*!
Modified: trunk/reactos/win32ss/gdi/ntgdi/region.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/region.h?... ============================================================================== --- trunk/reactos/win32ss/gdi/ntgdi/region.h [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/ntgdi/region.h [iso-8859-1] Thu Dec 18 08:11:42 2014 @@ -53,6 +53,14 @@ PREGION FASTCALL IntSysCreateRectpRgn(INT,INT,INT,INT); BOOL FASTCALL IntGdiSetRegionOwner(HRGN,DWORD);
+BOOL +FASTCALL +GreCreateFrameRgn( + HRGN hDest, + HRGN hSrc, + INT x, + INT y); + #define IntSysCreateRectpRgnIndirect(prc) \ IntSysCreateRectpRgn((prc)->left, (prc)->top, (prc)->right, (prc)->bottom)