[5/10] gdiplus: added pixel offset mode

Evan Stade estade at gmail.com
Fri Jul 13 19:51:33 CDT 2007


Hi,

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

-- 
Evan Stade
-------------- next part --------------
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index c4f68d2..4403a2f 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -352,7 +352,7 @@
 @ stub GdipGetPenTransform
 @ stub GdipGetPenUnit
 @ stub GdipGetPenWidth
-@ stub GdipGetPixelOffsetMode
+@ stdcall GdipGetPixelOffsetMode(ptr ptr)
 @ stdcall GdipGetPointCount(ptr ptr)
 @ stub GdipGetPropertyCount
 @ stub GdipGetPropertyIdList
@@ -559,7 +559,7 @@
 @ stub GdipSetPenTransform
 @ stub GdipSetPenUnit
 @ stub GdipSetPenWidth
-@ stub GdipSetPixelOffsetMode
+@ stdcall GdipSetPixelOffsetMode(ptr long)
 @ stub GdipSetPropertyItem
 @ stub GdipSetRenderingOrigin
 @ stdcall GdipSetSmoothingMode(ptr long)
diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h
index 3856dee..20678c8 100644
--- a/dlls/gdiplus/gdiplus_private.h
+++ b/dlls/gdiplus/gdiplus_private.h
@@ -57,6 +57,7 @@ struct GpGraphics{
     SmoothingMode smoothing;
     CompositingQuality compqual;
     InterpolationMode interpolation;
+    PixelOffsetMode pixeloffset;
 };
 
 struct GpBrush{
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index b202f74..a725804 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -545,6 +545,7 @@ GpStatus WINGDIPAPI GdipCreateFromHDC(HD
     (*graphics)->smoothing = SmoothingModeDefault;
     (*graphics)->compqual = CompositingQualityDefault;
     (*graphics)->interpolation = InterpolationModeDefault;
+    (*graphics)->pixeloffset = PixelOffsetModeDefault;
 
     return Ok;
 }
@@ -824,6 +825,18 @@ GpStatus WINGDIPAPI GdipGetInterpolation
     return Ok;
 }
 
+/* FIXME: Pixel offset mode is not used anywhere except the getter/setter. */
+GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode
+    *mode)
+{
+    if(!graphics || !mode)
+        return InvalidParameter;
+
+    *mode = graphics->pixeloffset;
+
+    return Ok;
+}
+
 /* FIXME: Smoothing mode is not used anywhere except the getter/setter. */
 GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics *graphics, SmoothingMode *mode)
 {
@@ -857,6 +870,17 @@ GpStatus WINGDIPAPI GdipSetInterpolation
     return Ok;
 }
 
+GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode
+    mode)
+{
+    if(!graphics)
+        return InvalidParameter;
+
+    graphics->pixeloffset = mode;
+
+    return Ok;
+}
+
 GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics *graphics, SmoothingMode mode)
 {
     if(!graphics)
diff --git a/include/gdiplusenums.h b/include/gdiplusenums.h
index 699862c..10ed54f 100644
--- a/include/gdiplusenums.h
+++ b/include/gdiplusenums.h
@@ -122,6 +122,16 @@ enum InterpolationMode
     InterpolationModeHighQualityBicubic
 };
 
+enum PixelOffsetMode
+{
+    PixelOffsetModeInvalid     = QualityModeInvalid,
+    PixelOffsetModeDefault     = QualityModeDefault,
+    PixelOffsetModeHighSpeed   = QualityModeLow,
+    PixelOffsetModeHighQuality = QualityModeHigh,
+    PixelOffsetModeNone,
+    PixelOffsetModeHalf
+};
+
 #ifndef __cplusplus
 
 typedef enum Unit Unit;
@@ -134,6 +144,7 @@ typedef enum QualityMode QualityMode;
 typedef enum SmoothingMode SmoothingMode;
 typedef enum CompositingQuality CompositingQuality;
 typedef enum InterpolationMode InterpolationMode;
+typedef enum PixelOffsetMode PixelOffsetMode;
 
 #endif /* end of c typedefs */
 
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index c7f921d..2c3c617 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -47,9 +47,11 @@ GpStatus WINGDIPAPI GdipDrawRectangleI(G
 GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL);
 GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*);
 GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*);
+GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics*,PixelOffsetMode*);
 GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics*,SmoothingMode*);
 GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics*,CompositingQuality);
 GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics*,InterpolationMode);
+GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics*,PixelOffsetMode);
 GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics*,SmoothingMode);
 
 GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB,GpSolidFill**);
-- 
1.4.1


More information about the wine-patches mailing list