mirror of
https://github.com/reactos/reactos.git
synced 2024-10-07 09:54:40 +00:00
[Win32k]
- Add a bypass flag to skip the Path support in IntGdiMoveToEx. See bug report 4364. This fixes 11 gdi path wine tests. svn path=/trunk/; revision=44507
This commit is contained in:
parent
9dae13cb9a
commit
ae95dea153
|
@ -67,7 +67,8 @@ BOOL FASTCALL
|
||||||
IntGdiMoveToEx(DC *dc,
|
IntGdiMoveToEx(DC *dc,
|
||||||
int X,
|
int X,
|
||||||
int Y,
|
int Y,
|
||||||
LPPOINT Point);
|
LPPOINT Point,
|
||||||
|
BOOL BypassPath);
|
||||||
|
|
||||||
BOOL FASTCALL
|
BOOL FASTCALL
|
||||||
IntGdiPolyBezier(DC *dc,
|
IntGdiPolyBezier(DC *dc,
|
||||||
|
|
|
@ -247,9 +247,9 @@ IntGdiArcInternal(
|
||||||
if (arctype == GdiTypeArcTo)
|
if (arctype == GdiTypeArcTo)
|
||||||
{
|
{
|
||||||
if (dc->dclevel.flPath & DCPATH_CLOCKWISE)
|
if (dc->dclevel.flPath & DCPATH_CLOCKWISE)
|
||||||
IntGdiMoveToEx(dc, XStartArc, YStartArc, NULL);
|
IntGdiMoveToEx(dc, XStartArc, YStartArc, NULL, TRUE);
|
||||||
else
|
else
|
||||||
IntGdiMoveToEx(dc, XEndArc, YEndArc, NULL);
|
IntGdiMoveToEx(dc, XEndArc, YEndArc, NULL, TRUE);
|
||||||
}
|
}
|
||||||
return Ret;
|
return Ret;
|
||||||
}
|
}
|
||||||
|
@ -294,7 +294,7 @@ IntGdiAngleArc( PDC pDC,
|
||||||
|
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
IntGdiMoveToEx(pDC, x2, y2, NULL); // Dont forget Path.
|
IntGdiMoveToEx(pDC, x2, y2, NULL, TRUE);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,8 @@ BOOL FASTCALL
|
||||||
IntGdiMoveToEx(DC *dc,
|
IntGdiMoveToEx(DC *dc,
|
||||||
int X,
|
int X,
|
||||||
int Y,
|
int Y,
|
||||||
LPPOINT Point)
|
LPPOINT Point,
|
||||||
|
BOOL BypassPath)
|
||||||
{
|
{
|
||||||
BOOL PathIsOpen;
|
BOOL PathIsOpen;
|
||||||
PDC_ATTR pdcattr = dc->pdcattr;
|
PDC_ATTR pdcattr = dc->pdcattr;
|
||||||
|
@ -54,6 +55,8 @@ IntGdiMoveToEx(DC *dc,
|
||||||
CoordLPtoDP(dc, &pdcattr->ptfxCurrent); // Update fx
|
CoordLPtoDP(dc, &pdcattr->ptfxCurrent); // Update fx
|
||||||
pdcattr->ulDirty_ &= ~(DIRTY_PTLCURRENT|DIRTY_PTFXCURRENT|DIRTY_STYLESTATE);
|
pdcattr->ulDirty_ &= ~(DIRTY_PTLCURRENT|DIRTY_PTFXCURRENT|DIRTY_STYLESTATE);
|
||||||
|
|
||||||
|
if (BypassPath) return TRUE;
|
||||||
|
|
||||||
PathIsOpen = PATH_IsPathOpen(dc->dclevel);
|
PathIsOpen = PATH_IsPathOpen(dc->dclevel);
|
||||||
|
|
||||||
if ( PathIsOpen )
|
if ( PathIsOpen )
|
||||||
|
@ -437,7 +440,7 @@ NtGdiPolyDraw(
|
||||||
{
|
{
|
||||||
if ( lpbTypes[i] == PT_MOVETO )
|
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.x = pdcattr->ptlCurrent.x;
|
||||||
lastmove.y = pdcattr->ptlCurrent.y;
|
lastmove.y = pdcattr->ptlCurrent.y;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1491,7 +1491,7 @@ end:
|
||||||
POINT pt;
|
POINT pt;
|
||||||
IntGetCurrentPositionEx(dc, &pt);
|
IntGetCurrentPositionEx(dc, &pt);
|
||||||
IntDPtoLP(dc, &pt, 1);
|
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);
|
DPRINT("Leave %s, ret=%d\n", __FUNCTION__, ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in a new issue