[ros-diffs] [jimtabor] 44507: [Win32k] - Add a bypass flag to skip the Path support in IntGdiMoveToEx. See bug report 4364. This fixes 11 gdi path wine tests.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Thu Dec 10 21:22:07 CET 2009


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/include/intgdi.h?rev=44507&r1=44506&r2=44507&view=diff
==============================================================================
--- 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/objects/arc.c?rev=44507&r1=44506&r2=44507&view=diff
==============================================================================
--- 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/objects/line.c?rev=44507&r1=44506&r2=44507&view=diff
==============================================================================
--- 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/objects/path.c?rev=44507&r1=44506&r2=44507&view=diff
==============================================================================
--- 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;




More information about the Ros-diffs mailing list