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 GdipGetClip
@ stub GdipGetClipBounds @ stub GdipGetClipBounds
@ stub GdipGetClipBoundsI @ stub GdipGetClipBoundsI
@ stub GdipGetCompositingMode @ stdcall GdipGetCompositingMode(ptr ptr)
@ stdcall GdipGetCompositingQuality(ptr ptr) @ stdcall GdipGetCompositingQuality(ptr ptr)
@ stub GdipGetCustomLineCapBaseCap @ stub GdipGetCustomLineCapBaseCap
@ stub GdipGetCustomLineCapBaseInset @ stub GdipGetCustomLineCapBaseInset
@ -512,7 +512,7 @@
@ stub GdipSetClipRect @ stub GdipSetClipRect
@ stub GdipSetClipRectI @ stub GdipSetClipRectI
@ stub GdipSetClipRegion @ stub GdipSetClipRegion
@ stub GdipSetCompositingMode @ stdcall GdipSetCompositingMode(ptr long)
@ stdcall GdipSetCompositingQuality(ptr long) @ stdcall GdipSetCompositingQuality(ptr long)
@ stub GdipSetCustomLineCapBaseCap @ stub GdipSetCustomLineCapBaseCap
@ stub GdipSetCustomLineCapBaseInset @ stub GdipSetCustomLineCapBaseInset

View File

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

View File

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

View File

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

View File

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