From da22f48dfde900a330856b97a7f7de69bb131539 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Thu, 26 Jul 2007 19:52:51 +0000 Subject: [PATCH] - add painting.c to gdi32.def - implement FloodFill, calling NtGdiExtFloodFill - implement CreateRectRgnIndirect, calling NtGdiCreateRectRgn - remove NtGdiCreateRectRgnIndirect, NtGdiFloodFill from win32k - update ntgdibad.h svn path=/trunk/; revision=27883 --- reactos/dll/win32/gdi32/gdi32.def | 4 +-- reactos/dll/win32/gdi32/gdi32.rbuild | 1 + reactos/dll/win32/gdi32/objects/painting.c | 12 +++++++++ reactos/dll/win32/gdi32/objects/region.c | 16 ++++++++++++ reactos/include/reactos/win32k/ntgdibad.h | 15 ----------- .../subsystems/win32/win32k/objects/bitmaps.c | 10 -------- .../subsystems/win32/win32k/objects/region.c | 25 ------------------- reactos/tools/nci/w32ksvc.db | 2 -- 8 files changed, 31 insertions(+), 54 deletions(-) diff --git a/reactos/dll/win32/gdi32/gdi32.def b/reactos/dll/win32/gdi32/gdi32.def index 2ee621519f1..fb1d5d1dce5 100644 --- a/reactos/dll/win32/gdi32/gdi32.def +++ b/reactos/dll/win32/gdi32/gdi32.def @@ -84,7 +84,7 @@ CreatePenIndirect@4 CreatePolyPolygonRgn@16=NtGdiCreatePolyPolygonRgn@16 CreatePolygonRgn@12=NtGdiCreatePolygonRgn@12 CreateRectRgn@16=NtGdiCreateRectRgn@16 -CreateRectRgnIndirect@4=NtGdiCreateRectRgnIndirect@4 +CreateRectRgnIndirect@4 CreateRoundRectRgn@24=NtGdiCreateRoundRectRgn@24 CreateScalableFontResourceA@16 CreateScalableFontResourceW@16 @@ -234,7 +234,7 @@ FillPath@4 FillRgn@12=NtGdiFillRgn@12 FixBrushOrgEx@16 FlattenPath@4 -FloodFill@16=NtGdiFloodFill@16 +FloodFill@16 FontIsLinked@4 FONTOBJ_cGetAllGlyphHandles@8 FONTOBJ_cGetGlyphs@20 diff --git a/reactos/dll/win32/gdi32/gdi32.rbuild b/reactos/dll/win32/gdi32/gdi32.rbuild index 0a3067126eb..fcabe1a77d2 100644 --- a/reactos/dll/win32/gdi32/gdi32.rbuild +++ b/reactos/dll/win32/gdi32/gdi32.rbuild @@ -46,6 +46,7 @@ font.c linedda.c metafile.c + painting.c pen.c region.c text.c diff --git a/reactos/dll/win32/gdi32/objects/painting.c b/reactos/dll/win32/gdi32/objects/painting.c index dfae1da10db..c1137b4ee56 100644 --- a/reactos/dll/win32/gdi32/objects/painting.c +++ b/reactos/dll/win32/gdi32/objects/painting.c @@ -18,6 +18,7 @@ __asm fistp out #endif +#if 0 /* FIXME: enable this as soon as we have working usermode gdi */ LONG FASTCALL EFtoF( EFLOAT_S * efp) @@ -890,4 +891,15 @@ PolyPolyline(HDC hDC, const POINT* Point, const DWORD* Counts, DWORD Polys) } return NtGdiPolyPolyDraw( hDC , Point, Count, Polys, GdiPolyPolyLine ); } +#endif +BOOL +WINAPI +FloodFill( + HDC hDC, + int nXStart, + int nYStart, + COLORREF crFill) +{ + return NtGdiExtFloodFill(hDC, nXStart, nYStart, crFill, FLOODFILLBORDER); +} diff --git a/reactos/dll/win32/gdi32/objects/region.c b/reactos/dll/win32/gdi32/objects/region.c index 45fe553b6f7..53f301e74b0 100644 --- a/reactos/dll/win32/gdi32/objects/region.c +++ b/reactos/dll/win32/gdi32/objects/region.c @@ -56,3 +56,19 @@ CreateEllipticRgnIndirect( } return NULL; } + +HRGN +WINAPI +CreateRectRgnIndirect( + const RECT *prc +) +{ + if (prc) + { + return NtGdiCreateRectRgn(prc->left, + prc->top, + prc->right, + prc->bottom); + } + return NULL; +} diff --git a/reactos/include/reactos/win32k/ntgdibad.h b/reactos/include/reactos/win32k/ntgdibad.h index 2304e8890e2..13d0302ecd4 100644 --- a/reactos/include/reactos/win32k/ntgdibad.h +++ b/reactos/include/reactos/win32k/ntgdibad.h @@ -245,11 +245,6 @@ NtGdiCreatePolyPolygonRgn(CONST PPOINT pt, INT Count, INT PolyFillMode); -/* Use NtGdiCreateRectRgn with expanded paraemters. */ -HRGN -STDCALL -NtGdiCreateRectRgnIndirect(CONST PRECT rc); - /* Use NtGdiTransformPoints with GdiDpToLp. */ BOOL STDCALL @@ -333,16 +328,6 @@ NtGdiExtTextOut(HDC hdc, UINT cbCount, CONST INT *lpDx); -/* Use NtGdiExtFloodFill with FLOODFILLBORDER. */ -BOOL -STDCALL -NtGdiFloodFill ( - HDC hDC, - INT XStart, - INT YStart, - COLORREF Fill - ); - /* Should be done in user-mode. */ BOOL STDCALL diff --git a/reactos/subsystems/win32/win32k/objects/bitmaps.c b/reactos/subsystems/win32/win32k/objects/bitmaps.c index f2f0a1b24f9..abe7dff3f5b 100644 --- a/reactos/subsystems/win32/win32k/objects/bitmaps.c +++ b/reactos/subsystems/win32/win32k/objects/bitmaps.c @@ -568,16 +568,6 @@ NtGdiExtFloodFill( return TRUE; } -BOOL STDCALL -NtGdiFloodFill( - HDC hDC, - INT XStart, - INT YStart, - COLORREF Fill) -{ - return NtGdiExtFloodFill(hDC, XStart, YStart, Fill, FLOODFILLBORDER ); -} - BOOL STDCALL NtGdiGetBitmapDimensionEx( HBITMAP hBitmap, diff --git a/reactos/subsystems/win32/win32k/objects/region.c b/reactos/subsystems/win32/win32k/objects/region.c index 968c467338a..91d4eed3b82 100644 --- a/reactos/subsystems/win32/win32k/objects/region.c +++ b/reactos/subsystems/win32/win32k/objects/region.c @@ -2044,31 +2044,6 @@ NtGdiCreateRectRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect) return NULL; } -HRGN STDCALL -NtGdiCreateRectRgnIndirect(CONST PRECT rc) -{ - RECT SafeRc = {0}; - NTSTATUS Status = STATUS_SUCCESS; - - _SEH_TRY - { - ProbeForRead(rc, - sizeof(RECT), - 1); - SafeRc = *rc; - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - if (!NT_SUCCESS(Status)) - { - return(NULL); - } - return(UnsafeIntCreateRectRgnIndirect(&SafeRc)); -} - HRGN STDCALL NtGdiCreateRoundRectRgn(INT left, INT top, INT right, INT bottom, diff --git a/reactos/tools/nci/w32ksvc.db b/reactos/tools/nci/w32ksvc.db index 1cda1ecd1ed..f96712b77fc 100644 --- a/reactos/tools/nci/w32ksvc.db +++ b/reactos/tools/nci/w32ksvc.db @@ -38,7 +38,6 @@ NtGdiCreatePen 4 NtGdiCreatePolygonRgn 3 NtGdiCreatePolyPolygonRgn 4 NtGdiCreateRectRgn 4 -NtGdiCreateRectRgnIndirect 1 NtGdiCreateRoundRectRgn 6 NtGdiCreateScalableFontResource 4 NtGdiCreateSolidBrush 2 @@ -73,7 +72,6 @@ NtGdiExtTextOut 8 NtGdiFillPath 1 NtGdiFillRgn 3 NtGdiFlattenPath 1 -NtGdiFloodFill 4 NtGdiFrameRgn 5 NtGdiGdiComment 3 NtGdiFlush 0