Author: jimtabor
Date: Thu Dec 10 02:18:26 2009
New Revision: 44507
URL:
http://svn.reactos.org/svn/reactos?rev=44507&view=rev
Log:
[Win32k]
- Add a bypass flag to skip the Path support in IntGdiMoveToEx. See bug report 4364. This
fixes 11 gdi path wine tests.
Modified:
trunk/reactos/subsystems/win32/win32k/include/intgdi.h
trunk/reactos/subsystems/win32/win32k/objects/arc.c
trunk/reactos/subsystems/win32/win32k/objects/line.c
trunk/reactos/subsystems/win32/win32k/objects/path.c
Modified: trunk/reactos/subsystems/win32/win32k/include/intgdi.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/in…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/include/intgdi.h [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/include/intgdi.h [iso-8859-1] Thu Dec 10
02:18:26 2009
@@ -67,7 +67,8 @@
IntGdiMoveToEx(DC *dc,
int X,
int Y,
- LPPOINT Point);
+ LPPOINT Point,
+ BOOL BypassPath);
BOOL FASTCALL
IntGdiPolyBezier(DC *dc,
Modified: trunk/reactos/subsystems/win32/win32k/objects/arc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/arc.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/arc.c [iso-8859-1] Thu Dec 10 02:18:26
2009
@@ -247,9 +247,9 @@
if (arctype == GdiTypeArcTo)
{
if (dc->dclevel.flPath & DCPATH_CLOCKWISE)
- IntGdiMoveToEx(dc, XStartArc, YStartArc, NULL);
+ IntGdiMoveToEx(dc, XStartArc, YStartArc, NULL, TRUE);
else
- IntGdiMoveToEx(dc, XEndArc, YEndArc, NULL);
+ IntGdiMoveToEx(dc, XEndArc, YEndArc, NULL, TRUE);
}
return Ret;
}
@@ -294,7 +294,7 @@
if (result)
{
- IntGdiMoveToEx(pDC, x2, y2, NULL); // Dont forget Path.
+ IntGdiMoveToEx(pDC, x2, y2, NULL, TRUE);
}
return result;
}
Modified: trunk/reactos/subsystems/win32/win32k/objects/line.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/line.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/line.c [iso-8859-1] Thu Dec 10 02:18:26
2009
@@ -30,7 +30,8 @@
IntGdiMoveToEx(DC *dc,
int X,
int Y,
- LPPOINT Point)
+ LPPOINT Point,
+ BOOL BypassPath)
{
BOOL PathIsOpen;
PDC_ATTR pdcattr = dc->pdcattr;
@@ -53,6 +54,8 @@
pdcattr->ptfxCurrent = pdcattr->ptlCurrent;
CoordLPtoDP(dc, &pdcattr->ptfxCurrent); // Update fx
pdcattr->ulDirty_ &= ~(DIRTY_PTLCURRENT|DIRTY_PTFXCURRENT|DIRTY_STYLESTATE);
+
+ if (BypassPath) return TRUE;
PathIsOpen = PATH_IsPathOpen(dc->dclevel);
@@ -437,7 +440,7 @@
{
if ( lpbTypes[i] == PT_MOVETO )
{
- IntGdiMoveToEx( dc, lppt[i].x, lppt[i].y, NULL );
+ IntGdiMoveToEx( dc, lppt[i].x, lppt[i].y, NULL, FALSE );
lastmove.x = pdcattr->ptlCurrent.x;
lastmove.y = pdcattr->ptlCurrent.y;
}
Modified: trunk/reactos/subsystems/win32/win32k/objects/path.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/path.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/path.c [iso-8859-1] Thu Dec 10 02:18:26
2009
@@ -1491,7 +1491,7 @@
POINT pt;
IntGetCurrentPositionEx(dc, &pt);
IntDPtoLP(dc, &pt, 1);
- IntGdiMoveToEx(dc, pt.x, pt.y, NULL);
+ IntGdiMoveToEx(dc, pt.x, pt.y, NULL, FALSE);
}
DPRINT("Leave %s, ret=%d\n", __FUNCTION__, ret);
return ret;