Evan Stade : gdiplus: Added smoothing modes.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jul 16 08:23:40 CDT 2007


Module: wine
Branch: master
Commit: 53e17d2993f51b9fa8079ad5df6a1ff93d1955e7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=53e17d2993f51b9fa8079ad5df6a1ff93d1955e7

Author: Evan Stade <estade at gmail.com>
Date:   Fri Jul 13 17:51:13 2007 -0700

gdiplus: Added smoothing modes.

---

 dlls/gdiplus/gdiplus.spec      |    4 ++--
 dlls/gdiplus/gdiplus_private.h |    1 +
 dlls/gdiplus/graphics.c        |   22 ++++++++++++++++++++++
 include/gdiplusenums.h         |   20 ++++++++++++++++++++
 include/gdiplusflat.h          |    2 ++
 5 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index 9d6457e..336fea1 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -368,7 +368,7 @@
 @ stub GdipGetRegionScansCount
 @ stub GdipGetRegionScansI
 @ stub GdipGetRenderingOrigin
-@ stub GdipGetSmoothingMode
+@ stdcall GdipGetSmoothingMode(ptr ptr)
 @ stub GdipGetSolidFillColor
 @ stub GdipGetStringFormatAlign
 @ stub GdipGetStringFormatDigitSubstitution
@@ -562,7 +562,7 @@
 @ stub GdipSetPixelOffsetMode
 @ stub GdipSetPropertyItem
 @ stub GdipSetRenderingOrigin
-@ stub GdipSetSmoothingMode
+@ stdcall GdipSetSmoothingMode(ptr long)
 @ stub GdipSetSolidFillColor
 @ stub GdipSetStringFormatAlign
 @ stub GdipSetStringFormatDigitSubstitution
diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h
index 1a2d67c..57a8579 100644
--- a/dlls/gdiplus/gdiplus_private.h
+++ b/dlls/gdiplus/gdiplus_private.h
@@ -54,6 +54,7 @@ struct GpPen{
 struct GpGraphics{
     HDC hdc;
     HWND hwnd;
+    SmoothingMode smoothing;
 };
 
 struct GpBrush{
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index eb37995..f1f5f6c 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -542,6 +542,7 @@ GpStatus WINGDIPAPI GdipCreateFromHDC(HDC hdc, GpGraphics **graphics)
 
     (*graphics)->hdc = hdc;
     (*graphics)->hwnd = NULL;
+    (*graphics)->smoothing = SmoothingModeDefault;
 
     return Ok;
 }
@@ -796,3 +797,24 @@ GpStatus WINGDIPAPI GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x,
     return draw_pie(graphics, brush->gdibrush, GetStockObject(NULL_PEN), x, y,
         width, height, startAngle, sweepAngle);
 }
+
+/* FIXME: Smoothing mode is not used anywhere except the getter/setter. */
+GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics *graphics, SmoothingMode *mode)
+{
+    if(!graphics || !mode)
+        return InvalidParameter;
+
+    *mode = graphics->smoothing;
+
+    return Ok;
+}
+
+GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics *graphics, SmoothingMode mode)
+{
+    if(!graphics)
+        return InvalidParameter;
+
+    graphics->smoothing = mode;
+
+    return Ok;
+}
diff --git a/include/gdiplusenums.h b/include/gdiplusenums.h
index 629a741..f7e261d 100644
--- a/include/gdiplusenums.h
+++ b/include/gdiplusenums.h
@@ -81,6 +81,24 @@ enum LineJoin
     LineJoinMiterClipped    = 3
 };
 
+enum QualityMode
+{
+    QualityModeInvalid  = -1,
+    QualityModeDefault  = 0,
+    QualityModeLow      = 1,
+    QualityModeHigh     = 2
+};
+
+enum SmoothingMode
+{
+    SmoothingModeInvalid     = QualityModeInvalid,
+    SmoothingModeDefault     = QualityModeDefault,
+    SmoothingModeHighSpeed   = QualityModeLow,
+    SmoothingModeHighQuality = QualityModeHigh,
+    SmoothingModeNone,
+    SmoothingModeAntiAlias
+};
+
 #ifndef __cplusplus
 
 typedef enum Unit Unit;
@@ -89,6 +107,8 @@ typedef enum FillMode FillMode;
 typedef enum LineCap LineCap;
 typedef enum PathPointType PathPointType;
 typedef enum LineJoin LineJoin;
+typedef enum QualityMode QualityMode;
+typedef enum SmoothingMode SmoothingMode;
 
 #endif /* end of c typedefs */
 
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 42c33de..cb04c4e 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -45,6 +45,8 @@ GpStatus WINGDIPAPI GdipDrawPath(GpGraphics*,GpPen*,GpPath*);
 GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL);
 GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT);
 GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics*,SmoothingMode*);
+GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics*,SmoothingMode);
 
 GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB,GpSolidFill**);
 GpStatus WINGDIPAPI GdipGetBrushType(GpBrush*,GpBrushType*);




More information about the wine-cvs mailing list