From 7c83a7cdce99a03841c3b2a66dcabeed68baa354 Mon Sep 17 00:00:00 2001 From: John Abd-El-Malek Date: Fri, 23 May 2014 17:49:55 -0700 Subject: remove Microsoft SDK Original patch by Lucas Nihlen --- .../fxge/Microsoft SDK/include/GdiPlusGraphics.h | 2726 -------------------- 1 file changed, 2726 deletions(-) delete mode 100644 core/src/fxge/Microsoft SDK/include/GdiPlusGraphics.h (limited to 'core/src/fxge/Microsoft SDK/include/GdiPlusGraphics.h') diff --git a/core/src/fxge/Microsoft SDK/include/GdiPlusGraphics.h b/core/src/fxge/Microsoft SDK/include/GdiPlusGraphics.h deleted file mode 100644 index 4e4e3dae12..0000000000 --- a/core/src/fxge/Microsoft SDK/include/GdiPlusGraphics.h +++ /dev/null @@ -1,2726 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2000, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusGraphics.h -* -* Abstract: -* -* Declarations for Graphics class -* -\**************************************************************************/ - -#ifndef _GDIPLUSGRAPHICS_H -#define _GDIPLUSGRAPHICS_H - -/** - * Represent a graphics context - */ -class Graphics : public GdiplusBase -{ -public: - friend class Region; - friend class GraphicsPath; - friend class Image; - friend class Bitmap; - friend class Metafile; - friend class Font; - friend class FontFamily; - friend class FontCollection; - friend class CachedBitmap; - - // Get a graphics context from an existing Win32 HDC or HWND - static Graphics* FromHDC(IN HDC hdc) - { - return new Graphics(hdc); - } - - static Graphics* FromHDC(IN HDC hdc, - IN HANDLE hdevice) - { - return new Graphics(hdc, hdevice); - } - - static Graphics* FromHWND(IN HWND hwnd, - IN BOOL icm = FALSE) - { - return new Graphics(hwnd, icm); - } - - static Graphics* FromImage(IN Image *image) - { - return new Graphics(image); - } - - Graphics(IN HDC hdc) - { - GpGraphics *graphics = NULL; - - lastResult = DllExports::GdipCreateFromHDC(hdc, &graphics); - - SetNativeGraphics(graphics); - } - - Graphics(IN HDC hdc, - IN HANDLE hdevice) - { - GpGraphics *graphics = NULL; - - lastResult = DllExports::GdipCreateFromHDC2(hdc, hdevice, &graphics); - - SetNativeGraphics(graphics); - } - - Graphics(IN HWND hwnd, - IN BOOL icm = FALSE) - { - GpGraphics *graphics = NULL; - - if (icm) - { - lastResult = DllExports::GdipCreateFromHWNDICM(hwnd, &graphics); - } - else - { - lastResult = DllExports::GdipCreateFromHWND(hwnd, &graphics); - } - - SetNativeGraphics(graphics); - } - - Graphics(IN Image* image) - { - GpGraphics *graphics = NULL; - - if (image != NULL) - { - lastResult = DllExports::GdipGetImageGraphicsContext( - image->nativeImage, &graphics); - } - SetNativeGraphics(graphics); - } - - ~Graphics() - { - DllExports::GdipDeleteGraphics(nativeGraphics); - } - - VOID Flush(IN FlushIntention intention = FlushIntentionFlush) - { - DllExports::GdipFlush(nativeGraphics, intention); - } - - //------------------------------------------------------------------------ - // Interop methods - //------------------------------------------------------------------------ - - // Locks the graphics until ReleaseDC is called - HDC GetHDC() - { - HDC hdc = NULL; - - SetStatus(DllExports::GdipGetDC(nativeGraphics, &hdc)); - - return hdc; - } - - VOID ReleaseHDC(IN HDC hdc) - { - SetStatus(DllExports::GdipReleaseDC(nativeGraphics, hdc)); - } - - //------------------------------------------------------------------------ - // Rendering modes - //------------------------------------------------------------------------ - - Status SetRenderingOrigin(IN INT x, IN INT y) - { - return SetStatus( - DllExports::GdipSetRenderingOrigin( - nativeGraphics, x, y - ) - ); - } - - Status GetRenderingOrigin(OUT INT *x, OUT INT *y) const - { - return SetStatus( - DllExports::GdipGetRenderingOrigin( - nativeGraphics, x, y - ) - ); - } - - Status SetCompositingMode(IN CompositingMode compositingMode) - { - return SetStatus(DllExports::GdipSetCompositingMode(nativeGraphics, - compositingMode)); - } - - CompositingMode GetCompositingMode() const - { - CompositingMode mode; - - SetStatus(DllExports::GdipGetCompositingMode(nativeGraphics, - &mode)); - - return mode; - } - - Status SetCompositingQuality(IN CompositingQuality compositingQuality) - { - return SetStatus(DllExports::GdipSetCompositingQuality( - nativeGraphics, - compositingQuality)); - } - - CompositingQuality GetCompositingQuality() const - { - CompositingQuality quality; - - SetStatus(DllExports::GdipGetCompositingQuality( - nativeGraphics, - &quality)); - - return quality; - } - - Status SetTextRenderingHint(IN TextRenderingHint newMode) - { -#ifndef DCR_USE_NEW_186764 - /* temporarly set the high bit to warn that we are using the new definition for the flag */ - newMode = (TextRenderingHint) (newMode | 0x0f000); -#endif // DCR_USE_NEW_186764 - return SetStatus(DllExports::GdipSetTextRenderingHint(nativeGraphics, - newMode)); - } - - TextRenderingHint GetTextRenderingHint() const - { - TextRenderingHint hint; - - SetStatus(DllExports::GdipGetTextRenderingHint(nativeGraphics, - &hint)); - - return hint; - } - -#ifdef DCR_USE_NEW_188922 - Status SetTextContrast(IN UINT contrast) - { - return SetStatus(DllExports::GdipSetTextContrast(nativeGraphics, - contrast)); - } - - UINT GetTextContrast() const - { - UINT contrast; - - SetStatus(DllExports::GdipGetTextContrast(nativeGraphics, - &contrast)); - - return contrast; - } -#else - Status SetTextGammaValue(IN UINT gammaValue) - { - return SetStatus(DllExports::GdipSetTextGammaValue(nativeGraphics, - gammaValue)); - } - - UINT GetTextGammaValue() const - { - UINT gammaValue; - - SetStatus(DllExports::GdipGetTextGammaValue(nativeGraphics, - &gammaValue)); - - return gammaValue; - } - -#endif // DCR_USE_NEW_188922 - - - InterpolationMode GetInterpolationMode() const - { - InterpolationMode mode = InterpolationModeInvalid; - - SetStatus(DllExports::GdipGetInterpolationMode(nativeGraphics, - &mode)); - - return mode; - } - - Status SetInterpolationMode(IN InterpolationMode interpolationMode) - { - return SetStatus(DllExports::GdipSetInterpolationMode(nativeGraphics, - interpolationMode)); - } - - SmoothingMode GetSmoothingMode() const - { - SmoothingMode smoothingMode = SmoothingModeInvalid; - - SetStatus(DllExports::GdipGetSmoothingMode(nativeGraphics, - &smoothingMode)); - - return smoothingMode; - } - - Status SetSmoothingMode(IN SmoothingMode smoothingMode) - { - return SetStatus(DllExports::GdipSetSmoothingMode(nativeGraphics, - smoothingMode)); - } - - PixelOffsetMode GetPixelOffsetMode() const - { - PixelOffsetMode pixelOffsetMode = PixelOffsetModeInvalid; - - SetStatus(DllExports::GdipGetPixelOffsetMode(nativeGraphics, - &pixelOffsetMode)); - - return pixelOffsetMode; - } - - Status SetPixelOffsetMode(IN PixelOffsetMode pixelOffsetMode) - { - return SetStatus(DllExports::GdipSetPixelOffsetMode(nativeGraphics, - pixelOffsetMode)); - } - - //------------------------------------------------------------------------ - // Manipulate the current world transform - //------------------------------------------------------------------------ - - Status SetTransform(IN const Matrix* matrix) - { - return SetStatus(DllExports::GdipSetWorldTransform(nativeGraphics, - matrix->nativeMatrix)); - } - Status ResetTransform() - { - return SetStatus(DllExports::GdipResetWorldTransform(nativeGraphics)); - } - - Status MultiplyTransform(IN const Matrix* matrix, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipMultiplyWorldTransform(nativeGraphics, - matrix->nativeMatrix, - order)); - } - - Status TranslateTransform(IN REAL dx, - IN REAL dy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipTranslateWorldTransform(nativeGraphics, - dx, dy, order)); - } - - Status ScaleTransform(IN REAL sx, - IN REAL sy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipScaleWorldTransform(nativeGraphics, - sx, sy, order)); - } - - Status RotateTransform(IN REAL angle, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipRotateWorldTransform(nativeGraphics, - angle, order)); - } - - /** - * Return the current world transform - */ - - Status GetTransform(OUT Matrix* matrix) const - { - return SetStatus(DllExports::GdipGetWorldTransform(nativeGraphics, - matrix->nativeMatrix)); - } - - /** - * Manipulate the current page transform - */ - - Status SetPageUnit(IN Unit unit) - { - return SetStatus(DllExports::GdipSetPageUnit(nativeGraphics, - unit)); - } - - Status SetPageScale(IN REAL scale) - { - return SetStatus(DllExports::GdipSetPageScale(nativeGraphics, - scale)); - } - - /** - * Retrieve the current page transform information - * notes @ these are atomic - */ - Unit GetPageUnit() const - { - Unit unit; - - SetStatus(DllExports::GdipGetPageUnit(nativeGraphics, &unit)); - - return unit; - } - - REAL GetPageScale() const - { - REAL scale; - - SetStatus(DllExports::GdipGetPageScale(nativeGraphics, &scale)); - - return scale; - } - - REAL GetDpiX() const - { - REAL dpi; - - SetStatus(DllExports::GdipGetDpiX(nativeGraphics, &dpi)); - - return dpi; - } - - REAL GetDpiY() const - { - REAL dpi; - - SetStatus(DllExports::GdipGetDpiY(nativeGraphics, &dpi)); - - return dpi; - } - - /** - * Transform points in the current graphics context - */ - // float version - Status TransformPoints(IN CoordinateSpace destSpace, - IN CoordinateSpace srcSpace, - IN OUT PointF* pts, - IN INT count) const - { - return SetStatus(DllExports::GdipTransformPoints(nativeGraphics, - destSpace, - srcSpace, - pts, - count)); - } - - // integer version - Status TransformPoints(IN CoordinateSpace destSpace, - IN CoordinateSpace srcSpace, - IN OUT Point* pts, - IN INT count) const - { - - return SetStatus(DllExports::GdipTransformPointsI(nativeGraphics, - destSpace, - srcSpace, - pts, - count)); - } - - //------------------------------------------------------------------------ - // GetNearestColor (for <= 8bpp surfaces) - // Note: alpha is ignored - //------------------------------------------------------------------------ - Status GetNearestColor(IN OUT Color* color) const - { - if (color == NULL) - { - return SetStatus(InvalidParameter); - } - - ARGB argb = color->GetValue(); - - Status status = SetStatus(DllExports::GdipGetNearestColor(nativeGraphics, &argb)); - - color->SetValue(argb); - - return status; - } - - /** - * Vector drawing methods - * - * @notes Do we need a set of methods that take - * integer coordinate parameters? - */ - - // float version - Status DrawLine(IN const Pen* pen, - IN REAL x1, - IN REAL y1, - IN REAL x2, - IN REAL y2) - { - return SetStatus(DllExports::GdipDrawLine(nativeGraphics, - pen->nativePen, x1, y1, x2, - y2)); - } - - Status DrawLine(IN const Pen* pen, - IN const PointF& pt1, - IN const PointF& pt2) - { - return DrawLine(pen, pt1.X, pt1.Y, pt2.X, pt2.Y); - } - - Status DrawLines(IN const Pen* pen, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawLines(nativeGraphics, - pen->nativePen, - points, count)); - } - - // int version - Status DrawLine(IN const Pen* pen, - IN INT x1, - IN INT y1, - IN INT x2, - IN INT y2) - { - return SetStatus(DllExports::GdipDrawLineI(nativeGraphics, - pen->nativePen, - x1, - y1, - x2, - y2)); - } - - Status DrawLine(IN const Pen* pen, - IN const Point& pt1, - IN const Point& pt2) - { - return DrawLine(pen, - pt1.X, - pt1.Y, - pt2.X, - pt2.Y); - } - - Status DrawLines(IN const Pen* pen, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawLinesI(nativeGraphics, - pen->nativePen, - points, - count)); - } - - // float version - Status DrawArc(IN const Pen* pen, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipDrawArc(nativeGraphics, - pen->nativePen, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - Status DrawArc(IN const Pen* pen, - IN const RectF& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return DrawArc(pen, rect.X, rect.Y, rect.Width, rect.Height, - startAngle, sweepAngle); - } - - // int version - Status DrawArc(IN const Pen* pen, - IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipDrawArcI(nativeGraphics, - pen->nativePen, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - - Status DrawArc(IN const Pen* pen, - IN const Rect& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return DrawArc(pen, - rect.X, - rect.Y, - rect.Width, - rect.Height, - startAngle, - sweepAngle); - } - - // float version - Status DrawBezier(IN const Pen* pen, - IN REAL x1, - IN REAL y1, - IN REAL x2, - IN REAL y2, - IN REAL x3, - IN REAL y3, - IN REAL x4, - IN REAL y4) - { - return SetStatus(DllExports::GdipDrawBezier(nativeGraphics, - pen->nativePen, x1, y1, - x2, y2, x3, y3, x4, y4)); - } - - Status DrawBezier(IN const Pen* pen, - IN const PointF& pt1, - IN const PointF& pt2, - IN const PointF& pt3, - IN const PointF& pt4) - { - return DrawBezier(pen, - pt1.X, - pt1.Y, - pt2.X, - pt2.Y, - pt3.X, - pt3.Y, - pt4.X, - pt4.Y); - } - - Status DrawBeziers(IN const Pen* pen, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawBeziers(nativeGraphics, - pen->nativePen, - points, - count)); - } - - // int version - Status DrawBezier(IN const Pen* pen, - IN INT x1, - IN INT y1, - IN INT x2, - IN INT y2, - IN INT x3, - IN INT y3, - IN INT x4, - IN INT y4) - { - return SetStatus(DllExports::GdipDrawBezierI(nativeGraphics, - pen->nativePen, - x1, - y1, - x2, - y2, - x3, - y3, - x4, - y4)); - } - - Status DrawBezier(IN const Pen* pen, - IN const Point& pt1, - IN const Point& pt2, - IN const Point& pt3, - IN const Point& pt4) - { - return DrawBezier(pen, - pt1.X, - pt1.Y, - pt2.X, - pt2.Y, - pt3.X, - pt3.Y, - pt4.X, - pt4.Y); - } - - Status DrawBeziers(IN const Pen* pen, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawBeziersI(nativeGraphics, - pen->nativePen, - points, - count)); - } - - // float version - Status DrawRectangle(IN const Pen* pen, - IN const RectF& rect) - { - return DrawRectangle(pen, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status DrawRectangle(IN const Pen* pen, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipDrawRectangle(nativeGraphics, - pen->nativePen, x, y, - width, height)); - } - - Status DrawRectangles(IN const Pen* pen, - IN const RectF* rects, - IN INT count) - { - return SetStatus(DllExports::GdipDrawRectangles(nativeGraphics, - pen->nativePen, - rects, count)); - } - - // integer version - Status DrawRectangle(IN const Pen* pen, - IN const Rect& rect) - { - return DrawRectangle(pen, - rect.X, - rect.Y, - rect.Width, - rect.Height); - } - - Status DrawRectangle(IN const Pen* pen, - IN INT x, - IN INT y, - IN INT width, - IN INT height) - { - return SetStatus(DllExports::GdipDrawRectangleI(nativeGraphics, - pen->nativePen, - x, - y, - width, - height)); - } - - Status DrawRectangles(IN const Pen* pen, - IN const Rect* rects, - IN INT count) - { - return SetStatus(DllExports::GdipDrawRectanglesI(nativeGraphics, - pen->nativePen, - rects, - count)); - } - - // float version - Status DrawEllipse(IN const Pen* pen, - IN const RectF& rect) - { - return DrawEllipse(pen, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status DrawEllipse(IN const Pen* pen, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipDrawEllipse(nativeGraphics, - pen->nativePen, - x, - y, - width, - height)); - } - - // integer version - Status DrawEllipse(IN const Pen* pen, - IN const Rect& rect) - { - return DrawEllipse(pen, - rect.X, - rect.Y, - rect.Width, - rect.Height); - } - - Status DrawEllipse(IN const Pen* pen, - IN INT x, - IN INT y, - IN INT width, - IN INT height) - { - return SetStatus(DllExports::GdipDrawEllipseI(nativeGraphics, - pen->nativePen, - x, - y, - width, - height)); - } - - // floating point version - Status DrawPie(IN const Pen* pen, - IN const RectF& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return DrawPie(pen, - rect.X, - rect.Y, - rect.Width, - rect.Height, - startAngle, - sweepAngle); - } - - Status DrawPie(IN const Pen* pen, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipDrawPie(nativeGraphics, - pen->nativePen, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - // integer point version - Status DrawPie(IN const Pen* pen, - IN const Rect& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return DrawPie(pen, - rect.X, - rect.Y, - rect.Width, - rect.Height, - startAngle, - sweepAngle); - } - - Status DrawPie(IN const Pen* pen, - IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipDrawPieI(nativeGraphics, - pen->nativePen, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - // float version - Status DrawPolygon(IN const Pen* pen, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawPolygon(nativeGraphics, - pen->nativePen, - points, - count)); - } - - // integer version - Status DrawPolygon(IN const Pen* pen, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawPolygonI(nativeGraphics, - pen->nativePen, - points, - count)); - } - - // float version - Status DrawPath(IN const Pen* pen, - IN const GraphicsPath* path) - { - return SetStatus(DllExports::GdipDrawPath(nativeGraphics, - pen ? pen->nativePen : NULL, - path ? path->nativePath : NULL)); - } - - // float version - Status DrawCurve(IN const Pen* pen, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawCurve(nativeGraphics, - pen->nativePen, points, - count)); - } - - Status DrawCurve(IN const Pen* pen, - IN const PointF* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipDrawCurve2(nativeGraphics, - pen->nativePen, points, - count, tension)); - } - - Status DrawCurve(IN const Pen* pen, - IN const PointF* points, - IN INT count, - IN INT offset, - IN INT numberOfSegments, - IN REAL tension = 0.5f) - { - return SetStatus(DllExports::GdipDrawCurve3(nativeGraphics, - pen->nativePen, points, - count, offset, - numberOfSegments, tension)); - } - - // integer version - Status DrawCurve(IN const Pen* pen, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawCurveI(nativeGraphics, - pen->nativePen, - points, - count)); - } - - Status DrawCurve(IN const Pen* pen, - IN const Point* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipDrawCurve2I(nativeGraphics, - pen->nativePen, - points, - count, - tension)); - } - - Status DrawCurve(IN const Pen* pen, - IN const Point* points, - IN INT count, - IN INT offset, - IN INT numberOfSegments, - IN REAL tension = 0.5f) - { - return SetStatus(DllExports::GdipDrawCurve3I(nativeGraphics, - pen->nativePen, - points, - count, - offset, - numberOfSegments, - tension)); - } - - // float version - Status DrawClosedCurve(IN const Pen* pen, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawClosedCurve(nativeGraphics, - pen->nativePen, - points, count)); - } - - Status DrawClosedCurve(IN const Pen *pen, - IN const PointF* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipDrawClosedCurve2(nativeGraphics, - pen->nativePen, - points, count, - tension)); - } - - // integer version - Status DrawClosedCurve(IN const Pen* pen, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawClosedCurveI(nativeGraphics, - pen->nativePen, - points, - count)); - } - - Status DrawClosedCurve(IN const Pen *pen, - IN const Point* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipDrawClosedCurve2I(nativeGraphics, - pen->nativePen, - points, - count, - tension)); - } - - Status Clear(IN const Color &color) - { - return SetStatus(DllExports::GdipGraphicsClear( - nativeGraphics, - color.GetValue())); - } - - // float version - Status FillRectangle(IN const Brush* brush, - IN const RectF& rect) - { - return FillRectangle(brush, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status FillRectangle(IN const Brush* brush, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipFillRectangle(nativeGraphics, - brush->nativeBrush, x, y, - width, height)); - } - - Status FillRectangles(IN const Brush* brush, - IN const RectF* rects, - IN INT count) - { - return SetStatus(DllExports::GdipFillRectangles(nativeGraphics, - brush->nativeBrush, - rects, count)); - } - - // integer version - Status FillRectangle(IN const Brush* brush, - IN const Rect& rect) - { - return FillRectangle(brush, - rect.X, - rect.Y, - rect.Width, - rect.Height); - } - - Status FillRectangle(IN const Brush* brush, - IN INT x, - IN INT y, - IN INT width, - IN INT height) - { - return SetStatus(DllExports::GdipFillRectangleI(nativeGraphics, - brush->nativeBrush, - x, - y, - width, - height)); - } - - Status FillRectangles(IN const Brush* brush, - IN const Rect* rects, - IN INT count) - { - return SetStatus(DllExports::GdipFillRectanglesI(nativeGraphics, - brush->nativeBrush, - rects, - count)); - } - - // float version - Status FillPolygon(IN const Brush* brush, - IN const PointF* points, - IN INT count) - { - return FillPolygon(brush, points, count, FillModeAlternate); - } - - Status FillPolygon(IN const Brush* brush, - IN const PointF* points, - IN INT count, - IN FillMode fillMode) - { - return SetStatus(DllExports::GdipFillPolygon(nativeGraphics, - brush->nativeBrush, - points, count, fillMode)); - } - - // integer version - Status FillPolygon(IN const Brush* brush, - IN const Point* points, - IN INT count) - { - return FillPolygon(brush, points, count, FillModeAlternate); - } - - Status FillPolygon(IN const Brush* brush, - IN const Point* points, - IN INT count, - IN FillMode fillMode) - { - return SetStatus(DllExports::GdipFillPolygonI(nativeGraphics, - brush->nativeBrush, - points, count, - fillMode)); - } - - // float version - Status FillEllipse(IN const Brush* brush, - IN const RectF& rect) - { - return FillEllipse(brush, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status FillEllipse(IN const Brush* brush, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipFillEllipse(nativeGraphics, - brush->nativeBrush, x, y, - width, height)); - } - - // integer version - Status FillEllipse(IN const Brush* brush, - IN const Rect& rect) - { - return FillEllipse(brush, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status FillEllipse(IN const Brush* brush, - IN INT x, - IN INT y, - IN INT width, - IN INT height) - { - return SetStatus(DllExports::GdipFillEllipseI(nativeGraphics, - brush->nativeBrush, - x, - y, - width, - height)); - } - - // float version - Status FillPie(IN const Brush* brush, - IN const RectF& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return FillPie(brush, rect.X, rect.Y, rect.Width, rect.Height, - startAngle, sweepAngle); - } - - Status FillPie(IN const Brush* brush, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipFillPie(nativeGraphics, - brush->nativeBrush, x, y, - width, height, startAngle, - sweepAngle)); - } - - // integer version - Status FillPie(IN const Brush* brush, - IN const Rect& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return FillPie(brush, rect.X, rect.Y, rect.Width, rect.Height, - startAngle, sweepAngle); - } - - Status FillPie(IN const Brush* brush, - IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipFillPieI(nativeGraphics, - brush->nativeBrush, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - Status FillPath(IN const Brush* brush, - IN const GraphicsPath* path) - { - return SetStatus(DllExports::GdipFillPath(nativeGraphics, - brush->nativeBrush, - path->nativePath)); - } - - // float version - Status FillClosedCurve(IN const Brush* brush, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipFillClosedCurve(nativeGraphics, - brush->nativeBrush, - points, count)); - - } - - Status FillClosedCurve(IN const Brush* brush, - IN const PointF* points, - IN INT count, - IN FillMode fillMode, - IN REAL tension = 0.5f) - { - return SetStatus(DllExports::GdipFillClosedCurve2(nativeGraphics, - brush->nativeBrush, - points, count, - tension, fillMode)); - } - - // integer version - Status FillClosedCurve(IN const Brush* brush, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipFillClosedCurveI(nativeGraphics, - brush->nativeBrush, - points, - count)); - } - - Status FillClosedCurve(IN const Brush* brush, - IN const Point* points, - IN INT count, - IN FillMode fillMode, - IN REAL tension = 0.5f) - { - return SetStatus(DllExports::GdipFillClosedCurve2I(nativeGraphics, - brush->nativeBrush, - points, count, - tension, fillMode)); - } - - // float version - Status FillRegion(IN const Brush* brush, - IN const Region* region) - { - return SetStatus(DllExports::GdipFillRegion(nativeGraphics, - brush->nativeBrush, - region->nativeRegion)); - } - - // DrawString and MeasureString - Status - DrawString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const RectF &layoutRect, - IN const StringFormat *stringFormat, - IN const Brush *brush - ) - { - return SetStatus(DllExports::GdipDrawString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &layoutRect, - stringFormat ? stringFormat->nativeFormat : NULL, - brush ? brush->nativeBrush : NULL - )); - } - - Status - DrawString( - const WCHAR *string, - INT length, - const Font *font, - const PointF &origin, - const Brush *brush - ) - { - RectF rect(origin.X, origin.Y, 0.0f, 0.0f); - - return SetStatus(DllExports::GdipDrawString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &rect, - NULL, - brush ? brush->nativeBrush : NULL - )); - } - - Status - DrawString( - const WCHAR *string, - INT length, - const Font *font, - const PointF &origin, - const StringFormat *stringFormat, - const Brush *brush - ) - { - RectF rect(origin.X, origin.Y, 0.0f, 0.0f); - - return SetStatus(DllExports::GdipDrawString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &rect, - stringFormat ? stringFormat->nativeFormat : NULL, - brush ? brush->nativeBrush : NULL - )); - } - - Status - MeasureString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const RectF &layoutRect, - IN const StringFormat *stringFormat, - OUT RectF *boundingBox, - OUT INT *codepointsFitted = 0, - OUT INT *linesFilled = 0 - ) const - { - return SetStatus(DllExports::GdipMeasureString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &layoutRect, - stringFormat ? stringFormat->nativeFormat : NULL, - boundingBox, - codepointsFitted, - linesFilled - )); - } - - Status - MeasureString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const SizeF &layoutRectSize, - IN const StringFormat *stringFormat, - OUT SizeF *size, - OUT INT *codepointsFitted = 0, - OUT INT *linesFilled = 0 - ) const - { - RectF layoutRect(0, 0, layoutRectSize.Width, layoutRectSize.Height); - RectF boundingBox; - Status status; - - if (size == NULL) - { - return SetStatus(InvalidParameter); - } - - status = SetStatus(DllExports::GdipMeasureString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &layoutRect, - stringFormat ? stringFormat->nativeFormat : NULL, - size ? &boundingBox : NULL, - codepointsFitted, - linesFilled - )); - - if (size && status == Ok) - { - size->Width = boundingBox.Width; - size->Height = boundingBox.Height; - } - - return status; - } - - Status - MeasureString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const PointF &origin, - IN const StringFormat *stringFormat, - OUT RectF *boundingBox - ) const - { - RectF rect(origin.X, origin.Y, 0.0f, 0.0f); - - return SetStatus(DllExports::GdipMeasureString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &rect, - stringFormat ? stringFormat->nativeFormat : NULL, - boundingBox, - NULL, - NULL - )); - } - - - Status - MeasureString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const RectF &layoutRect, - OUT RectF *boundingBox - ) const - { - return SetStatus(DllExports::GdipMeasureString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &layoutRect, - NULL, - boundingBox, - NULL, - NULL - )); - } - - Status - MeasureString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const PointF &origin, - OUT RectF *boundingBox - ) const - { - RectF rect(origin.X, origin.Y, 0.0f, 0.0f); - - return SetStatus(DllExports::GdipMeasureString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &rect, - NULL, - boundingBox, - NULL, - NULL - )); - } - - -#ifdef DCR_USE_NEW_174340 - Status - MeasureCharacterRanges( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const RectF &layoutRect, - IN const StringFormat *stringFormat, - IN INT regionCount, - OUT Region *regions - ) const - { - if (!regions || regionCount <= 0) - { - return InvalidParameter; - } - - GpRegion **nativeRegions = new GpRegion* [regionCount]; - - if (!nativeRegions) - { - return OutOfMemory; - } - - for (INT i = 0; i < regionCount; i++) - { - nativeRegions[i] = regions[i].nativeRegion; - } - - Status status = SetStatus(DllExports::GdipMeasureCharacterRanges( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - layoutRect, - stringFormat ? stringFormat->nativeFormat : NULL, - regionCount, - nativeRegions - )); - - delete [] nativeRegions; - - return status; - } -#endif - - -#ifndef DCR_USE_NEW_174340 - Status - MeasureStringRegion( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const RectF &layoutRect, - IN const StringFormat *stringFormat, - IN INT firstCharacterIndex, - IN INT characterCount, - OUT Region *region - ) const - { - if (region == NULL) - { - return SetStatus(InvalidParameter); - } - - return (SetStatus(DllExports::GdipMeasureStringRegion( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - layoutRect, - stringFormat ? stringFormat->nativeFormat : NULL, - firstCharacterIndex, - characterCount, - region->nativeRegion))); - } -#endif - - Status DrawDriverString( - IN const UINT16 *text, - IN INT length, - IN const Font *font, - IN const Brush *brush, - IN const PointF *positions, - IN INT flags, - IN const Matrix *matrix - ) - { - return SetStatus(DllExports::GdipDrawDriverString( - nativeGraphics, - text, - length, - font ? font->nativeFont : NULL, - brush ? brush->nativeBrush : NULL, - positions, - flags, - matrix ? matrix->nativeMatrix : NULL - )); - } - - Status MeasureDriverString( - IN const UINT16 *text, - IN INT length, - IN const Font *font, - IN const PointF *positions, - IN INT flags, - IN const Matrix *matrix, - OUT RectF *boundingBox - ) const - { - return SetStatus(DllExports::GdipMeasureDriverString( - nativeGraphics, - text, - length, - font ? font->nativeFont : NULL, - positions, - flags, - matrix ? matrix->nativeMatrix : NULL, - boundingBox - )); - } - -#ifndef DCR_USE_NEW_168772 - Status DriverStringPointToCodepoint( - IN const UINT16 *text, - IN INT length, - IN const Font *font, - IN const PointF *positions, - IN INT flags, - IN const Matrix *matrix, - IN const PointF &hit, - OUT INT *index, - OUT BOOL *rightEdge, - OUT REAL *distance - ) - { - return SetStatus(DllExports::GdipDriverStringPointToCodepoint( - nativeGraphics, - text, - length, - font ? font->nativeFont : NULL, - positions, - flags, - matrix ? matrix->nativeMatrix : NULL, - &hit, - index, - rightEdge, - distance - )); - } -#endif - - // Draw a cached bitmap on this graphics destination offset by - // x, y. Note this will fail with WrongState if the CachedBitmap - // native format differs from this Graphics. - - Status DrawCachedBitmap(IN CachedBitmap *cb, - IN INT x, - IN INT y) - { - return SetStatus(DllExports::GdipDrawCachedBitmap( - nativeGraphics, - cb->nativeCachedBitmap, - x, y - )); - } - - /** - * Draw images (both bitmap and vector) - */ - // float version - Status DrawImage(IN Image* image, - IN const PointF& point) - { - return DrawImage(image, point.X, point.Y); - } - - Status DrawImage(IN Image* image, - IN REAL x, - IN REAL y) - { - return SetStatus(DllExports::GdipDrawImage(nativeGraphics, - image ? image->nativeImage - : NULL, - x, - y)); - } - - Status DrawImage(IN Image* image, - IN const RectF& rect) - { - return DrawImage(image, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status DrawImage(IN Image* image, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipDrawImageRect(nativeGraphics, - image ? image->nativeImage - : NULL, - x, - y, - width, - height)); - } - - // integer version - Status DrawImage(IN Image* image, - IN const Point& point) - { - return DrawImage(image, point.X, point.Y); - } - - Status DrawImage(IN Image* image, - IN INT x, - IN INT y) - { - return SetStatus(DllExports::GdipDrawImageI(nativeGraphics, - image ? image->nativeImage - : NULL, - x, - y)); - } - - Status DrawImage(IN Image* image, - IN const Rect& rect) - { - return DrawImage(image, - rect.X, - rect.Y, - rect.Width, - rect.Height); - } - - Status DrawImage(IN Image* image, - IN INT x, - IN INT y, - IN INT width, - IN INT height) { - return SetStatus(DllExports::GdipDrawImageRectI(nativeGraphics, - image ? image->nativeImage - : NULL, - x, - y, - width, - height)); - } - - /** - * Affine or perspective blt - * destPoints.length = 3: rect => parallelogram - * destPoints[0] <=> top-left corner of the source rectangle - * destPoints[1] <=> top-right corner - * destPoints[2] <=> bottom-left corner - * destPoints.length = 4: rect => quad - * destPoints[3] <=> bottom-right corner - * - * @notes Perspective blt only works for bitmap images. - */ - Status DrawImage(IN Image* image, - IN const PointF* destPoints, - IN INT count) - { - if (count != 3 && count != 4) - return SetStatus(InvalidParameter); - - return SetStatus(DllExports::GdipDrawImagePoints(nativeGraphics, - image ? image->nativeImage - : NULL, - destPoints, count)); - } - - Status DrawImage(IN Image* image, - IN const Point* destPoints, - IN INT count) - { - if (count != 3 && count != 4) - return SetStatus(InvalidParameter); - - return SetStatus(DllExports::GdipDrawImagePointsI(nativeGraphics, - image ? image->nativeImage - : NULL, - destPoints, - count)); - } - - /** - * We need another set of methods similar to the ones above - * that take an additional Rect parameter to specify the - * portion of the source image to be drawn. - */ - // float version - Status DrawImage(IN Image* image, - IN REAL x, - IN REAL y, - IN REAL srcx, - IN REAL srcy, - IN REAL srcwidth, - IN REAL srcheight, - IN Unit srcUnit) - { - return SetStatus(DllExports::GdipDrawImagePointRect(nativeGraphics, - image ? image->nativeImage - : NULL, - x, y, - srcx, srcy, - srcwidth, srcheight, srcUnit)); - } - - Status DrawImage(IN Image* image, - IN const RectF& destRect, - IN REAL srcx, - IN REAL srcy, - IN REAL srcwidth, - IN REAL srcheight, - IN Unit srcUnit, - IN const ImageAttributes* imageAttributes = NULL, - IN DrawImageAbort callback = NULL, - IN VOID* callbackData = NULL) - { - return SetStatus(DllExports::GdipDrawImageRectRect(nativeGraphics, - image ? image->nativeImage - : NULL, - destRect.X, - destRect.Y, - destRect.Width, - destRect.Height, - srcx, srcy, - srcwidth, srcheight, - srcUnit, - imageAttributes - ? imageAttributes->nativeImageAttr - : NULL, - callback, - callbackData)); - } - - Status DrawImage(IN Image* image, - IN const PointF* destPoints, - IN INT count, - IN REAL srcx, - IN REAL srcy, - IN REAL srcwidth, - IN REAL srcheight, - IN Unit srcUnit, - IN const ImageAttributes* imageAttributes = NULL, - IN DrawImageAbort callback = NULL, - IN VOID* callbackData = NULL) - { - return SetStatus(DllExports::GdipDrawImagePointsRect(nativeGraphics, - image ? image->nativeImage - : NULL, - destPoints, count, - srcx, srcy, - srcwidth, - srcheight, - srcUnit, - imageAttributes - ? imageAttributes->nativeImageAttr - : NULL, - callback, - callbackData)); - } - - // integer version - Status DrawImage(IN Image* image, - IN INT x, - IN INT y, - IN INT srcx, - IN INT srcy, - IN INT srcwidth, - IN INT srcheight, - IN Unit srcUnit) - { - return SetStatus(DllExports::GdipDrawImagePointRectI(nativeGraphics, - image ? image->nativeImage - : NULL, - x, - y, - srcx, - srcy, - srcwidth, - srcheight, - srcUnit)); - } - - Status DrawImage(IN Image* image, - IN const Rect& destRect, - IN INT srcx, - IN INT srcy, - IN INT srcwidth, - IN INT srcheight, - IN Unit srcUnit, - IN const ImageAttributes* imageAttributes = NULL, - IN DrawImageAbort callback = NULL, - IN VOID* callbackData = NULL) - { - return SetStatus(DllExports::GdipDrawImageRectRectI(nativeGraphics, - image ? image->nativeImage - : NULL, - destRect.X, - destRect.Y, - destRect.Width, - destRect.Height, - srcx, - srcy, - srcwidth, - srcheight, - srcUnit, - imageAttributes - ? imageAttributes->nativeImageAttr - : NULL, - callback, - callbackData)); - } - - Status DrawImage(IN Image* image, - IN const Point* destPoints, - IN INT count, - IN INT srcx, - IN INT srcy, - IN INT srcwidth, - IN INT srcheight, - IN Unit srcUnit, - IN const ImageAttributes* imageAttributes = NULL, - IN DrawImageAbort callback = NULL, - IN VOID* callbackData = NULL) - { - return SetStatus(DllExports::GdipDrawImagePointsRectI(nativeGraphics, - image ? image->nativeImage - : NULL, - destPoints, - count, - srcx, - srcy, - srcwidth, - srcheight, - srcUnit, - imageAttributes - ? imageAttributes->nativeImageAttr - : NULL, - callback, - callbackData)); - } - - // The following methods are for playing an EMF+ to a graphics - // via the enumeration interface. Each record of the EMF+ is - // sent to the callback (along with the callbackData). Then - // the callback can invoke the Metafile::PlayRecord method - // to play the particular record. - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const PointF & destPoint, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestPoint( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoint, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Point & destPoint, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestPointI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoint, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const RectF & destRect, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestRect( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destRect, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Rect & destRect, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestRectI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destRect, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const PointF * destPoints, - IN INT count, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestPoints( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoints, - count, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Point * destPoints, - IN INT count, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestPointsI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoints, - count, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const PointF & destPoint, - IN const RectF & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestPoint( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoint, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Point & destPoint, - IN const Rect & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestPointI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoint, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const RectF & destRect, - IN const RectF & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestRect( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destRect, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Rect & destRect, - IN const Rect & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestRectI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destRect, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const PointF * destPoints, - IN INT count, - IN const RectF & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestPoints( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoints, - count, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Point * destPoints, - IN INT count, - IN const Rect & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestPointsI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoints, - count, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - /** - * Clipping region operations - * - * @notes Simply incredible redundancy here. - */ - Status SetClip(IN const Graphics* g, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipGraphics(nativeGraphics, - g->nativeGraphics, - combineMode)); - } - - Status SetClip(IN const RectF& rect, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipRect(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - combineMode)); - } - - Status SetClip(IN const Rect& rect, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipRectI(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - combineMode)); - } - - Status SetClip(IN const GraphicsPath* path, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipPath(nativeGraphics, - path->nativePath, - combineMode)); - } - - Status SetClip(IN const Region* region, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipRegion(nativeGraphics, - region->nativeRegion, - combineMode)); - } - - // This is different than the other SetClip methods because it assumes - // that the HRGN is already in device units, so it doesn't transform - // the coordinates in the HRGN. - Status SetClip(IN HRGN hRgn, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipHrgn(nativeGraphics, hRgn, - combineMode)); - } - - Status IntersectClip(IN const RectF& rect) - { - return SetStatus(DllExports::GdipSetClipRect(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - CombineModeIntersect)); - } - - Status IntersectClip(IN const Rect& rect) - { - return SetStatus(DllExports::GdipSetClipRectI(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - CombineModeIntersect)); - } - - Status IntersectClip(IN const Region* region) - { - return SetStatus(DllExports::GdipSetClipRegion(nativeGraphics, - region->nativeRegion, - CombineModeIntersect)); - } - - Status ExcludeClip(IN const RectF& rect) - { - return SetStatus(DllExports::GdipSetClipRect(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - CombineModeExclude)); - } - - Status ExcludeClip(IN const Rect& rect) - { - return SetStatus(DllExports::GdipSetClipRectI(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - CombineModeExclude)); - } - - Status ExcludeClip(IN const Region* region) - { - return SetStatus(DllExports::GdipSetClipRegion(nativeGraphics, - region->nativeRegion, - CombineModeExclude)); - } - - Status ResetClip() - { - return SetStatus(DllExports::GdipResetClip(nativeGraphics)); - } - - Status TranslateClip(IN REAL dx, - IN REAL dy) - { - return SetStatus(DllExports::GdipTranslateClip(nativeGraphics, dx, dy)); - } - - Status TranslateClip(IN INT dx, - IN INT dy) - { - return SetStatus(DllExports::GdipTranslateClipI(nativeGraphics, - dx, dy)); - } - - /** - * GetClip region from graphics context - */ - Status GetClip(OUT Region* region) const - { - return SetStatus(DllExports::GdipGetClip(nativeGraphics, - region->nativeRegion)); - } - - /** - * Hit testing operations - */ - Status GetClipBounds(OUT RectF* rect) const - { - return SetStatus(DllExports::GdipGetClipBounds(nativeGraphics, rect)); - } - - Status GetClipBounds(OUT Rect* rect) const - { - return SetStatus(DllExports::GdipGetClipBoundsI(nativeGraphics, rect)); - } - - BOOL IsClipEmpty() const - { - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsClipEmpty(nativeGraphics, &booln)); - - return booln; - } - - Status GetVisibleClipBounds(OUT RectF *rect) const - { - - return SetStatus(DllExports::GdipGetVisibleClipBounds(nativeGraphics, - rect)); - } - - Status GetVisibleClipBounds(OUT Rect *rect) const - { - return SetStatus(DllExports::GdipGetVisibleClipBoundsI(nativeGraphics, - rect)); - } - - BOOL IsVisibleClipEmpty() const - { - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsVisibleClipEmpty(nativeGraphics, &booln)); - - return booln; - } - - BOOL IsVisible(IN INT x, - IN INT y) const - { - return IsVisible(Point(x,y)); - } - - BOOL IsVisible(IN const Point& point) const - { - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsVisiblePointI(nativeGraphics, - point.X, - point.Y, - &booln)); - - return booln; - } - - BOOL IsVisible(IN INT x, - IN INT y, - IN INT width, - IN INT height) const - { - return IsVisible(Rect(x, y, width, height)); - } - - BOOL IsVisible(IN const Rect& rect) const - { - - BOOL booln = TRUE; - - SetStatus(DllExports::GdipIsVisibleRectI(nativeGraphics, - rect.X, - rect.Y, - rect.Width, - rect.Height, - &booln)); - return booln; - } - - BOOL IsVisible(IN REAL x, - IN REAL y) const - { - return IsVisible(PointF(x, y)); - } - - BOOL IsVisible(IN const PointF& point) const - { - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsVisiblePoint(nativeGraphics, - point.X, - point.Y, - &booln)); - - return booln; - } - - BOOL IsVisible(IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) const - { - return IsVisible(RectF(x, y, width, height)); - } - - BOOL IsVisible(IN const RectF& rect) const - { - BOOL booln = TRUE; - - SetStatus(DllExports::GdipIsVisibleRect(nativeGraphics, - rect.X, - rect.Y, - rect.Width, - rect.Height, - &booln)); - return booln; - } - - /** - * Save/restore graphics state - */ - GraphicsState Save() const - { - GraphicsState gstate; - - SetStatus(DllExports::GdipSaveGraphics(nativeGraphics, &gstate)); - - return gstate; - } - - Status Restore(IN GraphicsState gstate) - { - return SetStatus(DllExports::GdipRestoreGraphics(nativeGraphics, - gstate)); - } - - /** - * Begin and end container drawing - */ - GraphicsContainer BeginContainer(IN const RectF &dstrect, - IN const RectF &srcrect, - IN Unit unit) - { - GraphicsContainer state; - - SetStatus(DllExports::GdipBeginContainer(nativeGraphics, &dstrect, - &srcrect, unit, &state)); - - return state; - } - - /** - * Begin and end container drawing - */ - GraphicsContainer BeginContainer(IN const Rect &dstrect, - IN const Rect &srcrect, - IN Unit unit) - { - GraphicsContainer state; - - SetStatus(DllExports::GdipBeginContainerI(nativeGraphics, &dstrect, - &srcrect, unit, &state)); - - return state; - } - - GraphicsContainer BeginContainer() - { - GraphicsContainer state; - - SetStatus(DllExports::GdipBeginContainer2(nativeGraphics, &state)); - - return state; - } - - Status EndContainer(IN GraphicsContainer state) - { - return SetStatus(DllExports::GdipEndContainer(nativeGraphics, state)); - } - - // only valid when recording metafiles - Status AddMetafileComment(IN const BYTE * data, - IN UINT sizeData) - { - return SetStatus(DllExports::GdipComment(nativeGraphics, sizeData, data)); - } - - /** - * Get/SetLayout - * Support for Middle East localization (right-to-left mirroring) - */ - GraphicsLayout GetLayout() const - { - GraphicsLayout layout; - - SetStatus(DllExports::GdipGetGraphicsLayout(nativeGraphics, &layout)); - - return layout; - } - - Status SetLayout(IN const GraphicsLayout layout) - { - return SetStatus( - DllExports::GdipSetGraphicsLayout(nativeGraphics, layout) - ); - } - - static HPALETTE GetHalftonePalette() - { - return DllExports::GdipCreateHalftonePalette(); - } - - Status GetLastStatus() const - { - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; - } - -protected: - -#ifdef DCR_USE_NEW_250932 - -private: - Graphics(const Graphics &); - Graphics& operator=(const Graphics &); -protected: - -#else - - Graphics(const Graphics& graphics) - { - graphics; - SetStatus(NotImplemented); - } - - Graphics& operator=(const Graphics& graphics) - { - graphics; - SetStatus(NotImplemented); - return *this; - } - -#endif - - Graphics(GpGraphics* graphics) - { - lastResult = Ok; - SetNativeGraphics(graphics); - } - - VOID SetNativeGraphics(GpGraphics *graphics) - { - this->nativeGraphics = graphics; - } - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - - // Methods necessary to subclass Graphics for extension test. - - GpGraphics* GetNativeGraphics() const - { - return this->nativeGraphics; - } - - GpPen* GetNativePen(const Pen* pen) - { - return pen->nativePen; - } - -protected: - GpGraphics* nativeGraphics; - mutable Status lastResult; - -}; - -//---------------------------------------------------------------------------- -// Extra implementation of GraphicsPath methods that use Graphics -//---------------------------------------------------------------------------- - -/** - * Get the bounds of the path object with the given transform. - * This is not always the tightest bounds. - */ - -inline Status -GraphicsPath::GetBounds( - OUT RectF* bounds, - IN const Matrix* matrix, - IN const Pen* pen) const -{ - GpMatrix* nativeMatrix = NULL; - GpPen* nativePen = NULL; - - if (matrix) - nativeMatrix = matrix->nativeMatrix; - - if (pen) - nativePen = pen->nativePen; - - return SetStatus(DllExports::GdipGetPathWorldBounds(nativePath, bounds, - nativeMatrix, nativePen)); -} - -// integer version -inline Status -GraphicsPath::GetBounds( - OUT Rect* bounds, - IN const Matrix* matrix, - IN const Pen* pen -) const -{ - GpMatrix* nativeMatrix = NULL; - GpPen* nativePen = NULL; - - if (matrix) - nativeMatrix = matrix->nativeMatrix; - - if (pen) - nativePen = pen->nativePen; - - return SetStatus(DllExports::GdipGetPathWorldBoundsI(nativePath, bounds, - nativeMatrix, nativePen)); -} - -//---------------------------------------------------------------------------- -// Hit testing operations -//---------------------------------------------------------------------------- - -inline BOOL -GraphicsPath::IsVisible( - IN REAL x, - IN REAL y, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - GpGraphics* nativeGraphics = NULL; - - if (g) - nativeGraphics = g->nativeGraphics; - - SetStatus(DllExports::GdipIsVisiblePathPoint(nativePath, - x, y, nativeGraphics, - &booln)); - return booln; -} - -inline BOOL -GraphicsPath::IsVisible( - IN INT x, - IN INT y, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - GpGraphics* nativeGraphics = NULL; - - if (g) - nativeGraphics = g->nativeGraphics; - - SetStatus(DllExports::GdipIsVisiblePathPointI(nativePath, - x, y, nativeGraphics, - &booln)); - return booln; -} - -inline BOOL -GraphicsPath::IsOutlineVisible( - IN REAL x, - IN REAL y, - IN const Pen* pen, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - GpGraphics* nativeGraphics = NULL; - GpPen* nativePen = NULL; - - if(g) - nativeGraphics = g->nativeGraphics; - if(pen) - nativePen = pen->nativePen; - - SetStatus(DllExports::GdipIsOutlineVisiblePathPoint(nativePath, - x, y, nativePen, nativeGraphics, - &booln)); - return booln; -} - -inline BOOL -GraphicsPath::IsOutlineVisible( - IN INT x, - IN INT y, - IN const Pen* pen, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - GpGraphics* nativeGraphics = NULL; - GpPen* nativePen = NULL; - - if(g) - nativeGraphics = g->nativeGraphics; - if(pen) - nativePen = pen->nativePen; - - SetStatus(DllExports::GdipIsOutlineVisiblePathPointI(nativePath, - x, y, nativePen, nativeGraphics, - &booln)); - return booln; -} - -#endif -- cgit v1.2.3