gdiplus: Added GdipSetCompositingMode/GdipGetCompositingMode.

This commit is contained in:
Evan Stade 2007-08-13 18:34:27 -07:00 committed by Alexandre Julliard
parent 6790cdb8f5
commit e807eb9ad6
5 changed files with 36 additions and 2 deletions

View File

@ -247,7 +247,7 @@
@ stub GdipGetClip
@ stub GdipGetClipBounds
@ stub GdipGetClipBoundsI
@ stub GdipGetCompositingMode
@ stdcall GdipGetCompositingMode(ptr ptr)
@ stdcall GdipGetCompositingQuality(ptr ptr)
@ stub GdipGetCustomLineCapBaseCap
@ stub GdipGetCustomLineCapBaseInset
@ -512,7 +512,7 @@
@ stub GdipSetClipRect
@ stub GdipSetClipRectI
@ stub GdipSetClipRegion
@ stub GdipSetCompositingMode
@ stdcall GdipSetCompositingMode(ptr long)
@ stdcall GdipSetCompositingQuality(ptr long)
@ stub GdipSetCustomLineCapBaseCap
@ stub GdipSetCustomLineCapBaseInset

View File

@ -79,6 +79,7 @@ struct GpGraphics{
CompositingQuality compqual;
InterpolationMode interpolation;
PixelOffsetMode pixeloffset;
CompositingMode compmode;
GpUnit unit; /* page unit */
REAL scale; /* page scale */
GpMatrix * worldtrans; /* world transform */

View File

@ -760,6 +760,7 @@ GpStatus WINGDIPAPI GdipCreateFromHDC(HDC hdc, GpGraphics **graphics)
(*graphics)->compqual = CompositingQualityDefault;
(*graphics)->interpolation = InterpolationModeDefault;
(*graphics)->pixeloffset = PixelOffsetModeDefault;
(*graphics)->compmode = CompositingModeSourceOver;
(*graphics)->unit = UnitDisplay;
(*graphics)->scale = 1.0;
@ -1421,6 +1422,18 @@ GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics *graphics, GpBrush *brush,
return Ok;
}
/* FIXME: Compositing mode is not used anywhere except the getter/setter. */
GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics *graphics,
CompositingMode *mode)
{
if(!graphics || !mode)
return InvalidParameter;
*mode = graphics->compmode;
return Ok;
}
/* FIXME: Compositing quality is not used anywhere except the getter/setter. */
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics *graphics,
CompositingQuality *quality)
@ -1523,6 +1536,17 @@ GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics *graphics, GraphicsState *state)
return NotImplemented;
}
GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics *graphics,
CompositingMode mode)
{
if(!graphics)
return InvalidParameter;
graphics->compmode = mode;
return Ok;
}
GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics *graphics,
CompositingQuality quality)
{

View File

@ -198,6 +198,12 @@ enum EmfType
EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual
};
enum CompositingMode
{
CompositingModeSourceOver,
CompositingModeSourceCopy
};
#ifndef __cplusplus
typedef enum Unit Unit;
@ -219,6 +225,7 @@ typedef enum WrapMode WrapMode;
typedef enum MetafileType MetafileType;
typedef enum LinearGradientMode LinearGradientMode;
typedef enum EmfType EmfType;
typedef enum CompositingMode CompositingMode;
#endif /* end of c typedefs */

View File

@ -81,6 +81,7 @@ GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT
GpFillMode);
GpStatus WINGDIPAPI GdipFillRectangle(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL);
GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics*,GpBrush*,INT,INT,INT,INT);
GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics*,CompositingMode*);
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*);
GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*);
GpStatus WINGDIPAPI GdipGetPageScale(GpGraphics*,REAL*);
@ -90,6 +91,7 @@ GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics*,SmoothingMode*);
GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics*,GpMatrix*);
GpStatus WINGDIPAPI GdipRestoreGraphics(GpGraphics*,GraphicsState);
GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics*,GraphicsState*);
GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics*,CompositingMode);
GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics*,CompositingQuality);
GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics*,InterpolationMode);
GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics*,REAL);