From 9ea7ef468b1911393bf95e3d6359cef3ba9e3a6c Mon Sep 17 00:00:00 2001 From: Evan Stade Date: Thu, 2 Aug 2007 17:52:49 -0700 Subject: [PATCH] gdiplus: Added GdipS/GetPathGradientGammaCorrection. --- dlls/gdiplus/brush.c | 24 ++++++++++++++++++++++++ dlls/gdiplus/gdiplus.spec | 4 ++-- dlls/gdiplus/gdiplus_private.h | 1 + include/gdiplusflat.h | 2 ++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c index 4864cafb879..d993119b1f6 100644 --- a/dlls/gdiplus/brush.c +++ b/dlls/gdiplus/brush.c @@ -84,6 +84,7 @@ GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF* points, (*grad)->brush.bt = BrushTypePathGradient; (*grad)->centercolor = 0xffffffff; (*grad)->wrap = wrap; + (*grad)->gamma = FALSE; return Ok; } @@ -123,6 +124,7 @@ GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath* path, (*grad)->brush.bt = BrushTypePathGradient; (*grad)->centercolor = 0xffffffff; (*grad)->wrap = WrapModeClamp; + (*grad)->gamma = FALSE; return Ok; } @@ -166,6 +168,17 @@ GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush *brush) return Ok; } +GpStatus WINGDIPAPI GdipGetPathGradientGammaCorrection(GpPathGradient *grad, + BOOL *gamma) +{ + if(!grad || !gamma) + return InvalidParameter; + + *gamma = grad->gamma; + + return Ok; +} + GpStatus WINGDIPAPI GdipGetPathGradientPointCount(GpPathGradient *grad, INT *count) { @@ -216,6 +229,17 @@ GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient *grad, return Ok; } +GpStatus WINGDIPAPI GdipSetPathGradientGammaCorrection(GpPathGradient *grad, + BOOL gamma) +{ + if(!grad) + return InvalidParameter; + + grad->gamma = gamma; + + return Ok; +} + GpStatus WINGDIPAPI GdipSetPathGradientSigmaBlend(GpPathGradient *grad, REAL focus, REAL scale) { diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index a3da26a3199..467ba823dca 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -331,7 +331,7 @@ @ stub GdipGetPathGradientCenterPoint @ stub GdipGetPathGradientCenterPointI @ stub GdipGetPathGradientFocusScales -@ stub GdipGetPathGradientGammaCorrection +@ stdcall GdipGetPathGradientGammaCorrection(ptr ptr) @ stub GdipGetPathGradientPath @ stdcall GdipGetPathGradientPointCount(ptr ptr) @ stub GdipGetPathGradientPresetBlend @@ -553,7 +553,7 @@ @ stub GdipSetPathGradientCenterPoint @ stub GdipSetPathGradientCenterPointI @ stub GdipSetPathGradientFocusScales -@ stub GdipSetPathGradientGammaCorrection +@ stdcall GdipSetPathGradientGammaCorrection(ptr long) @ stub GdipSetPathGradientLinearBlend @ stub GdipSetPathGradientPath @ stub GdipSetPathGradientPresetBlend diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h index 1c59a59f4f0..5f926801105 100644 --- a/dlls/gdiplus/gdiplus_private.h +++ b/dlls/gdiplus/gdiplus_private.h @@ -97,6 +97,7 @@ struct GpPathGradient{ PathData pathdata; ARGB centercolor; GpWrapMode wrap; + BOOL gamma; }; struct GpPath{ diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 87b8ccbc041..35edfba0f51 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -94,12 +94,14 @@ GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath*, GpPathGradient**); GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB,GpSolidFill**); GpStatus WINGDIPAPI GdipGetBrushType(GpBrush*,GpBrushType*); +GpStatus WINGDIPAPI GdipGetPathGradientGammaCorrection(GpPathGradient*,BOOL*); GpStatus WINGDIPAPI GdipGetPathGradientPointCount(GpPathGradient*,INT*); GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorsWithCount(GpPathGradient*, ARGB*,INT*); GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush*); GpStatus WINGDIPAPI GdipGetSolidFillColor(GpSolidFill*,ARGB*); GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient*,ARGB); +GpStatus WINGDIPAPI GdipSetPathGradientGammaCorrection(GpPathGradient*,BOOL); GpStatus WINGDIPAPI GdipSetPathGradientSigmaBlend(GpPathGradient*,REAL,REAL); GpStatus WINGDIPAPI GdipSetPathGradientSurroundColorsWithCount(GpPathGradient*, ARGB*,INT*);