gdi32: Implement the MoveTo entry point in the path driver.

This commit is contained in:
Alexandre Julliard 2011-10-26 19:57:28 +02:00
parent 8a7bf0a2ab
commit 2c1ec7fc3b
3 changed files with 12 additions and 26 deletions

View File

@ -325,7 +325,6 @@ extern void PATH_DestroyGdiPath(GdiPath *pPath) DECLSPEC_HIDDEN;
extern BOOL PATH_SavePath( DC *dst, DC *src ) DECLSPEC_HIDDEN; extern BOOL PATH_SavePath( DC *dst, DC *src ) DECLSPEC_HIDDEN;
extern BOOL PATH_RestorePath( DC *dst, DC *src ) DECLSPEC_HIDDEN; extern BOOL PATH_RestorePath( DC *dst, DC *src ) DECLSPEC_HIDDEN;
extern BOOL PATH_MoveTo(DC *dc) DECLSPEC_HIDDEN;
extern BOOL PATH_LineTo(DC *dc, INT x, INT y) DECLSPEC_HIDDEN; extern BOOL PATH_LineTo(DC *dc, INT x, INT y) DECLSPEC_HIDDEN;
extern BOOL PATH_Rectangle(DC *dc, INT x1, INT y1, INT x2, INT y2) DECLSPEC_HIDDEN; extern BOOL PATH_Rectangle(DC *dc, INT x1, INT y1, INT x2, INT y2) DECLSPEC_HIDDEN;
extern BOOL PATH_ExtTextOut(DC *dc, INT x, INT y, UINT flags, const RECT *lprc, extern BOOL PATH_ExtTextOut(DC *dc, INT x, INT y, UINT flags, const RECT *lprc,

View File

@ -258,7 +258,8 @@ BOOL WINAPI LineTo( HDC hdc, INT x, INT y )
*/ */
BOOL WINAPI MoveToEx( HDC hdc, INT x, INT y, LPPOINT pt ) BOOL WINAPI MoveToEx( HDC hdc, INT x, INT y, LPPOINT pt )
{ {
BOOL ret = TRUE; BOOL ret;
PHYSDEV physdev;
DC * dc = get_dc_ptr( hdc ); DC * dc = get_dc_ptr( hdc );
if(!dc) return FALSE; if(!dc) return FALSE;
@ -270,12 +271,8 @@ BOOL WINAPI MoveToEx( HDC hdc, INT x, INT y, LPPOINT pt )
dc->CursPosX = x; dc->CursPosX = x;
dc->CursPosY = y; dc->CursPosY = y;
if(PATH_IsPathOpen(dc->path)) ret = PATH_MoveTo(dc); physdev = GET_DC_PHYSDEV( dc, pMoveTo );
else ret = physdev->funcs->pMoveTo( physdev, x, y );
{
PHYSDEV physdev = GET_DC_PHYSDEV( dc, pMoveTo );
ret = physdev->funcs->pMoveTo( physdev, x, y );
}
release_dc_ptr( dc ); release_dc_ptr( dc );
return ret; return ret;
} }

View File

@ -884,25 +884,15 @@ BOOL PATH_RestorePath( DC *dst, DC *src )
return ret; return ret;
} }
/* PATH_MoveTo
* /*************************************************************
* Should be called when a MoveTo is performed on a DC that has an * pathdrv_MoveTo
* open path. This starts a new stroke. Returns TRUE if successful, else
* FALSE.
*/ */
BOOL PATH_MoveTo(DC *dc) static BOOL pathdrv_MoveTo( PHYSDEV dev, INT x, INT y )
{ {
GdiPath *pPath = &dc->path; struct path_physdev *physdev = get_path_physdev( dev );
physdev->path->newStroke = TRUE;
/* Check that path is open */ return TRUE;
if(pPath->state!=PATH_Open)
/* FIXME: Do we have to call SetLastError? */
return FALSE;
/* Start a new stroke */
pPath->newStroke=TRUE;
return TRUE;
} }
/* PATH_LineTo /* PATH_LineTo
@ -2372,7 +2362,7 @@ const struct gdi_dc_funcs path_driver =
NULL, /* pInvertRgn */ NULL, /* pInvertRgn */
NULL, /* pLineTo */ NULL, /* pLineTo */
NULL, /* pModifyWorldTransform */ NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */ pathdrv_MoveTo, /* pMoveTo */
NULL, /* pOffsetClipRgn */ NULL, /* pOffsetClipRgn */
NULL, /* pOffsetViewportOrg */ NULL, /* pOffsetViewportOrg */
NULL, /* pOffsetWindowOrg */ NULL, /* pOffsetWindowOrg */