diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 5c5e0a8b4d1..4ccd2133207 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -17,7 +17,7 @@ @ stdcall GdipAddPathEllipse(ptr long long long long) @ stub GdipAddPathEllipseI @ stdcall GdipAddPathLine2(ptr ptr long) -@ stub GdipAddPathLine2I +@ stdcall GdipAddPathLine2I(ptr ptr long) @ stub GdipAddPathLine @ stdcall GdipAddPathLineI(ptr long long long long) @ stdcall GdipAddPathPath(ptr ptr long) diff --git a/dlls/gdiplus/graphicspath.c b/dlls/gdiplus/graphicspath.c index adeaa891872..5d5e5fce096 100644 --- a/dlls/gdiplus/graphicspath.c +++ b/dlls/gdiplus/graphicspath.c @@ -217,6 +217,30 @@ GpStatus WINGDIPAPI GdipAddPathLine2(GpPath *path, GDIPCONST GpPointF *points, return Ok; } +GpStatus WINGDIPAPI GdipAddPathLine2I(GpPath *path, GDIPCONST GpPoint *points, INT count) +{ + GpPointF *pointsF; + INT i; + GpStatus stat; + + if(count <= 0) + return InvalidParameter; + + pointsF = GdipAlloc(sizeof(GpPointF) * count); + if(!pointsF) return OutOfMemory; + + for(i = 0;i < count; i++){ + pointsF[i].X = (REAL)points[i].X; + pointsF[i].Y = (REAL)points[i].Y; + } + + stat = GdipAddPathLine2(path, pointsF, count); + + GdipFree(pointsF); + + return stat; +} + GpStatus WINGDIPAPI GdipAddPathLineI(GpPath *path, INT x1, INT y1, INT x2, INT y2) { INT old_count; diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index f615e5b5944..bc97ef4236b 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -188,6 +188,7 @@ GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath*,REAL,REAL,REAL,REAL); GpStatus WINGDIPAPI GdipAddPathEllipseI(GpPath*,INT,INT,INT,INT); GpStatus WINGDIPAPI GdipAddPathLine(GpPath*,REAL,REAL,REAL,REAL); GpStatus WINGDIPAPI GdipAddPathLine2(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathLine2I(GpPath*,GDIPCONST GpPoint*,INT); GpStatus WINGDIPAPI GdipAddPathLineI(GpPath*,INT,INT,INT,INT); GpStatus WINGDIPAPI GdipAddPathPath(GpPath*,GDIPCONST GpPath*,BOOL); GpStatus WINGDIPAPI GdipClonePath(GpPath*,GpPath**);