diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 4ab38bada03..8b665fcdd52 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -54,7 +54,7 @@ @ stub GdipClonePen @ stub GdipCloneRegion @ stub GdipCloneStringFormat -@ stub GdipClosePathFigure +@ stdcall GdipClosePathFigure(ptr) @ stub GdipClosePathFigures @ stub GdipCombineRegionPath @ stub GdipCombineRegionRect diff --git a/dlls/gdiplus/graphicspath.c b/dlls/gdiplus/graphicspath.c index f8d2d49261c..c06576cc186 100644 --- a/dlls/gdiplus/graphicspath.c +++ b/dlls/gdiplus/graphicspath.c @@ -90,6 +90,19 @@ GpStatus WINGDIPAPI GdipAddPathLine2(GpPath *path, GDIPCONST GpPointF *points, return Ok; } +GpStatus WINGDIPAPI GdipClosePathFigure(GpPath* path) +{ + if(!path) + return InvalidParameter; + + if(path->pathdata.Count > 0){ + path->pathdata.Types[path->pathdata.Count - 1] |= PathPointTypeCloseSubpath; + path->newfigure = TRUE; + } + + return Ok; +} + GpStatus WINGDIPAPI GdipCreatePath(GpFillMode fill, GpPath **path) { if(!path) diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 42a60b9ffc2..3546883005f 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -49,6 +49,7 @@ GpStatus WINGDIPAPI GdipGetBrushType(GpBrush*,GpBrushType*); GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush*); GpStatus WINGDIPAPI GdipAddPathLine2(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipClosePathFigure(GpPath*); GpStatus WINGDIPAPI GdipCreatePath(GpFillMode,GpPath**); GpStatus WINGDIPAPI GdipDeletePath(GpPath*);