[5/11] gdiplus: added GdipS/GetPathGradientGammaCorrection

Evan Stade estade at gmail.com
Thu Aug 2 19:52:49 CDT 2007


Hi,

 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(-)

-- 
Evan Stade
-------------- next part --------------
diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c
index 4864caf..d993119 100644
--- a/dlls/gdiplus/brush.c
+++ b/dlls/gdiplus/brush.c
@@ -84,6 +84,7 @@ GpStatus WINGDIPAPI GdipCreatePathGradie
     (*grad)->brush.bt = BrushTypePathGradient;
     (*grad)->centercolor = 0xffffffff;
     (*grad)->wrap = wrap;
+    (*grad)->gamma = FALSE;
 
     return Ok;
 }
@@ -123,6 +124,7 @@ GpStatus WINGDIPAPI GdipCreatePathGradie
     (*grad)->brush.bt = BrushTypePathGradient;
     (*grad)->centercolor = 0xffffffff;
     (*grad)->wrap = WrapModeClamp;
+    (*grad)->gamma = FALSE;
 
     return Ok;
 }
@@ -166,6 +168,17 @@ GpStatus WINGDIPAPI GdipDeleteBrush(GpBr
     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 GdipSetPathGradientC
     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 85ad779..01b67a5 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 f843cc8..599addb 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 87b8ccb..35edfba 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -94,12 +94,14 @@ GpStatus WINGDIPAPI GdipCreatePathGradie
     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*);
-- 
1.4.1


More information about the wine-patches mailing list