diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c index 35e1659f69c..5ad9b13876c 100644 --- a/dlls/gdiplus/brush.c +++ b/dlls/gdiplus/brush.c @@ -83,7 +83,7 @@ GpStatus WINGDIPAPI GdipCreateLineBrush(GDIPCONST GpPointF* startpoint, { COLORREF col = ARGB2COLORREF(startcolor); - if(!line || !startpoint || !endpoint) + if(!line || !startpoint || !endpoint || wrap == WrapModeClamp) return InvalidParameter; *line = GdipAlloc(sizeof(GpLineGradient)); @@ -316,6 +316,17 @@ GpStatus WINGDIPAPI GdipGetSolidFillColor(GpSolidFill *sf, ARGB *argb) return Ok; } +GpStatus WINGDIPAPI GdipSetLineWrapMode(GpLineGradient *line, + GpWrapMode wrap) +{ + if(!line || wrap == WrapModeClamp) + return InvalidParameter; + + line->wrap = wrap; + + return Ok; +} + GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient *grad, ARGB argb) { diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 6811926fcb1..44026f7b68f 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -542,7 +542,7 @@ @ stub GdipSetLinePresetBlend @ stub GdipSetLineSigmaBlend @ stub GdipSetLineTransform -@ stub GdipSetLineWrapMode +@ stdcall GdipSetLineWrapMode(ptr long) @ stdcall GdipSetMatrixElements(ptr long long long long long long) @ stub GdipSetMetafileDownLevelRasterizationLimit @ stdcall GdipSetPageScale(ptr long) diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 963e8e4c7cb..713faac8f47 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -106,6 +106,7 @@ GpStatus WINGDIPAPI GdipGetPathGradientPointCount(GpPathGradient*,INT*); GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorsWithCount(GpPathGradient*, ARGB*,INT*); GpStatus WINGDIPAPI GdipGetSolidFillColor(GpSolidFill*,ARGB*); +GpStatus WINGDIPAPI GdipSetLineWrapMode(GpLineGradient*,GpWrapMode); GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient*,ARGB); GpStatus WINGDIPAPI GdipSetPathGradientCenterPoint(GpPathGradient*,GpPointF*); GpStatus WINGDIPAPI GdipSetPathGradientFocusScales(GpPathGradient*,REAL,REAL);