[WIN32SS][NTGDI] Extend PATH_FillPath as PATH_FillPathEx (#798)
authorKatayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
Fri, 24 Aug 2018 11:37:59 +0000 (20:37 +0900)
committerHermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
Fri, 24 Aug 2018 11:37:59 +0000 (13:37 +0200)
The new PATH_FillPathEx function takes an additional PBRUSH parameter.
CORE-2527

win32ss/gdi/ntgdi/bitblt.c
win32ss/gdi/ntgdi/path.c
win32ss/gdi/ntgdi/path.h
win32ss/gdi/ntgdi/region.h

index 38c92e3..8e9fac9 100644 (file)
@@ -1122,7 +1122,6 @@ IntGdiBitBltRgn(
     return bResult;
 }
 
     return bResult;
 }
 
-static
 BOOL
 IntGdiFillRgn(
     _In_ PDC pdc,
 BOOL
 IntGdiFillRgn(
     _In_ PDC pdc,
index f4cc249..1bc5e2f 100644 (file)
@@ -1457,6 +1457,16 @@ FASTCALL
 PATH_FillPath(
     PDC dc,
     PPATH pPath)
 PATH_FillPath(
     PDC dc,
     PPATH pPath)
+{
+    return PATH_FillPathEx(dc, pPath, NULL);
+}
+
+BOOL
+FASTCALL
+PATH_FillPathEx(
+    PDC dc,
+    PPATH pPath,
+    PBRUSH pbrFill)
 {
     INT   mapMode, graphicsMode;
     SIZE  ptViewportExt, ptWindowExt;
 {
     INT   mapMode, graphicsMode;
     SIZE  ptViewportExt, ptWindowExt;
@@ -1517,7 +1527,7 @@ PATH_FillPath(
     pdcattr->iGraphicsMode =  graphicsMode;
 
     /* Paint the region */
     pdcattr->iGraphicsMode =  graphicsMode;
 
     /* Paint the region */
-    IntGdiPaintRgn(dc, Rgn);
+    IntGdiFillRgn(dc, Rgn, pbrFill);
     REGION_Delete(Rgn);
     /* Restore the old mapping mode */
     IntGdiSetMapMode(dc, mapMode);
     REGION_Delete(Rgn);
     /* Restore the old mapping mode */
     IntGdiSetMapMode(dc, mapMode);
index f801135..9c5f63d 100644 (file)
@@ -92,6 +92,7 @@ BOOL FASTCALL PATH_AddEntry (PPATH pPath, const POINT *pPoint, BYTE flags);
 BOOL FASTCALL PATH_AddFlatBezier (PPATH pPath, POINT *pt, BOOL closed);
 BOOL FASTCALL PATH_DoArcPart (PPATH pPath, FLOAT_POINT corners[], double angleStart, double angleEnd, BYTE startEntryType);
 BOOL FASTCALL PATH_FillPath( PDC dc, PPATH pPath );
 BOOL FASTCALL PATH_AddFlatBezier (PPATH pPath, POINT *pt, BOOL closed);
 BOOL FASTCALL PATH_DoArcPart (PPATH pPath, FLOAT_POINT corners[], double angleStart, double angleEnd, BYTE startEntryType);
 BOOL FASTCALL PATH_FillPath( PDC dc, PPATH pPath );
+BOOL FASTCALL PATH_FillPathEx(PDC dc, PPATH pPath, PBRUSH pbrFill);
 PPATH FASTCALL PATH_FlattenPath (PPATH pPath);
 VOID FASTCALL PATH_NormalizePoint (FLOAT_POINT corners[], const FLOAT_POINT *pPoint, double *pX, double *pY);
 
 PPATH FASTCALL PATH_FlattenPath (PPATH pPath);
 VOID FASTCALL PATH_NormalizePoint (FLOAT_POINT corners[], const FLOAT_POINT *pPoint, double *pX, double *pY);
 
@@ -107,3 +108,4 @@ VOID FASTCALL IntGetCurrentPositionEx(PDC dc, LPPOINT pt);
 
 BOOL PATH_RestorePath( DC *, DC *);
 BOOL PATH_SavePath( DC *, DC *);
 
 BOOL PATH_RestorePath( DC *, DC *);
 BOOL PATH_SavePath( DC *, DC *);
+BOOL IntGdiFillRgn(PDC pdc, PREGION prgn, PBRUSH pbrFill);
index abf053c..0d4f454 100644 (file)
@@ -96,10 +96,3 @@ GreCreateFrameRgn(
 PREGION
 FASTCALL
 IntSysCreateRectpRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect);
 PREGION
 FASTCALL
 IntSysCreateRectpRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect);
-
-// FIXME: move this
-BOOL
-FASTCALL
-IntGdiPaintRgn(
-    _In_ PDC pdc,
-    _In_ PREGION prgn);