Module: wine Branch: master Commit: 60cad2352230b588a7d3bdd62a0048cdfaad0721 URL: http://source.winehq.org/git/wine.git/?a=commit;h=60cad2352230b588a7d3bdd62a...
Author: Evan Stade estade@gmail.com Date: Fri Jul 13 17:51:25 2007 -0700
gdiplus: Added compositing quality.
---
dlls/gdiplus/gdiplus.spec | 4 ++-- dlls/gdiplus/gdiplus_private.h | 1 + dlls/gdiplus/graphics.c | 24 ++++++++++++++++++++++++ include/gdiplusenums.h | 11 +++++++++++ include/gdiplusflat.h | 2 ++ 5 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 336fea1..4d2feba 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -235,7 +235,7 @@ @ stub GdipGetClipBounds @ stub GdipGetClipBoundsI @ stub GdipGetCompositingMode -@ stub GdipGetCompositingQuality +@ stdcall GdipGetCompositingQuality(ptr ptr) @ stub GdipGetCustomLineCapBaseCap @ stub GdipGetCustomLineCapBaseInset @ stub GdipGetCustomLineCapStrokeCaps @@ -493,7 +493,7 @@ @ stub GdipSetClipRectI @ stub GdipSetClipRegion @ stub GdipSetCompositingMode -@ stub GdipSetCompositingQuality +@ stdcall GdipSetCompositingQuality(ptr long) @ stub GdipSetCustomLineCapBaseCap @ stub GdipSetCustomLineCapBaseInset @ stub GdipSetCustomLineCapStrokeCaps diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h index 57a8579..dc0fd68 100644 --- a/dlls/gdiplus/gdiplus_private.h +++ b/dlls/gdiplus/gdiplus_private.h @@ -55,6 +55,7 @@ struct GpGraphics{ HDC hdc; HWND hwnd; SmoothingMode smoothing; + CompositingQuality compqual; };
struct GpBrush{ diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index f1f5f6c..b7c94b9 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -543,6 +543,7 @@ GpStatus WINGDIPAPI GdipCreateFromHDC(HDC hdc, GpGraphics **graphics) (*graphics)->hdc = hdc; (*graphics)->hwnd = NULL; (*graphics)->smoothing = SmoothingModeDefault; + (*graphics)->compqual = CompositingQualityDefault;
return Ok; } @@ -798,6 +799,18 @@ GpStatus WINGDIPAPI GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x, width, height, startAngle, sweepAngle); }
+/* FIXME: Compositing quality is not used anywhere except the getter/setter. */ +GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics *graphics, + CompositingQuality *quality) +{ + if(!graphics || !quality) + return InvalidParameter; + + *quality = graphics->compqual; + + return Ok; +} + /* FIXME: Smoothing mode is not used anywhere except the getter/setter. */ GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics *graphics, SmoothingMode *mode) { @@ -809,6 +822,17 @@ GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics *graphics, SmoothingMode *mo return Ok; }
+GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics *graphics, + CompositingQuality quality) +{ + if(!graphics) + return InvalidParameter; + + graphics->compqual = quality; + + return Ok; +} + GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics *graphics, SmoothingMode mode) { if(!graphics) diff --git a/include/gdiplusenums.h b/include/gdiplusenums.h index f7e261d..e8ad9fd 100644 --- a/include/gdiplusenums.h +++ b/include/gdiplusenums.h @@ -99,6 +99,16 @@ enum SmoothingMode SmoothingModeAntiAlias };
+enum CompositingQuality +{ + CompositingQualityInvalid = QualityModeInvalid, + CompositingQualityDefault = QualityModeDefault, + CompositingQualityHighSpeed = QualityModeLow, + CompositingQualityHighQuality = QualityModeHigh, + CompositingQualityGammaCorrected, + CompositingQualityAssumeLinear +}; + #ifndef __cplusplus
typedef enum Unit Unit; @@ -109,6 +119,7 @@ typedef enum PathPointType PathPointType; typedef enum LineJoin LineJoin; typedef enum QualityMode QualityMode; typedef enum SmoothingMode SmoothingMode; +typedef enum CompositingQuality CompositingQuality;
#endif /* end of c typedefs */
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index cb04c4e..246a04e 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -45,7 +45,9 @@ 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 GdipGetCompositingQuality(GpGraphics*,CompositingQuality*); GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics*,SmoothingMode*); +GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics*,CompositingQuality); GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics*,SmoothingMode);
GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB,GpSolidFill**);