summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorTor Lillqvist <tlillqvist@novell.com>2011-07-14 15:56:47 +0300
committerTor Lillqvist <tlillqvist@novell.com>2011-07-14 15:57:16 +0300
commitc25d059a8b70c2afa566c0c555d5d477a40ba935 (patch)
tree3325909dc1b05dffcf7b43da9b4ddc3061e82b4e /external
parent3ed940516f2384255625fa88d7f29a94f30f89cd (diff)
Add the gdiplus headers and import library from Wine, for cross-compilation
Diffstat (limited to 'external')
-rw-r--r--external/gdiplus/include/gdiplus.h65
-rw-r--r--external/gdiplus/include/gdipluscolor.h51
-rw-r--r--external/gdiplus/include/gdipluscolormatrix.h60
-rw-r--r--external/gdiplus/include/gdiplusenums.h763
-rw-r--r--external/gdiplus/include/gdiplusflat.h731
-rw-r--r--external/gdiplus/include/gdiplusgpstubs.h99
-rw-r--r--external/gdiplus/include/gdiplusimaging.h450
-rw-r--r--external/gdiplus/include/gdiplusinit.h69
-rw-r--r--external/gdiplus/include/gdiplusmem.h35
-rw-r--r--external/gdiplus/include/gdiplusmetaheader.h167
-rw-r--r--external/gdiplus/include/gdipluspixelformats.h72
-rw-r--r--external/gdiplus/include/gdiplustypes.h276
-rw-r--r--external/gdiplus/lib/gdiplus.def510
-rw-r--r--external/gdiplus/makefile.mk41
-rw-r--r--external/prj/build.lst1
-rw-r--r--external/prj/d.lst5
16 files changed, 3395 insertions, 0 deletions
diff --git a/external/gdiplus/include/gdiplus.h b/external/gdiplus/include/gdiplus.h
new file mode 100644
index 000000000000..f063b3e2a844
--- /dev/null
+++ b/external/gdiplus/include/gdiplus.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUS_H
+#define _GDIPLUS_H
+
+#ifdef __cplusplus
+
+namespace Gdiplus
+{
+ namespace DllExports
+ {
+#include "gdiplusmem.h"
+ };
+
+#include "gdiplusenums.h"
+#include "gdiplustypes.h"
+#include "gdiplusinit.h"
+#include "gdipluspixelformats.h"
+#include "gdiplusmetaheader.h"
+#include "gdiplusimaging.h"
+#include "gdipluscolor.h"
+#include "gdipluscolormatrix.h"
+#include "gdiplusgpstubs.h"
+
+ namespace DllExports
+ {
+#include "gdiplusflat.h"
+ };
+};
+
+#else /* end c++ includes */
+
+#include "gdiplusmem.h"
+
+#include "gdiplusenums.h"
+#include "gdiplustypes.h"
+#include "gdiplusinit.h"
+#include "gdipluspixelformats.h"
+#include "gdiplusmetaheader.h"
+#include "gdiplusimaging.h"
+#include "gdipluscolor.h"
+#include "gdipluscolormatrix.h"
+#include "gdiplusgpstubs.h"
+
+#include "gdiplusflat.h"
+
+#endif /* end c includes */
+
+#endif /* _GDIPLUS_H_ */
diff --git a/external/gdiplus/include/gdipluscolor.h b/external/gdiplus/include/gdipluscolor.h
new file mode 100644
index 000000000000..39b7cb6debd4
--- /dev/null
+++ b/external/gdiplus/include/gdipluscolor.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2808 Google (Lei Zhang)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSCOLOR_H
+#define _GDIPLUSCOLOR_H
+
+enum ColorChannelFlags
+{
+ ColorChannelFlagsC,
+ ColorChannelFlagsM,
+ ColorChannelFlagsY,
+ ColorChannelFlagsK,
+ ColorChannelFlagsLast
+};
+
+#ifdef __cplusplus
+
+/* FIXME: missing the methods. */
+class Color
+{
+protected:
+ ARGB Argb;
+};
+
+#else /* end of c++ typedefs */
+
+typedef struct Color
+{
+ ARGB Argb;
+} Color;
+
+typedef enum ColorChannelFlags ColorChannelFlags;
+
+#endif /* end of c typedefs */
+
+#endif /* _GDIPLUSCOLOR_H */
diff --git a/external/gdiplus/include/gdipluscolormatrix.h b/external/gdiplus/include/gdipluscolormatrix.h
new file mode 100644
index 000000000000..fbf1b2a402f5
--- /dev/null
+++ b/external/gdiplus/include/gdipluscolormatrix.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSCOLORMATRIX_H
+#define _GDIPLUSCOLORMATRIX_H
+
+struct ColorMatrix
+{
+ REAL m[5][5];
+};
+
+enum ColorMatrixFlags
+{
+ ColorMatrixFlagsDefault = 0,
+ ColorMatrixFlagsSkipGrays = 1,
+ ColorMatrixFlagsAltGray = 2
+};
+
+enum ColorAdjustType
+{
+ ColorAdjustTypeDefault,
+ ColorAdjustTypeBitmap,
+ ColorAdjustTypeBrush,
+ ColorAdjustTypePen,
+ ColorAdjustTypeText,
+ ColorAdjustTypeCount,
+ ColorAdjustTypeAny
+};
+
+struct ColorMap
+{
+ Color oldColor;
+ Color newColor;
+};
+
+#ifndef __cplusplus
+
+typedef enum ColorAdjustType ColorAdjustType;
+typedef enum ColorMatrixFlags ColorMatrixFlags;
+typedef struct ColorMatrix ColorMatrix;
+typedef struct ColorMap ColorMap;
+
+#endif /* end of c typedefs */
+
+#endif /* _GDIPLUSCOLORMATRIX_H */
diff --git a/external/gdiplus/include/gdiplusenums.h b/external/gdiplus/include/gdiplusenums.h
new file mode 100644
index 000000000000..94383d99cf2d
--- /dev/null
+++ b/external/gdiplus/include/gdiplusenums.h
@@ -0,0 +1,763 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSENUMS_H
+#define _GDIPLUSENUMS_H
+
+typedef UINT GraphicsState;
+typedef UINT GraphicsContainer;
+
+enum Unit
+{
+ UnitWorld = 0,
+ UnitDisplay = 1,
+ UnitPixel = 2,
+ UnitPoint = 3,
+ UnitInch = 4,
+ UnitDocument = 5,
+ UnitMillimeter = 6
+};
+
+enum BrushType
+{
+ BrushTypeSolidColor = 0,
+ BrushTypeHatchFill = 1,
+ BrushTypeTextureFill = 2,
+ BrushTypePathGradient = 3,
+ BrushTypeLinearGradient = 4
+};
+
+enum DriverStringOptions
+{
+ DriverStringOptionsCmapLookup = 1,
+ DriverStringOptionsVertical = 2,
+ DriverStringOptionsRealizedAdvance = 4,
+ DriverStringOptionsLimitSubpixel = 4
+};
+
+enum FillMode
+{
+ FillModeAlternate = 0,
+ FillModeWinding = 1
+};
+
+enum LineCap
+{
+ LineCapFlat = 0x00,
+ LineCapSquare = 0x01,
+ LineCapRound = 0x02,
+ LineCapTriangle = 0x03,
+
+ LineCapNoAnchor = 0x10,
+ LineCapSquareAnchor = 0x11,
+ LineCapRoundAnchor = 0x12,
+ LineCapDiamondAnchor = 0x13,
+ LineCapArrowAnchor = 0x14,
+
+ LineCapCustom = 0xff,
+ LineCapAnchorMask = 0xf0
+};
+
+enum PathPointType{
+ PathPointTypeStart = 0, /* start of a figure */
+ PathPointTypeLine = 1,
+ PathPointTypeBezier = 3,
+ PathPointTypePathTypeMask = 7,
+ PathPointTypePathDashMode = 16, /* not used */
+ PathPointTypePathMarker = 32,
+ PathPointTypeCloseSubpath = 128, /* end of a closed figure */
+ PathPointTypeBezier3 = 3
+};
+
+enum PenType
+{
+ PenTypeSolidColor = BrushTypeSolidColor,
+ PenTypeHatchFill = BrushTypeHatchFill,
+ PenTypeTextureFill = BrushTypeTextureFill,
+ PenTypePathGradient = BrushTypePathGradient,
+ PenTypeLinearGradient = BrushTypeLinearGradient,
+ PenTypeUnknown = -1
+};
+
+enum LineJoin
+{
+ LineJoinMiter = 0,
+ LineJoinBevel = 1,
+ LineJoinRound = 2,
+ LineJoinMiterClipped = 3
+};
+
+enum QualityMode
+{
+ QualityModeInvalid = -1,
+ QualityModeDefault = 0,
+ QualityModeLow = 1,
+ QualityModeHigh = 2
+};
+
+enum SmoothingMode
+{
+ SmoothingModeInvalid = QualityModeInvalid,
+ SmoothingModeDefault = QualityModeDefault,
+ SmoothingModeHighSpeed = QualityModeLow,
+ SmoothingModeHighQuality = QualityModeHigh,
+ SmoothingModeNone,
+ SmoothingModeAntiAlias
+};
+
+enum CompositingQuality
+{
+ CompositingQualityInvalid = QualityModeInvalid,
+ CompositingQualityDefault = QualityModeDefault,
+ CompositingQualityHighSpeed = QualityModeLow,
+ CompositingQualityHighQuality = QualityModeHigh,
+ CompositingQualityGammaCorrected,
+ CompositingQualityAssumeLinear
+};
+
+enum InterpolationMode
+{
+ InterpolationModeInvalid = QualityModeInvalid,
+ InterpolationModeDefault = QualityModeDefault,
+ InterpolationModeLowQuality = QualityModeLow,
+ InterpolationModeHighQuality = QualityModeHigh,
+ InterpolationModeBilinear,
+ InterpolationModeBicubic,
+ InterpolationModeNearestNeighbor,
+ InterpolationModeHighQualityBilinear,
+ InterpolationModeHighQualityBicubic
+};
+
+enum PenAlignment
+{
+ PenAlignmentCenter = 0,
+ PenAlignmentInset = 1
+};
+
+enum PixelOffsetMode
+{
+ PixelOffsetModeInvalid = QualityModeInvalid,
+ PixelOffsetModeDefault = QualityModeDefault,
+ PixelOffsetModeHighSpeed = QualityModeLow,
+ PixelOffsetModeHighQuality = QualityModeHigh,
+ PixelOffsetModeNone,
+ PixelOffsetModeHalf
+};
+
+enum DashCap
+{
+ DashCapFlat = 0,
+ DashCapRound = 2,
+ DashCapTriangle = 3
+};
+
+enum DashStyle
+{
+ DashStyleSolid,
+ DashStyleDash,
+ DashStyleDot,
+ DashStyleDashDot,
+ DashStyleDashDotDot,
+ DashStyleCustom
+};
+
+enum MatrixOrder
+{
+ MatrixOrderPrepend = 0,
+ MatrixOrderAppend = 1
+};
+
+enum ImageType
+{
+ ImageTypeUnknown,
+ ImageTypeBitmap,
+ ImageTypeMetafile
+};
+
+enum WarpMode {
+ WarpModePerspective,
+ WarpModeBilinear
+};
+
+enum WrapMode
+{
+ WrapModeTile,
+ WrapModeTileFlipX,
+ WrapModeTileFlipY,
+ WrapModeTileFlipXY,
+ WrapModeClamp
+};
+
+enum MetafileType
+{
+ MetafileTypeInvalid,
+ MetafileTypeWmf,
+ MetafileTypeWmfPlaceable,
+ MetafileTypeEmf,
+ MetafileTypeEmfPlusOnly,
+ MetafileTypeEmfPlusDual
+};
+
+enum LinearGradientMode
+{
+ LinearGradientModeHorizontal,
+ LinearGradientModeVertical,
+ LinearGradientModeForwardDiagonal,
+ LinearGradientModeBackwardDiagonal
+};
+
+enum EmfType
+{
+ EmfTypeEmfOnly = MetafileTypeEmf,
+ EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly,
+ EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual
+};
+
+enum CompositingMode
+{
+ CompositingModeSourceOver,
+ CompositingModeSourceCopy
+};
+
+enum TextRenderingHint
+{
+ TextRenderingHintSystemDefault = 0,
+ TextRenderingHintSingleBitPerPixelGridFit,
+ TextRenderingHintSingleBitPerPixel,
+ TextRenderingHintAntiAliasGridFit,
+ TextRenderingHintAntiAlias,
+ TextRenderingHintClearTypeGridFit
+};
+
+enum StringAlignment
+{
+ StringAlignmentNear = 0,
+ StringAlignmentCenter = 1,
+ StringAlignmentFar = 2
+};
+
+enum StringDigitSubstitute
+{
+ StringDigitSubstituteUser = 0,
+ StringDigitSubstituteNone = 1,
+ StringDigitSubstituteNational = 2,
+ StringDigitSubstituteTraditional = 3
+};
+
+enum StringFormatFlags
+{
+ StringFormatFlagsDirectionRightToLeft = 0x00000001,
+ StringFormatFlagsDirectionVertical = 0x00000002,
+ StringFormatFlagsNoFitBlackBox = 0x00000004,
+ StringFormatFlagsDisplayFormatControl = 0x00000020,
+ StringFormatFlagsNoFontFallback = 0x00000400,
+ StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
+ StringFormatFlagsNoWrap = 0x00001000,
+ StringFormatFlagsLineLimit = 0x00002000,
+ StringFormatFlagsNoClip = 0x00004000
+};
+
+enum StringTrimming
+{
+ StringTrimmingNone = 0,
+ StringTrimmingCharacter = 1,
+ StringTrimmingWord = 2,
+ StringTrimmingEllipsisCharacter = 3,
+ StringTrimmingEllipsisWord = 4,
+ StringTrimmingEllipsisPath = 5
+};
+
+enum FontStyle
+{
+ FontStyleRegular = 0,
+ FontStyleBold = 1,
+ FontStyleItalic = 2,
+ FontStyleBoldItalic = 3,
+ FontStyleUnderline = 4,
+ FontStyleStrikeout = 8
+};
+
+enum HotkeyPrefix
+{
+ HotkeyPrefixNone = 0,
+ HotkeyPrefixShow = 1,
+ HotkeyPrefixHide = 2
+};
+
+enum PaletteFlags
+{
+ PaletteFlagsHasAlpha = 1,
+ PaletteFlagsGrayScale = 2,
+ PaletteFlagsHalftone = 4
+};
+
+enum ImageCodecFlags
+{
+ ImageCodecFlagsEncoder = 1,
+ ImageCodecFlagsDecoder = 2,
+ ImageCodecFlagsSupportBitmap = 4,
+ ImageCodecFlagsSupportVector = 8,
+ ImageCodecFlagsSeekableEncode = 16,
+ ImageCodecFlagsBlockingDecode = 32,
+ ImageCodecFlagsBuiltin = 65536,
+ ImageCodecFlagsSystem = 131072,
+ ImageCodecFlagsUser = 262144
+};
+
+enum ImageFlags
+{
+ ImageFlagsNone = 0,
+ ImageFlagsScalable = 0x0001,
+ ImageFlagsHasAlpha = 0x0002,
+ ImageFlagsHasTranslucent = 0x0004,
+ ImageFlagsPartiallyScalable = 0x0008,
+ ImageFlagsColorSpaceRGB = 0x0010,
+ ImageFlagsColorSpaceCMYK = 0x0020,
+ ImageFlagsColorSpaceGRAY = 0x0040,
+ ImageFlagsColorSpaceYCBCR = 0x0080,
+ ImageFlagsColorSpaceYCCK = 0x0100,
+ ImageFlagsHasRealDPI = 0x1000,
+ ImageFlagsHasRealPixelSize = 0x2000,
+ ImageFlagsReadOnly = 0x00010000,
+ ImageFlagsCaching = 0x00020000
+};
+
+enum CombineMode
+{
+ CombineModeReplace,
+ CombineModeIntersect,
+ CombineModeUnion,
+ CombineModeXor,
+ CombineModeExclude,
+ CombineModeComplement
+};
+
+enum FlushIntention
+{
+ FlushIntentionFlush = 0,
+ FlushIntentionSync = 1
+};
+
+enum CoordinateSpace
+{
+ CoordinateSpaceWorld,
+ CoordinateSpacePage,
+ CoordinateSpaceDevice
+};
+
+enum GpTestControlEnum
+{
+ TestControlForceBilinear = 0,
+ TestControlNoICM = 1,
+ TestControlGetBuildNumber = 2
+};
+
+enum MetafileFrameUnit
+{
+ MetafileFrameUnitPixel = UnitPixel,
+ MetafileFrameUnitPoint = UnitPoint,
+ MetafileFrameUnitInch = UnitInch,
+ MetafileFrameUnitDocument = UnitDocument,
+ MetafileFrameUnitMillimeter = UnitMillimeter,
+ MetafileFrameUnitGdi
+};
+
+enum HatchStyle
+{
+ HatchStyleHorizontal = 0,
+ HatchStyleVertical = 1,
+ HatchStyleForwardDiagonal = 2,
+ HatchStyleBackwardDiagonal = 3,
+ HatchStyleCross = 4,
+ HatchStyleDiagonalCross = 5,
+ HatchStyle05Percent = 6,
+ HatchStyle10Percent = 7,
+ HatchStyle20Percent = 8,
+ HatchStyle25Percent = 9,
+ HatchStyle30Percent = 10,
+ HatchStyle40Percent = 11,
+ HatchStyle50Percent = 12,
+ HatchStyle60Percent = 13,
+ HatchStyle70Percent = 14,
+ HatchStyle75Percent = 15,
+ HatchStyle80Percent = 16,
+ HatchStyle90Percent = 17,
+ HatchStyleLightDownwardDiagonal = 18,
+ HatchStyleLightUpwardDiagonal = 19,
+ HatchStyleDarkDownwardDiagonal = 20,
+ HatchStyleDarkUpwardDiagonal = 21,
+ HatchStyleWideDownwardDiagonal = 22,
+ HatchStyleWideUpwardDiagonal = 23,
+ HatchStyleLightVertical = 24,
+ HatchStyleLightHorizontal = 25,
+ HatchStyleNarrowVertical = 26,
+ HatchStyleNarrowHorizontal = 27,
+ HatchStyleDarkVertical = 28,
+ HatchStyleDarkHorizontal = 29,
+ HatchStyleDashedDownwardDiagonal = 30,
+ HatchStyleDashedUpwardDiagonal = 31,
+ HatchStyleDashedHorizontal = 32,
+ HatchStyleDashedVertical = 33,
+ HatchStyleSmallConfetti = 34,
+ HatchStyleLargeConfetti = 35,
+ HatchStyleZigZag = 36,
+ HatchStyleWave = 37,
+ HatchStyleDiagonalBrick = 38,
+ HatchStyleHorizontalBrick = 39,
+ HatchStyleWeave = 40,
+ HatchStylePlaid = 41,
+ HatchStyleDivot = 42,
+ HatchStyleDottedGrid = 43,
+ HatchStyleDottedDiamond = 44,
+ HatchStyleShingle = 45,
+ HatchStyleTrellis = 46,
+ HatchStyleSphere = 47,
+ HatchStyleSmallGrid = 48,
+ HatchStyleSmallCheckerBoard = 49,
+ HatchStyleLargeCheckerBoard = 50,
+ HatchStyleOutlinedDiamond = 51,
+ HatchStyleSolidDiamond = 52,
+ HatchStyleTotal = 53,
+ HatchStyleLargeGrid = HatchStyleCross,
+ HatchStyleMin = HatchStyleHorizontal,
+ HatchStyleMax = HatchStyleTotal - 1
+};
+
+#define GDIP_EMFPLUS_RECORD_BASE 0x00004000
+#define GDIP_WMF_RECORD_BASE 0x00010000
+#define GDIP_WMF_RECORD_TO_EMFPLUS(x) ((x)|GDIP_WMF_RECORD_BASE)
+
+enum EmfPlusRecordType {
+ WmfRecordTypeSetBkColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR),
+ WmfRecordTypeSetBkMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE),
+ WmfRecordTypeSetMapMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE),
+ WmfRecordTypeSetROP2 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2),
+ WmfRecordTypeSetRelAbs = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS),
+ WmfRecordTypeSetPolyFillMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE),
+ WmfRecordTypeSetStretchBltMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE),
+ WmfRecordTypeSetTextCharExtra = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA),
+ WmfRecordTypeSetTextColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR),
+ WmfRecordTypeSetTextJustification = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION),
+ WmfRecordTypeSetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG),
+ WmfRecordTypeSetWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT),
+ WmfRecordTypeSetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG),
+ WmfRecordTypeSetViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT),
+ WmfRecordTypeOffsetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG),
+ WmfRecordTypeScaleWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT),
+ WmfRecordTypeOffsetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG),
+ WmfRecordTypeScaleViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT),
+ WmfRecordTypeLineTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO),
+ WmfRecordTypeMoveTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO),
+ WmfRecordTypeExcludeClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT),
+ WmfRecordTypeIntersectClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT),
+ WmfRecordTypeArc = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC),
+ WmfRecordTypeEllipse = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE),
+ WmfRecordTypeFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL),
+ WmfRecordTypePie = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE),
+ WmfRecordTypeRectangle = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE),
+ WmfRecordTypeRoundRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT),
+ WmfRecordTypePatBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT),
+ WmfRecordTypeSaveDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC),
+ WmfRecordTypeSetPixel = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL),
+ WmfRecordTypeOffsetClipRgn = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN),
+ WmfRecordTypeTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT),
+ WmfRecordTypeBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT),
+ WmfRecordTypeStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT),
+ WmfRecordTypePolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON),
+ WmfRecordTypePolyline = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE),
+ WmfRecordTypeEscape = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE),
+ WmfRecordTypeRestoreDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC),
+ WmfRecordTypeFillRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION),
+ WmfRecordTypeFrameRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION),
+ WmfRecordTypeInvertRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION),
+ WmfRecordTypePaintRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION),
+ WmfRecordTypeSelectClipRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION),
+ WmfRecordTypeSelectObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT),
+ WmfRecordTypeSetTextAlign = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN),
+ WmfRecordTypeDrawText = GDIP_WMF_RECORD_TO_EMFPLUS(0x062F),
+ WmfRecordTypeChord = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD),
+ WmfRecordTypeSetMapperFlags = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS),
+ WmfRecordTypeExtTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT),
+ WmfRecordTypeSetDIBToDev = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV),
+ WmfRecordTypeSelectPalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE),
+ WmfRecordTypeRealizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE),
+ WmfRecordTypeAnimatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE),
+ WmfRecordTypeSetPalEntries = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES),
+ WmfRecordTypePolyPolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON),
+ WmfRecordTypeResizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE),
+ WmfRecordTypeDIBBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT),
+ WmfRecordTypeDIBStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT),
+ WmfRecordTypeDIBCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH),
+ WmfRecordTypeStretchDIB = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB),
+ WmfRecordTypeExtFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL),
+ WmfRecordTypeSetLayout = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149),
+ WmfRecordTypeResetDC = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C),
+ WmfRecordTypeStartDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D),
+ WmfRecordTypeStartPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F),
+ WmfRecordTypeEndPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050),
+ WmfRecordTypeAbortDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052),
+ WmfRecordTypeEndDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E),
+ WmfRecordTypeDeleteObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT),
+ WmfRecordTypeCreatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE),
+ WmfRecordTypeCreateBrush = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8),
+ WmfRecordTypeCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH),
+ WmfRecordTypeCreatePenIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT),
+ WmfRecordTypeCreateFontIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT),
+ WmfRecordTypeCreateBrushIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT),
+ WmfRecordTypeCreateBitmapIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD),
+ WmfRecordTypeCreateBitmap = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE),
+ WmfRecordTypeCreateRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION),
+ EmfRecordTypeHeader = EMR_HEADER,
+ EmfRecordTypePolyBezier = EMR_POLYBEZIER,
+ EmfRecordTypePolygon = EMR_POLYGON,
+ EmfRecordTypePolyline = EMR_POLYLINE,
+ EmfRecordTypePolyBezierTo = EMR_POLYBEZIERTO,
+ EmfRecordTypePolyLineTo = EMR_POLYLINETO,
+ EmfRecordTypePolyPolyline = EMR_POLYPOLYLINE,
+ EmfRecordTypePolyPolygon = EMR_POLYPOLYGON,
+ EmfRecordTypeSetWindowExtEx = EMR_SETWINDOWEXTEX,
+ EmfRecordTypeSetWindowOrgEx = EMR_SETWINDOWORGEX,
+ EmfRecordTypeSetViewportExtEx = EMR_SETVIEWPORTEXTEX,
+ EmfRecordTypeSetViewportOrgEx = EMR_SETVIEWPORTORGEX,
+ EmfRecordTypeSetBrushOrgEx = EMR_SETBRUSHORGEX,
+ EmfRecordTypeEOF = EMR_EOF,
+ EmfRecordTypeSetPixelV = EMR_SETPIXELV,
+ EmfRecordTypeSetMapperFlags = EMR_SETMAPPERFLAGS,
+ EmfRecordTypeSetMapMode = EMR_SETMAPMODE,
+ EmfRecordTypeSetBkMode = EMR_SETBKMODE,
+ EmfRecordTypeSetPolyFillMode = EMR_SETPOLYFILLMODE,
+ EmfRecordTypeSetROP2 = EMR_SETROP2,
+ EmfRecordTypeSetStretchBltMode = EMR_SETSTRETCHBLTMODE,
+ EmfRecordTypeSetTextAlign = EMR_SETTEXTALIGN,
+ EmfRecordTypeSetColorAdjustment = EMR_SETCOLORADJUSTMENT,
+ EmfRecordTypeSetTextColor = EMR_SETTEXTCOLOR,
+ EmfRecordTypeSetBkColor = EMR_SETBKCOLOR,
+ EmfRecordTypeOffsetClipRgn = EMR_OFFSETCLIPRGN,
+ EmfRecordTypeMoveToEx = EMR_MOVETOEX,
+ EmfRecordTypeSetMetaRgn = EMR_SETMETARGN,
+ EmfRecordTypeExcludeClipRect = EMR_EXCLUDECLIPRECT,
+ EmfRecordTypeIntersectClipRect = EMR_INTERSECTCLIPRECT,
+ EmfRecordTypeScaleViewportExtEx = EMR_SCALEVIEWPORTEXTEX,
+ EmfRecordTypeScaleWindowExtEx = EMR_SCALEWINDOWEXTEX,
+ EmfRecordTypeSaveDC = EMR_SAVEDC,
+ EmfRecordTypeRestoreDC = EMR_RESTOREDC,
+ EmfRecordTypeSetWorldTransform = EMR_SETWORLDTRANSFORM,
+ EmfRecordTypeModifyWorldTransform = EMR_MODIFYWORLDTRANSFORM,
+ EmfRecordTypeSelectObject = EMR_SELECTOBJECT,
+ EmfRecordTypeCreatePen = EMR_CREATEPEN,
+ EmfRecordTypeCreateBrushIndirect = EMR_CREATEBRUSHINDIRECT,
+ EmfRecordTypeDeleteObject = EMR_DELETEOBJECT,
+ EmfRecordTypeAngleArc = EMR_ANGLEARC,
+ EmfRecordTypeEllipse = EMR_ELLIPSE,
+ EmfRecordTypeRectangle = EMR_RECTANGLE,
+ EmfRecordTypeRoundRect = EMR_ROUNDRECT,
+ EmfRecordTypeArc = EMR_ARC,
+ EmfRecordTypeChord = EMR_CHORD,
+ EmfRecordTypePie = EMR_PIE,
+ EmfRecordTypeSelectPalette = EMR_SELECTPALETTE,
+ EmfRecordTypeCreatePalette = EMR_CREATEPALETTE,
+ EmfRecordTypeSetPaletteEntries = EMR_SETPALETTEENTRIES,
+ EmfRecordTypeResizePalette = EMR_RESIZEPALETTE,
+ EmfRecordTypeRealizePalette = EMR_REALIZEPALETTE,
+ EmfRecordTypeExtFloodFill = EMR_EXTFLOODFILL,
+ EmfRecordTypeLineTo = EMR_LINETO,
+ EmfRecordTypeArcTo = EMR_ARCTO,
+ EmfRecordTypePolyDraw = EMR_POLYDRAW,
+ EmfRecordTypeSetArcDirection = EMR_SETARCDIRECTION,
+ EmfRecordTypeSetMiterLimit = EMR_SETMITERLIMIT,
+ EmfRecordTypeBeginPath = EMR_BEGINPATH,
+ EmfRecordTypeEndPath = EMR_ENDPATH,
+ EmfRecordTypeCloseFigure = EMR_CLOSEFIGURE,
+ EmfRecordTypeFillPath = EMR_FILLPATH,
+ EmfRecordTypeStrokeAndFillPath = EMR_STROKEANDFILLPATH,
+ EmfRecordTypeStrokePath = EMR_STROKEPATH,
+ EmfRecordTypeFlattenPath = EMR_FLATTENPATH,
+ EmfRecordTypeWidenPath = EMR_WIDENPATH,
+ EmfRecordTypeSelectClipPath = EMR_SELECTCLIPPATH,
+ EmfRecordTypeAbortPath = EMR_ABORTPATH,
+ EmfRecordTypeReserved_069 = 69,
+ EmfRecordTypeGdiComment = EMR_GDICOMMENT,
+ EmfRecordTypeFillRgn = EMR_FILLRGN,
+ EmfRecordTypeFrameRgn = EMR_FRAMERGN,
+ EmfRecordTypeInvertRgn = EMR_INVERTRGN,
+ EmfRecordTypePaintRgn = EMR_PAINTRGN,
+ EmfRecordTypeExtSelectClipRgn = EMR_EXTSELECTCLIPRGN,
+ EmfRecordTypeBitBlt = EMR_BITBLT,
+ EmfRecordTypeStretchBlt = EMR_STRETCHBLT,
+ EmfRecordTypeMaskBlt = EMR_MASKBLT,
+ EmfRecordTypePlgBlt = EMR_PLGBLT,
+ EmfRecordTypeSetDIBitsToDevice = 80,
+ EmfRecordTypeStretchDIBits = EMR_STRETCHDIBITS,
+ EmfRecordTypeExtCreateFontIndirect = EMR_EXTCREATEFONTINDIRECTW,
+ EmfRecordTypeExtTextOutA = EMR_EXTTEXTOUTA,
+ EmfRecordTypeExtTextOutW = EMR_EXTTEXTOUTW,
+ EmfRecordTypePolyBezier16 = EMR_POLYBEZIER16,
+ EmfRecordTypePolygon16 = EMR_POLYGON16,
+ EmfRecordTypePolyline16 = EMR_POLYLINE16,
+ EmfRecordTypePolyBezierTo16 = EMR_POLYBEZIERTO16,
+ EmfRecordTypePolylineTo16 = EMR_POLYLINETO16,
+ EmfRecordTypePolyPolyline16 = EMR_POLYPOLYLINE16,
+ EmfRecordTypePolyPolygon16 = EMR_POLYPOLYGON16,
+ EmfRecordTypePolyDraw16 = EMR_POLYDRAW16,
+ EmfRecordTypeCreateMonoBrush = EMR_CREATEMONOBRUSH,
+ EmfRecordTypeCreateDIBPatternBrushPt = EMR_CREATEDIBPATTERNBRUSHPT,
+ EmfRecordTypeExtCreatePen = EMR_EXTCREATEPEN,
+ EmfRecordTypePolyTextOutA = EMR_POLYTEXTOUTA,
+ EmfRecordTypePolyTextOutW = EMR_POLYTEXTOUTW,
+ EmfRecordTypeSetICMMode = 98,
+ EmfRecordTypeCreateColorSpace = 99,
+ EmfRecordTypeSetColorSpace = 100,
+ EmfRecordTypeDeleteColorSpace = 101,
+ EmfRecordTypeGLSRecord = 102,
+ EmfRecordTypeGLSBoundedRecord = 103,
+ EmfRecordTypePixelFormat = 104,
+ EmfRecordTypeDrawEscape = 105,
+ EmfRecordTypeExtEscape = 106,
+ EmfRecordTypeStartDoc = 107,
+ EmfRecordTypeSmallTextOut = 108,
+ EmfRecordTypeForceUFIMapping = 109,
+ EmfRecordTypeNamedEscape = 110,
+ EmfRecordTypeColorCorrectPalette = 111,
+ EmfRecordTypeSetICMProfileA = 112,
+ EmfRecordTypeSetICMProfileW = 113,
+ EmfRecordTypeAlphaBlend = 114,
+ EmfRecordTypeSetLayout = 115,
+ EmfRecordTypeTransparentBlt = 116,
+ EmfRecordTypeReserved_117 = 117,
+ EmfRecordTypeGradientFill = 118,
+ EmfRecordTypeSetLinkedUFIs = 119,
+ EmfRecordTypeSetTextJustification = 120,
+ EmfRecordTypeColorMatchToTargetW = 121,
+ EmfRecordTypeCreateColorSpaceW = 122,
+ EmfRecordTypeMax = 122,
+ EmfRecordTypeMin = 1,
+ EmfPlusRecordTypeInvalid = GDIP_EMFPLUS_RECORD_BASE,
+ EmfPlusRecordTypeHeader,
+ EmfPlusRecordTypeEndOfFile,
+ EmfPlusRecordTypeComment,
+ EmfPlusRecordTypeGetDC,
+ EmfPlusRecordTypeMultiFormatStart,
+ EmfPlusRecordTypeMultiFormatSection,
+ EmfPlusRecordTypeMultiFormatEnd,
+ EmfPlusRecordTypeObject,
+ EmfPlusRecordTypeClear,
+ EmfPlusRecordTypeFillRects,
+ EmfPlusRecordTypeDrawRects,
+ EmfPlusRecordTypeFillPolygon,
+ EmfPlusRecordTypeDrawLines,
+ EmfPlusRecordTypeFillEllipse,
+ EmfPlusRecordTypeDrawEllipse,
+ EmfPlusRecordTypeFillPie,
+ EmfPlusRecordTypeDrawPie,
+ EmfPlusRecordTypeDrawArc,
+ EmfPlusRecordTypeFillRegion,
+ EmfPlusRecordTypeFillPath,
+ EmfPlusRecordTypeDrawPath,
+ EmfPlusRecordTypeFillClosedCurve,
+ EmfPlusRecordTypeDrawClosedCurve,
+ EmfPlusRecordTypeDrawCurve,
+ EmfPlusRecordTypeDrawBeziers,
+ EmfPlusRecordTypeDrawImage,
+ EmfPlusRecordTypeDrawImagePoints,
+ EmfPlusRecordTypeDrawString,
+ EmfPlusRecordTypeSetRenderingOrigin,
+ EmfPlusRecordTypeSetAntiAliasMode,
+ EmfPlusRecordTypeSetTextRenderingHint,
+ EmfPlusRecordTypeSetTextContrast,
+ EmfPlusRecordTypeSetGammaValue,
+ EmfPlusRecordTypeSetInterpolationMode,
+ EmfPlusRecordTypeSetPixelOffsetMode,
+ EmfPlusRecordTypeSetCompositingMode,
+ EmfPlusRecordTypeSetCompositingQuality,
+ EmfPlusRecordTypeSave,
+ EmfPlusRecordTypeRestore,
+ EmfPlusRecordTypeBeginContainer,
+ EmfPlusRecordTypeBeginContainerNoParams,
+ EmfPlusRecordTypeEndContainer,
+ EmfPlusRecordTypeSetWorldTransform,
+ EmfPlusRecordTypeResetWorldTransform,
+ EmfPlusRecordTypeMultiplyWorldTransform,
+ EmfPlusRecordTypeTranslateWorldTransform,
+ EmfPlusRecordTypeScaleWorldTransform,
+ EmfPlusRecordTypeRotateWorldTransform,
+ EmfPlusRecordTypeSetPageTransform,
+ EmfPlusRecordTypeResetClip,
+ EmfPlusRecordTypeSetClipRect,
+ EmfPlusRecordTypeSetClipPath,
+ EmfPlusRecordTypeSetClipRegion,
+ EmfPlusRecordTypeOffsetClip,
+ EmfPlusRecordTypeDrawDriverString,
+ EmfPlusRecordTypeStrokeFillPath,
+ EmfPlusRecordTypeSerializableObject,
+ EmfPlusRecordTypeSetTSGraphics,
+ EmfPlusRecordTypeSetTSClip,
+ EmfPlusRecordTotal,
+ EmfPlusRecordTypeMax = EmfPlusRecordTotal-1,
+ EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader
+};
+
+#ifndef __cplusplus
+
+typedef enum Unit Unit;
+typedef enum BrushType BrushType;
+typedef enum DriverStringOptions DriverStringOptions;
+typedef enum FillMode FillMode;
+typedef enum LineCap LineCap;
+typedef enum PathPointType PathPointType;
+typedef enum LineJoin LineJoin;
+typedef enum QualityMode QualityMode;
+typedef enum SmoothingMode SmoothingMode;
+typedef enum CompositingQuality CompositingQuality;
+typedef enum InterpolationMode InterpolationMode;
+typedef enum PixelOffsetMode PixelOffsetMode;
+typedef enum DashCap DashCap;
+typedef enum DashStyle DashStyle;
+typedef enum MatrixOrder MatrixOrder;
+typedef enum ImageType ImageType;
+typedef enum ImageFlags ImageFlags;
+typedef enum WarpMode WarpMode;
+typedef enum WrapMode WrapMode;
+typedef enum MetafileType MetafileType;
+typedef enum LinearGradientMode LinearGradientMode;
+typedef enum EmfType EmfType;
+typedef enum CompositingMode CompositingMode;
+typedef enum TextRenderingHint TextRenderingHint;
+typedef enum StringAlignment StringAlignment;
+typedef enum StringDigitSubstitute StringDigitSubstitute;
+typedef enum StringTrimming StringTrimming;
+typedef enum FontStyle FontStyle;
+typedef enum StringFormatFlags StringFormatFlags;
+typedef enum HotkeyPrefix HotkeyPrefix;
+typedef enum PenAlignment PenAlignment;
+typedef enum PaletteFlags PaletteFlags;
+typedef enum ImageCodecFlags ImageCodecFlags;
+typedef enum CombineMode CombineMode;
+typedef enum FlushIntention FlushIntention;
+typedef enum CoordinateSpace CoordinateSpace;
+typedef enum GpTestControlEnum GpTestControlEnum;
+typedef enum MetafileFrameUnit MetafileFrameUnit;
+typedef enum PenType PenType;
+typedef enum HatchStyle HatchStyle;
+typedef enum EmfPlusRecordType EmfPlusRecordType;
+
+#endif /* end of c typedefs */
+
+#undef GDIP_WMF_RECORD_TO_EMFPLUS
+#define GDIP_WMF_RECORD_TO_EMFPLUS(x) ((EmfPlusRecordType)((x)|GDIP_WMF_RECORD_BASE))
+
+#endif
diff --git a/external/gdiplus/include/gdiplusflat.h b/external/gdiplus/include/gdiplusflat.h
new file mode 100644
index 000000000000..679200429372
--- /dev/null
+++ b/external/gdiplus/include/gdiplusflat.h
@@ -0,0 +1,731 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _FLATAPI_H
+#define _FLATAPI_H
+
+#define WINGDIPAPI __stdcall
+
+#define GDIPCONST const
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AdjustableArrowCap */
+GpStatus WINGDIPAPI GdipCreateAdjustableArrowCap(REAL,REAL,BOOL,GpAdjustableArrowCap**);
+GpStatus WINGDIPAPI GdipGetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL*);
+GpStatus WINGDIPAPI GdipGetAdjustableArrowCapHeight(GpAdjustableArrowCap*,REAL*);
+GpStatus WINGDIPAPI GdipGetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL*);
+GpStatus WINGDIPAPI GdipGetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL*);
+GpStatus WINGDIPAPI GdipSetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL);
+GpStatus WINGDIPAPI GdipSetAdjustableArrowCapHeight(GpAdjustableArrowCap*,REAL);
+GpStatus WINGDIPAPI GdipSetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL);
+GpStatus WINGDIPAPI GdipSetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL);
+
+/* Bitmap */
+GpStatus WINGDIPAPI GdipBitmapApplyEffect(GpBitmap*,CGpEffect*,RECT*,BOOL,VOID**,INT*);
+GpStatus WINGDIPAPI GdipBitmapCreateApplyEffect(GpBitmap**,INT,CGpEffect*,RECT*,RECT*,GpBitmap**,BOOL,VOID**,INT*);
+GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap*,INT,INT,ARGB*);
+GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap*,GDIPCONST GpRect*,UINT,
+ PixelFormat,BitmapData*);
+GpStatus WINGDIPAPI GdipBitmapSetPixel(GpBitmap*,INT,INT,ARGB);
+GpStatus WINGDIPAPI GdipBitmapSetResolution(GpBitmap*,REAL,REAL);
+GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap*,BitmapData*);
+GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL,REAL,REAL,REAL,PixelFormat,GpBitmap*,GpBitmap**);
+GpStatus WINGDIPAPI GdipCloneBitmapAreaI(INT,INT,INT,INT,PixelFormat,GpBitmap*,GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR*,GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromFileICM(GDIPCONST WCHAR*,GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO*,VOID*,GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT,INT,GpGraphics*,GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP, HPALETTE, GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON, GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromResource(HINSTANCE,GDIPCONST WCHAR*,GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT,INT,INT,PixelFormat,BYTE*,
+ GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream*,GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream*,GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateHBITMAPFromBitmap(GpBitmap*,HBITMAP*,ARGB);
+GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap*,HICON*);
+GpStatus WINGDIPAPI GdipDeleteEffect(CGpEffect*);
+GpStatus WINGDIPAPI GdipSetEffectParameters(CGpEffect*,const VOID*,const UINT);
+
+/* Brush */
+GpStatus WINGDIPAPI GdipCloneBrush(GpBrush*,GpBrush**);
+GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush*);
+GpStatus WINGDIPAPI GdipGetBrushType(GpBrush*,GpBrushType*);
+
+/* CachedBitmap */
+GpStatus WINGDIPAPI GdipCreateCachedBitmap(GpBitmap*,GpGraphics*,
+ GpCachedBitmap**);
+GpStatus WINGDIPAPI GdipDeleteCachedBitmap(GpCachedBitmap*);
+GpStatus WINGDIPAPI GdipDrawCachedBitmap(GpGraphics*,GpCachedBitmap*,INT,INT);
+
+/* CustomLineCap */
+GpStatus WINGDIPAPI GdipCloneCustomLineCap(GpCustomLineCap*,GpCustomLineCap**);
+GpStatus WINGDIPAPI GdipCreateCustomLineCap(GpPath*,GpPath*,GpLineCap,REAL,
+ GpCustomLineCap**);
+GpStatus WINGDIPAPI GdipDeleteCustomLineCap(GpCustomLineCap*);
+GpStatus WINGDIPAPI GdipGetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap*);
+GpStatus WINGDIPAPI GdipSetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap);
+GpStatus WINGDIPAPI GdipGetCustomLineCapBaseInset(GpCustomLineCap*,REAL*);
+GpStatus WINGDIPAPI GdipSetCustomLineCapBaseInset(GpCustomLineCap*,REAL);
+GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeCaps(GpCustomLineCap*,GpLineCap,
+ GpLineCap);
+GpStatus WINGDIPAPI GdipGetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin*);
+GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin);
+GpStatus WINGDIPAPI GdipGetCustomLineCapWidthScale(GpCustomLineCap*,REAL*);
+GpStatus WINGDIPAPI GdipSetCustomLineCapWidthScale(GpCustomLineCap*,REAL);
+GpStatus WINGDIPAPI GdipSetCustomLineCapBaseInset(GpCustomLineCap*,REAL);
+
+/* Font */
+GpStatus WINGDIPAPI GdipCloneFont(GpFont*,GpFont**);
+GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily*, REAL, INT, Unit,
+ GpFont**);
+GpStatus WINGDIPAPI GdipCreateFontFromDC(HDC,GpFont**);
+GpStatus WINGDIPAPI GdipCreateFontFromLogfontA(HDC,GDIPCONST LOGFONTA*,GpFont**);
+GpStatus WINGDIPAPI GdipCreateFontFromLogfontW(HDC,GDIPCONST LOGFONTW*,GpFont**);
+GpStatus WINGDIPAPI GdipDeleteFont(GpFont*);
+GpStatus WINGDIPAPI GdipGetLogFontA(GpFont*,GpGraphics*,LOGFONTA*);
+GpStatus WINGDIPAPI GdipGetLogFontW(GpFont*,GpGraphics*,LOGFONTW*);
+GpStatus WINGDIPAPI GdipGetFamily(GpFont*, GpFontFamily**);
+GpStatus WINGDIPAPI GdipGetFontUnit(GpFont*, Unit*);
+GpStatus WINGDIPAPI GdipGetFontSize(GpFont*, REAL*);
+GpStatus WINGDIPAPI GdipGetFontStyle(GpFont*, INT*);
+GpStatus WINGDIPAPI GdipGetFontHeight(GDIPCONST GpFont*, GDIPCONST GpGraphics*,
+ REAL*);
+GpStatus WINGDIPAPI GdipGetFontHeightGivenDPI(GDIPCONST GpFont*, REAL, REAL*);
+
+/* FontCollection */
+GpStatus WINGDIPAPI GdipNewInstalledFontCollection(GpFontCollection**);
+GpStatus WINGDIPAPI GdipNewPrivateFontCollection(GpFontCollection**);
+GpStatus WINGDIPAPI GdipDeletePrivateFontCollection(GpFontCollection**);
+GpStatus WINGDIPAPI GdipPrivateAddFontFile(GpFontCollection*, GDIPCONST WCHAR*);
+GpStatus WINGDIPAPI GdipPrivateAddMemoryFont(GpFontCollection*,
+ GDIPCONST void*,INT);
+GpStatus WINGDIPAPI GdipGetFontCollectionFamilyCount(GpFontCollection*, INT*);
+GpStatus WINGDIPAPI GdipGetFontCollectionFamilyList(GpFontCollection*, INT,
+ GpFontFamily*[], INT*);
+
+/* FontFamily */
+GpStatus WINGDIPAPI GdipCloneFontFamily(GpFontFamily*, GpFontFamily**);
+GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR*,
+ GpFontCollection*, GpFontFamily**);
+GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily*);
+GpStatus WINGDIPAPI GdipGetFamilyName(GDIPCONST GpFontFamily*, WCHAR*, LANGID);
+GpStatus WINGDIPAPI GdipGetCellAscent(GDIPCONST GpFontFamily*, INT, UINT16*);
+GpStatus WINGDIPAPI GdipGetCellDescent(GDIPCONST GpFontFamily*, INT, UINT16*);
+GpStatus WINGDIPAPI GdipGetEmHeight(GDIPCONST GpFontFamily*, INT, UINT16*);
+GpStatus WINGDIPAPI GdipGetGenericFontFamilySansSerif(GpFontFamily**);
+GpStatus WINGDIPAPI GdipGetGenericFontFamilySerif(GpFontFamily**);
+GpStatus WINGDIPAPI GdipGetGenericFontFamilyMonospace(GpFontFamily**);
+GpStatus WINGDIPAPI GdipGetLineSpacing(GDIPCONST GpFontFamily*, INT, UINT16*);
+GpStatus WINGDIPAPI GdipIsStyleAvailable(GDIPCONST GpFontFamily *, INT, BOOL*);
+
+/* Graphics */
+GpStatus WINGDIPAPI GdipFlush(GpGraphics*, GpFlushIntention);
+GpStatus WINGDIPAPI GdipBeginContainer(GpGraphics*,GDIPCONST GpRectF*,GDIPCONST GpRectF*,GpUnit,GraphicsContainer*);
+GpStatus WINGDIPAPI GdipBeginContainer2(GpGraphics*,GraphicsContainer*);
+GpStatus WINGDIPAPI GdipBeginContainerI(GpGraphics*,GDIPCONST GpRect*,GDIPCONST GpRect*,GpUnit,GraphicsContainer*);
+GpStatus WINGDIPAPI GdipEndContainer(GpGraphics*,GraphicsContainer);
+GpStatus WINGDIPAPI GdipComment(GpGraphics*,UINT,GDIPCONST BYTE*);
+GpStatus WINGDIPAPI GdipCreateFromHDC(HDC,GpGraphics**);
+GpStatus WINGDIPAPI GdipCreateFromHDC2(HDC,HANDLE,GpGraphics**);
+GpStatus WINGDIPAPI GdipCreateFromHWND(HWND,GpGraphics**);
+GpStatus WINGDIPAPI GdipCreateFromHWNDICM(HWND,GpGraphics**);
+HPALETTE WINGDIPAPI GdipCreateHalftonePalette(void);
+GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics *);
+GpStatus WINGDIPAPI GdipDrawArc(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawArcI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawBezierI(GpGraphics*,GpPen*,INT,INT,INT,INT,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipDrawBeziers(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipDrawBeziersI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipDrawClosedCurve(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipDrawClosedCurveI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipDrawClosedCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL);
+GpStatus WINGDIPAPI GdipDrawClosedCurve2I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,REAL);
+GpStatus WINGDIPAPI GdipDrawCurve(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipDrawCurveI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL);
+GpStatus WINGDIPAPI GdipDrawCurve2I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,REAL);
+GpStatus WINGDIPAPI GdipDrawCurve3(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,INT,INT,REAL);
+GpStatus WINGDIPAPI GdipDrawCurve3I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,INT,INT,REAL);
+GpStatus WINGDIPAPI GdipDrawDriverString(GpGraphics*,GDIPCONST UINT16*,INT,
+ GDIPCONST GpFont*,GDIPCONST GpBrush*,GDIPCONST PointF*,INT,GDIPCONST GpMatrix*);
+GpStatus WINGDIPAPI GdipDrawEllipse(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawEllipseI(GpGraphics*,GpPen*,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipDrawImage(GpGraphics*,GpImage*,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawImageI(GpGraphics*,GpImage*,INT,INT);
+GpStatus WINGDIPAPI GdipDrawImagePointRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL,REAL,REAL,GpUnit);
+GpStatus WINGDIPAPI GdipDrawImagePointRectI(GpGraphics*,GpImage*,INT,INT,INT,INT,INT,INT,GpUnit);
+GpStatus WINGDIPAPI GdipDrawImagePoints(GpGraphics*,GpImage*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipDrawImagePointsI(GpGraphics*,GpImage*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics*,GpImage*,
+ GDIPCONST GpPointF*,INT,REAL,REAL,REAL,REAL,GpUnit,
+ GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*);
+GpStatus WINGDIPAPI GdipDrawImagePointsRectI(GpGraphics*,GpImage*,
+ GDIPCONST GpPoint*,INT,INT,INT,INT,INT,GpUnit,
+ GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*);
+GpStatus WINGDIPAPI GdipDrawImageRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawImageRectI(GpGraphics*,GpImage*,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipDrawImageRectRect(GpGraphics*,GpImage*,REAL,REAL,REAL,
+ REAL,REAL,REAL,REAL,REAL,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,
+ VOID*);
+GpStatus WINGDIPAPI GdipDrawImageRectRectI(GpGraphics*,GpImage*,INT,INT,INT,
+ INT,INT,INT,INT,INT,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,
+ VOID*);
+GpStatus WINGDIPAPI GdipDrawLine(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics*,GpPen*,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipDrawLines(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipDrawPath(GpGraphics*,GpPen*,GpPath*);
+GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawPieI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawPolygon(GpGraphics*,GpPen*,GDIPCONST GpPointF*, INT);
+GpStatus WINGDIPAPI GdipDrawPolygonI(GpGraphics*,GpPen*,GDIPCONST GpPoint*, INT);
+GpStatus WINGDIPAPI GdipDrawRectangle(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics*,GpPen*,GDIPCONST GpRectF*,INT);
+GpStatus WINGDIPAPI GdipDrawRectanglesI(GpGraphics*,GpPen*,GDIPCONST GpRect*,INT);
+GpStatus WINGDIPAPI GdipDrawString(GpGraphics*,GDIPCONST WCHAR*,INT,
+ GDIPCONST GpFont*,GDIPCONST RectF*, GDIPCONST GpStringFormat*,
+ GDIPCONST GpBrush*);
+GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPoints(GpGraphics*,
+ GDIPCONST GpMetafile*,GDIPCONST GpPointF*,INT,GDIPCONST GpRectF*,Unit,
+ EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
+GpStatus WINGDIPAPI GdipFillClosedCurve2(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT,
+ REAL,GpFillMode);
+GpStatus WINGDIPAPI GdipFillClosedCurve2I(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,
+ REAL,GpFillMode);
+GpStatus WINGDIPAPI GdipFillClosedCurve(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipFillClosedCurveI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipFillEllipse(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipFillEllipseI(GpGraphics*,GpBrush*,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipFillPath(GpGraphics*,GpBrush*,GpPath*);
+GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipFillPieI(GpGraphics*,GpBrush*,INT,INT,INT,INT,REAL,REAL);
+GpStatus WINGDIPAPI GdipFillPolygon(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,
+ INT,GpFillMode);
+GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,
+ INT,GpFillMode);
+GpStatus WINGDIPAPI GdipFillPolygon2(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipFillPolygon2I(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipFillRectangle(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics*,GpBrush*,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics*,GpBrush*,GDIPCONST GpRectF*,INT);
+GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics*,GpBrush*,GDIPCONST GpRect*,INT);
+GpStatus WINGDIPAPI GdipFillRegion(GpGraphics*,GpBrush*,GpRegion*);
+GpStatus WINGDIPAPI GdipGetClip(GpGraphics*,GpRegion*);
+GpStatus WINGDIPAPI GdipGetClipBounds(GpGraphics*,GpRectF*);
+GpStatus WINGDIPAPI GdipGetClipBoundsI(GpGraphics*,GpRect*);
+GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics*,CompositingMode*);
+GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*);
+GpStatus WINGDIPAPI GdipGetDC(GpGraphics*,HDC*);
+GpStatus WINGDIPAPI GdipGetDpiX(GpGraphics*,REAL*);
+GpStatus WINGDIPAPI GdipGetDpiY(GpGraphics*,REAL*);
+GpStatus WINGDIPAPI GdipGetImageDecoders(UINT,UINT,ImageCodecInfo*);
+GpStatus WINGDIPAPI GdipGetImageDecodersSize(UINT*,UINT*);
+GpStatus WINGDIPAPI GdipGetImageGraphicsContext(GpImage*,GpGraphics**);
+GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*);
+GpStatus WINGDIPAPI GdipGetNearestColor(GpGraphics*,ARGB*);
+GpStatus WINGDIPAPI GdipGetPageScale(GpGraphics*,REAL*);
+GpStatus WINGDIPAPI GdipGetPageUnit(GpGraphics*,GpUnit*);
+GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics*,PixelOffsetMode*);
+GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics*,SmoothingMode*);
+GpStatus WINGDIPAPI GdipGetTextContrast(GpGraphics*,UINT*);
+GpStatus WINGDIPAPI GdipGetTextRenderingHint(GpGraphics*,TextRenderingHint*);
+GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics*,GpMatrix*);
+GpStatus WINGDIPAPI GdipGraphicsClear(GpGraphics*,ARGB);
+GpStatus WINGDIPAPI GdipGetVisibleClipBounds(GpGraphics*,GpRectF*);
+GpStatus WINGDIPAPI GdipGetVisibleClipBoundsI(GpGraphics*,GpRect*);
+GpStatus WINGDIPAPI GdipIsClipEmpty(GpGraphics*, BOOL*);
+GpStatus WINGDIPAPI GdipIsVisiblePoint(GpGraphics*,REAL,REAL,BOOL*);
+GpStatus WINGDIPAPI GdipIsVisiblePointI(GpGraphics*,INT,INT,BOOL*);
+GpStatus WINGDIPAPI GdipIsVisibleRect(GpGraphics*,REAL,REAL,REAL,REAL,BOOL*);
+GpStatus WINGDIPAPI GdipIsVisibleRectI(GpGraphics*,INT,INT,INT,INT,BOOL*);
+GpStatus WINGDIPAPI GdipMeasureCharacterRanges(GpGraphics*, GDIPCONST WCHAR*,
+ INT, GDIPCONST GpFont*, GDIPCONST RectF*, GDIPCONST GpStringFormat*, INT,
+ GpRegion**);
+GpStatus WINGDIPAPI GdipMeasureDriverString(GpGraphics*,GDIPCONST UINT16*,INT,
+ GDIPCONST GpFont*,GDIPCONST PointF*,INT,GDIPCONST GpMatrix*,RectF*);
+GpStatus WINGDIPAPI GdipMeasureString(GpGraphics*,GDIPCONST WCHAR*,INT,
+ GDIPCONST GpFont*,GDIPCONST RectF*,GDIPCONST GpStringFormat*,RectF*,INT*,INT*);
+GpStatus WINGDIPAPI GdipMultiplyWorldTransform(GpGraphics*,GDIPCONST GpMatrix*,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipRecordMetafileFileName(GDIPCONST WCHAR*,HDC,EmfType,
+ GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**);
+GpStatus WINGDIPAPI GdipRecordMetafileFileNameI(GDIPCONST WCHAR*,HDC,EmfType,
+ GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**);
+GpStatus WINGDIPAPI GdipRecordMetafileI(HDC,EmfType,GDIPCONST GpRect*,
+ MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**);
+GpStatus WINGDIPAPI GdipReleaseDC(GpGraphics*,HDC);
+GpStatus WINGDIPAPI GdipResetClip(GpGraphics*);
+GpStatus WINGDIPAPI GdipResetWorldTransform(GpGraphics*);
+GpStatus WINGDIPAPI GdipRestoreGraphics(GpGraphics*,GraphicsState);
+GpStatus WINGDIPAPI GdipRotateWorldTransform(GpGraphics*,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics*,GraphicsState*);
+GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipSetClipHrgn(GpGraphics*,HRGN,CombineMode);
+GpStatus WINGDIPAPI GdipSetClipGraphics(GpGraphics*,GpGraphics*,CombineMode);
+GpStatus WINGDIPAPI GdipSetClipPath(GpGraphics*,GpPath*,CombineMode);
+GpStatus WINGDIPAPI GdipSetClipRect(GpGraphics*,REAL,REAL,REAL,REAL,CombineMode);
+GpStatus WINGDIPAPI GdipSetClipRectI(GpGraphics*,INT,INT,INT,INT,CombineMode);
+GpStatus WINGDIPAPI GdipSetClipRegion(GpGraphics*,GpRegion*,CombineMode);
+GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics*,CompositingMode);
+GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics*,CompositingQuality);
+GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics*,InterpolationMode);
+GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics*,REAL);
+GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics*,GpUnit);
+GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics*,PixelOffsetMode);
+GpStatus WINGDIPAPI GdipSetRenderingOrigin(GpGraphics*,INT,INT);
+GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics*,SmoothingMode);
+GpStatus WINGDIPAPI GdipSetTextContrast(GpGraphics*,UINT);
+GpStatus WINGDIPAPI GdipSetTextRenderingHint(GpGraphics*,TextRenderingHint);
+GpStatus WINGDIPAPI GdipSetWorldTransform(GpGraphics*,GpMatrix*);
+GpStatus WINGDIPAPI GdipTransformPoints(GpGraphics*, GpCoordinateSpace, GpCoordinateSpace,
+ GpPointF *, INT);
+GpStatus WINGDIPAPI GdipTransformPointsI(GpGraphics*, GpCoordinateSpace, GpCoordinateSpace,
+ GpPoint *, INT);
+GpStatus WINGDIPAPI GdipTranslateClip(GpGraphics*,REAL,REAL);
+GpStatus WINGDIPAPI GdipTranslateClipI(GpGraphics*,INT,INT);
+GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder);
+
+/* GraphicsPath */
+GpStatus WINGDIPAPI GdipAddPathArc(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipAddPathArcI(GpPath*,INT,INT,INT,INT,REAL,REAL);
+GpStatus WINGDIPAPI GdipAddPathBezier(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipAddPathBezierI(GpPath*,INT,INT,INT,INT,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipAddPathBeziers(GpPath*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipAddPathBeziersI(GpPath*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipAddPathClosedCurve(GpPath*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipAddPathClosedCurveI(GpPath*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipAddPathClosedCurve2(GpPath*,GDIPCONST GpPointF*,INT,REAL);
+GpStatus WINGDIPAPI GdipAddPathClosedCurve2I(GpPath*,GDIPCONST GpPoint*,INT,REAL);
+GpStatus WINGDIPAPI GdipAddPathCurve(GpPath*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipAddPathCurveI(GpPath*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipAddPathCurve2(GpPath*,GDIPCONST GpPointF*,INT,REAL);
+GpStatus WINGDIPAPI GdipAddPathCurve2I(GpPath*,GDIPCONST GpPoint*,INT,REAL);
+GpStatus WINGDIPAPI GdipAddPathCurve3(GpPath*,GDIPCONST GpPointF*,INT,INT,INT,REAL);
+GpStatus WINGDIPAPI GdipAddPathCurve3I(GpPath*,GDIPCONST GpPoint*,INT,INT,INT,REAL);
+GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath*,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipAddPathEllipseI(GpPath*,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipAddPathLine(GpPath*,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipAddPathLineI(GpPath*,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipAddPathLine2(GpPath*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipAddPathLine2I(GpPath*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipAddPathPath(GpPath*,GDIPCONST GpPath*,BOOL);
+GpStatus WINGDIPAPI GdipAddPathPie(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipAddPathPieI(GpPath*,INT,INT,INT,INT,REAL,REAL);
+GpStatus WINGDIPAPI GdipAddPathPolygon(GpPath*,GDIPCONST GpPointF*,INT);
+GpStatus WINGDIPAPI GdipAddPathPolygonI(GpPath*,GDIPCONST GpPoint*,INT);
+GpStatus WINGDIPAPI GdipAddPathRectangle(GpPath*,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipAddPathRectangleI(GpPath*,INT,INT,INT,INT);
+GpStatus WINGDIPAPI GdipAddPathRectangles(GpPath*,GDIPCONST GpRectF*,INT);
+GpStatus WINGDIPAPI GdipAddPathRectanglesI(GpPath*,GDIPCONST GpRect*,INT);
+GpStatus WINGDIPAPI GdipAddPathString(GpPath*,GDIPCONST WCHAR*,INT,GDIPCONST GpFontFamily*,INT,REAL,GDIPCONST RectF*,GDIPCONST GpStringFormat*);
+GpStatus WINGDIPAPI GdipAddPathStringI(GpPath*,GDIPCONST WCHAR*,INT,GDIPCONST GpFontFamily*,INT,REAL,GDIPCONST Rect*,GDIPCONST GpStringFormat*);
+GpStatus WINGDIPAPI GdipClearPathMarkers(GpPath*);
+GpStatus WINGDIPAPI GdipClonePath(GpPath*,GpPath**);
+GpStatus WINGDIPAPI GdipClosePathFigure(GpPath*);
+GpStatus WINGDIPAPI GdipClosePathFigures(GpPath*);
+GpStatus WINGDIPAPI GdipCreatePath(GpFillMode,GpPath**);
+GpStatus WINGDIPAPI GdipCreatePath2(GDIPCONST GpPointF*,GDIPCONST BYTE*,INT,
+ GpFillMode,GpPath**);
+GpStatus WINGDIPAPI GdipCreatePath2I(GDIPCONST GpPoint*,GDIPCONST BYTE*,INT,GpFillMode,GpPath**);
+GpStatus WINGDIPAPI GdipDeletePath(GpPath*);
+GpStatus WINGDIPAPI GdipFlattenPath(GpPath*,GpMatrix*,REAL);
+GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPoint(GpPath*,REAL,REAL,GpPen*,
+ GpGraphics*,BOOL*);
+GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPointI(GpPath*,INT,INT,GpPen*,
+ GpGraphics*,BOOL*);
+GpStatus WINGDIPAPI GdipIsVisiblePathPoint(GpPath*,REAL,REAL,GpGraphics*,BOOL*);
+GpStatus WINGDIPAPI GdipIsVisiblePathPointI(GpPath*,INT,INT,GpGraphics*,BOOL*);
+GpStatus WINGDIPAPI GdipGetPathData(GpPath*,GpPathData*);
+GpStatus WINGDIPAPI GdipGetPathFillMode(GpPath*,GpFillMode*);
+GpStatus WINGDIPAPI GdipGetPathLastPoint(GpPath*,GpPointF*);
+GpStatus WINGDIPAPI GdipGetPathPoints(GpPath*,GpPointF*,INT);
+GpStatus WINGDIPAPI GdipGetPathPointsI(GpPath*,GpPoint*,INT);
+GpStatus WINGDIPAPI GdipGetPathTypes(GpPath*,BYTE*,INT);
+GpStatus WINGDIPAPI GdipGetPathWorldBounds(GpPath*,GpRectF*,GDIPCONST GpMatrix*,GDIPCONST GpPen*);
+GpStatus WINGDIPAPI GdipGetPathWorldBoundsI(GpPath*,GpRect*,GDIPCONST GpMatrix*,GDIPCONST GpPen*);
+GpStatus WINGDIPAPI GdipGetPointCount(GpPath*,INT*);
+GpStatus WINGDIPAPI GdipResetPath(GpPath*);
+GpStatus WINGDIPAPI GdipReversePath(GpPath*);
+GpStatus WINGDIPAPI GdipSetPathFillMode(GpPath*,GpFillMode);
+GpStatus WINGDIPAPI GdipSetPathMarker(GpPath*);
+GpStatus WINGDIPAPI GdipStartPathFigure(GpPath*);
+GpStatus WINGDIPAPI GdipTransformPath(GpPath*,GpMatrix*);
+GpStatus WINGDIPAPI GdipWarpPath(GpPath*,GpMatrix*,GDIPCONST GpPointF*,INT,REAL,
+ REAL,REAL,REAL,WarpMode,REAL);
+GpStatus WINGDIPAPI GdipWidenPath(GpPath*,GpPen*,GpMatrix*,REAL);
+
+/* HatchBrush */
+GpStatus WINGDIPAPI GdipCreateHatchBrush(HatchStyle,ARGB,ARGB,GpHatch**);
+GpStatus WINGDIPAPI GdipGetHatchBackgroundColor(GpHatch*,ARGB*);
+GpStatus WINGDIPAPI GdipGetHatchForegroundColor(GpHatch*,ARGB*);
+GpStatus WINGDIPAPI GdipGetHatchStyle(GpHatch*,HatchStyle*);
+
+/* Image */
+GpStatus WINGDIPAPI GdipCloneImage(GpImage*, GpImage**);
+GpStatus WINGDIPAPI GdipCloneImageAttributes(GDIPCONST GpImageAttributes*,GpImageAttributes**);
+GpStatus WINGDIPAPI GdipDisposeImage(GpImage*);
+GpStatus WINGDIPAPI GdipEmfToWmfBits(HENHMETAFILE,UINT,LPBYTE,INT,INT);
+GpStatus WINGDIPAPI GdipFindFirstImageItem(GpImage*,ImageItemData*);
+GpStatus WINGDIPAPI GdipFindNextImageItem(GpImage*,ImageItemData*);
+GpStatus WINGDIPAPI GdipGetAllPropertyItems(GpImage*,UINT,UINT,PropertyItem*);
+GpStatus WINGDIPAPI GdipGetImageBounds(GpImage*,GpRectF*,GpUnit*);
+GpStatus WINGDIPAPI GdipGetImageDimension(GpImage*,REAL*,REAL*);
+GpStatus WINGDIPAPI GdipGetImageFlags(GpImage*,UINT*);
+GpStatus WINGDIPAPI GdipGetImageHeight(GpImage*,UINT*);
+GpStatus WINGDIPAPI GdipGetImageHorizontalResolution(GpImage*,REAL*);
+GpStatus WINGDIPAPI GdipGetImageItemData(GpImage*,ImageItemData*);
+GpStatus WINGDIPAPI GdipGetImagePalette(GpImage*,ColorPalette*,INT);
+GpStatus WINGDIPAPI GdipGetImagePaletteSize(GpImage*,INT*);
+GpStatus WINGDIPAPI GdipGetImagePixelFormat(GpImage*,PixelFormat*);
+GpStatus WINGDIPAPI GdipGetImageRawFormat(GpImage*,GUID*);
+GpStatus WINGDIPAPI GdipGetImageThumbnail(GpImage*,UINT,UINT,GpImage**,GetThumbnailImageAbort,VOID*);
+GpStatus WINGDIPAPI GdipGetImageType(GpImage*,ImageType*);
+GpStatus WINGDIPAPI GdipGetImageVerticalResolution(GpImage*,REAL*);
+GpStatus WINGDIPAPI GdipGetImageWidth(GpImage*,UINT*);
+GpStatus WINGDIPAPI GdipGetPropertyCount(GpImage*,UINT*);
+GpStatus WINGDIPAPI GdipGetPropertyIdList(GpImage*,UINT,PROPID*);
+GpStatus WINGDIPAPI GdipGetPropertyItem(GpImage*,PROPID,UINT,PropertyItem*);
+GpStatus WINGDIPAPI GdipGetPropertyItemSize(GpImage*,PROPID,UINT*);
+GpStatus WINGDIPAPI GdipGetPropertySize(GpImage*,UINT*,UINT*);
+GpStatus WINGDIPAPI GdipImageForceValidation(GpImage*);
+GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage*,GDIPCONST GUID*,UINT*);
+GpStatus WINGDIPAPI GdipImageGetFrameDimensionsCount(GpImage*,UINT*);
+GpStatus WINGDIPAPI GdipImageGetFrameDimensionsList(GpImage*,GUID*,UINT);
+GpStatus WINGDIPAPI GdipImageRotateFlip(GpImage*,RotateFlipType);
+GpStatus WINGDIPAPI GdipImageSelectActiveFrame(GpImage*,GDIPCONST GUID*,UINT);
+GpStatus WINGDIPAPI GdipLoadImageFromFile(GDIPCONST WCHAR*,GpImage**);
+GpStatus WINGDIPAPI GdipLoadImageFromFileICM(GDIPCONST WCHAR*,GpImage**);
+GpStatus WINGDIPAPI GdipLoadImageFromStream(IStream*,GpImage**);
+GpStatus WINGDIPAPI GdipLoadImageFromStreamICM(IStream*,GpImage**);
+GpStatus WINGDIPAPI GdipRemovePropertyItem(GpImage*,PROPID);
+GpStatus WINGDIPAPI GdipSaveImageToFile(GpImage*,GDIPCONST WCHAR*,GDIPCONST CLSID*,GDIPCONST EncoderParameters*);
+GpStatus WINGDIPAPI GdipSaveImageToStream(GpImage*,IStream*,
+ GDIPCONST CLSID*,GDIPCONST EncoderParameters*);
+GpStatus WINGDIPAPI GdipSetImagePalette(GpImage*,GDIPCONST ColorPalette*);
+GpStatus WINGDIPAPI GdipSetPropertyItem(GpImage*,GDIPCONST PropertyItem*);
+
+/* ImageAttributes */
+GpStatus WINGDIPAPI GdipCreateImageAttributes(GpImageAttributes**);
+GpStatus WINGDIPAPI GdipDisposeImageAttributes(GpImageAttributes*);
+GpStatus WINGDIPAPI GdipSetImageAttributesCachedBackground(GpImageAttributes*,
+ BOOL);
+GpStatus WINGDIPAPI GdipSetImageAttributesColorKeys(GpImageAttributes*,
+ ColorAdjustType,BOOL,ARGB,ARGB);
+GpStatus WINGDIPAPI GdipSetImageAttributesColorMatrix(GpImageAttributes*,
+ ColorAdjustType,BOOL,GDIPCONST ColorMatrix*,GDIPCONST ColorMatrix*,
+ ColorMatrixFlags);
+GpStatus WINGDIPAPI GdipSetImageAttributesGamma(GpImageAttributes*,
+ ColorAdjustType,BOOL,REAL);
+GpStatus WINGDIPAPI GdipSetImageAttributesNoOp(GpImageAttributes*,
+ ColorAdjustType,BOOL);
+GpStatus WINGDIPAPI GdipSetImageAttributesOutputChannel(GpImageAttributes*,
+ ColorAdjustType,BOOL,ColorChannelFlags);
+GpStatus WINGDIPAPI GdipSetImageAttributesOutputChannelColorProfile(
+ GpImageAttributes*,ColorAdjustType,BOOL,GDIPCONST WCHAR*);
+GpStatus WINGDIPAPI GdipSetImageAttributesRemapTable(GpImageAttributes*,
+ ColorAdjustType,BOOL,UINT,GDIPCONST ColorMap*);
+GpStatus WINGDIPAPI GdipSetImageAttributesThreshold(GpImageAttributes*,
+ ColorAdjustType,BOOL,REAL);
+GpStatus WINGDIPAPI GdipSetImageAttributesToIdentity(GpImageAttributes*,
+ ColorAdjustType);
+GpStatus WINGDIPAPI GdipSetImageAttributesWrapMode(GpImageAttributes*,WrapMode,
+ ARGB,BOOL);
+
+/* LinearGradientBrush */
+GpStatus WINGDIPAPI GdipCreateLineBrush(GDIPCONST GpPointF*,GDIPCONST GpPointF*,
+ ARGB,ARGB,GpWrapMode,GpLineGradient**);
+GpStatus WINGDIPAPI GdipCreateLineBrushI(GDIPCONST GpPoint*,GDIPCONST GpPoint*,
+ ARGB,ARGB,GpWrapMode,GpLineGradient**);
+GpStatus WINGDIPAPI GdipCreateLineBrushFromRect(GDIPCONST GpRectF*,ARGB,ARGB,
+ LinearGradientMode,GpWrapMode,GpLineGradient**);
+GpStatus WINGDIPAPI GdipCreateLineBrushFromRectI(GDIPCONST GpRect*,ARGB,ARGB,
+ LinearGradientMode,GpWrapMode,GpLineGradient**);
+GpStatus WINGDIPAPI GdipCreateLineBrushFromRectWithAngle(GDIPCONST GpRectF*,
+ ARGB,ARGB,REAL,BOOL,GpWrapMode,GpLineGradient**);
+GpStatus WINGDIPAPI GdipCreateLineBrushFromRectWithAngleI(GDIPCONST GpRect*,
+ ARGB,ARGB,REAL,BOOL,GpWrapMode,GpLineGradient**);
+GpStatus WINGDIPAPI GdipGetLineColors(GpLineGradient*,ARGB*);
+GpStatus WINGDIPAPI GdipGetLineGammaCorrection(GpLineGradient*,BOOL*);
+GpStatus WINGDIPAPI GdipGetLineRect(GpLineGradient*,GpRectF*);
+GpStatus WINGDIPAPI GdipGetLineRectI(GpLineGradient*,GpRect*);
+GpStatus WINGDIPAPI GdipGetLineWrapMode(GpLineGradient*,GpWrapMode*);
+GpStatus WINGDIPAPI GdipSetLineBlend(GpLineGradient*,GDIPCONST REAL*,
+ GDIPCONST REAL*,INT);
+GpStatus WINGDIPAPI GdipGetLineBlend(GpLineGradient*,REAL*,REAL*,INT);
+GpStatus WINGDIPAPI GdipGetLineBlendCount(GpLineGradient*,INT*);
+GpStatus WINGDIPAPI GdipSetLinePresetBlend(GpLineGradient*,GDIPCONST ARGB*,
+ GDIPCONST REAL*,INT);
+GpStatus WINGDIPAPI GdipGetLinePresetBlend(GpLineGradient*,ARGB*,REAL*,INT);
+GpStatus WINGDIPAPI GdipGetLinePresetBlendCount(GpLineGradient*,INT*);
+GpStatus WINGDIPAPI GdipGetLineTransform(GpLineGradient*,GpMatrix*);
+GpStatus WINGDIPAPI GdipResetLineTransform(GpLineGradient*);
+GpStatus WINGDIPAPI GdipRotateLineTransform(GpLineGradient*,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipScaleLineTransform(GpLineGradient*,REAL,REAL,
+ GpMatrixOrder);
+GpStatus WINGDIPAPI GdipSetLineColors(GpLineGradient*,ARGB,ARGB);
+GpStatus WINGDIPAPI GdipSetLineGammaCorrection(GpLineGradient*,BOOL);
+GpStatus WINGDIPAPI GdipSetLineSigmaBlend(GpLineGradient*,REAL,REAL);
+GpStatus WINGDIPAPI GdipSetLineTransform(GpLineGradient*,GDIPCONST GpMatrix*);
+GpStatus WINGDIPAPI GdipSetLineLinearBlend(GpLineGradient*,REAL,REAL);
+GpStatus WINGDIPAPI GdipSetLineWrapMode(GpLineGradient*,GpWrapMode);
+GpStatus WINGDIPAPI GdipTranslateLineTransform(GpLineGradient*,REAL,REAL,
+ GpMatrixOrder);
+
+/* Matrix */
+GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix*,GpMatrix**);
+GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix**);
+GpStatus WINGDIPAPI GdipCreateMatrix2(REAL,REAL,REAL,REAL,REAL,REAL,GpMatrix**);
+GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF *,GDIPCONST GpPointF*,GpMatrix**);
+GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect*,GDIPCONST GpPoint*,GpMatrix**);
+GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*);
+GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix*,REAL*);
+GpStatus WINGDIPAPI GdipInvertMatrix(GpMatrix*);
+GpStatus WINGDIPAPI GdipIsMatrixEqual(GDIPCONST GpMatrix*, GDIPCONST GpMatrix*, BOOL*);
+GpStatus WINGDIPAPI GdipIsMatrixIdentity(GDIPCONST GpMatrix*, BOOL*);
+GpStatus WINGDIPAPI GdipIsMatrixInvertible(GDIPCONST GpMatrix*, BOOL*);
+GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix*,GDIPCONST GpMatrix*,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix*,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipShearMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipSetMatrixElements(GpMatrix*,REAL,REAL,REAL,REAL,REAL,REAL);
+GpStatus WINGDIPAPI GdipTransformMatrixPoints(GpMatrix*,GpPointF*,INT);
+GpStatus WINGDIPAPI GdipTransformMatrixPointsI(GpMatrix*,GpPoint*,INT);
+GpStatus WINGDIPAPI GdipTranslateMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipVectorTransformMatrixPoints(GpMatrix*,GpPointF*,INT);
+GpStatus WINGDIPAPI GdipVectorTransformMatrixPointsI(GpMatrix*,GpPoint*,INT);
+
+/* Metafile */
+GpStatus WINGDIPAPI GdipConvertToEmfPlus(const GpGraphics*,GpMetafile*,INT*,
+ EmfType,const WCHAR*,GpMetafile**);
+GpStatus WINGDIPAPI GdipConvertToEmfPlusToFile(const GpGraphics*,GpMetafile*,INT*,const WCHAR*,EmfType,const WCHAR*,GpMetafile**);
+GpStatus WINGDIPAPI GdipConvertToEmfPlusToStream(const GpGraphics*,GpMetafile*,INT*,IStream*,EmfType,const WCHAR*,GpMetafile**);
+GpStatus WINGDIPAPI GdipCreateMetafileFromEmf(HENHMETAFILE,BOOL,GpMetafile**);
+GpStatus WINGDIPAPI GdipCreateMetafileFromWmf(HMETAFILE,BOOL,
+ GDIPCONST WmfPlaceableFileHeader*,GpMetafile**);
+GpStatus WINGDIPAPI GdipCreateMetafileFromWmfFile(GDIPCONST WCHAR*, GDIPCONST WmfPlaceableFileHeader*,
+ GpMetafile**);
+GpStatus WINGDIPAPI GdipCreateMetafileFromFile(GDIPCONST WCHAR*,GpMetafile**);
+GpStatus WINGDIPAPI GdipCreateMetafileFromStream(IStream*,GpMetafile**);
+GpStatus WINGDIPAPI GdipGetHemfFromMetafile(GpMetafile*,HENHMETAFILE*);
+GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile*,EmfPlusRecordType,UINT,UINT,GDIPCONST BYTE*);
+GpStatus WINGDIPAPI GdipSetMetafileDownLevelRasterizationLimit(GpMetafile*,UINT);
+GpStatus WINGDIPAPI GdipRecordMetafile(HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**);
+
+/* MetafileHeader */
+GpStatus WINGDIPAPI GdipGetMetafileHeaderFromEmf(HENHMETAFILE,MetafileHeader*);
+GpStatus WINGDIPAPI GdipGetMetafileHeaderFromFile(GDIPCONST WCHAR*,MetafileHeader*);
+GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile*,MetafileHeader*);
+GpStatus WINGDIPAPI GdipGetMetafileHeaderFromStream(IStream*,MetafileHeader*);
+GpStatus WINGDIPAPI GdipGetMetafileHeaderFromWmf(HMETAFILE,GDIPCONST WmfPlaceableFileHeader*,MetafileHeader*);
+
+/* Notification */
+GpStatus WINAPI GdiplusNotificationHook(ULONG_PTR*);
+void WINAPI GdiplusNotificationUnhook(ULONG_PTR);
+
+/* PathGradientBrush */
+GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF*,INT,GpWrapMode,GpPathGradient**);
+GpStatus WINGDIPAPI GdipCreatePathGradientI(GDIPCONST GpPoint*,INT,GpWrapMode,GpPathGradient**);
+GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath*,
+ GpPathGradient**);
+GpStatus WINGDIPAPI GdipGetPathGradientBlend(GpPathGradient*,REAL*,REAL*,INT);
+GpStatus WINGDIPAPI GdipGetPathGradientBlendCount(GpPathGradient*,INT*);
+GpStatus WINGDIPAPI GdipGetPathGradientCenterColor(GpPathGradient*,ARGB*);
+GpStatus WINGDIPAPI GdipGetPathGradientCenterPoint(GpPathGradient*,GpPointF*);
+GpStatus WINGDIPAPI GdipGetPathGradientCenterPointI(GpPathGradient*,GpPoint*);
+GpStatus WINGDIPAPI GdipGetPathGradientFocusScales(GpPathGradient*,REAL*,REAL*);
+GpStatus WINGDIPAPI GdipGetPathGradientGammaCorrection(GpPathGradient*,BOOL*);
+GpStatus WINGDIPAPI GdipGetPathGradientPointCount(GpPathGradient*,INT*);
+GpStatus WINGDIPAPI GdipSetPathGradientPresetBlend(GpPathGradient*,
+ GDIPCONST ARGB*,GDIPCONST REAL*,INT);
+GpStatus WINGDIPAPI GdipGetPathGradientRect(GpPathGradient*,GpRectF*);
+GpStatus WINGDIPAPI GdipGetPathGradientRectI(GpPathGradient*,GpRect*);
+GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorsWithCount(GpPathGradient*,
+ ARGB*,INT*);
+GpStatus WINGDIPAPI GdipGetPathGradientWrapMode(GpPathGradient*,GpWrapMode*);
+GpStatus WINGDIPAPI GdipSetPathGradientBlend(GpPathGradient*,GDIPCONST REAL*,GDIPCONST REAL*,INT);
+GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient*,ARGB);
+GpStatus WINGDIPAPI GdipSetPathGradientCenterPoint(GpPathGradient*,GpPointF*);
+GpStatus WINGDIPAPI GdipSetPathGradientCenterPointI(GpPathGradient*,GpPoint*);
+GpStatus WINGDIPAPI GdipSetPathGradientFocusScales(GpPathGradient*,REAL,REAL);
+GpStatus WINGDIPAPI GdipSetPathGradientGammaCorrection(GpPathGradient*,BOOL);
+GpStatus WINGDIPAPI GdipSetPathGradientSigmaBlend(GpPathGradient*,REAL,REAL);
+GpStatus WINGDIPAPI GdipSetPathGradientSurroundColorsWithCount(GpPathGradient*,
+ GDIPCONST ARGB*,INT*);
+GpStatus WINGDIPAPI GdipSetPathGradientWrapMode(GpPathGradient*,GpWrapMode);
+GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorCount(GpPathGradient*,INT*);
+
+/* PathIterator */
+GpStatus WINGDIPAPI GdipCreatePathIter(GpPathIterator**,GpPath*);
+GpStatus WINGDIPAPI GdipDeletePathIter(GpPathIterator*);
+GpStatus WINGDIPAPI GdipPathIterCopyData(GpPathIterator*,INT*,GpPointF*,BYTE*,
+ INT,INT);
+GpStatus WINGDIPAPI GdipPathIterGetCount(GpPathIterator*,INT*);
+GpStatus WINGDIPAPI GdipPathIterGetSubpathCount(GpPathIterator*,INT*);
+GpStatus WINGDIPAPI GdipPathIterEnumerate(GpPathIterator*,INT*,GpPointF*,BYTE*,INT);
+GpStatus WINGDIPAPI GdipPathIterHasCurve(GpPathIterator*,BOOL*);
+GpStatus WINGDIPAPI GdipPathIterIsValid(GpPathIterator*,BOOL*);
+GpStatus WINGDIPAPI GdipPathIterNextMarker(GpPathIterator*,INT*,INT*,INT*);
+GpStatus WINGDIPAPI GdipPathIterNextMarkerPath(GpPathIterator*,INT*,GpPath*);
+GpStatus WINGDIPAPI GdipPathIterNextPathType(GpPathIterator*,INT*,BYTE*,INT*,INT*);
+GpStatus WINGDIPAPI GdipPathIterNextSubpath(GpPathIterator*,INT*,INT*,INT*,BOOL*);
+GpStatus WINGDIPAPI GdipPathIterNextSubpathPath(GpPathIterator*,INT*,GpPath*,BOOL*);
+GpStatus WINGDIPAPI GdipPathIterRewind(GpPathIterator*);
+
+/* Pen */
+GpStatus WINGDIPAPI GdipClonePen(GpPen*,GpPen**);
+GpStatus WINGDIPAPI GdipCreatePen1(ARGB,REAL,GpUnit,GpPen**);
+GpStatus WINGDIPAPI GdipCreatePen2(GpBrush*,REAL,GpUnit,GpPen**);
+GpStatus WINGDIPAPI GdipDeletePen(GpPen*);
+GpStatus WINGDIPAPI GdipGetPenBrushFill(GpPen*,GpBrush**);
+GpStatus WINGDIPAPI GdipGetPenColor(GpPen*,ARGB*);
+GpStatus WINGDIPAPI GdipGetPenCustomStartCap(GpPen*,GpCustomLineCap**);
+GpStatus WINGDIPAPI GdipGetPenCustomEndCap(GpPen*,GpCustomLineCap**);
+GpStatus WINGDIPAPI GdipGetPenDashArray(GpPen*,REAL*,INT);
+GpStatus WINGDIPAPI GdipGetPenDashCount(GpPen*,INT*);
+GpStatus WINGDIPAPI GdipGetPenDashOffset(GpPen*,REAL*);
+GpStatus WINGDIPAPI GdipGetPenDashStyle(GpPen*,GpDashStyle*);
+GpStatus WINGDIPAPI GdipGetPenMode(GpPen*,GpPenAlignment*);
+GpStatus WINGDIPAPI GdipResetPenTransform(GpPen*);
+GpStatus WINGDIPAPI GdipScalePenTransform(GpPen*,REAL,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipSetPenBrushFill(GpPen*,GpBrush*);
+GpStatus WINGDIPAPI GdipSetPenColor(GpPen*,ARGB);
+GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen*,GDIPCONST REAL*,INT);
+GpStatus WINGDIPAPI GdipSetPenCustomEndCap(GpPen*,GpCustomLineCap*);
+GpStatus WINGDIPAPI GdipSetPenCustomStartCap(GpPen*,GpCustomLineCap*);
+GpStatus WINGDIPAPI GdipSetPenDashArray(GpPen*,GDIPCONST REAL*,INT);
+GpStatus WINGDIPAPI GdipSetPenDashCap197819(GpPen*,GpDashCap);
+GpStatus WINGDIPAPI GdipSetPenDashOffset(GpPen*,REAL);
+GpStatus WINGDIPAPI GdipSetPenDashStyle(GpPen*,GpDashStyle);
+GpStatus WINGDIPAPI GdipSetPenEndCap(GpPen*,GpLineCap);
+GpStatus WINGDIPAPI GdipGetPenFillType(GpPen*,GpPenType*);
+GpStatus WINGDIPAPI GdipSetPenLineCap197819(GpPen*,GpLineCap,GpLineCap,GpDashCap);
+GpStatus WINGDIPAPI GdipSetPenLineJoin(GpPen*,GpLineJoin);
+GpStatus WINGDIPAPI GdipSetPenMode(GpPen*,GpPenAlignment);
+GpStatus WINGDIPAPI GdipSetPenMiterLimit(GpPen*,REAL);
+GpStatus WINGDIPAPI GdipSetPenStartCap(GpPen*,GpLineCap);
+GpStatus WINGDIPAPI GdipSetPenWidth(GpPen*,REAL);
+GpStatus WINGDIPAPI GdipGetPenDashCap197819(GpPen*,GpDashCap*);
+GpStatus WINGDIPAPI GdipGetPenEndCap(GpPen*,GpLineCap*);
+GpStatus WINGDIPAPI GdipGetPenLineJoin(GpPen*,GpLineJoin*);
+GpStatus WINGDIPAPI GdipGetPenMiterLimit(GpPen*,REAL*);
+GpStatus WINGDIPAPI GdipGetPenStartCap(GpPen*,GpLineCap*);
+GpStatus WINGDIPAPI GdipGetPenUnit(GpPen*,GpUnit*);
+GpStatus WINGDIPAPI GdipGetPenWidth(GpPen*,REAL*);
+
+/* Region */
+GpStatus WINGDIPAPI GdipCloneRegion(GpRegion *, GpRegion **);
+GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion *, GpPath *, CombineMode);
+GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion *, GDIPCONST GpRectF *, CombineMode);
+GpStatus WINGDIPAPI GdipCombineRegionRectI(GpRegion *, GDIPCONST GpRect *, CombineMode);
+GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion *, GpRegion *, CombineMode);
+GpStatus WINGDIPAPI GdipCreateRegion(GpRegion **);
+GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath *, GpRegion **);
+GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF *, GpRegion **);
+GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect *, GpRegion **);
+GpStatus WINGDIPAPI GdipCreateRegionRgnData(GDIPCONST BYTE *, INT, GpRegion **);
+GpStatus WINGDIPAPI GdipCreateRegionHrgn(HRGN, GpRegion **);
+GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion *);
+GpStatus WINGDIPAPI GdipGetRegionBounds(GpRegion *, GpGraphics *, GpRectF *);
+GpStatus WINGDIPAPI GdipGetRegionBoundsI(GpRegion *, GpGraphics *, GpRect *);
+GpStatus WINGDIPAPI GdipGetRegionData(GpRegion *, BYTE *, UINT, UINT *);
+GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion *, UINT *);
+GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion *, GpGraphics *, HRGN *);
+GpStatus WINGDIPAPI GdipGetRegionScans(GpRegion *, GpRectF *, INT *, GpMatrix *);
+GpStatus WINGDIPAPI GdipGetRegionScansI(GpRegion *, GpRect *, INT *, GpMatrix *);
+GpStatus WINGDIPAPI GdipGetRegionScansCount(GpRegion *, UINT *, GpMatrix *);
+GpStatus WINGDIPAPI GdipIsEmptyRegion(GpRegion *, GpGraphics *, BOOL *);
+GpStatus WINGDIPAPI GdipIsEqualRegion(GpRegion *, GpRegion *, GpGraphics *, BOOL *);
+GpStatus WINGDIPAPI GdipIsInfiniteRegion(GpRegion *, GpGraphics *, BOOL *);
+GpStatus WINGDIPAPI GdipIsVisibleRegionPoint(GpRegion *, REAL, REAL, GpGraphics *, BOOL *);
+GpStatus WINGDIPAPI GdipIsVisibleRegionPointI(GpRegion *, INT, INT, GpGraphics *, BOOL *);
+GpStatus WINGDIPAPI GdipIsVisibleRegionRect(GpRegion *, REAL, REAL, REAL, REAL, GpGraphics *, BOOL *);
+GpStatus WINGDIPAPI GdipIsVisibleRegionRectI(GpRegion *, INT, INT, INT, INT, GpGraphics *, BOOL *);
+GpStatus WINGDIPAPI GdipSetEmpty(GpRegion *);
+GpStatus WINGDIPAPI GdipSetInfinite(GpRegion *);
+GpStatus WINGDIPAPI GdipTransformRegion(GpRegion *, GpMatrix *);
+GpStatus WINGDIPAPI GdipTranslateRegion(GpRegion *, REAL, REAL);
+GpStatus WINGDIPAPI GdipTranslateRegionI(GpRegion *, INT, INT);
+
+/* SolidBrush */
+GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB,GpSolidFill**);
+GpStatus WINGDIPAPI GdipGetSolidFillColor(GpSolidFill*,ARGB*);
+GpStatus WINGDIPAPI GdipSetSolidFillColor(GpSolidFill*,ARGB);
+
+/* StringFormat */
+GpStatus WINGDIPAPI GdipCloneStringFormat(GDIPCONST GpStringFormat*,GpStringFormat**);
+GpStatus WINGDIPAPI GdipCreateStringFormat(INT,LANGID,GpStringFormat**);
+GpStatus WINGDIPAPI GdipDeleteStringFormat(GpStringFormat*);
+GpStatus WINGDIPAPI GdipGetStringFormatAlign(GpStringFormat*,StringAlignment*);
+GpStatus WINGDIPAPI GdipGetStringFormatDigitSubstitution(GDIPCONST GpStringFormat*,LANGID*,
+ StringDigitSubstitute*);
+GpStatus WINGDIPAPI GdipGetStringFormatFlags(GDIPCONST GpStringFormat*, INT*);
+GpStatus WINGDIPAPI GdipGetStringFormatHotkeyPrefix(GDIPCONST GpStringFormat*,INT*);
+GpStatus WINGDIPAPI GdipGetStringFormatLineAlign(GpStringFormat*,StringAlignment*);
+GpStatus WINGDIPAPI GdipGetStringFormatMeasurableCharacterRangeCount(
+ GDIPCONST GpStringFormat*, INT*);
+GpStatus WINGDIPAPI GdipGetStringFormatTabStopCount(GDIPCONST GpStringFormat*,INT*);
+GpStatus WINGDIPAPI GdipGetStringFormatTabStops(GDIPCONST GpStringFormat*,INT,REAL*,REAL*);
+GpStatus WINGDIPAPI GdipGetStringFormatTrimming(GpStringFormat*,StringTrimming*);
+GpStatus WINGDIPAPI GdipSetStringFormatAlign(GpStringFormat*,StringAlignment);
+GpStatus WINGDIPAPI GdipSetStringFormatDigitSubstitution(GpStringFormat*,LANGID,StringDigitSubstitute);
+GpStatus WINGDIPAPI GdipSetStringFormatHotkeyPrefix(GpStringFormat*,INT);
+GpStatus WINGDIPAPI GdipSetStringFormatLineAlign(GpStringFormat*,StringAlignment);
+GpStatus WINGDIPAPI GdipSetStringFormatMeasurableCharacterRanges(
+ GpStringFormat*, INT, GDIPCONST CharacterRange*);
+GpStatus WINGDIPAPI GdipSetStringFormatTabStops(GpStringFormat*,REAL,INT,GDIPCONST REAL*);
+GpStatus WINGDIPAPI GdipSetStringFormatTrimming(GpStringFormat*,StringTrimming);
+GpStatus WINGDIPAPI GdipSetStringFormatFlags(GpStringFormat*, INT);
+GpStatus WINGDIPAPI GdipStringFormatGetGenericDefault(GpStringFormat **);
+GpStatus WINGDIPAPI GdipStringFormatGetGenericTypographic(GpStringFormat **);
+
+/* Texture */
+GpStatus WINGDIPAPI GdipCreateTexture(GpImage*,GpWrapMode,GpTexture**);
+GpStatus WINGDIPAPI GdipCreateTexture2(GpImage*,GpWrapMode,REAL,REAL,REAL,REAL,GpTexture**);
+GpStatus WINGDIPAPI GdipCreateTexture2I(GpImage*,GpWrapMode,INT,INT,INT,INT,GpTexture**);
+GpStatus WINGDIPAPI GdipCreateTextureIA(GpImage*,GDIPCONST GpImageAttributes*,
+ REAL,REAL,REAL,REAL,GpTexture**);
+GpStatus WINGDIPAPI GdipCreateTextureIAI(GpImage*,GDIPCONST GpImageAttributes*,
+ INT,INT,INT,INT,GpTexture**);
+GpStatus WINGDIPAPI GdipGetTextureTransform(GpTexture*,GpMatrix*);
+GpStatus WINGDIPAPI GdipGetTextureWrapMode(GpTexture*, GpWrapMode*);
+GpStatus WINGDIPAPI GdipMultiplyTextureTransform(GpTexture*,
+ GDIPCONST GpMatrix*,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipResetTextureTransform(GpTexture*);
+GpStatus WINGDIPAPI GdipRotateTextureTransform(GpTexture*,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipScaleTextureTransform(GpTexture*,REAL,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipSetTextureTransform(GpTexture *,GDIPCONST GpMatrix*);
+GpStatus WINGDIPAPI GdipSetTextureWrapMode(GpTexture*, GpWrapMode);
+GpStatus WINGDIPAPI GdipTranslateTextureTransform(GpTexture*,REAL,REAL,
+ GpMatrixOrder);
+
+/* Without wrapper methods */
+GpStatus WINGDIPAPI GdipCreateStreamOnFile(GDIPCONST WCHAR*,UINT,IStream**);
+GpStatus WINGDIPAPI GdipGetImageEncodersSize(UINT *numEncoders, UINT *size);
+GpStatus WINGDIPAPI GdipGetImageEncoders(UINT numEncoders, UINT size, ImageCodecInfo *encoders);
+GpStatus WINGDIPAPI GdipTestControl(GpTestControlEnum,void*);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/external/gdiplus/include/gdiplusgpstubs.h b/external/gdiplus/include/gdiplusgpstubs.h
new file mode 100644
index 000000000000..5a65cd83e96e
--- /dev/null
+++ b/external/gdiplus/include/gdiplusgpstubs.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSGPSTUBS_H
+#define _GDIPLUSGPSTUBS_H
+
+#ifdef __cplusplus
+
+class GpGraphics {};
+class GpPen {};
+class GpBrush {};
+class GpHatch : public GpBrush {};
+class GpSolidFill : public GpBrush {};
+class GpPath {};
+class GpMatrix {};
+class GpPathIterator {};
+class GpCustomLineCap {};
+class GpAdjustableArrowCap : public GpCustomLineCap {};
+class GpImage {};
+class GpMetafile : public GpImage {};
+class GpImageAttributes {};
+class GpCachedBitmap {};
+class GpBitmap : public GpImage {};
+class GpPathGradient : public GpBrush {};
+class GpLineGradient : public GpBrush {};
+class GpTexture : public GpBrush {};
+class GpFont {};
+class GpFontCollection {};
+class GpFontFamily {};
+class GpStringFormat {};
+class GpRegion {};
+class CGpEffect {};
+
+#else /* end of c++ declarations */
+
+typedef struct GpGraphics GpGraphics;
+typedef struct GpPen GpPen;
+typedef struct GpBrush GpBrush;
+typedef struct GpHatch GpHatch;
+typedef struct GpSolidFill GpSolidFill;
+typedef struct GpPath GpPath;
+typedef struct GpMatrix GpMatrix;
+typedef struct GpPathIterator GpPathIterator;
+typedef struct GpCustomLineCap GpCustomLineCap;
+typedef struct GpAdjustableArrowCap GpAdjustableArrowCap;
+typedef struct GpImage GpImage;
+typedef struct GpMetafile GpMetafile;
+typedef struct GpImageAttributes GpImageAttributes;
+typedef struct GpCachedBitmap GpCachedBitmap;
+typedef struct GpBitmap GpBitmap;
+typedef struct GpPathGradient GpPathGradient;
+typedef struct GpLineGradient GpLineGradient;
+typedef struct GpTexture GpTexture;
+typedef struct GpFont GpFont;
+typedef struct GpFontCollection GpFontCollection;
+typedef struct GpFontFamily GpFontFamily;
+typedef struct GpStringFormat GpStringFormat;
+typedef struct GpRegion GpRegion;
+typedef struct CGpEffect CGpEffect;
+
+#endif /* end of c declarations */
+
+typedef Status GpStatus;
+typedef Unit GpUnit;
+typedef BrushType GpBrushType;
+typedef PointF GpPointF;
+typedef FillMode GpFillMode;
+typedef PathData GpPathData;
+typedef LineCap GpLineCap;
+typedef RectF GpRectF;
+typedef Rect GpRect;
+typedef LineJoin GpLineJoin;
+typedef DashCap GpDashCap;
+typedef DashStyle GpDashStyle;
+typedef MatrixOrder GpMatrixOrder;
+typedef Point GpPoint;
+typedef WrapMode GpWrapMode;
+typedef Color GpColor;
+typedef FlushIntention GpFlushIntention;
+typedef CoordinateSpace GpCoordinateSpace;
+typedef PenAlignment GpPenAlignment;
+typedef PenType GpPenType;
+
+#endif
diff --git a/external/gdiplus/include/gdiplusimaging.h b/external/gdiplus/include/gdiplusimaging.h
new file mode 100644
index 000000000000..7c199c3d5bdf
--- /dev/null
+++ b/external/gdiplus/include/gdiplusimaging.h
@@ -0,0 +1,450 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSIMAGING_H
+#define _GDIPLUSIMAGING_H
+
+DEFINE_GUID(ImageFormatUndefined, 0xb96b3ca9, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+DEFINE_GUID(ImageFormatMemoryBMP, 0xb96b3caa, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+DEFINE_GUID(ImageFormatBMP, 0xb96b3cab, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+DEFINE_GUID(ImageFormatEMF, 0xb96b3cac, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+DEFINE_GUID(ImageFormatWMF, 0xb96b3cad, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+DEFINE_GUID(ImageFormatJPEG, 0xb96b3cae, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+DEFINE_GUID(ImageFormatPNG, 0xb96b3caf, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+DEFINE_GUID(ImageFormatGIF, 0xb96b3cb0, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+DEFINE_GUID(ImageFormatTIFF, 0xb96b3cb1, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+DEFINE_GUID(ImageFormatEXIF, 0xb96b3cb2, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+DEFINE_GUID(ImageFormatIcon, 0xb96b3cb5, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
+
+DEFINE_GUID(FrameDimensionTime, 0x6aedbd6d, 0x3fb5, 0x418a, 0x83, 0xa6, 0x7f, 0x45, 0x22, 0x9d, 0xc8, 0x72);
+DEFINE_GUID(FrameDimensionPage, 0x7462dc86, 0x6180, 0x4c7e, 0x8e, 0x3f, 0xee, 0x73, 0x33, 0xa7, 0xa4, 0x83);
+DEFINE_GUID(FrameDimensionResolution, 0x84236f7b, 0x3bd3, 0x428f, 0x8d, 0xab, 0x4e, 0xa1, 0x43, 0x9c, 0xa3, 0x15);
+
+enum ImageLockMode
+{
+ ImageLockModeRead = 1,
+ ImageLockModeWrite = 2,
+ ImageLockModeUserInputBuf = 4
+};
+
+enum RotateFlipType
+{
+ RotateNoneFlipNone = 0,
+ Rotate180FlipXY = RotateNoneFlipNone,
+
+ Rotate90FlipNone = 1,
+ Rotate270FlipXY = Rotate90FlipNone,
+
+ Rotate180FlipNone = 2,
+ RotateNoneFlipXY = Rotate180FlipNone,
+
+ Rotate270FlipNone = 3,
+ Rotate90FlipXY = Rotate270FlipNone,
+
+ RotateNoneFlipX = 4,
+ Rotate180FlipY = RotateNoneFlipX,
+
+ Rotate90FlipX = 5,
+ Rotate270FlipY = Rotate90FlipX,
+
+ Rotate180FlipX = 6,
+ RotateNoneFlipY = Rotate180FlipX,
+
+ Rotate270FlipX = 7,
+ Rotate90FlipY = Rotate270FlipX
+};
+
+#ifdef __cplusplus
+class EncoderParameter
+{
+public:
+ GUID Guid;
+ ULONG NumberOfValues;
+ ULONG Type;
+ VOID* Value;
+};
+
+class EncoderParameters
+{
+public:
+ UINT Count;
+ EncoderParameter Parameter[1];
+};
+
+class ImageCodecInfo
+{
+public:
+ CLSID Clsid;
+ GUID FormatID;
+ const WCHAR* CodecName;
+ const WCHAR* DllName;
+ const WCHAR* FormatDescription;
+ const WCHAR* FilenameExtension;
+ const WCHAR* MimeType;
+ DWORD Flags;
+ DWORD Version;
+ DWORD SigCount;
+ DWORD SigSize;
+ const BYTE* SigPattern;
+ const BYTE* SigMask;
+};
+
+class BitmapData
+{
+public:
+ UINT Width;
+ UINT Height;
+ INT Stride;
+ Gdiplus::PixelFormat PixelFormat;
+ VOID* Scan0;
+ UINT_PTR Reserved;
+};
+
+class ImageItemData
+{
+public:
+ UINT Size;
+ UINT Position;
+ VOID* Desc;
+ UINT DescSize;
+ VOID* Data;
+ UINT DataSize;
+ UINT Cookie;
+};
+
+class PropertyItem
+{
+public:
+ PROPID id;
+ ULONG length;
+ WORD type;
+ VOID* value;
+};
+
+#else /* end of c++ typedefs */
+
+typedef enum ImageLockMode ImageLockMode;
+typedef enum RotateFlipType RotateFlipType;
+
+typedef struct EncoderParameter
+{
+ GUID Guid;
+ ULONG NumberOfValues;
+ ULONG Type;
+ VOID* Value;
+} EncoderParameter;
+
+typedef struct EncoderParameters
+{
+ UINT Count;
+ EncoderParameter Parameter[1];
+} EncoderParameters;
+
+typedef struct ImageCodecInfo
+{
+ CLSID Clsid;
+ GUID FormatID;
+ const WCHAR* CodecName;
+ const WCHAR* DllName;
+ const WCHAR* FormatDescription;
+ const WCHAR* FilenameExtension;
+ const WCHAR* MimeType;
+ DWORD Flags;
+ DWORD Version;
+ DWORD SigCount;
+ DWORD SigSize;
+ const BYTE* SigPattern;
+ const BYTE* SigMask;
+} ImageCodecInfo;
+
+typedef struct BitmapData
+{
+ UINT Width;
+ UINT Height;
+ INT Stride;
+ PixelFormat PixelFormat;
+ VOID* Scan0;
+ UINT_PTR Reserved; /* undocumented: stores the lock mode */
+} BitmapData;
+
+typedef struct ImageItemData
+{
+ UINT Size;
+ UINT Position;
+ VOID* Desc;
+ UINT DescSize;
+ VOID* Data;
+ UINT DataSize;
+ UINT Cookie;
+} ImageItemData;
+
+typedef struct PropertyItem
+{
+ PROPID id;
+ ULONG length;
+ WORD type;
+ VOID* value;
+} PropertyItem;
+
+#endif /* end of c typedefs */
+
+/* property types */
+#define PropertyTagTypeByte 1
+#define PropertyTagTypeASCII 2
+#define PropertyTagTypeShort 3
+#define PropertyTagTypeLong 4
+#define PropertyTagTypeRational 5
+#define PropertyTagTypeUndefined 7
+#define PropertyTagTypeSLONG 9
+#define PropertyTagTypeSRational 10
+
+/* property IDs */
+#define PropertyTagExifIFD 0x8769
+#define PropertyTagGpsIFD 0x8825
+
+#define PropertyTagNewSubfileType 0x00FE
+#define PropertyTagSubfileType 0x00FF
+#define PropertyTagImageWidth 0x0100
+#define PropertyTagImageHeight 0x0101
+#define PropertyTagBitsPerSample 0x0102
+#define PropertyTagCompression 0x0103
+#define PropertyTagPhotometricInterp 0x0106
+#define PropertyTagThreshHolding 0x0107
+#define PropertyTagCellWidth 0x0108
+#define PropertyTagCellHeight 0x0109
+#define PropertyTagFillOrder 0x010A
+#define PropertyTagDocumentName 0x010D
+#define PropertyTagImageDescription 0x010E
+#define PropertyTagEquipMake 0x010F
+#define PropertyTagEquipModel 0x0110
+#define PropertyTagStripOffsets 0x0111
+#define PropertyTagOrientation 0x0112
+#define PropertyTagSamplesPerPixel 0x0115
+#define PropertyTagRowsPerStrip 0x0116
+#define PropertyTagStripBytesCount 0x0117
+#define PropertyTagMinSampleValue 0x0118
+#define PropertyTagMaxSampleValue 0x0119
+#define PropertyTagXResolution 0x011A
+#define PropertyTagYResolution 0x011B
+#define PropertyTagPlanarConfig 0x011C
+#define PropertyTagPageName 0x011D
+#define PropertyTagXPosition 0x011E
+#define PropertyTagYPosition 0x011F
+#define PropertyTagFreeOffset 0x0120
+#define PropertyTagFreeByteCounts 0x0121
+#define PropertyTagGrayResponseUnit 0x0122
+#define PropertyTagGrayResponseCurve 0x0123
+#define PropertyTagT4Option 0x0124
+#define PropertyTagT6Option 0x0125
+#define PropertyTagResolutionUnit 0x0128
+#define PropertyTagPageNumber 0x0129
+#define PropertyTagTransferFuncition 0x012D
+#define PropertyTagSoftwareUsed 0x0131
+#define PropertyTagDateTime 0x0132
+#define PropertyTagArtist 0x013B
+#define PropertyTagHostComputer 0x013C
+#define PropertyTagPredictor 0x013D
+#define PropertyTagWhitePoint 0x013E
+#define PropertyTagPrimaryChromaticities 0x013F
+#define PropertyTagColorMap 0x0140
+#define PropertyTagHalftoneHints 0x0141
+#define PropertyTagTileWidth 0x0142
+#define PropertyTagTileLength 0x0143
+#define PropertyTagTileOffset 0x0144
+#define PropertyTagTileByteCounts 0x0145
+#define PropertyTagInkSet 0x014C
+#define PropertyTagInkNames 0x014D
+#define PropertyTagNumberOfInks 0x014E
+#define PropertyTagDotRange 0x0150
+#define PropertyTagTargetPrinter 0x0151
+#define PropertyTagExtraSamples 0x0152
+#define PropertyTagSampleFormat 0x0153
+#define PropertyTagSMinSampleValue 0x0154
+#define PropertyTagSMaxSampleValue 0x0155
+#define PropertyTagTransferRange 0x0156
+
+#define PropertyTagJPEGProc 0x0200
+#define PropertyTagJPEGInterFormat 0x0201
+#define PropertyTagJPEGInterLength 0x0202
+#define PropertyTagJPEGRestartInterval 0x0203
+#define PropertyTagJPEGLosslessPredictors 0x0205
+#define PropertyTagJPEGPointTransforms 0x0206
+#define PropertyTagJPEGQTables 0x0207
+#define PropertyTagJPEGDCTables 0x0208
+#define PropertyTagJPEGACTables 0x0209
+
+#define PropertyTagYCbCrCoefficients 0x0211
+#define PropertyTagYCbCrSubsampling 0x0212
+#define PropertyTagYCbCrPositioning 0x0213
+#define PropertyTagREFBlackWhite 0x0214
+
+#define PropertyTagICCProfile 0x8773
+
+#define PropertyTagGamma 0x0301
+#define PropertyTagICCProfileDescriptor 0x0302
+#define PropertyTagSRGBRenderingIntent 0x0303
+
+#define PropertyTagImageTitle 0x0320
+#define PropertyTagCopyright 0x8298
+
+#define PropertyTagResolutionXUnit 0x5001
+#define PropertyTagResolutionYUnit 0x5002
+#define PropertyTagResolutionXLengthUnit 0x5003
+#define PropertyTagResolutionYLengthUnit 0x5004
+#define PropertyTagPrintFlags 0x5005
+#define PropertyTagPrintFlagsVersion 0x5006
+#define PropertyTagPrintFlagsCrop 0x5007
+#define PropertyTagPrintFlagsBleedWidth 0x5008
+#define PropertyTagPrintFlagsBleedWidthScale 0x5009
+#define PropertyTagHalftoneLPI 0x500A
+#define PropertyTagHalftoneLPIUnit 0x500B
+#define PropertyTagHalftoneDegree 0x500C
+#define PropertyTagHalftoneShape 0x500D
+#define PropertyTagHalftoneMisc 0x500E
+#define PropertyTagHalftoneScreen 0x500F
+#define PropertyTagJPEGQuality 0x5010
+#define PropertyTagGridSize 0x5011
+#define PropertyTagThumbnailFormat 0x5012
+#define PropertyTagThumbnailWidth 0x5013
+#define PropertyTagThumbnailHeight 0x5014
+#define PropertyTagThumbnailColorDepth 0x5015
+#define PropertyTagThumbnailPlanes 0x5016
+#define PropertyTagThumbnailRawBytes 0x5017
+#define PropertyTagThumbnailSize 0x5018
+#define PropertyTagThumbnailCompressedSize 0x5019
+#define PropertyTagColorTransferFunction 0x501A
+#define PropertyTagThumbnailData 0x501B
+
+#define PropertyTagThumbnailImageWidth 0x5020
+#define PropertyTagThumbnailImageHeight 0x5021
+#define PropertyTagThumbnailBitsPerSample 0x5022
+#define PropertyTagThumbnailCompression 0x5023
+#define PropertyTagThumbnailPhotometricInterp 0x5024
+#define PropertyTagThumbnailImageDescription 0x5025
+#define PropertyTagThumbnailEquipMake 0x5026
+#define PropertyTagThumbnailEquipModel 0x5027
+#define PropertyTagThumbnailStripOffsets 0x5028
+#define PropertyTagThumbnailOrientation 0x5029
+#define PropertyTagThumbnailSamplesPerPixel 0x502A
+#define PropertyTagThumbnailRowsPerStrip 0x502B
+#define PropertyTagThumbnailStripBytesCount 0x502C
+#define PropertyTagThumbnailResolutionX 0x502D
+#define PropertyTagThumbnailResolutionY 0x502E
+#define PropertyTagThumbnailPlanarConfig 0x502F
+#define PropertyTagThumbnailResolutionUnit 0x5030
+#define PropertyTagThumbnailTransferFunction 0x5031
+#define PropertyTagThumbnailSoftwareUsed 0x5032
+#define PropertyTagThumbnailDateTime 0x5033
+#define PropertyTagThumbnailArtist 0x5034
+#define PropertyTagThumbnailWhitePoint 0x5035
+#define PropertyTagThumbnailPrimaryChromaticities 0x5036
+#define PropertyTagThumbnailYCbCrCoefficients 0x5037
+#define PropertyTagThumbnailYCbCrSubsampling 0x5038
+#define PropertyTagThumbnailYCbCrPositioning 0x5039
+#define PropertyTagThumbnailRefBlackWhite 0x503A
+#define PropertyTagThumbnailCopyRight 0x503B
+
+#define PropertyTagLuminanceTable 0x5090
+#define PropertyTagChrominanceTable 0x5091
+
+#define PropertyTagFrameDelay 0x5100
+#define PropertyTagLoopCount 0x5101
+
+#define PropertyTagPixelUnit 0x5110
+#define PropertyTagPixelPerUnitX 0x5111
+#define PropertyTagPixelPerUnitY 0x5112
+#define PropertyTagPaletteHistogram 0x5113
+
+#define PropertyTagExifExposureTime 0x829A
+#define PropertyTagExifFNumber 0x829D
+
+#define PropertyTagExifExposureProg 0x8822
+#define PropertyTagExifSpectralSense 0x8824
+#define PropertyTagExifISOSpeed 0x8827
+#define PropertyTagExifOECF 0x8828
+
+#define PropertyTagExifVer 0x9000
+#define PropertyTagExifDTOrig 0x9003
+#define PropertyTagExifDTDigitized 0x9004
+
+#define PropertyTagExifCompConfig 0x9101
+#define PropertyTagExifCompBPP 0x9102
+
+#define PropertyTagExifShutterSpeed 0x9201
+#define PropertyTagExifAperture 0x9202
+#define PropertyTagExifBrightness 0x9203
+#define PropertyTagExifExposureBias 0x9204
+#define PropertyTagExifMaxAperture 0x9205
+#define PropertyTagExifSubjectDist 0x9206
+#define PropertyTagExifMeteringMode 0x9207
+#define PropertyTagExifLightSource 0x9208
+#define PropertyTagExifFlash 0x9209
+#define PropertyTagExifFocalLength 0x920A
+#define PropertyTagExifMakerNote 0x927C
+#define PropertyTagExifUserComment 0x9286
+#define PropertyTagExifDTSubsec 0x9290
+#define PropertyTagExifDTOrigSS 0x9291
+#define PropertyTagExifDTDigSS 0x9292
+
+#define PropertyTagExifFPXVer 0xA000
+#define PropertyTagExifColorSpace 0xA001
+#define PropertyTagExifPixXDim 0xA002
+#define PropertyTagExifPixYDim 0xA003
+#define PropertyTagExifRelatedWav 0xA004
+#define PropertyTagExifInterop 0xA005
+#define PropertyTagExifFlashEnergy 0xA20B
+#define PropertyTagExifSpatialFR 0xA20C
+#define PropertyTagExifFocalXRes 0xA20E
+#define PropertyTagExifFocalYRes 0xA20F
+#define PropertyTagExifFocalResUnit 0xA210
+#define PropertyTagExifSubjectLoc 0xA214
+#define PropertyTagExifExposureIndex 0xA215
+#define PropertyTagExifSensingMethod 0xA217
+#define PropertyTagExifFileSource 0xA300
+#define PropertyTagExifSceneType 0xA301
+#define PropertyTagExifCfaPattern 0xA302
+
+#define PropertyTagGpsVer 0x0000
+#define PropertyTagGpsLatitudeRef 0x0001
+#define PropertyTagGpsLatitude 0x0002
+#define PropertyTagGpsLongitudeRef 0x0003
+#define PropertyTagGpsLongitude 0x0004
+#define PropertyTagGpsAltitudeRef 0x0005
+#define PropertyTagGpsAltitude 0x0006
+#define PropertyTagGpsGpsTime 0x0007
+#define PropertyTagGpsGpsSatellites 0x0008
+#define PropertyTagGpsGpsStatus 0x0009
+#define PropertyTagGpsGpsMeasureMode 0x000A
+#define PropertyTagGpsGpsDop 0x000B
+#define PropertyTagGpsSpeedRef 0x000C
+#define PropertyTagGpsSpeed 0x000D
+#define PropertyTagGpsTrackRef 0x000E
+#define PropertyTagGpsTrack 0x000F
+#define PropertyTagGpsImgDirRef 0x0010
+#define PropertyTagGpsImgDir 0x0011
+#define PropertyTagGpsMapDatum 0x0012
+#define PropertyTagGpsDestLatRef 0x0013
+#define PropertyTagGpsDestLat 0x0014
+#define PropertyTagGpsDestLongRef 0x0015
+#define PropertyTagGpsDestLong 0x0016
+#define PropertyTagGpsDestBearRef 0x0017
+#define PropertyTagGpsDestBear 0x0018
+#define PropertyTagGpsDestDistRef 0x0019
+#define PropertyTagGpsDestDist 0x001A
+
+#endif /* _GDIPLUSIMAGING_H */
diff --git a/external/gdiplus/include/gdiplusinit.h b/external/gdiplus/include/gdiplusinit.h
new file mode 100644
index 000000000000..22155b7fe30d
--- /dev/null
+++ b/external/gdiplus/include/gdiplusinit.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSINIT_H
+#define _GDIPLUSINIT_H
+
+enum DebugEventLevel
+{
+ DebugEventLevelFatal,
+ DebugEventLevelWarning
+};
+
+typedef VOID (WINAPI *DebugEventProc)(enum DebugEventLevel, CHAR *);
+typedef Status (WINAPI *NotificationHookProc)(ULONG_PTR *);
+typedef void (WINAPI *NotificationUnhookProc)(ULONG_PTR);
+
+struct GdiplusStartupInput
+{
+ UINT32 GdiplusVersion;
+ DebugEventProc DebugEventCallback;
+ BOOL SuppressBackgroundThread;
+ BOOL SuppressExternalCodecs;
+
+#ifdef __cplusplus
+ GdiplusStartupInput(DebugEventProc debugEventCallback = NULL,
+ BOOL suppressBackgroundThread = FALSE,
+ BOOL suppressExternalCodecs = FALSE)
+ {
+ GdiplusVersion = 1;
+ DebugEventCallback = debugEventCallback;
+ SuppressBackgroundThread = suppressBackgroundThread;
+ SuppressExternalCodecs = suppressExternalCodecs;
+ }
+#endif
+};
+
+struct GdiplusStartupOutput
+{
+ NotificationHookProc NotificationHook;
+ NotificationUnhookProc NotificationUnhook;
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+Status WINAPI GdiplusStartup(ULONG_PTR *, const struct GdiplusStartupInput *, struct GdiplusStartupOutput *);
+void WINAPI GdiplusShutdown(ULONG_PTR);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/external/gdiplus/include/gdiplusmem.h b/external/gdiplus/include/gdiplusmem.h
new file mode 100644
index 000000000000..a0496baabce7
--- /dev/null
+++ b/external/gdiplus/include/gdiplusmem.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSMEM_H
+#define _GDIPLUSMEM_H
+
+#define WINGDIPAPI __stdcall
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void* WINGDIPAPI GdipAlloc(SIZE_T);
+void WINGDIPAPI GdipFree(void*);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/external/gdiplus/include/gdiplusmetaheader.h b/external/gdiplus/include/gdiplusmetaheader.h
new file mode 100644
index 000000000000..e59ab09c8e49
--- /dev/null
+++ b/external/gdiplus/include/gdiplusmetaheader.h
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSMETAHEADER_H
+#define _GDIPLUSMETAHEADER_H
+
+typedef struct
+{
+ DWORD iType;
+ DWORD nSize;
+ RECTL rclBounds;
+ RECTL rclFrame;
+ DWORD dSignature;
+ DWORD nVersion;
+ DWORD nBytes;
+ DWORD nRecords;
+ WORD nHandles;
+ WORD sReserved;
+ DWORD nDescription;
+ DWORD offDescription;
+ DWORD nPalEntries;
+ SIZEL szlDevice;
+ SIZEL szlMillimeters;
+} ENHMETAHEADER3;
+
+#include <pshpack2.h>
+
+typedef struct
+{
+ INT16 Left;
+ INT16 Top;
+ INT16 Right;
+ INT16 Bottom;
+} PWMFRect16;
+
+typedef struct
+{
+ UINT32 Key;
+ INT16 Hmf;
+ PWMFRect16 BoundingBox;
+ INT16 Inch;
+ UINT32 Reserved;
+ INT16 Checksum;
+} WmfPlaceableFileHeader;
+
+#include <poppack.h>
+
+#define GDIP_EMFPLUSFLAGS_DISPLAY 0x00000001
+
+#ifdef __cplusplus
+class MetafileHeader
+{
+public:
+ MetafileType Type;
+ UINT Size;
+ UINT Version;
+ UINT EmfPlusFlags;
+ REAL DpiX;
+ REAL DpiY;
+ INT X;
+ INT Y;
+ INT Width;
+ INT Height;
+ union
+ {
+ METAHEADER WmfHeader;
+ ENHMETAHEADER3 EmfHeader;
+ };
+ INT EmfPlusHeaderSize;
+ INT LogicalDpiX;
+ INT LogicalDpiY;
+
+public:
+ MetafileType GetType() const { return Type; }
+
+ UINT GetMetafileSize() const { return Size; }
+
+ UINT GetVersion() const { return Version; }
+
+ UINT GetEmfPlusFlags() const { return EmfPlusFlags; }
+
+ REAL GetDpiX() const { return DpiX; }
+
+ REAL GetDpiY() const { return DpiY; }
+
+ VOID GetBounds (OUT Rect *r) const
+ {
+ r->X = X;
+ r->Y = Y;
+ r->Width = Width;
+ r->Height = Height;
+ }
+
+ BOOL IsWmf() const
+ {
+ return ((Type == MetafileTypeWmf) || (Type == MetafileTypeWmfPlaceable));
+ }
+
+ BOOL IsWmfPlaceable() const { return (Type == MetafileTypeWmfPlaceable); }
+
+ BOOL IsEmf() const { return (Type == MetafileTypeEmf); }
+
+ BOOL IsEmfOrEmfPlus() const { return (Type >= MetafileTypeEmf); }
+
+ BOOL IsEmfPlus() const { return (Type >= MetafileTypeEmfPlusOnly); }
+
+ BOOL IsEmfPlusDual() const { return (Type == MetafileTypeEmfPlusDual); }
+
+ BOOL IsEmfPlusOnly() const { return (Type == MetafileTypeEmfPlusOnly); }
+
+ BOOL IsDisplay() const
+ {
+ return IsEmfPlus() && ((EmfPlusFlags & GDIP_EMFPLUSFLAGS_DISPLAY) != 0);
+ }
+
+ const METAHEADER * GetWmfHeader() const
+ {
+ return IsWmf() ? &WmfHeader : NULL;
+ }
+
+ const ENHMETAHEADER3 * GetEmfHeader() const
+ {
+ return IsEmfOrEmfPlus() ? &EmfHeader : NULL;
+ }
+};
+#else /* end of c++ typedefs */
+
+typedef struct MetafileHeader
+{
+ MetafileType Type;
+ UINT Size;
+ UINT Version;
+ UINT EmfPlusFlags;
+ REAL DpiX;
+ REAL DpiY;
+ INT X;
+ INT Y;
+ INT Width;
+ INT Height;
+ union
+ {
+ METAHEADER WmfHeader;
+ ENHMETAHEADER3 EmfHeader;
+ } DUMMYUNIONNAME;
+ INT EmfPlusHeaderSize;
+ INT LogicalDpiX;
+ INT LogicalDpiY;
+} MetafileHeader;
+
+#endif /* end of c typedefs */
+
+#endif /* _GDIPLUSMETAHEADER_H */
diff --git a/external/gdiplus/include/gdipluspixelformats.h b/external/gdiplus/include/gdipluspixelformats.h
new file mode 100644
index 000000000000..d7382f141ff6
--- /dev/null
+++ b/external/gdiplus/include/gdipluspixelformats.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSPIXELFORMATS_H
+#define _GDIPLUSPIXELFORMATS_H
+
+typedef DWORD ARGB;
+typedef INT PixelFormat;
+
+#define PixelFormatIndexed 0x00010000
+#define PixelFormatGDI 0x00020000
+#define PixelFormatAlpha 0x00040000
+#define PixelFormatPAlpha 0x00080000
+#define PixelFormatExtended 0x00100000
+#define PixelFormatCanonical 0x00200000
+
+#define PixelFormatUndefined 0
+#define PixelFormatDontCare 0
+
+#define PixelFormat1bppIndexed (1 | ( 1 << 8) | PixelFormatIndexed | PixelFormatGDI)
+#define PixelFormat4bppIndexed (2 | ( 4 << 8) | PixelFormatIndexed | PixelFormatGDI)
+#define PixelFormat8bppIndexed (3 | ( 8 << 8) | PixelFormatIndexed | PixelFormatGDI)
+#define PixelFormat16bppGrayScale (4 | (16 << 8) | PixelFormatExtended)
+#define PixelFormat16bppRGB555 (5 | (16 << 8) | PixelFormatGDI)
+#define PixelFormat16bppRGB565 (6 | (16 << 8) | PixelFormatGDI)
+#define PixelFormat16bppARGB1555 (7 | (16 << 8) | PixelFormatAlpha | PixelFormatGDI)
+#define PixelFormat24bppRGB (8 | (24 << 8) | PixelFormatGDI)
+#define PixelFormat32bppRGB (9 | (32 << 8) | PixelFormatGDI)
+#define PixelFormat32bppARGB (10 | (32 << 8) | PixelFormatAlpha | PixelFormatGDI | PixelFormatCanonical)
+#define PixelFormat32bppPARGB (11 | (32 << 8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatGDI)
+#define PixelFormat48bppRGB (12 | (48 << 8) | PixelFormatExtended)
+#define PixelFormat64bppARGB (13 | (64 << 8) | PixelFormatAlpha | PixelFormatCanonical | PixelFormatExtended)
+#define PixelFormat64bppPARGB (14 | (64 << 8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatExtended)
+#define PixelFormatMax 15
+
+#ifdef __cplusplus
+
+struct ColorPalette
+{
+public:
+ UINT Flags;
+ UINT Count;
+ ARGB Entries[1];
+};
+
+#else /* end of c++ typedefs */
+
+typedef struct ColorPalette
+{
+ UINT Flags;
+ UINT Count;
+ ARGB Entries[1];
+} ColorPalette;
+
+#endif /* end of c typedefs */
+
+#endif
diff --git a/external/gdiplus/include/gdiplustypes.h b/external/gdiplus/include/gdiplustypes.h
new file mode 100644
index 000000000000..2e46bb4aecde
--- /dev/null
+++ b/external/gdiplus/include/gdiplustypes.h
@@ -0,0 +1,276 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSTYPES_H
+#define _GDIPLUSTYPES_H
+
+typedef float REAL;
+
+enum Status{
+ Ok = 0,
+ GenericError = 1,
+ InvalidParameter = 2,
+ OutOfMemory = 3,
+ ObjectBusy = 4,
+ InsufficientBuffer = 5,
+ NotImplemented = 6,
+ Win32Error = 7,
+ WrongState = 8,
+ Aborted = 9,
+ FileNotFound = 10,
+ ValueOverflow = 11,
+ AccessDenied = 12,
+ UnknownImageFormat = 13,
+ FontFamilyNotFound = 14,
+ FontStyleNotFound = 15,
+ NotTrueTypeFont = 16,
+ UnsupportedGdiplusVersion = 17,
+ GdiplusNotInitialized = 18,
+ PropertyNotFound = 19,
+ PropertyNotSupported = 20,
+ ProfileNotFound = 21
+};
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef BOOL (CALLBACK * ImageAbort)(VOID *);
+typedef ImageAbort DrawImageAbort;
+typedef ImageAbort GetThumbnailImageAbort;
+
+typedef BOOL (CALLBACK * EnumerateMetafileProc)(EmfPlusRecordType,UINT,UINT,const BYTE*,VOID*);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#ifdef __cplusplus
+
+class Point
+{
+public:
+ Point()
+ {
+ X = Y = 0;
+ }
+
+ Point(IN const Point &pt)
+ {
+ X = pt.X;
+ Y = pt.Y;
+ }
+
+ /* FIXME: missing constructor that takes a Size */
+
+ Point(IN INT x, IN INT y)
+ {
+ X = x;
+ Y = y;
+ }
+
+ Point operator+(IN const Point& pt) const
+ {
+ return Point(X + pt.X, Y + pt.Y);
+ }
+
+ Point operator-(IN const Point& pt) const
+ {
+ return Point(X - pt.X, Y - pt.Y);
+ }
+
+ BOOL Equals(IN const Point& pt)
+ {
+ return (X == pt.X) && (Y == pt.Y);
+ }
+
+public:
+ INT X;
+ INT Y;
+};
+
+class PointF
+{
+public:
+ PointF()
+ {
+ X = Y = 0.0f;
+ }
+
+ PointF(IN const PointF &pt)
+ {
+ X = pt.X;
+ Y = pt.Y;
+ }
+
+ /* FIXME: missing constructor that takes a SizeF */
+
+ PointF(IN REAL x, IN REAL y)
+ {
+ X = x;
+ Y = y;
+ }
+
+ PointF operator+(IN const PointF& pt) const
+ {
+ return PointF(X + pt.X, Y + pt.Y);
+ }
+
+ PointF operator-(IN const PointF& pt) const
+ {
+ return PointF(X - pt.X, Y - pt.Y);
+ }
+
+ BOOL Equals(IN const PointF& pt)
+ {
+ return (X == pt.X) && (Y == pt.Y);
+ }
+
+public:
+ REAL X;
+ REAL Y;
+};
+
+class PathData
+{
+public:
+ PathData()
+ {
+ Count = 0;
+ Points = NULL;
+ Types = NULL;
+ }
+
+ ~PathData()
+ {
+ if (Points != NULL)
+ {
+ delete Points;
+ }
+
+ if (Types != NULL)
+ {
+ delete Types;
+ }
+ }
+
+private:
+ PathData(const PathData &);
+ PathData& operator=(const PathData &);
+
+public:
+ INT Count;
+ PointF* Points;
+ BYTE* Types;
+};
+
+/* FIXME: missing the methods. */
+class RectF
+{
+public:
+ REAL X;
+ REAL Y;
+ REAL Width;
+ REAL Height;
+};
+
+/* FIXME: missing the methods. */
+class Rect
+{
+public:
+ INT X;
+ INT Y;
+ INT Width;
+ INT Height;
+};
+
+class CharacterRange
+{
+public:
+ CharacterRange()
+ {
+ First = Length = 0;
+ }
+
+ CharacterRange(INT first, INT length)
+ {
+ First = first;
+ Length = length;
+ }
+
+ CharacterRange& operator=(const CharacterRange& rhs)
+ {
+ First = rhs.First;
+ Length = rhs.Length;
+ return *this;
+ }
+public:
+ INT First;
+ INT Length;
+};
+
+#else /* end of c++ typedefs */
+
+typedef struct Point
+{
+ INT X;
+ INT Y;
+} Point;
+
+typedef struct PointF
+{
+ REAL X;
+ REAL Y;
+} PointF;
+
+typedef struct PathData
+{
+ INT Count;
+ PointF* Points;
+ BYTE* Types;
+} PathData;
+
+typedef struct RectF
+{
+ REAL X;
+ REAL Y;
+ REAL Width;
+ REAL Height;
+} RectF;
+
+typedef struct Rect
+{
+ INT X;
+ INT Y;
+ INT Width;
+ INT Height;
+} Rect;
+
+typedef struct CharacterRange
+{
+ INT First;
+ INT Length;
+} CharacterRange;
+
+typedef enum Status Status;
+
+#endif /* end of c typedefs */
+
+#endif
diff --git a/external/gdiplus/lib/gdiplus.def b/external/gdiplus/lib/gdiplus.def
new file mode 100644
index 000000000000..81df90762c76
--- /dev/null
+++ b/external/gdiplus/lib/gdiplus.def
@@ -0,0 +1,510 @@
+; File generated automatically from ./gdiplus.spec; do not edit!
+
+LIBRARY gdiplus.dll
+
+EXPORTS
+ GdipAddPathArc@28 @1
+ GdipAddPathArcI@28 @2
+ GdipAddPathBezier@36 @3
+ GdipAddPathBezierI@36 @4
+ GdipAddPathBeziers@12 @5
+ GdipAddPathBeziersI@12 @6
+ GdipAddPathClosedCurve2@16 @7
+ GdipAddPathClosedCurve2I@16 @8
+ GdipAddPathClosedCurve@12 @9
+ GdipAddPathClosedCurveI@12 @10
+ GdipAddPathCurve2@16 @11
+ GdipAddPathCurve2I@16 @12
+ GdipAddPathCurve3@24 @13
+ GdipAddPathCurve3I@24 @14
+ GdipAddPathCurve@12 @15
+ GdipAddPathCurveI@12 @16
+ GdipAddPathEllipse@20 @17
+ GdipAddPathEllipseI@20 @18
+ GdipAddPathLine2@12 @19
+ GdipAddPathLine2I@12 @20
+ GdipAddPathLine@20 @21
+ GdipAddPathLineI@20 @22
+ GdipAddPathPath@12 @23
+ GdipAddPathPie@28 @24
+ GdipAddPathPieI@28 @25
+ GdipAddPathPolygon@12 @26
+ GdipAddPathPolygonI@12 @27
+ GdipAddPathRectangle@20 @28
+ GdipAddPathRectangleI@20 @29
+ GdipAddPathRectangles@12 @30
+ GdipAddPathRectanglesI@12 @31
+ GdipAlloc@4 @34
+ GdipBeginContainer2@8 @35
+ GdipBitmapGetPixel@16 @43
+ GdipBitmapLockBits@20 @44
+ GdipBitmapUnlockBits@8 @47
+ GdipClearPathMarkers@4 @48
+ GdipCloneBitmapAreaI@28 @50
+ GdipCloneBrush@8 @51
+ GdipCloneCustomLineCap@8 @52
+ GdipCloneFont@8 @53
+ GdipCloneFontFamily@8 @54
+ GdipCloneImage@8 @55
+ GdipCloneImageAttributes@8 @56
+ GdipCloneMatrix@8 @57
+ GdipClonePath@8 @58
+ GdipClonePen@8 @59
+ GdipCloneRegion@8 @60
+ GdipCloneStringFormat@8 @61
+ GdipClosePathFigure@4 @62
+ GdipClosePathFigures@4 @63
+ GdipCombineRegionPath@12 @64
+ GdipCombineRegionRect@12 @65
+ GdipCombineRegionRectI@12 @66
+ GdipCombineRegionRegion@12 @67
+ GdipConvertToEmfPlus@24 @69
+ GdipCreateAdjustableArrowCap@16 @72
+ GdipCreateBitmapFromFile@8 @74
+ GdipCreateBitmapFromFileICM@8 @75
+ GdipCreateBitmapFromGdiDib@12 @76
+ GdipCreateBitmapFromGraphics@16 @77
+ GdipCreateBitmapFromHBITMAP@12 @78
+ GdipCreateBitmapFromHICON@8 @79
+ GdipCreateBitmapFromResource@12 @80
+ GdipCreateBitmapFromScan0@24 @81
+ GdipCreateBitmapFromStream@8 @82
+ GdipCreateBitmapFromStreamICM@8 @83
+ GdipCreateCachedBitmap@12 @84
+ GdipCreateCustomLineCap@20 @85
+ GdipCreateFont@20 @87
+ GdipCreateFontFamilyFromName@12 @88
+ GdipCreateFontFromDC@8 @89
+ GdipCreateFontFromLogfontA@12 @90
+ GdipCreateFontFromLogfontW@12 @91
+ GdipCreateFromHDC2@12 @92
+ GdipCreateFromHDC@8 @93
+ GdipCreateFromHWND@8 @94
+ GdipCreateFromHWNDICM@8 @95
+ GdipCreateHBITMAPFromBitmap@12 @96
+ GdipCreateHalftonePalette@0 @98
+ GdipCreateHatchBrush@16 @99
+ GdipCreateImageAttributes@4 @100
+ GdipCreateLineBrush@24 @101
+ GdipCreateLineBrushFromRect@24 @102
+ GdipCreateLineBrushFromRectI@24 @103
+ GdipCreateLineBrushFromRectWithAngle@28 @104
+ GdipCreateLineBrushFromRectWithAngleI@28 @105
+ GdipCreateLineBrushI@24 @106
+ GdipCreateMatrix2@28 @107
+ GdipCreateMatrix3@12 @108
+ GdipCreateMatrix3I@12 @109
+ GdipCreateMatrix@4 @110
+ GdipCreateMetafileFromEmf@12 @111
+ GdipCreateMetafileFromWmf@16 @114
+ GdipCreateMetafileFromWmfFile@12 @115
+ GdipCreatePath2@20 @116
+ GdipCreatePath2I@20 @117
+ GdipCreatePath@8 @118
+ GdipCreatePathGradient@16 @119
+ GdipCreatePathGradientFromPath@8 @120
+ GdipCreatePathGradientI@16 @121
+ GdipCreatePathIter@8 @122
+ GdipCreatePen1@16 @123
+ GdipCreatePen2@16 @124
+ GdipCreateRegion@4 @125
+ GdipCreateRegionHrgn@8 @126
+ GdipCreateRegionPath@8 @127
+ GdipCreateRegionRect@8 @128
+ GdipCreateRegionRectI@8 @129
+ GdipCreateRegionRgnData@12 @130
+ GdipCreateSolidFill@8 @131
+ GdipCreateStreamOnFile@12 @132
+ GdipCreateStringFormat@12 @133
+ GdipCreateTexture2@28 @134
+ GdipCreateTexture2I@28 @135
+ GdipCreateTexture@12 @136
+ GdipCreateTextureIA@28 @137
+ GdipCreateTextureIAI@28 @138
+ GdipDeleteBrush@4 @139
+ GdipDeleteCachedBitmap@4 @140
+ GdipDeleteCustomLineCap@4 @141
+ GdipDeleteFont@4 @143
+ GdipDeleteFontFamily@4 @144
+ GdipDeleteGraphics@4 @145
+ GdipDeleteMatrix@4 @146
+ GdipDeletePath@4 @147
+ GdipDeletePathIter@4 @148
+ GdipDeletePen@4 @149
+ GdipDeletePrivateFontCollection@4 @150
+ GdipDeleteRegion@4 @151
+ GdipDeleteStringFormat@4 @152
+ GdipDisposeImage@4 @153
+ GdipDisposeImageAttributes@4 @154
+ GdipDrawArc@32 @155
+ GdipDrawArcI@32 @156
+ GdipDrawBezier@40 @157
+ GdipDrawBezierI@40 @158
+ GdipDrawBeziers@16 @159
+ GdipDrawBeziersI@16 @160
+ GdipDrawCachedBitmap@16 @161
+ GdipDrawClosedCurve2@20 @162
+ GdipDrawClosedCurve2I@20 @163
+ GdipDrawClosedCurve@16 @164
+ GdipDrawClosedCurveI@16 @165
+ GdipDrawCurve2@20 @166
+ GdipDrawCurve2I@20 @167
+ GdipDrawCurve@16 @170
+ GdipDrawCurveI@16 @171
+ GdipDrawEllipse@24 @173
+ GdipDrawEllipseI@24 @174
+ GdipDrawImage@16 @175
+ GdipDrawImageI@16 @177
+ GdipDrawImagePointsRect@48 @182
+ GdipDrawImagePointsRectI@48 @183
+ GdipDrawImageRect@24 @184
+ GdipDrawImageRectI@24 @185
+ GdipDrawImageRectRect@56 @186
+ GdipDrawImageRectRectI@56 @187
+ GdipDrawLine@24 @188
+ GdipDrawLineI@24 @189
+ GdipDrawLines@16 @190
+ GdipDrawLinesI@16 @191
+ GdipDrawPath@12 @192
+ GdipDrawPie@32 @193
+ GdipDrawPieI@32 @194
+ GdipDrawPolygon@16 @195
+ GdipDrawPolygonI@16 @196
+ GdipDrawRectangle@24 @197
+ GdipDrawRectangleI@24 @198
+ GdipDrawRectangles@16 @199
+ GdipDrawRectanglesI@16 @200
+ GdipDrawString@28 @201
+ GdipEndContainer@8 @203
+ GdipFillClosedCurve2@24 @216
+ GdipFillClosedCurve2I@24 @217
+ GdipFillEllipse@24 @220
+ GdipFillEllipseI@24 @221
+ GdipFillPath@12 @222
+ GdipFillPie@32 @223
+ GdipFillPieI@32 @224
+ GdipFillPolygon2@16 @225
+ GdipFillPolygon2I@16 @226
+ GdipFillPolygon@20 @227
+ GdipFillPolygonI@20 @228
+ GdipFillRectangle@24 @229
+ GdipFillRectangleI@24 @230
+ GdipFillRectangles@16 @231
+ GdipFillRectanglesI@16 @232
+ GdipFillRegion@12 @233
+ GdipFindFirstImageItem@8 @234
+ GdipFlattenPath@12 @236
+ GdipFlush@8 @237
+ GdipFree@4 @238
+ GdipGetAdjustableArrowCapFillState@8 @239
+ GdipGetAdjustableArrowCapHeight@8 @240
+ GdipGetAdjustableArrowCapMiddleInset@8 @241
+ GdipGetAdjustableArrowCapWidth@8 @242
+ GdipGetAllPropertyItems@16 @243
+ GdipGetBrushType@8 @244
+ GdipGetCellAscent@12 @245
+ GdipGetCellDescent@12 @246
+ GdipGetClip@8 @247
+ GdipGetClipBounds@8 @248
+ GdipGetClipBoundsI@8 @249
+ GdipGetCompositingMode@8 @250
+ GdipGetCompositingQuality@8 @251
+ GdipGetCustomLineCapBaseCap@8 @252
+ GdipGetCustomLineCapBaseInset@8 @253
+ GdipGetCustomLineCapStrokeJoin@8 @255
+ GdipGetCustomLineCapWidthScale@8 @257
+ GdipGetDC@8 @258
+ GdipGetDpiX@8 @259
+ GdipGetDpiY@8 @260
+ GdipGetEmHeight@12 @263
+ GdipGetFamily@8 @266
+ GdipGetFamilyName@12 @267
+ GdipGetFontCollectionFamilyCount@8 @268
+ GdipGetFontCollectionFamilyList@16 @269
+ GdipGetFontHeight@12 @270
+ GdipGetFontHeightGivenDPI@12 @271
+ GdipGetFontSize@8 @272
+ GdipGetFontStyle@8 @273
+ GdipGetFontUnit@8 @274
+ GdipGetGenericFontFamilyMonospace@4 @275
+ GdipGetGenericFontFamilySansSerif@4 @276
+ GdipGetGenericFontFamilySerif@4 @277
+ GdipGetHatchBackgroundColor@8 @278
+ GdipGetHatchForegroundColor@8 @279
+ GdipGetHatchStyle@8 @280
+ GdipGetImageBounds@12 @283
+ GdipGetImageDecoders@12 @284
+ GdipGetImageDecodersSize@8 @285
+ GdipGetImageDimension@12 @286
+ GdipGetImageEncoders@12 @287
+ GdipGetImageEncodersSize@8 @288
+ GdipGetImageFlags@8 @289
+ GdipGetImageGraphicsContext@8 @290
+ GdipGetImageHeight@8 @291
+ GdipGetImageHorizontalResolution@8 @292
+ GdipGetImagePaletteSize@8 @295
+ GdipGetImagePixelFormat@8 @296
+ GdipGetImageRawFormat@8 @297
+ GdipGetImageType@8 @299
+ GdipGetImageVerticalResolution@8 @300
+ GdipGetImageWidth@8 @301
+ GdipGetInterpolationMode@8 @302
+ GdipGetLineColors@8 @305
+ GdipGetLineGammaCorrection@8 @306
+ GdipGetLineRect@8 @309
+ GdipGetLineRectI@8 @310
+ GdipGetLineSpacing@12 @311
+ GdipGetLineWrapMode@8 @313
+ GdipGetLogFontA@12 @314
+ GdipGetLogFontW@12 @315
+ GdipGetMatrixElements@8 @316
+ GdipGetMetafileHeaderFromMetafile@8 @320
+ GdipGetNearestColor@8 @323
+ GdipGetPageScale@8 @324
+ GdipGetPageUnit@8 @325
+ GdipGetPathData@8 @326
+ GdipGetPathFillMode@8 @327
+ GdipGetPathGradientBlend@16 @328
+ GdipGetPathGradientBlendCount@8 @329
+ GdipGetPathGradientCenterPoint@8 @331
+ GdipGetPathGradientCenterPointI@8 @332
+ GdipGetPathGradientFocusScales@12 @333
+ GdipGetPathGradientGammaCorrection@8 @334
+ GdipGetPathGradientPointCount@8 @336
+ GdipGetPathGradientRect@8 @339
+ GdipGetPathGradientRectI@8 @340
+ GdipGetPathGradientSurroundColorsWithCount@12 @342
+ GdipGetPathGradientWrapMode@8 @344
+ GdipGetPathLastPoint@8 @345
+ GdipGetPathPoints@12 @346
+ GdipGetPathPointsI@12 @347
+ GdipGetPathTypes@12 @348
+ GdipGetPathWorldBounds@16 @349
+ GdipGetPathWorldBoundsI@16 @350
+ GdipGetPenBrushFill@8 @351
+ GdipGetPenColor@8 @352
+ GdipGetPenCustomEndCap@8 @355
+ GdipGetPenCustomStartCap@8 @356
+ GdipGetPenDashArray@12 @357
+ GdipGetPenDashCap197819@8 @358
+ GdipGetPenDashCount@8 @359
+ GdipGetPenDashOffset@8 @360
+ GdipGetPenDashStyle@8 @361
+ GdipGetPenEndCap@8 @362
+ GdipGetPenFillType@8 @363
+ GdipGetPenLineJoin@8 @364
+ GdipGetPenMiterLimit@8 @365
+ GdipGetPenMode@8 @366
+ GdipGetPenStartCap@8 @367
+ GdipGetPenUnit@8 @369
+ GdipGetPenWidth@8 @370
+ GdipGetPixelOffsetMode@8 @371
+ GdipGetPointCount@8 @372
+ GdipGetPropertyCount@8 @373
+ GdipGetPropertyIdList@12 @374
+ GdipGetPropertyItem@16 @375
+ GdipGetPropertyItemSize@12 @376
+ GdipGetPropertySize@12 @377
+ GdipGetRegionBounds@12 @378
+ GdipGetRegionBoundsI@12 @379
+ GdipGetRegionData@16 @380
+ GdipGetRegionDataSize@8 @381
+ GdipGetRegionHRgn@12 @382
+ GdipGetSmoothingMode@8 @387
+ GdipGetSolidFillColor@8 @388
+ GdipGetStringFormatAlign@8 @389
+ GdipGetStringFormatDigitSubstitution@12 @390
+ GdipGetStringFormatFlags@8 @391
+ GdipGetStringFormatHotkeyPrefix@8 @392
+ GdipGetStringFormatLineAlign@8 @393
+ GdipGetStringFormatMeasurableCharacterRangeCount@8 @394
+ GdipGetStringFormatTabStopCount@8 @395
+ GdipGetStringFormatTabStops@16 @396
+ GdipGetStringFormatTrimming@8 @397
+ GdipGetTextContrast@8 @398
+ GdipGetTextRenderingHint@8 @399
+ GdipGetTextureTransform@8 @401
+ GdipGetTextureWrapMode@8 @402
+ GdipGetWorldTransform@8 @405
+ GdipGraphicsClear@8 @406
+ GdipImageForceValidation@4 @408
+ GdipImageGetFrameCount@12 @409
+ GdipImageGetFrameDimensionsCount@8 @410
+ GdipImageGetFrameDimensionsList@12 @411
+ GdipImageSelectActiveFrame@12 @413
+ GdipInvertMatrix@4 @416
+ GdipIsClipEmpty@8 @417
+ GdipIsEmptyRegion@12 @418
+ GdipIsEqualRegion@16 @419
+ GdipIsInfiniteRegion@12 @420
+ GdipIsMatrixEqual@12 @421
+ GdipIsMatrixIdentity@8 @422
+ GdipIsMatrixInvertible@8 @423
+ GdipIsOutlineVisiblePathPoint@24 @424
+ GdipIsOutlineVisiblePathPointI@24 @425
+ GdipIsStyleAvailable@12 @426
+ GdipIsVisiblePathPoint@20 @428
+ GdipIsVisiblePathPointI@20 @429
+ GdipIsVisiblePoint@16 @430
+ GdipIsVisiblePointI@16 @431
+ GdipLoadImageFromFile@8 @438
+ GdipLoadImageFromFileICM@8 @439
+ GdipLoadImageFromStream@8 @440
+ GdipLoadImageFromStreamICM@8 @441
+ GdipMeasureCharacterRanges@32 @442
+ GdipMeasureString@36 @444
+ GdipMultiplyMatrix@12 @446
+ GdipMultiplyTextureTransform@12 @449
+ GdipMultiplyWorldTransform@12 @450
+ GdipNewInstalledFontCollection@4 @451
+ GdipNewPrivateFontCollection@4 @452
+ GdipPathIterCopyData@24 @453
+ GdipPathIterEnumerate@20 @454
+ GdipPathIterGetCount@8 @455
+ GdipPathIterGetSubpathCount@8 @456
+ GdipPathIterHasCurve@8 @457
+ GdipPathIterIsValid@8 @458
+ GdipPathIterNextMarker@16 @459
+ GdipPathIterNextMarkerPath@12 @460
+ GdipPathIterNextPathType@20 @461
+ GdipPathIterNextSubpath@20 @462
+ GdipPathIterNextSubpathPath@16 @463
+ GdipPathIterRewind@4 @464
+ GdipPrivateAddFontFile@8 @467
+ GdipPrivateAddMemoryFont@12 @468
+ GdipRecordMetafileFileName@28 @470
+ GdipRecordMetafileFileNameI@28 @471
+ GdipReleaseDC@8 @475
+ GdipRemovePropertyItem@8 @476
+ GdipResetClip@4 @477
+ GdipResetPath@4 @481
+ GdipResetPenTransform@4 @483
+ GdipResetTextureTransform@4 @484
+ GdipResetWorldTransform@4 @485
+ GdipRestoreGraphics@8 @486
+ GdipReversePath@4 @487
+ GdipRotateLineTransform@12 @488
+ GdipRotateMatrix@12 @489
+ GdipRotateTextureTransform@12 @492
+ GdipRotateWorldTransform@12 @493
+ GdipSaveGraphics@8 @496
+ GdipSaveImageToFile@16 @497
+ GdipSaveImageToStream@16 @498
+ GdipScaleMatrix@16 @500
+ GdipScalePenTransform@16 @502
+ GdipScaleTextureTransform@16 @503
+ GdipScaleWorldTransform@16 @504
+ GdipSetAdjustableArrowCapFillState@8 @505
+ GdipSetAdjustableArrowCapHeight@8 @506
+ GdipSetAdjustableArrowCapMiddleInset@8 @507
+ GdipSetAdjustableArrowCapWidth@8 @508
+ GdipSetClipGraphics@12 @509
+ GdipSetClipHrgn@12 @510
+ GdipSetClipPath@12 @511
+ GdipSetClipRect@24 @512
+ GdipSetClipRectI@24 @513
+ GdipSetClipRegion@12 @514
+ GdipSetCompositingMode@8 @515
+ GdipSetCompositingQuality@8 @516
+ GdipSetCustomLineCapBaseCap@8 @517
+ GdipSetCustomLineCapBaseInset@8 @518
+ GdipSetCustomLineCapStrokeCaps@12 @519
+ GdipSetCustomLineCapStrokeJoin@8 @520
+ GdipSetCustomLineCapWidthScale@8 @521
+ GdipSetEffectParameters@12 @522
+ GdipSetEmpty@4 @523
+ GdipSetImageAttributesCachedBackground@8 @524
+ GdipSetImageAttributesColorKeys@20 @525
+ GdipSetImageAttributesColorMatrix@24 @526
+ GdipSetImageAttributesGamma@16 @527
+ GdipSetImageAttributesNoOp@12 @528
+ GdipSetImageAttributesOutputChannel@16 @529
+ GdipSetImageAttributesOutputChannelColorProfile@16 @530
+ GdipSetImageAttributesRemapTable@20 @531
+ GdipSetImageAttributesThreshold@16 @532
+ GdipSetImageAttributesToIdentity@8 @533
+ GdipSetImageAttributesWrapMode@16 @534
+ GdipSetImagePalette@8 @535
+ GdipSetInfinite@4 @536
+ GdipSetInterpolationMode@8 @537
+ GdipSetLineBlend@16 @538
+ GdipSetLineColors@12 @539
+ GdipSetLineGammaCorrection@8 @540
+ GdipSetLineLinearBlend@12 @541
+ GdipSetLinePresetBlend@16 @542
+ GdipSetLineSigmaBlend@12 @543
+ GdipSetLineTransform@8 @544
+ GdipSetLineWrapMode@8 @545
+ GdipSetMatrixElements@28 @546
+ GdipSetMetafileDownLevelRasterizationLimit@8 @547
+ GdipSetPageScale@8 @548
+ GdipSetPageUnit@8 @549
+ GdipSetPathFillMode@8 @550
+ GdipSetPathGradientBlend@16 @551
+ GdipSetPathGradientCenterColor@8 @552
+ GdipSetPathGradientCenterPoint@8 @553
+ GdipSetPathGradientCenterPointI@8 @554
+ GdipSetPathGradientFocusScales@12 @555
+ GdipSetPathGradientGammaCorrection@8 @556
+ GdipSetPathGradientSigmaBlend@12 @560
+ GdipSetPathGradientSurroundColorsWithCount@12 @561
+ GdipSetPathGradientWrapMode@8 @563
+ GdipSetPathMarker@4 @564
+ GdipSetPenBrushFill@8 @565
+ GdipSetPenColor@8 @566
+ GdipSetPenCompoundArray@12 @567
+ GdipSetPenCustomEndCap@8 @568
+ GdipSetPenCustomStartCap@8 @569
+ GdipSetPenDashArray@12 @570
+ GdipSetPenDashCap197819@8 @571
+ GdipSetPenDashOffset@8 @572
+ GdipSetPenDashStyle@8 @573
+ GdipSetPenEndCap@8 @574
+ GdipSetPenLineCap197819@16 @575
+ GdipSetPenLineJoin@8 @576
+ GdipSetPenMiterLimit@8 @577
+ GdipSetPenMode@8 @578
+ GdipSetPenStartCap@8 @579
+ GdipSetPenWidth@8 @582
+ GdipSetPixelOffsetMode@8 @583
+ GdipSetPropertyItem@8 @584
+ GdipSetSmoothingMode@8 @586
+ GdipSetSolidFillColor@8 @587
+ GdipSetStringFormatAlign@8 @588
+ GdipSetStringFormatDigitSubstitution@12 @589
+ GdipSetStringFormatFlags@8 @590
+ GdipSetStringFormatHotkeyPrefix@8 @591
+ GdipSetStringFormatLineAlign@8 @592
+ GdipSetStringFormatMeasurableCharacterRanges@12 @593
+ GdipSetStringFormatTabStops@16 @594
+ GdipSetStringFormatTrimming@8 @595
+ GdipSetTextContrast@8 @596
+ GdipSetTextRenderingHint@8 @597
+ GdipSetTextureTransform@8 @598
+ GdipSetTextureWrapMode@8 @599
+ GdipSetWorldTransform@8 @600
+ GdipShearMatrix@16 @601
+ GdipStartPathFigure@4 @602
+ GdipStringFormatGetGenericDefault@4 @603
+ GdipStringFormatGetGenericTypographic@4 @604
+ GdipTestControl@8 @605
+ GdipTransformMatrixPoints@12 @606
+ GdipTransformMatrixPointsI@12 @607
+ GdipTransformPath@8 @608
+ GdipTransformPoints@20 @609
+ GdipTransformPointsI@20 @610
+ GdipTransformRegion@8 @611
+ GdipTranslateClip@12 @612
+ GdipTranslateClipI@12 @613
+ GdipTranslateLineTransform@16 @614
+ GdipTranslateMatrix@16 @615
+ GdipTranslateRegion@12 @618
+ GdipTranslateRegionI@12 @619
+ GdipTranslateTextureTransform@16 @620
+ GdipTranslateWorldTransform@16 @621
+ GdipVectorTransformMatrixPoints@12 @622
+ GdipVectorTransformMatrixPointsI@12 @623
+ GdiplusNotificationHook@4 @627
+ GdiplusNotificationUnhook@4 @628
+ GdiplusShutdown@4 @629
+ GdiplusStartup@12 @630
diff --git a/external/gdiplus/makefile.mk b/external/gdiplus/makefile.mk
new file mode 100644
index 000000000000..414457c973cb
--- /dev/null
+++ b/external/gdiplus/makefile.mk
@@ -0,0 +1,41 @@
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is Novell, Inc.
+#
+# Portions created by the Initial Developer are Copyright (C) 2011 Novell,
+# Inc. All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+PRJ=..
+PRJNAME=external
+TARGET=gdiplus
+
+.INCLUDE : settings.mk
+
+.IF "$(OS)$(COM)" == "WNTGCC"
+
+ALL:
+ -$(MKDIRHIER) $(OUT)/inc/gdiplus
+ cp include/* $(OUT)/inc/gdiplus
+ $(DLLTOOL) --input-def lib/gdiplus.def --dllname=gdiplus.dll --output-lib=$(OUT)/lib/libgdiplus.dll.a
+
+.ENDIF
+
+.INCLUDE : target.mk
diff --git a/external/prj/build.lst b/external/prj/build.lst
index 6a66269dca0f..ebc4d3d294a5 100644
--- a/external/prj/build.lst
+++ b/external/prj/build.lst
@@ -4,3 +4,4 @@ el external\glibc nmake - all el_glibc NULL
el external\gcc3_specific nmake - all el_gcc3 NULL
el external\mingwheaders nmake - w el_mingwheaders NULL
el external\jawt nmake - w el_jawt NULL
+el external\gdiplus nmake - w el_gdiplus NULL
diff --git a/external/prj/d.lst b/external/prj/d.lst
index b779c125a678..81d97a0a94b8 100644
--- a/external/prj/d.lst
+++ b/external/prj/d.lst
@@ -1,5 +1,6 @@
mkdir: %_DEST%\inc\external
mkdir: %_DEST%\inc\external\glibc
+mkdir: %_DEST%\inc\external\gdiplus
mkdir: %_DEST%\inc\external\mingw
mkdir: %_DEST%\inc\external\mingw\include
mkdir: %_DEST%\inc\external\mingw\include\atl
@@ -14,6 +15,8 @@ mkdir: %_DEST%\inc\external\mingw\include\sys
..\%__SRC%\inc\*.h %_DEST%\inc\external\glibc\*.h
+..\%__SRC%\inc\gdiplus\*.h %_DEST%\inc\external\gdiplus\*.h
+
..\%__SRC%\misc\mingw\include\*.h %_DEST%\inc\external\mingw\include\*
..\%__SRC%\misc\mingw\include\atl\*.h %_DEST%\inc\external\mingw\include\atl\*
..\%__SRC%\misc\mingw\include\sys\*.h %_DEST%\inc\external\mingw\include\sys\*
@@ -51,6 +54,8 @@ mkdir: %_DEST%\inc\external\mingw\include\sys
..\%__SRC%\lib\libmsvcrt*.* %_DEST%\lib\lib*.*
+..\%__SRC%\lib\libgdiplus.dll.a %_DEST%\lib\libgdiplus.dll.a
+
..\%__SRC%\lib\lib*static*.dylib %_DEST%\lib\lib*static*.dylib
..\%__SRC%\lib\libjawt.dll.a %_DEST%\lib\libjawt.dll.a