Author: jimtabor Date: Wed Nov 5 20:36:10 2008 New Revision: 37221
URL: http://svn.reactos.org/svn/reactos?rev=37221&view=rev Log: - Make sure we process path for Rectangles and Polygons.
Modified: trunk/reactos/subsystems/win32/win32k/objects/fillshap.c trunk/reactos/subsystems/win32/win32k/objects/path.c trunk/reactos/subsystems/win32/win32k/objects/region.c
Modified: trunk/reactos/subsystems/win32/win32k/objects/fillshap.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/obj... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/fillshap.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/objects/fillshap.c [iso-8859-1] Wed Nov 5 20:36:10 2008 @@ -506,20 +506,23 @@ Dc_Attr = dc->pDc_Attr; if(!Dc_Attr) Dc_Attr = &dc->Dc_Attr;
- if ( PATH_IsPathOpen(dc->DcLevel) ) - { - return PATH_Rectangle ( dc, LeftRect, TopRect, RightRect, BottomRect ); - } - /* Do we rotate or shear? */ if (!(dc->DcLevel.mxWorldToDevice.flAccel & MX_SCALE)) { + POINTL DestCoords[4]; + ULONG PolyCounts = 4; DestCoords[0].x = DestCoords[3].x = LeftRect; DestCoords[0].y = DestCoords[1].y = TopRect; DestCoords[1].x = DestCoords[2].x = RightRect; DestCoords[2].y = DestCoords[3].y = BottomRect; - return IntGdiPolygon(dc, DestCoords, 4); + // Use IntGdiPolyPolygon so to support PATH. + return IntGdiPolyPolygon(dc, DestCoords, &PolyCounts, 1); + } + // Rectangle Path only. + if ( PATH_IsPathOpen(dc->DcLevel) ) + { + return PATH_Rectangle ( dc, LeftRect, TopRect, RightRect, BottomRect ); }
DestRect.left = LeftRect;
Modified: trunk/reactos/subsystems/win32/win32k/objects/path.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/obj... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/path.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/objects/path.c [iso-8859-1] Wed Nov 5 20:36:10 2008 @@ -140,7 +140,7 @@ /* Restore the old mapping mode */ // IntGdiSetMapMode( dc, mapMode ); // Dc_Attr->szlViewportExt = ptViewportExt; -// Dc_Attr->ptlViewportOrg = ptViewportOrg; +// Dc_Attr->ptlViewportOrg = ptViewportOrg; // Dc_Attr->szlWindowExt = ptWindowExt; // Dc_Attr->ptlWindowOrg = ptWindowOrg;
Modified: trunk/reactos/subsystems/win32/win32k/objects/region.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/obj... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/region.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/objects/region.c [iso-8859-1] Wed Nov 5 20:36:10 2008 @@ -2501,6 +2501,7 @@ NTSTATUS Status = STATUS_SUCCESS; MATRIX matrix;
+ DPRINT("NtGdiExtCreateRegion\n"); _SEH_TRY { ProbeForRead(RgnData, Count, 1);