[2/10] gdiplus: added smoothing modes
Evan Stade
estade at gmail.com
Fri Jul 13 19:51:13 CDT 2007
Hi,
The next 4 patches implement only the getters and setters for
different elements of graphics state. There is no actual drawing
implementation.
Changelog:
* added smoothing mode enum types
* added GdipGetSmoothingMode, GdipSetSmoothingMode
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(-)
--
Evan Stade
-------------- next part --------------
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(HD
(*graphics)->hdc = hdc;
(*graphics)->hwnd = NULL;
+ (*graphics)->smoothing = SmoothingModeDefault;
return Ok;
}
@@ -796,3 +797,24 @@ GpStatus WINGDIPAPI GdipFillPie(GpGraphi
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(GpGraph
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*);
--
1.4.1
More information about the wine-patches
mailing list