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