diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index b5e0b03dcf9..d14457eb153 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -551,7 +551,7 @@ @ stub GdipSetPenDashOffset @ stub GdipSetPenDashStyle @ stdcall GdipSetPenEndCap(ptr long) -@ stub GdipSetPenLineCap197819 +@ stdcall GdipSetPenLineCap197819(ptr long long long) @ stub GdipSetPenLineJoin @ stub GdipSetPenMiterLimit @ stub GdipSetPenMode diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h index 20678c8d38f..d7851d6fd8e 100644 --- a/dlls/gdiplus/gdiplus_private.h +++ b/dlls/gdiplus/gdiplus_private.h @@ -47,6 +47,8 @@ struct GpPen{ REAL width; HPEN gdipen; GpLineCap endcap; + GpLineCap startcap; + GpDashCap dashcap; GpLineJoin join; REAL miterlimit; }; diff --git a/dlls/gdiplus/pen.c b/dlls/gdiplus/pen.c index a4894d3e40a..3bebc353f26 100644 --- a/dlls/gdiplus/pen.c +++ b/dlls/gdiplus/pen.c @@ -100,6 +100,20 @@ GpStatus WINGDIPAPI GdipSetPenEndCap(GpPen *pen, GpLineCap cap) return Ok; } +/* FIXME: startcap, dashcap not used. */ +GpStatus WINGDIPAPI GdipSetPenLineCap197819(GpPen *pen, GpLineCap start, + GpLineCap end, GpDashCap dash) +{ + if(!pen) + return InvalidParameter; + + pen->startcap = start; + pen->endcap = end; + pen->dashcap = dash; + + return Ok; +} + /* FIXME: Miter line joins behave a bit differently than they do in windows. * Both kinds of miter joins clip if the angle is less than 11 degrees. */ GpStatus WINGDIPAPI GdipSetPenLineJoin(GpPen *pen, GpLineJoin join) diff --git a/include/gdiplusenums.h b/include/gdiplusenums.h index 74f9c02df2c..7bf5eb6c1d0 100644 --- a/include/gdiplusenums.h +++ b/include/gdiplusenums.h @@ -134,6 +134,13 @@ enum PixelOffsetMode PixelOffsetModeHalf }; +enum DashCap +{ + DashCapFlat = 0, + DashCapRound = 2, + DashCapTriangle = 3 +}; + #ifndef __cplusplus typedef enum Unit Unit; @@ -147,6 +154,7 @@ typedef enum SmoothingMode SmoothingMode; typedef enum CompositingQuality CompositingQuality; typedef enum InterpolationMode InterpolationMode; typedef enum PixelOffsetMode PixelOffsetMode; +typedef enum DashCap DashCap; #endif /* end of c typedefs */ diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 3bda290e4ae..3ac4b3ef907 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -30,6 +30,7 @@ extern "C" { GpStatus WINGDIPAPI GdipCreatePen1(ARGB,REAL,GpUnit,GpPen**); GpStatus WINGDIPAPI GdipDeletePen(GpPen*); GpStatus WINGDIPAPI GdipSetPenEndCap(GpPen*,GpLineCap); +GpStatus WINGDIPAPI GdipSetPenLineCap197819(GpPen*,GpLineCap,GpLineCap,GpDashCap); GpStatus WINGDIPAPI GdipSetPenLineJoin(GpPen*,GpLineJoin); GpStatus WINGDIPAPI GdipCreateFromHDC(HDC,GpGraphics**); diff --git a/include/gdiplusgpstubs.h b/include/gdiplusgpstubs.h index b3962aaa4f0..d2174bb2e1f 100644 --- a/include/gdiplusgpstubs.h +++ b/include/gdiplusgpstubs.h @@ -48,5 +48,6 @@ typedef PathData GpPathData; typedef LineCap GpLineCap; typedef RectF GpRectF; typedef LineJoin GpLineJoin; +typedef DashCap GpDashCap; #endif