diff --git a/desmume/src/windows/gdiplus/GdiPlus.h b/desmume/src/windows/gdiplus/GdiPlus.h deleted file mode 100644 index 51efc01d8..000000000 --- a/desmume/src/windows/gdiplus/GdiPlus.h +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* Gdiplus.h -* -* Abstract: -* -* GDI+ public header file -* -\**************************************************************************/ - -#ifndef _GDIPLUS_H -#define _GDIPLUS_H - -struct IDirectDrawSurface7; - -typedef signed short INT16; -typedef unsigned short UINT16; - -#include // set structure packing to 8 - -namespace Gdiplus -{ - namespace DllExports - { - #include "GdiplusMem.h" - }; - - #include "GdiplusBase.h" - - #include "GdiplusEnums.h" - #include "GdiplusTypes.h" - #include "GdiplusInit.h" - #include "GdiplusPixelFormats.h" - #include "GdiplusColor.h" - #include "GdiplusMetaHeader.h" - #include "GdiplusImaging.h" - #include "GdiplusColorMatrix.h" - - #include "GdiplusGpStubs.h" - #include "GdiplusHeaders.h" - - namespace DllExports - { - #include "GdiplusFlat.h" - }; - - - #include "GdiplusImageAttributes.h" - #include "GdiplusMatrix.h" - #include "GdiplusBrush.h" - #include "GdiplusPen.h" - #include "GdiplusStringFormat.h" - #include "GdiplusPath.h" - #include "GdiplusLineCaps.h" - #include "GdiplusMetafile.h" - #include "GdiplusGraphics.h" - #include "GdiplusCachedBitmap.h" - #include "GdiplusRegion.h" - #include "GdiplusFontCollection.h" - #include "GdiplusFontFamily.h" - #include "GdiplusFont.h" - #include "GdiplusBitmap.h" - #include "GdiplusImageCodec.h" - -}; // namespace Gdiplus - -#include // pop structure packing back to previous state - -#endif // !_GDIPLUS_HPP diff --git a/desmume/src/windows/gdiplus/GdiPlus.lib b/desmume/src/windows/gdiplus/GdiPlus.lib deleted file mode 100644 index a0af5aba7..000000000 Binary files a/desmume/src/windows/gdiplus/GdiPlus.lib and /dev/null differ diff --git a/desmume/src/windows/gdiplus/GdiPlusBase.h b/desmume/src/windows/gdiplus/GdiPlusBase.h deleted file mode 100644 index a8bdf01fa..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusBase.h +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusBase.h -* -* Abstract: -* -* GDI+ base memory allocation class -* -\**************************************************************************/ - -#ifndef _GDIPLUSBASE_H -#define _GDIPLUSBASE_H - -class GdiplusBase -{ -public: - void (operator delete)(void* in_pVoid) - { - DllExports::GdipFree(in_pVoid); - } - void* (operator new)(size_t in_size) - { - return DllExports::GdipAlloc(in_size); - } - void (operator delete[])(void* in_pVoid) - { - DllExports::GdipFree(in_pVoid); - } - void* (operator new[])(size_t in_size) - { - return DllExports::GdipAlloc(in_size); - } -}; - -#endif - diff --git a/desmume/src/windows/gdiplus/GdiPlusBitmap.h b/desmume/src/windows/gdiplus/GdiPlusBitmap.h deleted file mode 100644 index bb6490fc4..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusBitmap.h +++ /dev/null @@ -1,925 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusBitmap.h -* -* Abstract: -* -* GDI+ Bitmap class -* -\**************************************************************************/ - -#ifndef _GDIPLUSBITMAP_H -#define _GDIPLUSBITMAP_H - -inline -Image::Image( - IN const WCHAR* filename, - IN BOOL useEmbeddedColorManagement - ) -{ - nativeImage = NULL; - if(useEmbeddedColorManagement) - { - lastResult = DllExports::GdipLoadImageFromFileICM( - filename, - &nativeImage - ); - } - else - { - lastResult = DllExports::GdipLoadImageFromFile( - filename, - &nativeImage - ); - } -} - -inline -Image::Image( - IN IStream* stream, - IN BOOL useEmbeddedColorManagement - ) -{ - nativeImage = NULL; - if(useEmbeddedColorManagement) - { - lastResult = DllExports::GdipLoadImageFromStreamICM( - stream, - &nativeImage - ); - } - else - { - lastResult = DllExports::GdipLoadImageFromStream( - stream, - &nativeImage - ); - } -} - -inline Image* -Image::FromFile( - IN const WCHAR* filename, - IN BOOL useEmbeddedColorManagement - ) -{ - return new Image( - filename, - useEmbeddedColorManagement - ); -} - -inline Image* -Image::FromStream( - IN IStream* stream, - IN BOOL useEmbeddedColorManagement - ) -{ - return new Image( - stream, - useEmbeddedColorManagement - ); -} - -inline -Image::~Image() -{ - DllExports::GdipDisposeImage(nativeImage); -} - -inline Image* -Image::Clone() -{ - GpImage *cloneimage = NULL; - - SetStatus(DllExports::GdipCloneImage(nativeImage, &cloneimage)); - - return new Image(cloneimage, lastResult); -} - -inline UINT -Image::GetEncoderParameterListSize( - IN const CLSID* clsidEncoder - ) -{ - UINT size = 0; - - SetStatus(DllExports::GdipGetEncoderParameterListSize(nativeImage, - clsidEncoder, - &size)); - return size; -} - -inline Status -Image::GetEncoderParameterList( - IN const CLSID* clsidEncoder, - IN UINT size, - OUT EncoderParameters* buffer - ) -{ - return SetStatus(DllExports::GdipGetEncoderParameterList(nativeImage, - clsidEncoder, - size, - buffer)); -} - -inline Status -Image::Save( - IN const WCHAR* filename, - IN const CLSID* clsidEncoder, - IN const EncoderParameters *encoderParams - ) -{ - return SetStatus(DllExports::GdipSaveImageToFile(nativeImage, - filename, - clsidEncoder, - encoderParams)); -} - -inline Status -Image::Save( - IN IStream* stream, - IN const CLSID* clsidEncoder, - IN const EncoderParameters *encoderParams - ) -{ - return SetStatus(DllExports::GdipSaveImageToStream(nativeImage, - stream, - clsidEncoder, - encoderParams)); -} - -inline Status -Image::SaveAdd( - IN const EncoderParameters *encoderParams - ) -{ - return SetStatus(DllExports::GdipSaveAdd(nativeImage, - encoderParams)); -} - -inline Status -Image::SaveAdd( - IN Image* newImage, - IN const EncoderParameters *encoderParams - ) -{ - if ( newImage == NULL ) - { - return SetStatus(InvalidParameter); - } - - return SetStatus(DllExports::GdipSaveAddImage(nativeImage, - newImage->nativeImage, - encoderParams)); -} - -inline ImageType -Image::GetType() const -{ - ImageType type = ImageTypeUnknown; - - SetStatus(DllExports::GdipGetImageType(nativeImage, &type)); - - return type; -} - -inline Status -Image::GetPhysicalDimension( - OUT SizeF* size - ) -{ - if (size == NULL) - { - return SetStatus(InvalidParameter); - } - - REAL width, height; - Status status; - - status = SetStatus(DllExports::GdipGetImageDimension(nativeImage, - &width, &height)); - - size->Width = width; - size->Height = height; - - return status; -} - -inline Status -Image::GetBounds( - OUT RectF *srcRect, - OUT Unit *srcUnit - ) -{ - return SetStatus(DllExports::GdipGetImageBounds(nativeImage, - srcRect, srcUnit)); -} - -inline UINT -Image::GetWidth() -{ - UINT width = 0; - - SetStatus(DllExports::GdipGetImageWidth(nativeImage, &width)); - - return width; -} - -inline UINT -Image::GetHeight() -{ - UINT height = 0; - - SetStatus(DllExports::GdipGetImageHeight(nativeImage, &height)); - - return height; -} - -inline REAL -Image::GetHorizontalResolution() -{ - REAL resolution = 0.0f; - - SetStatus(DllExports::GdipGetImageHorizontalResolution(nativeImage, &resolution)); - - return resolution; -} - -inline REAL -Image::GetVerticalResolution() -{ - REAL resolution = 0.0f; - - SetStatus(DllExports::GdipGetImageVerticalResolution(nativeImage, &resolution)); - - return resolution; -} - -inline UINT -Image::GetFlags() -{ - UINT flags = 0; - - SetStatus(DllExports::GdipGetImageFlags(nativeImage, &flags)); - - return flags; -} - -inline Status -Image::GetRawFormat(OUT GUID *format) -{ - return SetStatus(DllExports::GdipGetImageRawFormat(nativeImage, format)); -} - -inline PixelFormat -Image::GetPixelFormat() -{ - PixelFormat format; - - SetStatus(DllExports::GdipGetImagePixelFormat(nativeImage, &format)); - - return format; -} - -inline INT -Image::GetPaletteSize() -{ - INT size = 0; - - SetStatus(DllExports::GdipGetImagePaletteSize(nativeImage, &size)); - - return size; -} - -inline Status -Image::GetPalette( - OUT ColorPalette *palette, - IN INT size -) -{ - return SetStatus(DllExports::GdipGetImagePalette(nativeImage, palette, size)); -} - -inline Status -Image::SetPalette( - IN const ColorPalette *palette - ) -{ - return SetStatus(DllExports::GdipSetImagePalette(nativeImage, palette)); -} - -inline Image* -Image::GetThumbnailImage( - IN UINT thumbWidth, - IN UINT thumbHeight, - IN GetThumbnailImageAbort callback, - IN VOID* callbackData - ) -{ - GpImage *thumbimage = NULL; - - SetStatus(DllExports::GdipGetImageThumbnail(nativeImage, - thumbWidth, thumbHeight, - &thumbimage, - callback, callbackData)); - - Image *newImage = new Image(thumbimage, lastResult); - - if (newImage == NULL) - { - DllExports::GdipDisposeImage(thumbimage); - } - - return newImage; -} - -inline UINT -Image::GetFrameDimensionsCount() -{ - UINT count = 0; - - SetStatus(DllExports::GdipImageGetFrameDimensionsCount(nativeImage, - &count)); - - return count; -} - -inline Status -Image::GetFrameDimensionsList( - OUT GUID* dimensionIDs, - IN UINT count - ) -{ - return SetStatus(DllExports::GdipImageGetFrameDimensionsList(nativeImage, - dimensionIDs, - count)); -} - -inline UINT -Image::GetFrameCount( - IN const GUID* dimensionID - ) -{ - UINT count = 0; - - SetStatus(DllExports::GdipImageGetFrameCount(nativeImage, - dimensionID, - &count)); - return count; -} - -inline Status -Image::SelectActiveFrame( - IN const GUID *dimensionID, - IN UINT frameIndex - ) -{ - return SetStatus(DllExports::GdipImageSelectActiveFrame(nativeImage, - dimensionID, - frameIndex)); -} - -inline Status -Image::RotateFlip( - IN RotateFlipType rotateFlipType - ) -{ - return SetStatus(DllExports::GdipImageRotateFlip(nativeImage, - rotateFlipType)); -} - -inline UINT -Image::GetPropertyCount() -{ - UINT numProperty = 0; - - SetStatus(DllExports::GdipGetPropertyCount(nativeImage, - &numProperty)); - - return numProperty; -} - -inline Status -Image::GetPropertyIdList( - IN UINT numOfProperty, - OUT PROPID* list - ) -{ - return SetStatus(DllExports::GdipGetPropertyIdList(nativeImage, - numOfProperty, list)); -} - -inline UINT -Image::GetPropertyItemSize( - IN PROPID propId - ) -{ - UINT size = 0; - - SetStatus(DllExports::GdipGetPropertyItemSize(nativeImage, - propId, - &size)); - - return size; -} - -inline Status -Image::GetPropertyItem( - IN PROPID propId, - IN UINT propSize, - OUT PropertyItem* buffer - ) -{ - return SetStatus(DllExports::GdipGetPropertyItem(nativeImage, - propId, propSize, buffer)); -} - -inline Status -Image::GetPropertySize( - OUT UINT* totalBufferSize, - OUT UINT* numProperties - ) -{ - return SetStatus(DllExports::GdipGetPropertySize(nativeImage, - totalBufferSize, - numProperties)); -} - -inline Status -Image::GetAllPropertyItems( - IN UINT totalBufferSize, - IN UINT numProperties, - OUT PropertyItem* allItems - ) -{ - if (allItems == NULL) - { - return SetStatus(InvalidParameter); - } - return SetStatus(DllExports::GdipGetAllPropertyItems(nativeImage, - totalBufferSize, - numProperties, - allItems)); -} - -inline Status -Image::RemovePropertyItem( - IN PROPID propId - ) -{ - return SetStatus(DllExports::GdipRemovePropertyItem(nativeImage, propId)); -} - -inline Status -Image::SetPropertyItem( - IN const PropertyItem* item - ) -{ - return SetStatus(DllExports::GdipSetPropertyItem(nativeImage, item)); -} - -inline Status -Image::GetLastStatus() const -{ - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; -} - -inline -Image::Image(GpImage *nativeImage, Status status) -{ - SetNativeImage(nativeImage); - lastResult = status; -} - -inline VOID -Image::SetNativeImage(GpImage *nativeImage) -{ - this->nativeImage = nativeImage; -} - -inline -Bitmap::Bitmap( - IN const WCHAR *filename, - IN BOOL useEmbeddedColorManagement - ) -{ - GpBitmap *bitmap = NULL; - - if(useEmbeddedColorManagement) - { - lastResult = DllExports::GdipCreateBitmapFromFileICM(filename, &bitmap); - } - else - { - lastResult = DllExports::GdipCreateBitmapFromFile(filename, &bitmap); - } - - SetNativeImage(bitmap); -} - -inline -Bitmap::Bitmap( - IN IStream *stream, - IN BOOL useEmbeddedColorManagement - ) -{ - GpBitmap *bitmap = NULL; - - if(useEmbeddedColorManagement) - { - lastResult = DllExports::GdipCreateBitmapFromStreamICM(stream, &bitmap); - } - else - { - lastResult = DllExports::GdipCreateBitmapFromStream(stream, &bitmap); - } - - SetNativeImage(bitmap); -} - -inline -Bitmap::Bitmap( - IN INT width, - IN INT height, - IN INT stride, - IN PixelFormat format, - IN BYTE *scan0 - ) -{ - GpBitmap *bitmap = NULL; - - lastResult = DllExports::GdipCreateBitmapFromScan0(width, - height, - stride, - format, - scan0, - &bitmap); - - SetNativeImage(bitmap); -} - -inline -Bitmap::Bitmap( - IN INT width, - IN INT height, - IN PixelFormat format - ) -{ - GpBitmap *bitmap = NULL; - - lastResult = DllExports::GdipCreateBitmapFromScan0(width, - height, - 0, - format, - NULL, - &bitmap); - - SetNativeImage(bitmap); -} - -inline -Bitmap::Bitmap( - IN INT width, - IN INT height, - IN Graphics* target) -{ - GpBitmap *bitmap = NULL; - - lastResult = DllExports::GdipCreateBitmapFromGraphics(width, - height, - target->nativeGraphics, - &bitmap); - - SetNativeImage(bitmap); -} - -inline -Bitmap::Bitmap( - IN IDirectDrawSurface7 * surface - ) -{ - GpBitmap *bitmap = NULL; - - lastResult = DllExports::GdipCreateBitmapFromDirectDrawSurface(surface, - &bitmap); - - SetNativeImage(bitmap); -} - -inline -Bitmap::Bitmap( - IN const BITMAPINFO* gdiBitmapInfo, - IN VOID* gdiBitmapData - ) -{ - GpBitmap *bitmap = NULL; - - lastResult = DllExports::GdipCreateBitmapFromGdiDib(gdiBitmapInfo, - gdiBitmapData, - &bitmap); - - SetNativeImage(bitmap); -} - -inline -Bitmap::Bitmap( - IN HBITMAP hbm, - IN HPALETTE hpal - ) -{ - GpBitmap *bitmap = NULL; - - lastResult = DllExports::GdipCreateBitmapFromHBITMAP(hbm, hpal, &bitmap); - - SetNativeImage(bitmap); -} - -inline -Bitmap::Bitmap( - IN HICON hicon - ) -{ - GpBitmap *bitmap = NULL; - - lastResult = DllExports::GdipCreateBitmapFromHICON(hicon, &bitmap); - - SetNativeImage(bitmap); -} - -inline -Bitmap::Bitmap( - IN HINSTANCE hInstance, - IN const WCHAR *bitmapName - ) -{ - GpBitmap *bitmap = NULL; - - lastResult = DllExports::GdipCreateBitmapFromResource(hInstance, - bitmapName, - &bitmap); - - SetNativeImage(bitmap); -} - - -inline Bitmap* -Bitmap::FromFile( - IN const WCHAR *filename, - IN BOOL useEmbeddedColorManagement - ) -{ - return new Bitmap( - filename, - useEmbeddedColorManagement - ); -} - -inline Bitmap* -Bitmap::FromStream( - IN IStream *stream, - IN BOOL useEmbeddedColorManagement - ) -{ - return new Bitmap( - stream, - useEmbeddedColorManagement - ); -} - -inline Bitmap* -Bitmap::FromDirectDrawSurface7( - IN IDirectDrawSurface7* surface - ) -{ - return new Bitmap(surface); -} - -inline Bitmap* -Bitmap::FromBITMAPINFO( - IN const BITMAPINFO* gdiBitmapInfo, - IN VOID* gdiBitmapData) -{ - return new Bitmap(gdiBitmapInfo, gdiBitmapData); -} - -inline Bitmap* -Bitmap::FromHBITMAP( - IN HBITMAP hbm, - IN HPALETTE hpal - ) -{ - return new Bitmap(hbm, hpal); -} - -inline Bitmap* -Bitmap::FromHICON( - IN HICON hicon - ) -{ - return new Bitmap(hicon); -} - -inline Bitmap* -Bitmap::FromResource( - IN HINSTANCE hInstance, - IN const WCHAR *bitmapName) -{ - return new Bitmap(hInstance, bitmapName); -} - -inline Status -Bitmap::GetHBITMAP( - IN const Color& colorBackground, - OUT HBITMAP* hbmReturn - ) -{ - return SetStatus(DllExports::GdipCreateHBITMAPFromBitmap( - static_cast(nativeImage), - hbmReturn, - colorBackground.GetValue())); -} - -inline Status -Bitmap::GetHICON( - OUT HICON* hiconReturn - ) -{ - return SetStatus(DllExports::GdipCreateHICONFromBitmap( - static_cast(nativeImage), - hiconReturn)); -} - -inline Bitmap* -Bitmap::Clone( - IN const Rect& rect, - IN PixelFormat format - ) -{ - return Clone(rect.X, rect.Y, rect.Width, rect.Height, format); -} - -inline Bitmap* -Bitmap::Clone( - IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN PixelFormat format - ) -{ - GpBitmap* gpdstBitmap = NULL; - Bitmap* bitmap; - - lastResult = DllExports::GdipCloneBitmapAreaI( - x, - y, - width, - height, - format, - (GpBitmap *)nativeImage, - &gpdstBitmap); - - if (lastResult == Ok) - { - bitmap = new Bitmap(gpdstBitmap); - - if (bitmap == NULL) - { - DllExports::GdipDisposeImage(gpdstBitmap); - } - - return bitmap; - } - else - return NULL; -} - -inline Bitmap* -Bitmap::Clone( - IN const RectF& rect, - IN PixelFormat format - ) -{ - return Clone(rect.X, rect.Y, rect.Width, rect.Height, format); -} - -inline Bitmap* -Bitmap::Clone( - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN PixelFormat format - ) -{ - GpBitmap* gpdstBitmap = NULL; - Bitmap* bitmap; - - SetStatus(DllExports::GdipCloneBitmapArea( - x, - y, - width, - height, - format, - (GpBitmap *)nativeImage, - &gpdstBitmap)); - - if (lastResult == Ok) - { - bitmap = new Bitmap(gpdstBitmap); - - if (bitmap == NULL) - { - DllExports::GdipDisposeImage(gpdstBitmap); - } - - return bitmap; - } - else - return NULL; -} - -inline Bitmap::Bitmap(GpBitmap *nativeBitmap) -{ - lastResult = Ok; - - SetNativeImage(nativeBitmap); -} - -inline Status -Bitmap::LockBits( - IN const Rect* rect, - IN UINT flags, - IN PixelFormat format, - OUT BitmapData* lockedBitmapData -) -{ - return SetStatus(DllExports::GdipBitmapLockBits( - static_cast(nativeImage), - rect, - flags, - format, - lockedBitmapData)); -} - -inline Status -Bitmap::UnlockBits( - IN BitmapData* lockedBitmapData - ) -{ - return SetStatus(DllExports::GdipBitmapUnlockBits( - static_cast(nativeImage), - lockedBitmapData)); -} - -inline Status -Bitmap::GetPixel( - IN INT x, - IN INT y, - OUT Color *color) -{ - ARGB argb; - - Status status = SetStatus(DllExports::GdipBitmapGetPixel( - static_cast(nativeImage), - x, y, - &argb)); - - if (status == Ok) - { - color->SetValue(argb); - } - - return status; -} - -inline Status -Bitmap::SetPixel( - IN INT x, - IN INT y, - IN const Color& color) -{ - return SetStatus(DllExports::GdipBitmapSetPixel( - static_cast(nativeImage), - x, y, - color.GetValue())); -} - -inline Status -Bitmap::SetResolution( - IN REAL xdpi, - IN REAL ydpi) -{ - return SetStatus(DllExports::GdipBitmapSetResolution( - static_cast(nativeImage), - xdpi, ydpi)); -} -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusBrush.h b/desmume/src/windows/gdiplus/GdiPlusBrush.h deleted file mode 100644 index 6b9c7ea67..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusBrush.h +++ /dev/null @@ -1,840 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusBrush.h -* -* Abstract: -* -* GDI+ Brush class -* -\**************************************************************************/ - -#ifndef _GDIPLUSBRUSH_H -#define _GDIPLUSBRUSH_H - -class GraphicsPath; - -//-------------------------------------------------------------------------- -// Abstract base class for various brush types -//-------------------------------------------------------------------------- - -class Brush : public GdiplusBase -{ -public: - friend class Pen; - friend class Graphics; - - virtual ~Brush() - { - DllExports::GdipDeleteBrush(nativeBrush); - } - - virtual Brush* Clone() const - { - GpBrush *brush = NULL; - - SetStatus(DllExports::GdipCloneBrush(nativeBrush, &brush)); - - Brush *newBrush = new Brush(brush, lastResult); - - if (newBrush == NULL) - { - DllExports::GdipDeleteBrush(brush); - } - - return newBrush; - } - - BrushType GetType() const - { - BrushType type = static_cast(-1); - - SetStatus(DllExports::GdipGetBrushType(nativeBrush, &type)); - - return type; - } - - Status GetLastStatus() const - { - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; - } - -protected: - - Brush() - { - SetStatus(NotImplemented); - } - -private: - Brush(const Brush& brush); - Brush& operator=(const Brush& brush); -protected: - - Brush(GpBrush* nativeBrush, Status status) - { - lastResult = status; - SetNativeBrush(nativeBrush); - } - - VOID SetNativeBrush(GpBrush* nativeBrush) - { - this->nativeBrush = nativeBrush; - } - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - - GpBrush* nativeBrush; - mutable Status lastResult; -}; - -//-------------------------------------------------------------------------- -// Solid Fill Brush Object -//-------------------------------------------------------------------------- - -class SolidBrush : public Brush -{ -public: - friend class Pen; - - SolidBrush(IN const Color& color) - { - GpSolidFill *brush = NULL; - - lastResult = DllExports::GdipCreateSolidFill(color.GetValue(), &brush); - - SetNativeBrush(brush); - } - - Status GetColor(OUT Color* color) const - { - ARGB argb; - - if (color == NULL) - { - return SetStatus(InvalidParameter); - } - - SetStatus(DllExports::GdipGetSolidFillColor((GpSolidFill*)nativeBrush, - &argb)); - - *color = Color(argb); - - return lastResult; - } - - Status SetColor(IN const Color& color) - { - return SetStatus(DllExports::GdipSetSolidFillColor((GpSolidFill*)nativeBrush, - color.GetValue())); - } - -private: - SolidBrush(const SolidBrush &); - SolidBrush& operator=(const SolidBrush &); - -protected: - - SolidBrush() - { - } -}; - -//-------------------------------------------------------------------------- -// Texture Brush Fill Object -//-------------------------------------------------------------------------- - -class TextureBrush : public Brush -{ -public: - friend class Pen; - - TextureBrush(IN Image* image, - IN WrapMode wrapMode = WrapModeTile) - { - GpTexture *texture = NULL; - - lastResult = DllExports::GdipCreateTexture( - image->nativeImage, - wrapMode, &texture); - - SetNativeBrush(texture); - } - - // When creating a texture brush from a metafile image, the dstRect - // is used to specify the size that the metafile image should be - // rendered at in the device units of the destination graphics. - // It is NOT used to crop the metafile image, so only the width - // and height values matter for metafiles. - - TextureBrush(IN Image* image, - IN WrapMode wrapMode, - IN const RectF &dstRect) - { - GpTexture *texture = NULL; - - lastResult = DllExports::GdipCreateTexture2( - image->nativeImage, - wrapMode, - dstRect.X, - dstRect.Y, - dstRect.Width, - dstRect.Height, - &texture); - - SetNativeBrush(texture); - } - - TextureBrush(IN Image *image, - IN const RectF &dstRect, - IN const ImageAttributes *imageAttributes = NULL) - { - GpTexture *texture = NULL; - - lastResult = DllExports::GdipCreateTextureIA( - image->nativeImage, - (imageAttributes)?imageAttributes->nativeImageAttr:NULL, - dstRect.X, - dstRect.Y, - dstRect.Width, - dstRect.Height, - &texture - ); - - SetNativeBrush(texture); - } - - TextureBrush(IN Image *image, - IN const Rect &dstRect, - IN const ImageAttributes *imageAttributes = NULL) - { - GpTexture *texture = NULL; - - lastResult = DllExports::GdipCreateTextureIAI( - image->nativeImage, - (imageAttributes)?imageAttributes->nativeImageAttr:NULL, - dstRect.X, - dstRect.Y, - dstRect.Width, - dstRect.Height, - &texture - ); - - SetNativeBrush(texture); - } - - TextureBrush( - IN Image* image, - IN WrapMode wrapMode, - - const IN Rect &dstRect - ) - { - GpTexture *texture = NULL; - - lastResult = DllExports::GdipCreateTexture2I( - image->nativeImage, - wrapMode, - dstRect.X, - dstRect.Y, - dstRect.Width, - dstRect.Height, - &texture); - - SetNativeBrush(texture); - } - - TextureBrush(IN Image* image, - IN WrapMode wrapMode, - IN REAL dstX, - IN REAL dstY, - IN REAL dstWidth, - IN REAL dstHeight) - { - GpTexture *texture = NULL; - - lastResult = DllExports::GdipCreateTexture2( - image->nativeImage, - wrapMode, - dstX, - dstY, - dstWidth, - dstHeight, - &texture); - - SetNativeBrush(texture); - } - - TextureBrush(IN Image* image, - IN WrapMode wrapMode, - IN INT dstX, - IN INT dstY, - IN INT dstWidth, - IN INT dstHeight) - { - GpTexture *texture = NULL; - - lastResult = DllExports::GdipCreateTexture2I( - image->nativeImage, - wrapMode, - dstX, - dstY, - dstWidth, - dstHeight, - &texture); - - SetNativeBrush(texture); - } - - Status SetTransform(IN const Matrix* matrix) - { - return SetStatus(DllExports::GdipSetTextureTransform((GpTexture*)nativeBrush, - matrix->nativeMatrix)); - } - - Status GetTransform(OUT Matrix* matrix) const - { - return SetStatus(DllExports::GdipGetTextureTransform((GpTexture*)nativeBrush, - matrix->nativeMatrix)); - } - - Status ResetTransform() - { - return SetStatus(DllExports::GdipResetTextureTransform((GpTexture*)nativeBrush)); - } - - Status MultiplyTransform(IN const Matrix* matrix, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipMultiplyTextureTransform((GpTexture*)nativeBrush, - matrix->nativeMatrix, - order)); - } - - Status TranslateTransform(IN REAL dx, - IN REAL dy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipTranslateTextureTransform((GpTexture*)nativeBrush, - dx, dy, order)); - } - - Status ScaleTransform(IN REAL sx, - IN REAL sy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipScaleTextureTransform((GpTexture*)nativeBrush, - sx, sy, order)); - } - - Status RotateTransform(IN REAL angle, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipRotateTextureTransform((GpTexture*)nativeBrush, - angle, order)); - } - - Status SetWrapMode(IN WrapMode wrapMode) - { - return SetStatus(DllExports::GdipSetTextureWrapMode((GpTexture*)nativeBrush, - wrapMode)); - } - - WrapMode GetWrapMode() const - { - WrapMode wrapMode; - - SetStatus(DllExports::GdipGetTextureWrapMode((GpTexture*)nativeBrush, - &wrapMode)); - return wrapMode; - } - - Image *GetImage() const - { - GpImage *image; - - SetStatus(DllExports::GdipGetTextureImage((GpTexture *)nativeBrush, - &image)); - - Image *retimage = new Image(image, lastResult); - - if (retimage == NULL) - { - DllExports::GdipDisposeImage(image); - } - - return retimage; - } - -private: - TextureBrush(const TextureBrush &); - TextureBrush& operator=(const TextureBrush &); - -protected: - - TextureBrush() - { - } -}; - -//-------------------------------------------------------------------------- -// Linear Gradient Brush Object -//-------------------------------------------------------------------------- - -class LinearGradientBrush : public Brush -{ -public: - friend class Pen; - - LinearGradientBrush(IN const PointF& point1, - IN const PointF& point2, - IN const Color& color1, - IN const Color& color2) - { - GpLineGradient *brush = NULL; - - lastResult = DllExports::GdipCreateLineBrush(&point1, - &point2, - color1.GetValue(), - color2.GetValue(), - WrapModeTile, - &brush); - - SetNativeBrush(brush); - } - - LinearGradientBrush(IN const Point& point1, - IN const Point& point2, - IN const Color& color1, - IN const Color& color2) - { - GpLineGradient *brush = NULL; - - lastResult = DllExports::GdipCreateLineBrushI(&point1, - &point2, - color1.GetValue(), - color2.GetValue(), - WrapModeTile, - &brush); - - SetNativeBrush(brush); - } - - LinearGradientBrush(IN const RectF& rect, - IN const Color& color1, - IN const Color& color2, - IN LinearGradientMode mode) - { - GpLineGradient *brush = NULL; - - lastResult = DllExports::GdipCreateLineBrushFromRect(&rect, - color1.GetValue(), - color2.GetValue(), - mode, - WrapModeTile, - &brush); - - SetNativeBrush(brush); - } - - LinearGradientBrush(IN const Rect& rect, - IN const Color& color1, - IN const Color& color2, - IN LinearGradientMode mode) - { - GpLineGradient *brush = NULL; - - lastResult = DllExports::GdipCreateLineBrushFromRectI(&rect, - color1.GetValue(), - color2.GetValue(), - mode, - WrapModeTile, - &brush); - - SetNativeBrush(brush); - } - - LinearGradientBrush(IN const RectF& rect, - IN const Color& color1, - IN const Color& color2, - IN REAL angle, - IN BOOL isAngleScalable = FALSE) - { - GpLineGradient *brush = NULL; - - lastResult = DllExports::GdipCreateLineBrushFromRectWithAngle(&rect, - color1.GetValue(), - color2.GetValue(), - angle, - isAngleScalable, - WrapModeTile, - &brush); - - SetNativeBrush(brush); - } - - LinearGradientBrush(IN const Rect& rect, - IN const Color& color1, - IN const Color& color2, - IN REAL angle, - IN BOOL isAngleScalable = FALSE) - { - GpLineGradient *brush = NULL; - - lastResult = DllExports::GdipCreateLineBrushFromRectWithAngleI(&rect, - color1.GetValue(), - color2.GetValue(), - angle, - isAngleScalable, - WrapModeTile, - &brush); - - SetNativeBrush(brush); - } - - Status SetLinearColors(IN const Color& color1, - IN const Color& color2) - { - return SetStatus(DllExports::GdipSetLineColors((GpLineGradient*)nativeBrush, - color1.GetValue(), - color2.GetValue())); - } - - Status GetLinearColors(OUT Color* colors) const - { - ARGB argb[2]; - - if (colors == NULL) - { - return SetStatus(InvalidParameter); - } - - SetStatus(DllExports::GdipGetLineColors((GpLineGradient*) nativeBrush, argb)); - - if (lastResult == Ok) - { - // use bitwise copy operator for Color copy - colors[0] = Color(argb[0]); - colors[1] = Color(argb[1]); - } - - return lastResult; - } - - Status GetRectangle(OUT RectF* rect) const - { - return SetStatus(DllExports::GdipGetLineRect((GpLineGradient*)nativeBrush, rect)); - } - - Status GetRectangle(OUT Rect* rect) const - { - return SetStatus(DllExports::GdipGetLineRectI((GpLineGradient*)nativeBrush, rect)); - } - - Status SetGammaCorrection(IN BOOL useGammaCorrection) - { - return SetStatus(DllExports::GdipSetLineGammaCorrection((GpLineGradient*)nativeBrush, - useGammaCorrection)); - } - - BOOL GetGammaCorrection() const - { - BOOL useGammaCorrection; - - SetStatus(DllExports::GdipGetLineGammaCorrection((GpLineGradient*)nativeBrush, - &useGammaCorrection)); - - return useGammaCorrection; - } - - INT GetBlendCount() const - { - INT count = 0; - - SetStatus(DllExports::GdipGetLineBlendCount((GpLineGradient*) - nativeBrush, - &count)); - - return count; - } - - Status SetBlend(IN const REAL* blendFactors, - IN const REAL* blendPositions, - IN INT count) - { - return SetStatus(DllExports::GdipSetLineBlend((GpLineGradient*) - nativeBrush, - blendFactors, - blendPositions, - count)); - } - - Status GetBlend(OUT REAL* blendFactors, - OUT REAL* blendPositions, - IN INT count) const - { - return SetStatus(DllExports::GdipGetLineBlend((GpLineGradient*)nativeBrush, - blendFactors, - blendPositions, - count)); - } - - INT GetInterpolationColorCount() const - { - INT count = 0; - - SetStatus(DllExports::GdipGetLinePresetBlendCount((GpLineGradient*) - nativeBrush, - &count)); - - return count; - } - - Status SetInterpolationColors(IN const Color* presetColors, - IN const REAL* blendPositions, - IN INT count) - { - if ((count <= 0) || !presetColors) - return SetStatus(InvalidParameter); - - ARGB *argbs = (ARGB*) new BYTE[count*sizeof(ARGB)]; - - if (argbs) - { - for (INT i = 0; i < count; i++) - { - argbs[i] = presetColors[i].GetValue(); - } - - Status status = SetStatus(DllExports::GdipSetLinePresetBlend( - (GpLineGradient*) nativeBrush, - argbs, - blendPositions, - count)); - delete [] argbs; - return status; - } - else - { - return SetStatus(OutOfMemory); - } - } - - Status GetInterpolationColors(OUT Color* presetColors, - OUT REAL* blendPositions, - IN INT count) const - { - if ((count <= 0) || !presetColors) - return SetStatus(InvalidParameter); - - ARGB* argbs = (ARGB*) new BYTE[count*sizeof(ARGB)]; - - if (!argbs) - { - return SetStatus(OutOfMemory); - } - - Status status = SetStatus(DllExports::GdipGetLinePresetBlend((GpLineGradient*)nativeBrush, - argbs, - blendPositions, - count)); - if (status == Ok) - { - for (INT i = 0; i < count; i++) - { - presetColors[i] = Color(argbs[i]); - } - } - - delete [] argbs; - - return status; - } - - Status SetBlendBellShape(IN REAL focus, - IN REAL scale = 1.0f) - { - return SetStatus(DllExports::GdipSetLineSigmaBlend((GpLineGradient*)nativeBrush, focus, scale)); - } - - Status SetBlendTriangularShape( - IN REAL focus, - IN REAL scale = 1.0f - ) - { - return SetStatus(DllExports::GdipSetLineLinearBlend((GpLineGradient*)nativeBrush, focus, scale)); - } - - Status SetTransform(IN const Matrix* matrix) - { - return SetStatus(DllExports::GdipSetLineTransform((GpLineGradient*)nativeBrush, - matrix->nativeMatrix)); - } - - Status GetTransform(OUT Matrix *matrix) const - { - return SetStatus(DllExports::GdipGetLineTransform((GpLineGradient*)nativeBrush, - matrix->nativeMatrix)); - } - - Status ResetTransform() - { - return SetStatus(DllExports::GdipResetLineTransform((GpLineGradient*)nativeBrush)); - } - - Status MultiplyTransform(IN const Matrix* matrix, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipMultiplyLineTransform((GpLineGradient*)nativeBrush, - matrix->nativeMatrix, - order)); - } - - Status TranslateTransform(IN REAL dx, - IN REAL dy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipTranslateLineTransform((GpLineGradient*)nativeBrush, - dx, dy, order)); - } - - Status ScaleTransform(IN REAL sx, - IN REAL sy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipScaleLineTransform((GpLineGradient*)nativeBrush, - sx, sy, order)); - } - - Status RotateTransform(IN REAL angle, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipRotateLineTransform((GpLineGradient*)nativeBrush, - angle, order)); - } - - Status SetWrapMode(IN WrapMode wrapMode) - { - return SetStatus(DllExports::GdipSetLineWrapMode((GpLineGradient*)nativeBrush, - wrapMode)); - } - - WrapMode GetWrapMode() const - { - WrapMode wrapMode; - - SetStatus(DllExports::GdipGetLineWrapMode((GpLineGradient*) - nativeBrush, - &wrapMode)); - - return wrapMode; - } - -private: - LinearGradientBrush(const LinearGradientBrush &); - LinearGradientBrush& operator=(const LinearGradientBrush &); - -protected: - - LinearGradientBrush() - { - } -}; - -//-------------------------------------------------------------------------- -// PathGradientBrush object is defined -// in gdipluspath.h. -//-------------------------------------------------------------------------- - -//-------------------------------------------------------------------------- -// Hatch Brush Object -//-------------------------------------------------------------------------- - -class HatchBrush : public Brush -{ -public: - friend class Pen; - - HatchBrush(IN HatchStyle hatchStyle, - IN const Color& foreColor, - IN const Color& backColor = Color()) - { - GpHatch *brush = NULL; - - lastResult = DllExports::GdipCreateHatchBrush(hatchStyle, - foreColor.GetValue(), - backColor.GetValue(), - &brush); - SetNativeBrush(brush); - } - - HatchStyle GetHatchStyle() const - { - HatchStyle hatchStyle; - - SetStatus(DllExports::GdipGetHatchStyle((GpHatch*)nativeBrush, - &hatchStyle)); - - return hatchStyle; - } - - Status GetForegroundColor(OUT Color* color) const - { - ARGB argb; - - if (color == NULL) - { - return SetStatus(InvalidParameter); - } - - Status status = SetStatus(DllExports::GdipGetHatchForegroundColor( - (GpHatch*)nativeBrush, - &argb)); - - color->SetValue(argb); - - return status; - } - - Status GetBackgroundColor(OUT Color *color) const - { - ARGB argb; - - if (color == NULL) - { - return SetStatus(InvalidParameter); - } - - Status status = SetStatus(DllExports::GdipGetHatchBackgroundColor( - (GpHatch*)nativeBrush, - &argb)); - - color->SetValue(argb); - - return status; - } - -private: - HatchBrush(const HatchBrush &); - HatchBrush& operator=(const HatchBrush &); - -protected: - - HatchBrush() - { - } -}; - -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusCachedBitmap.h b/desmume/src/windows/gdiplus/GdiPlusCachedBitmap.h deleted file mode 100644 index 6f454adf4..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusCachedBitmap.h +++ /dev/null @@ -1,51 +0,0 @@ -/************************************************************************** -* -* Copyright (c) 2000 Microsoft Corporation -* -* Module Name: -* -* CachedBitmap class definition -* -* Abstract: -* -* GDI+ CachedBitmap is a representation of an accelerated drawing -* that has restrictions on what operations are allowed in order -* to accelerate the drawing to the destination. -* -* Look for class definition in GdiplusHeaders.h -* -**************************************************************************/ - -#ifndef _GDIPLUSCACHEDBITMAP_H -#define _GDIPLUSCACHEDBITMAP_H - -inline -CachedBitmap::CachedBitmap( - IN Bitmap *bitmap, - IN Graphics *graphics) -{ - nativeCachedBitmap = NULL; - - lastResult = DllExports::GdipCreateCachedBitmap( - (GpBitmap *)bitmap->nativeImage, - graphics->nativeGraphics, - &nativeCachedBitmap - ); -} - -inline -CachedBitmap::~CachedBitmap() -{ - DllExports::GdipDeleteCachedBitmap(nativeCachedBitmap); -} - -inline Status -CachedBitmap::GetLastStatus() const -{ - Status lastStatus = lastResult; - lastResult = Ok; - return (lastStatus); -} - -#endif - diff --git a/desmume/src/windows/gdiplus/GdiPlusColor.h b/desmume/src/windows/gdiplus/GdiPlusColor.h deleted file mode 100644 index 26037ae9c..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusColor.h +++ /dev/null @@ -1,324 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusColor.h -* -* Abstract: -* -* GDI+ Color Object -* -\**************************************************************************/ - -#ifndef _GDIPLUSCOLOR_H -#define _GDIPLUSCOLOR_H - -//---------------------------------------------------------------------------- -// Color mode -//---------------------------------------------------------------------------- - -enum ColorMode -{ - ColorModeARGB32 = 0, - ColorModeARGB64 = 1 -}; - -//---------------------------------------------------------------------------- -// Color Channel flags -//---------------------------------------------------------------------------- - -enum ColorChannelFlags -{ - ColorChannelFlagsC = 0, - ColorChannelFlagsM, - ColorChannelFlagsY, - ColorChannelFlagsK, - ColorChannelFlagsLast -}; - -//---------------------------------------------------------------------------- -// Color -//---------------------------------------------------------------------------- - -class Color -{ -public: - - Color() - { - Argb = (ARGB)Color::Black; - } - - // Construct an opaque Color object with - // the specified Red, Green, Blue values. - // - // Color values are not premultiplied. - - Color(IN BYTE r, - IN BYTE g, - IN BYTE b) - { - Argb = MakeARGB(255, r, g, b); - } - - Color(IN BYTE a, - IN BYTE r, - IN BYTE g, - IN BYTE b) - { - Argb = MakeARGB(a, r, g, b); - } - - Color(IN ARGB argb) - { - Argb = argb; - } - - BYTE GetAlpha() const - { - return (BYTE) (Argb >> AlphaShift); - } - - BYTE GetA() const - { - return GetAlpha(); - } - - BYTE GetRed() const - { - return (BYTE) (Argb >> RedShift); - } - - BYTE GetR() const - { - return GetRed(); - } - - BYTE GetGreen() const - { - return (BYTE) (Argb >> GreenShift); - } - - BYTE GetG() const - { - return GetGreen(); - } - - BYTE GetBlue() const - { - return (BYTE) (Argb >> BlueShift); - } - - BYTE GetB() const - { - return GetBlue(); - } - - ARGB GetValue() const - { - return Argb; - } - - VOID SetValue(IN ARGB argb) - { - Argb = argb; - } - - VOID SetFromCOLORREF(IN COLORREF rgb) - { - Argb = MakeARGB(255, GetRValue(rgb), GetGValue(rgb), GetBValue(rgb)); - } - - COLORREF ToCOLORREF() const - { - return RGB(GetRed(), GetGreen(), GetBlue()); - } - -public: - - // Common color constants - - enum - { - AliceBlue = 0xFFF0F8FF, - AntiqueWhite = 0xFFFAEBD7, - Aqua = 0xFF00FFFF, - Aquamarine = 0xFF7FFFD4, - Azure = 0xFFF0FFFF, - Beige = 0xFFF5F5DC, - Bisque = 0xFFFFE4C4, - Black = 0xFF000000, - BlanchedAlmond = 0xFFFFEBCD, - Blue = 0xFF0000FF, - BlueViolet = 0xFF8A2BE2, - Brown = 0xFFA52A2A, - BurlyWood = 0xFFDEB887, - CadetBlue = 0xFF5F9EA0, - Chartreuse = 0xFF7FFF00, - Chocolate = 0xFFD2691E, - Coral = 0xFFFF7F50, - CornflowerBlue = 0xFF6495ED, - Cornsilk = 0xFFFFF8DC, - Crimson = 0xFFDC143C, - Cyan = 0xFF00FFFF, - DarkBlue = 0xFF00008B, - DarkCyan = 0xFF008B8B, - DarkGoldenrod = 0xFFB8860B, - DarkGray = 0xFFA9A9A9, - DarkGreen = 0xFF006400, - DarkKhaki = 0xFFBDB76B, - DarkMagenta = 0xFF8B008B, - DarkOliveGreen = 0xFF556B2F, - DarkOrange = 0xFFFF8C00, - DarkOrchid = 0xFF9932CC, - DarkRed = 0xFF8B0000, - DarkSalmon = 0xFFE9967A, - DarkSeaGreen = 0xFF8FBC8B, - DarkSlateBlue = 0xFF483D8B, - DarkSlateGray = 0xFF2F4F4F, - DarkTurquoise = 0xFF00CED1, - DarkViolet = 0xFF9400D3, - DeepPink = 0xFFFF1493, - DeepSkyBlue = 0xFF00BFFF, - DimGray = 0xFF696969, - DodgerBlue = 0xFF1E90FF, - Firebrick = 0xFFB22222, - FloralWhite = 0xFFFFFAF0, - ForestGreen = 0xFF228B22, - Fuchsia = 0xFFFF00FF, - Gainsboro = 0xFFDCDCDC, - GhostWhite = 0xFFF8F8FF, - Gold = 0xFFFFD700, - Goldenrod = 0xFFDAA520, - Gray = 0xFF808080, - Green = 0xFF008000, - GreenYellow = 0xFFADFF2F, - Honeydew = 0xFFF0FFF0, - HotPink = 0xFFFF69B4, - IndianRed = 0xFFCD5C5C, - Indigo = 0xFF4B0082, - Ivory = 0xFFFFFFF0, - Khaki = 0xFFF0E68C, - Lavender = 0xFFE6E6FA, - LavenderBlush = 0xFFFFF0F5, - LawnGreen = 0xFF7CFC00, - LemonChiffon = 0xFFFFFACD, - LightBlue = 0xFFADD8E6, - LightCoral = 0xFFF08080, - LightCyan = 0xFFE0FFFF, - LightGoldenrodYellow = 0xFFFAFAD2, - LightGray = 0xFFD3D3D3, - LightGreen = 0xFF90EE90, - LightPink = 0xFFFFB6C1, - LightSalmon = 0xFFFFA07A, - LightSeaGreen = 0xFF20B2AA, - LightSkyBlue = 0xFF87CEFA, - LightSlateGray = 0xFF778899, - LightSteelBlue = 0xFFB0C4DE, - LightYellow = 0xFFFFFFE0, - Lime = 0xFF00FF00, - LimeGreen = 0xFF32CD32, - Linen = 0xFFFAF0E6, - Magenta = 0xFFFF00FF, - Maroon = 0xFF800000, - MediumAquamarine = 0xFF66CDAA, - MediumBlue = 0xFF0000CD, - MediumOrchid = 0xFFBA55D3, - MediumPurple = 0xFF9370DB, - MediumSeaGreen = 0xFF3CB371, - MediumSlateBlue = 0xFF7B68EE, - MediumSpringGreen = 0xFF00FA9A, - MediumTurquoise = 0xFF48D1CC, - MediumVioletRed = 0xFFC71585, - MidnightBlue = 0xFF191970, - MintCream = 0xFFF5FFFA, - MistyRose = 0xFFFFE4E1, - Moccasin = 0xFFFFE4B5, - NavajoWhite = 0xFFFFDEAD, - Navy = 0xFF000080, - OldLace = 0xFFFDF5E6, - Olive = 0xFF808000, - OliveDrab = 0xFF6B8E23, - Orange = 0xFFFFA500, - OrangeRed = 0xFFFF4500, - Orchid = 0xFFDA70D6, - PaleGoldenrod = 0xFFEEE8AA, - PaleGreen = 0xFF98FB98, - PaleTurquoise = 0xFFAFEEEE, - PaleVioletRed = 0xFFDB7093, - PapayaWhip = 0xFFFFEFD5, - PeachPuff = 0xFFFFDAB9, - Peru = 0xFFCD853F, - Pink = 0xFFFFC0CB, - Plum = 0xFFDDA0DD, - PowderBlue = 0xFFB0E0E6, - Purple = 0xFF800080, - Red = 0xFFFF0000, - RosyBrown = 0xFFBC8F8F, - RoyalBlue = 0xFF4169E1, - SaddleBrown = 0xFF8B4513, - Salmon = 0xFFFA8072, - SandyBrown = 0xFFF4A460, - SeaGreen = 0xFF2E8B57, - SeaShell = 0xFFFFF5EE, - Sienna = 0xFFA0522D, - Silver = 0xFFC0C0C0, - SkyBlue = 0xFF87CEEB, - SlateBlue = 0xFF6A5ACD, - SlateGray = 0xFF708090, - Snow = 0xFFFFFAFA, - SpringGreen = 0xFF00FF7F, - SteelBlue = 0xFF4682B4, - Tan = 0xFFD2B48C, - Teal = 0xFF008080, - Thistle = 0xFFD8BFD8, - Tomato = 0xFFFF6347, - Transparent = 0x00FFFFFF, - Turquoise = 0xFF40E0D0, - Violet = 0xFFEE82EE, - Wheat = 0xFFF5DEB3, - White = 0xFFFFFFFF, - WhiteSmoke = 0xFFF5F5F5, - Yellow = 0xFFFFFF00, - YellowGreen = 0xFF9ACD32 - }; - - // Shift count and bit mask for A, R, G, B components - - enum - { - AlphaShift = 24, - RedShift = 16, - GreenShift = 8, - BlueShift = 0 - }; - - enum - { - AlphaMask = 0xff000000, - RedMask = 0x00ff0000, - GreenMask = 0x0000ff00, - BlueMask = 0x000000ff - }; - - // Assemble A, R, G, B values into a 32-bit integer - - static ARGB MakeARGB(IN BYTE a, - IN BYTE r, - IN BYTE g, - IN BYTE b) - { - return (((ARGB) (b) << BlueShift) | - ((ARGB) (g) << GreenShift) | - ((ARGB) (r) << RedShift) | - ((ARGB) (a) << AlphaShift)); - } - -protected: - - ARGB Argb; -}; - -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusColorMatrix.h b/desmume/src/windows/gdiplus/GdiPlusColorMatrix.h deleted file mode 100644 index 551b52ec1..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusColorMatrix.h +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusColorMatrix.h -* -* Abstract: -* -* GDI+ Color Matrix object, used with Graphics.DrawImage -* -\**************************************************************************/ - -#ifndef _GDIPLUSCOLORMATRIX_H -#define _GDIPLUSCOLORMATRIX_H - -//---------------------------------------------------------------------------- -// Color matrix -//---------------------------------------------------------------------------- - -struct ColorMatrix -{ - REAL m[5][5]; -}; - -//---------------------------------------------------------------------------- -// Color Matrix flags -//---------------------------------------------------------------------------- - -enum ColorMatrixFlags -{ - ColorMatrixFlagsDefault = 0, - ColorMatrixFlagsSkipGrays = 1, - ColorMatrixFlagsAltGray = 2 -}; - -//---------------------------------------------------------------------------- -// Color Adjust Type -//---------------------------------------------------------------------------- - -enum ColorAdjustType -{ - ColorAdjustTypeDefault, - ColorAdjustTypeBitmap, - ColorAdjustTypeBrush, - ColorAdjustTypePen, - ColorAdjustTypeText, - ColorAdjustTypeCount, - ColorAdjustTypeAny // Reserved -}; - -//---------------------------------------------------------------------------- -// Color Map -//---------------------------------------------------------------------------- - -struct ColorMap -{ - Color oldColor; - Color newColor; -}; - -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusEnums.h b/desmume/src/windows/gdiplus/GdiPlusEnums.h deleted file mode 100644 index b6043fec5..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusEnums.h +++ /dev/null @@ -1,1077 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusEnums.h -* -* Abstract: -* -* GDI+ Enumeration Types -* -\**************************************************************************/ - -#ifndef _GDIPLUSENUMS_H -#define _GDIPLUSENUMS_H - -//-------------------------------------------------------------------------- -// Default bezier flattening tolerance in device pixels. -//-------------------------------------------------------------------------- - -const float FlatnessDefault = 1.0f/4.0f; - -//-------------------------------------------------------------------------- -// Graphics and Container State cookies -//-------------------------------------------------------------------------- - -typedef UINT GraphicsState; -typedef UINT GraphicsContainer; - -//-------------------------------------------------------------------------- -// Fill mode constants -//-------------------------------------------------------------------------- - -enum FillMode -{ - FillModeAlternate, // 0 - FillModeWinding // 1 -}; - -//-------------------------------------------------------------------------- -// Quality mode constants -//-------------------------------------------------------------------------- - -enum QualityMode -{ - QualityModeInvalid = -1, - QualityModeDefault = 0, - QualityModeLow = 1, // Best performance - QualityModeHigh = 2 // Best rendering quality -}; - -//-------------------------------------------------------------------------- -// Alpha Compositing mode constants -//-------------------------------------------------------------------------- - -enum CompositingMode -{ - CompositingModeSourceOver, // 0 - CompositingModeSourceCopy // 1 -}; - -//-------------------------------------------------------------------------- -// Alpha Compositing quality constants -//-------------------------------------------------------------------------- - -enum CompositingQuality -{ - CompositingQualityInvalid = QualityModeInvalid, - CompositingQualityDefault = QualityModeDefault, - CompositingQualityHighSpeed = QualityModeLow, - CompositingQualityHighQuality = QualityModeHigh, - CompositingQualityGammaCorrected, - CompositingQualityAssumeLinear -}; - -//-------------------------------------------------------------------------- -// Unit constants -//-------------------------------------------------------------------------- - -enum Unit -{ - UnitWorld, // 0 -- World coordinate (non-physical unit) - UnitDisplay, // 1 -- Variable -- for PageTransform only - UnitPixel, // 2 -- Each unit is one device pixel. - UnitPoint, // 3 -- Each unit is a printer's point, or 1/72 inch. - UnitInch, // 4 -- Each unit is 1 inch. - UnitDocument, // 5 -- Each unit is 1/300 inch. - UnitMillimeter // 6 -- Each unit is 1 millimeter. -}; - -//-------------------------------------------------------------------------- -// MetafileFrameUnit -// -// The frameRect for creating a metafile can be specified in any of these -// units. There is an extra frame unit value (MetafileFrameUnitGdi) so -// that units can be supplied in the same units that GDI expects for -// frame rects -- these units are in .01 (1/100ths) millimeter units -// as defined by GDI. -//-------------------------------------------------------------------------- - -enum MetafileFrameUnit -{ - MetafileFrameUnitPixel = UnitPixel, - MetafileFrameUnitPoint = UnitPoint, - MetafileFrameUnitInch = UnitInch, - MetafileFrameUnitDocument = UnitDocument, - MetafileFrameUnitMillimeter = UnitMillimeter, - MetafileFrameUnitGdi // GDI compatible .01 MM units -}; - -//-------------------------------------------------------------------------- -// Coordinate space identifiers -//-------------------------------------------------------------------------- - -enum CoordinateSpace -{ - CoordinateSpaceWorld, // 0 - CoordinateSpacePage, // 1 - CoordinateSpaceDevice // 2 -}; - -//-------------------------------------------------------------------------- -// Various wrap modes for brushes -//-------------------------------------------------------------------------- - -enum WrapMode -{ - WrapModeTile, // 0 - WrapModeTileFlipX, // 1 - WrapModeTileFlipY, // 2 - WrapModeTileFlipXY, // 3 - WrapModeClamp // 4 -}; - -//-------------------------------------------------------------------------- -// Various hatch styles -//-------------------------------------------------------------------------- - -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, - HatchStyleLargeGrid = HatchStyleCross, // 4 - - HatchStyleMin = HatchStyleHorizontal, - HatchStyleMax = HatchStyleTotal - 1, -}; - -//-------------------------------------------------------------------------- -// Dash style constants -//-------------------------------------------------------------------------- - -enum DashStyle -{ - DashStyleSolid, // 0 - DashStyleDash, // 1 - DashStyleDot, // 2 - DashStyleDashDot, // 3 - DashStyleDashDotDot, // 4 - DashStyleCustom // 5 -}; - -//-------------------------------------------------------------------------- -// Dash cap constants -//-------------------------------------------------------------------------- - -enum DashCap -{ - DashCapFlat = 0, - DashCapRound = 2, - DashCapTriangle = 3 -}; - -//-------------------------------------------------------------------------- -// Line cap constants (only the lowest 8 bits are used). -//-------------------------------------------------------------------------- - -enum LineCap -{ - LineCapFlat = 0, - LineCapSquare = 1, - LineCapRound = 2, - LineCapTriangle = 3, - - LineCapNoAnchor = 0x10, // corresponds to flat cap - LineCapSquareAnchor = 0x11, // corresponds to square cap - LineCapRoundAnchor = 0x12, // corresponds to round cap - LineCapDiamondAnchor = 0x13, // corresponds to triangle cap - LineCapArrowAnchor = 0x14, // no correspondence - - LineCapCustom = 0xff, // custom cap - - LineCapAnchorMask = 0xf0 // mask to check for anchor or not. -}; - -//-------------------------------------------------------------------------- -// Custom Line cap type constants -//-------------------------------------------------------------------------- - -enum CustomLineCapType -{ - CustomLineCapTypeDefault = 0, - CustomLineCapTypeAdjustableArrow = 1 -}; - -//-------------------------------------------------------------------------- -// Line join constants -//-------------------------------------------------------------------------- - -enum LineJoin -{ - LineJoinMiter = 0, - LineJoinBevel = 1, - LineJoinRound = 2, - LineJoinMiterClipped = 3 -}; - -//-------------------------------------------------------------------------- -// Path point types (only the lowest 8 bits are used.) -// The lowest 3 bits are interpreted as point type -// The higher 5 bits are reserved for flags. -//-------------------------------------------------------------------------- - -enum PathPointType -{ - PathPointTypeStart = 0, // move - PathPointTypeLine = 1, // line - PathPointTypeBezier = 3, // default Bezier (= cubic Bezier) - PathPointTypePathTypeMask = 0x07, // type mask (lowest 3 bits). - PathPointTypeDashMode = 0x10, // currently in dash mode. - PathPointTypePathMarker = 0x20, // a marker for the path. - PathPointTypeCloseSubpath = 0x80, // closed flag - - // Path types used for advanced path. - - PathPointTypeBezier3 = 3, // cubic Bezier -}; - - -//-------------------------------------------------------------------------- -// WarpMode constants -//-------------------------------------------------------------------------- - -enum WarpMode -{ - WarpModePerspective, // 0 - WarpModeBilinear // 1 -}; - -//-------------------------------------------------------------------------- -// LineGradient Mode -//-------------------------------------------------------------------------- - -enum LinearGradientMode -{ - LinearGradientModeHorizontal, // 0 - LinearGradientModeVertical, // 1 - LinearGradientModeForwardDiagonal, // 2 - LinearGradientModeBackwardDiagonal // 3 -}; - -//-------------------------------------------------------------------------- -// Region Comine Modes -//-------------------------------------------------------------------------- - -enum CombineMode -{ - CombineModeReplace, // 0 - CombineModeIntersect, // 1 - CombineModeUnion, // 2 - CombineModeXor, // 3 - CombineModeExclude, // 4 - CombineModeComplement // 5 (Exclude From) -}; - -//-------------------------------------------------------------------------- - // Image types -//-------------------------------------------------------------------------- - -enum ImageType -{ - ImageTypeUnknown, // 0 - ImageTypeBitmap, // 1 - ImageTypeMetafile // 2 -}; - -//-------------------------------------------------------------------------- -// Interpolation modes -//-------------------------------------------------------------------------- - -enum InterpolationMode -{ - InterpolationModeInvalid = QualityModeInvalid, - InterpolationModeDefault = QualityModeDefault, - InterpolationModeLowQuality = QualityModeLow, - InterpolationModeHighQuality = QualityModeHigh, - InterpolationModeBilinear, - InterpolationModeBicubic, - InterpolationModeNearestNeighbor, - InterpolationModeHighQualityBilinear, - InterpolationModeHighQualityBicubic -}; - -//-------------------------------------------------------------------------- -// Pen types -//-------------------------------------------------------------------------- - -enum PenAlignment -{ - PenAlignmentCenter = 0, - PenAlignmentInset = 1 -}; - -//-------------------------------------------------------------------------- -// Brush types -//-------------------------------------------------------------------------- - -enum BrushType -{ - BrushTypeSolidColor = 0, - BrushTypeHatchFill = 1, - BrushTypeTextureFill = 2, - BrushTypePathGradient = 3, - BrushTypeLinearGradient = 4 -}; - -//-------------------------------------------------------------------------- -// Pen's Fill types -//-------------------------------------------------------------------------- - -enum PenType -{ - PenTypeSolidColor = BrushTypeSolidColor, - PenTypeHatchFill = BrushTypeHatchFill, - PenTypeTextureFill = BrushTypeTextureFill, - PenTypePathGradient = BrushTypePathGradient, - PenTypeLinearGradient = BrushTypeLinearGradient, - PenTypeUnknown = -1 -}; - -//-------------------------------------------------------------------------- -// Matrix Order -//-------------------------------------------------------------------------- - -enum MatrixOrder -{ - MatrixOrderPrepend = 0, - MatrixOrderAppend = 1 -}; - -//-------------------------------------------------------------------------- -// Generic font families -//-------------------------------------------------------------------------- - -enum GenericFontFamily -{ - GenericFontFamilySerif, - GenericFontFamilySansSerif, - GenericFontFamilyMonospace - -}; - -//-------------------------------------------------------------------------- -// FontStyle: face types and common styles -//-------------------------------------------------------------------------- - -enum FontStyle -{ - FontStyleRegular = 0, - FontStyleBold = 1, - FontStyleItalic = 2, - FontStyleBoldItalic = 3, - FontStyleUnderline = 4, - FontStyleStrikeout = 8 -}; - -//--------------------------------------------------------------------------- -// Smoothing Mode -//--------------------------------------------------------------------------- - -enum SmoothingMode -{ - SmoothingModeInvalid = QualityModeInvalid, - SmoothingModeDefault = QualityModeDefault, - SmoothingModeHighSpeed = QualityModeLow, - SmoothingModeHighQuality = QualityModeHigh, - SmoothingModeNone, - SmoothingModeAntiAlias -}; - -//--------------------------------------------------------------------------- -// Pixel Format Mode -//--------------------------------------------------------------------------- - -enum PixelOffsetMode -{ - PixelOffsetModeInvalid = QualityModeInvalid, - PixelOffsetModeDefault = QualityModeDefault, - PixelOffsetModeHighSpeed = QualityModeLow, - PixelOffsetModeHighQuality = QualityModeHigh, - PixelOffsetModeNone, // No pixel offset - PixelOffsetModeHalf // Offset by -0.5, -0.5 for fast anti-alias perf -}; - -//--------------------------------------------------------------------------- -// Text Rendering Hint -//--------------------------------------------------------------------------- - -enum TextRenderingHint -{ - TextRenderingHintSystemDefault = 0, // Glyph with system default rendering hint - TextRenderingHintSingleBitPerPixelGridFit, // Glyph bitmap with hinting - TextRenderingHintSingleBitPerPixel, // Glyph bitmap without hinting - TextRenderingHintAntiAliasGridFit, // Glyph anti-alias bitmap with hinting - TextRenderingHintAntiAlias, // Glyph anti-alias bitmap without hinting - TextRenderingHintClearTypeGridFit // Glyph CT bitmap with hinting -}; - -//--------------------------------------------------------------------------- -// Metafile Types -//--------------------------------------------------------------------------- - -enum MetafileType -{ - MetafileTypeInvalid, // Invalid metafile - MetafileTypeWmf, // Standard WMF - MetafileTypeWmfPlaceable, // Placeable WMF - MetafileTypeEmf, // EMF (not EMF+) - MetafileTypeEmfPlusOnly, // EMF+ without dual, down-level records - MetafileTypeEmfPlusDual // EMF+ with dual, down-level records -}; - -//--------------------------------------------------------------------------- -// Specifies the type of EMF to record -//--------------------------------------------------------------------------- - -enum EmfType -{ - EmfTypeEmfOnly = MetafileTypeEmf, // no EMF+, only EMF - EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly, // no EMF, only EMF+ - EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual // both EMF+ and EMF -}; - -//--------------------------------------------------------------------------- -// EMF+ Persistent object types -//--------------------------------------------------------------------------- - -enum ObjectType -{ - ObjectTypeInvalid, - ObjectTypeBrush, - ObjectTypePen, - ObjectTypePath, - ObjectTypeRegion, - ObjectTypeImage, - ObjectTypeFont, - ObjectTypeStringFormat, - ObjectTypeImageAttributes, - ObjectTypeCustomLineCap, - - ObjectTypeMax = ObjectTypeCustomLineCap, - ObjectTypeMin = ObjectTypeBrush -}; - -inline BOOL -ObjectTypeIsValid( - ObjectType type - ) -{ - return ((type >= ObjectTypeMin) && (type <= ObjectTypeMax)); -} - -//--------------------------------------------------------------------------- -// EMF+ Records -//--------------------------------------------------------------------------- - -// We have to change the WMF record numbers so that they don't conflict with -// the EMF and EMF+ record numbers. - -enum EmfPlusRecordType; - -#define GDIP_EMFPLUS_RECORD_BASE 0x00004000 -#define GDIP_WMF_RECORD_BASE 0x00010000 -#define GDIP_WMF_RECORD_TO_EMFPLUS(n) ((EmfPlusRecordType)((n) | GDIP_WMF_RECORD_BASE)) -#define GDIP_EMFPLUS_RECORD_TO_WMF(n) ((n) & (~GDIP_WMF_RECORD_BASE)) -#define GDIP_IS_WMF_RECORDTYPE(n) (((n) & GDIP_WMF_RECORD_BASE) != 0) - -enum EmfPlusRecordType -{ - // Since we have to enumerate GDI records right along with GDI+ records, - // We list all the GDI records here so that they can be part of the - // same enumeration type which is used in the enumeration callback. - - 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), // META_DRAWTEXT - 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), // META_SETLAYOUT - WmfRecordTypeResetDC = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C), // META_RESETDC - WmfRecordTypeStartDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D), // META_STARTDOC - WmfRecordTypeStartPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F), // META_STARTPAGE - WmfRecordTypeEndPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050), // META_ENDPAGE - WmfRecordTypeAbortDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052), // META_ABORTDOC - WmfRecordTypeEndDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E), // META_ENDDOC - WmfRecordTypeDeleteObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT), - WmfRecordTypeCreatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE), - WmfRecordTypeCreateBrush = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8), // META_CREATEBRUSH - 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), // META_CREATEBITMAPINDIRECT - WmfRecordTypeCreateBitmap = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE), // META_CREATEBITMAP - 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, // Not Used - 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 = EMR_SETDIBITSTODEVICE, - 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, // EMR_SETICMMODE, - EmfRecordTypeCreateColorSpace = 99, // EMR_CREATECOLORSPACE, - EmfRecordTypeSetColorSpace = 100, // EMR_SETCOLORSPACE, - EmfRecordTypeDeleteColorSpace = 101, // EMR_DELETECOLORSPACE, - EmfRecordTypeGLSRecord = 102, // EMR_GLSRECORD, - EmfRecordTypeGLSBoundedRecord = 103, // EMR_GLSBOUNDEDRECORD, - EmfRecordTypePixelFormat = 104, // EMR_PIXELFORMAT, - EmfRecordTypeDrawEscape = 105, // EMR_RESERVED_105, - EmfRecordTypeExtEscape = 106, // EMR_RESERVED_106, - EmfRecordTypeStartDoc = 107, // EMR_RESERVED_107, - EmfRecordTypeSmallTextOut = 108, // EMR_RESERVED_108, - EmfRecordTypeForceUFIMapping = 109, // EMR_RESERVED_109, - EmfRecordTypeNamedEscape = 110, // EMR_RESERVED_110, - EmfRecordTypeColorCorrectPalette = 111, // EMR_COLORCORRECTPALETTE, - EmfRecordTypeSetICMProfileA = 112, // EMR_SETICMPROFILEA, - EmfRecordTypeSetICMProfileW = 113, // EMR_SETICMPROFILEW, - EmfRecordTypeAlphaBlend = 114, // EMR_ALPHABLEND, - EmfRecordTypeSetLayout = 115, // EMR_SETLAYOUT, - EmfRecordTypeTransparentBlt = 116, // EMR_TRANSPARENTBLT, - EmfRecordTypeReserved_117 = 117, // Not Used - EmfRecordTypeGradientFill = 118, // EMR_GRADIENTFILL, - EmfRecordTypeSetLinkedUFIs = 119, // EMR_RESERVED_119, - EmfRecordTypeSetTextJustification = 120, // EMR_RESERVED_120, - EmfRecordTypeColorMatchToTargetW = 121, // EMR_COLORMATCHTOTARGETW, - EmfRecordTypeCreateColorSpaceW = 122, // EMR_CREATECOLORSPACEW, - EmfRecordTypeMax = 122, - EmfRecordTypeMin = 1, - - // That is the END of the GDI EMF records. - - // Now we start the list of EMF+ records. We leave quite - // a bit of room here for the addition of any new GDI - // records that may be added later. - - EmfPlusRecordTypeInvalid = GDIP_EMFPLUS_RECORD_BASE, - EmfPlusRecordTypeHeader, - EmfPlusRecordTypeEndOfFile, - - EmfPlusRecordTypeComment, - - EmfPlusRecordTypeGetDC, - - EmfPlusRecordTypeMultiFormatStart, - EmfPlusRecordTypeMultiFormatSection, - EmfPlusRecordTypeMultiFormatEnd, - - // For all persistent objects - - EmfPlusRecordTypeObject, - - // Drawing Records - - EmfPlusRecordTypeClear, - EmfPlusRecordTypeFillRects, - EmfPlusRecordTypeDrawRects, - EmfPlusRecordTypeFillPolygon, - EmfPlusRecordTypeDrawLines, - EmfPlusRecordTypeFillEllipse, - EmfPlusRecordTypeDrawEllipse, - EmfPlusRecordTypeFillPie, - EmfPlusRecordTypeDrawPie, - EmfPlusRecordTypeDrawArc, - EmfPlusRecordTypeFillRegion, - EmfPlusRecordTypeFillPath, - EmfPlusRecordTypeDrawPath, - EmfPlusRecordTypeFillClosedCurve, - EmfPlusRecordTypeDrawClosedCurve, - EmfPlusRecordTypeDrawCurve, - EmfPlusRecordTypeDrawBeziers, - EmfPlusRecordTypeDrawImage, - EmfPlusRecordTypeDrawImagePoints, - EmfPlusRecordTypeDrawString, - - // Graphics State Records - - EmfPlusRecordTypeSetRenderingOrigin, - EmfPlusRecordTypeSetAntiAliasMode, - EmfPlusRecordTypeSetTextRenderingHint, - EmfPlusRecordTypeSetTextContrast, - EmfPlusRecordTypeSetInterpolationMode, - EmfPlusRecordTypeSetPixelOffsetMode, - EmfPlusRecordTypeSetCompositingMode, - EmfPlusRecordTypeSetCompositingQuality, - EmfPlusRecordTypeSave, - EmfPlusRecordTypeRestore, - EmfPlusRecordTypeBeginContainer, - EmfPlusRecordTypeBeginContainerNoParams, - EmfPlusRecordTypeEndContainer, - EmfPlusRecordTypeSetWorldTransform, - EmfPlusRecordTypeResetWorldTransform, - EmfPlusRecordTypeMultiplyWorldTransform, - EmfPlusRecordTypeTranslateWorldTransform, - EmfPlusRecordTypeScaleWorldTransform, - EmfPlusRecordTypeRotateWorldTransform, - EmfPlusRecordTypeSetPageTransform, - EmfPlusRecordTypeResetClip, - EmfPlusRecordTypeSetClipRect, - EmfPlusRecordTypeSetClipPath, - EmfPlusRecordTypeSetClipRegion, - EmfPlusRecordTypeOffsetClip, - - EmfPlusRecordTypeDrawDriverString, - - EmfPlusRecordTotal, - - EmfPlusRecordTypeMax = EmfPlusRecordTotal-1, - EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader, -}; - -//--------------------------------------------------------------------------- -// StringFormatFlags -//--------------------------------------------------------------------------- - -//--------------------------------------------------------------------------- -// String format flags -// -// DirectionRightToLeft - For horizontal text, the reading order is -// right to left. This value is called -// the base embedding level by the Unicode -// bidirectional engine. -// For vertical text, columns are read from -// right to left. -// By default, horizontal or vertical text is -// read from left to right. -// -// DirectionVertical - Individual lines of text are vertical. In -// each line, characters progress from top to -// bottom. -// By default, lines of text are horizontal, -// each new line below the previous line. -// -// NoFitBlackBox - Allows parts of glyphs to overhang the -// bounding rectangle. -// By default glyphs are first aligned -// inside the margines, then any glyphs which -// still overhang the bounding box are -// repositioned to avoid any overhang. -// For example when an italic -// lower case letter f in a font such as -// Garamond is aligned at the far left of a -// rectangle, the lower part of the f will -// reach slightly further left than the left -// edge of the rectangle. Setting this flag -// will ensure the character aligns visually -// with the lines above and below, but may -// cause some pixels outside the formatting -// rectangle to be clipped or painted. -// -// DisplayFormatControl - Causes control characters such as the -// left-to-right mark to be shown in the -// output with a representative glyph. -// -// NoFontFallback - Disables fallback to alternate fonts for -// characters not supported in the requested -// font. Any missing characters will be -// be displayed with the fonts missing glyph, -// usually an open square. -// -// NoWrap - Disables wrapping of text between lines -// when formatting within a rectangle. -// NoWrap is implied when a point is passed -// instead of a rectangle, or when the -// specified rectangle has a zero line length. -// -// NoClip - By default text is clipped to the -// formatting rectangle. Setting NoClip -// allows overhanging pixels to affect the -// device outside the formatting rectangle. -// Pixels at the end of the line may be -// affected if the glyphs overhang their -// cells, and either the NoFitBlackBox flag -// has been set, or the glyph extends to far -// to be fitted. -// Pixels above/before the first line or -// below/after the last line may be affected -// if the glyphs extend beyond their cell -// ascent / descent. This can occur rarely -// with unusual diacritic mark combinations. - -//--------------------------------------------------------------------------- - -enum StringFormatFlags -{ - StringFormatFlagsDirectionRightToLeft = 0x00000001, - StringFormatFlagsDirectionVertical = 0x00000002, - StringFormatFlagsNoFitBlackBox = 0x00000004, - StringFormatFlagsDisplayFormatControl = 0x00000020, - StringFormatFlagsNoFontFallback = 0x00000400, - StringFormatFlagsMeasureTrailingSpaces = 0x00000800, - StringFormatFlagsNoWrap = 0x00001000, - StringFormatFlagsLineLimit = 0x00002000, - - StringFormatFlagsNoClip = 0x00004000 -}; - -//--------------------------------------------------------------------------- -// StringTrimming -//--------------------------------------------------------------------------- - -enum StringTrimming { - StringTrimmingNone = 0, - StringTrimmingCharacter = 1, - StringTrimmingWord = 2, - StringTrimmingEllipsisCharacter = 3, - StringTrimmingEllipsisWord = 4, - StringTrimmingEllipsisPath = 5 -}; - -//--------------------------------------------------------------------------- -// National language digit substitution -//--------------------------------------------------------------------------- - -enum StringDigitSubstitute -{ - StringDigitSubstituteUser = 0, // As NLS setting - StringDigitSubstituteNone = 1, - StringDigitSubstituteNational = 2, - StringDigitSubstituteTraditional = 3 -}; - -//--------------------------------------------------------------------------- -// Hotkey prefix interpretation -//--------------------------------------------------------------------------- - -enum HotkeyPrefix -{ - HotkeyPrefixNone = 0, - HotkeyPrefixShow = 1, - HotkeyPrefixHide = 2 -}; - -//--------------------------------------------------------------------------- -// String alignment flags -//--------------------------------------------------------------------------- - -enum StringAlignment -{ - // Left edge for left-to-right text, - // right for right-to-left text, - // and top for vertical - StringAlignmentNear = 0, - StringAlignmentCenter = 1, - StringAlignmentFar = 2 -}; - -//--------------------------------------------------------------------------- -// DriverStringOptions -//--------------------------------------------------------------------------- - -enum DriverStringOptions -{ - DriverStringOptionsCmapLookup = 1, - DriverStringOptionsVertical = 2, - DriverStringOptionsRealizedAdvance = 4, - DriverStringOptionsLimitSubpixel = 8 -}; - -//--------------------------------------------------------------------------- -// Flush Intention flags -//--------------------------------------------------------------------------- - -enum FlushIntention -{ - FlushIntentionFlush = 0, // Flush all batched rendering operations - FlushIntentionSync = 1 // Flush all batched rendering operations - // and wait for them to complete -}; - -//--------------------------------------------------------------------------- -// Image encoder parameter related types -//--------------------------------------------------------------------------- - -enum EncoderParameterValueType -{ - EncoderParameterValueTypeByte = 1, // 8-bit unsigned int - EncoderParameterValueTypeASCII = 2, // 8-bit byte containing one 7-bit ASCII - // code. NULL terminated. - EncoderParameterValueTypeShort = 3, // 16-bit unsigned int - EncoderParameterValueTypeLong = 4, // 32-bit unsigned int - EncoderParameterValueTypeRational = 5, // Two Longs. The first Long is the - // numerator, the second Long expresses the - // denomintor. - EncoderParameterValueTypeLongRange = 6, // Two longs which specify a range of - // integer values. The first Long specifies - // the lower end and the second one - // specifies the higher end. All values - // are inclusive at both ends - EncoderParameterValueTypeUndefined = 7, // 8-bit byte that can take any value - // depending on field definition - EncoderParameterValueTypeRationalRange = 8 // Two Rationals. The first Rational - // specifies the lower end and the second - // specifies the higher end. All values - // are inclusive at both ends -}; - -//--------------------------------------------------------------------------- -// Image encoder value types -//--------------------------------------------------------------------------- - -enum EncoderValue -{ - EncoderValueColorTypeCMYK, - EncoderValueColorTypeYCCK, - EncoderValueCompressionLZW, - EncoderValueCompressionCCITT3, - EncoderValueCompressionCCITT4, - EncoderValueCompressionRle, - EncoderValueCompressionNone, - EncoderValueScanMethodInterlaced, - EncoderValueScanMethodNonInterlaced, - EncoderValueVersionGif87, - EncoderValueVersionGif89, - EncoderValueRenderProgressive, - EncoderValueRenderNonProgressive, - EncoderValueTransformRotate90, - EncoderValueTransformRotate180, - EncoderValueTransformRotate270, - EncoderValueTransformFlipHorizontal, - EncoderValueTransformFlipVertical, - EncoderValueMultiFrame, - EncoderValueLastFrame, - EncoderValueFlush, - EncoderValueFrameDimensionTime, - EncoderValueFrameDimensionResolution, - EncoderValueFrameDimensionPage -}; - -//--------------------------------------------------------------------------- -// Conversion of Emf To WMF Bits flags -//--------------------------------------------------------------------------- - -enum EmfToWmfBitsFlags -{ - EmfToWmfBitsFlagsDefault = 0x00000000, - EmfToWmfBitsFlagsEmbedEmf = 0x00000001, - EmfToWmfBitsFlagsIncludePlaceable = 0x00000002, - EmfToWmfBitsFlagsNoXORClip = 0x00000004 -}; - -//--------------------------------------------------------------------------- -// Test Control flags -//--------------------------------------------------------------------------- - -enum GpTestControlEnum -{ - TestControlForceBilinear = 0, - TestControlNoICM = 1, - TestControlGetBuildNumber = 2 -}; - - - -#endif // !_GDIPLUSENUMS_H diff --git a/desmume/src/windows/gdiplus/GdiPlusFlat.h b/desmume/src/windows/gdiplus/GdiPlusFlat.h deleted file mode 100644 index beacd155b..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusFlat.h +++ /dev/null @@ -1,2650 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusFlat.h -* -* Abstract: -* -* Private GDI+ header file. -* -\**************************************************************************/ - -#ifndef _FLATAPI_H -#define _FLATAPI_H - -#define WINGDIPAPI __stdcall - -#define GDIPCONST const - -#ifdef __cplusplus -extern "C" { -#endif - -//---------------------------------------------------------------------------- -// GraphicsPath APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreatePath(GpFillMode brushMode, GpPath **path); - -GpStatus WINGDIPAPI -GdipCreatePath2(GDIPCONST GpPointF*, GDIPCONST BYTE*, INT, GpFillMode, - GpPath **path); - -GpStatus WINGDIPAPI -GdipCreatePath2I(GDIPCONST GpPoint*, GDIPCONST BYTE*, INT, GpFillMode, - GpPath **path); - -GpStatus WINGDIPAPI -GdipClonePath(GpPath* path, GpPath **clonePath); - -GpStatus WINGDIPAPI -GdipDeletePath(GpPath* path); - -GpStatus WINGDIPAPI -GdipResetPath(GpPath* path); - -GpStatus WINGDIPAPI -GdipGetPointCount(GpPath* path, INT* count); - -GpStatus WINGDIPAPI -GdipGetPathTypes(GpPath* path, BYTE* types, INT count); - -GpStatus WINGDIPAPI -GdipGetPathPoints(GpPath*, GpPointF* points, INT count); - -GpStatus WINGDIPAPI -GdipGetPathPointsI(GpPath*, GpPoint* points, INT count); - -GpStatus WINGDIPAPI -GdipGetPathFillMode(GpPath *path, GpFillMode *fillmode); - -GpStatus WINGDIPAPI -GdipSetPathFillMode(GpPath *path, GpFillMode fillmode); - -GpStatus WINGDIPAPI -GdipGetPathData(GpPath *path, GpPathData* pathData); - -GpStatus WINGDIPAPI -GdipStartPathFigure(GpPath *path); - -GpStatus WINGDIPAPI -GdipClosePathFigure(GpPath *path); - -GpStatus WINGDIPAPI -GdipClosePathFigures(GpPath *path); - -GpStatus WINGDIPAPI -GdipSetPathMarker(GpPath* path); - -GpStatus WINGDIPAPI -GdipClearPathMarkers(GpPath* path); - -GpStatus WINGDIPAPI -GdipReversePath(GpPath* path); - -GpStatus WINGDIPAPI -GdipGetPathLastPoint(GpPath* path, GpPointF* lastPoint); - -GpStatus WINGDIPAPI -GdipAddPathLine(GpPath *path, REAL x1, REAL y1, REAL x2, REAL y2); - -GpStatus WINGDIPAPI -GdipAddPathLine2(GpPath *path, GDIPCONST GpPointF *points, INT count); - -GpStatus WINGDIPAPI -GdipAddPathArc(GpPath *path, REAL x, REAL y, REAL width, REAL height, - REAL startAngle, REAL sweepAngle); - -GpStatus WINGDIPAPI -GdipAddPathBezier(GpPath *path, REAL x1, REAL y1, REAL x2, REAL y2, - REAL x3, REAL y3, REAL x4, REAL y4); - -GpStatus WINGDIPAPI -GdipAddPathBeziers(GpPath *path, GDIPCONST GpPointF *points, INT count); - -GpStatus WINGDIPAPI -GdipAddPathCurve(GpPath *path, GDIPCONST GpPointF *points, INT count); - -GpStatus WINGDIPAPI -GdipAddPathCurve2(GpPath *path, GDIPCONST GpPointF *points, INT count, - REAL tension); - -GpStatus WINGDIPAPI -GdipAddPathCurve3(GpPath *path, GDIPCONST GpPointF *points, INT count, - INT offset, INT numberOfSegments, REAL tension); - -GpStatus WINGDIPAPI -GdipAddPathClosedCurve(GpPath *path, GDIPCONST GpPointF *points, INT count); - -GpStatus WINGDIPAPI -GdipAddPathClosedCurve2(GpPath *path, GDIPCONST GpPointF *points, INT count, - REAL tension); - -GpStatus WINGDIPAPI -GdipAddPathRectangle(GpPath *path, REAL x, REAL y, REAL width, REAL height); - -GpStatus WINGDIPAPI -GdipAddPathRectangles(GpPath *path, GDIPCONST GpRectF *rects, INT count); - -GpStatus WINGDIPAPI -GdipAddPathEllipse(GpPath *path, REAL x, REAL y, REAL width, - REAL height); - -GpStatus WINGDIPAPI -GdipAddPathPie(GpPath *path, REAL x, REAL y, REAL width, REAL height, - REAL startAngle, REAL sweepAngle); - -GpStatus WINGDIPAPI -GdipAddPathPolygon(GpPath *path, GDIPCONST GpPointF *points, INT count); - -GpStatus WINGDIPAPI -GdipAddPathPath(GpPath *path, GDIPCONST GpPath* addingPath, BOOL connect); - -GpStatus WINGDIPAPI -GdipAddPathString(GpPath *path, GDIPCONST WCHAR *string, - INT length, GDIPCONST GpFontFamily *family, INT style, - REAL emSize, GDIPCONST RectF *layoutRect, - GDIPCONST GpStringFormat *format); - -GpStatus WINGDIPAPI -GdipAddPathStringI(GpPath *path, GDIPCONST WCHAR *string, - INT length, GDIPCONST GpFontFamily *family, INT style, - REAL emSize, GDIPCONST Rect *layoutRect, - GDIPCONST GpStringFormat *format); - -GpStatus WINGDIPAPI -GdipAddPathLineI(GpPath *path, INT x1, INT y1, INT x2, INT y2); - -GpStatus WINGDIPAPI -GdipAddPathLine2I(GpPath *path, GDIPCONST GpPoint *points, INT count); - -GpStatus WINGDIPAPI -GdipAddPathArcI(GpPath *path, INT x, INT y, INT width, INT height, - REAL startAngle, REAL sweepAngle); - -GpStatus WINGDIPAPI -GdipAddPathBezierI(GpPath *path, INT x1, INT y1, INT x2, INT y2, - INT x3, INT y3, INT x4, INT y4); - -GpStatus WINGDIPAPI -GdipAddPathBeziersI(GpPath *path, GDIPCONST GpPoint *points, INT count); - -GpStatus WINGDIPAPI -GdipAddPathCurveI(GpPath *path, GDIPCONST GpPoint *points, INT count); - -GpStatus WINGDIPAPI -GdipAddPathCurve2I(GpPath *path, GDIPCONST GpPoint *points, INT count, - REAL tension); - -GpStatus WINGDIPAPI -GdipAddPathCurve3I(GpPath *path, GDIPCONST GpPoint *points, INT count, - INT offset, INT numberOfSegments, REAL tension); - -GpStatus WINGDIPAPI -GdipAddPathClosedCurveI(GpPath *path, GDIPCONST GpPoint *points, INT count); - -GpStatus WINGDIPAPI -GdipAddPathClosedCurve2I(GpPath *path, GDIPCONST GpPoint *points, INT count, - REAL tension); - -GpStatus WINGDIPAPI -GdipAddPathRectangleI(GpPath *path, INT x, INT y, INT width, INT height); - -GpStatus WINGDIPAPI -GdipAddPathRectanglesI(GpPath *path, GDIPCONST GpRect *rects, INT count); - -GpStatus WINGDIPAPI -GdipAddPathEllipseI(GpPath *path, INT x, INT y, INT width, INT height); - -GpStatus WINGDIPAPI -GdipAddPathPieI(GpPath *path, INT x, INT y, INT width, INT height, - REAL startAngle, REAL sweepAngle); - -GpStatus WINGDIPAPI -GdipAddPathPolygonI(GpPath *path, GDIPCONST GpPoint *points, INT count); - -GpStatus WINGDIPAPI -GdipFlattenPath(GpPath *path, GpMatrix* matrix, REAL flatness); - -GpStatus WINGDIPAPI -GdipWindingModeOutline( - GpPath *path, - GpMatrix *matrix, - REAL flatness -); - -GpStatus WINGDIPAPI -GdipWidenPath( - GpPath *nativePath, - GpPen *pen, - GpMatrix *matrix, - REAL flatness -); - -GpStatus WINGDIPAPI -GdipWarpPath(GpPath *path, GpMatrix* matrix, - GDIPCONST GpPointF *points, INT count, - REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight, - WarpMode warpMode, REAL flatness); - -GpStatus WINGDIPAPI -GdipTransformPath(GpPath* path, GpMatrix* matrix); - -GpStatus WINGDIPAPI -GdipGetPathWorldBounds(GpPath* path, GpRectF* bounds, - GDIPCONST GpMatrix *matrix, GDIPCONST GpPen *pen); - -GpStatus WINGDIPAPI -GdipGetPathWorldBoundsI(GpPath* path, GpRect* bounds, - GDIPCONST GpMatrix *matrix, GDIPCONST GpPen *pen); - -GpStatus WINGDIPAPI -GdipIsVisiblePathPoint(GpPath* path, REAL x, REAL y, - GpGraphics *graphics, BOOL *result); - -GpStatus WINGDIPAPI -GdipIsVisiblePathPointI(GpPath* path, INT x, INT y, - GpGraphics *graphics, BOOL *result); - -GpStatus WINGDIPAPI -GdipIsOutlineVisiblePathPoint(GpPath* path, REAL x, REAL y, GpPen *pen, - GpGraphics *graphics, BOOL *result); - -GpStatus WINGDIPAPI -GdipIsOutlineVisiblePathPointI(GpPath* path, INT x, INT y, GpPen *pen, - GpGraphics *graphics, BOOL *result); - - -//---------------------------------------------------------------------------- -// PathIterator APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreatePathIter(GpPathIterator **iterator, GpPath* path); - -GpStatus WINGDIPAPI -GdipDeletePathIter(GpPathIterator *iterator); - -GpStatus WINGDIPAPI -GdipPathIterNextSubpath(GpPathIterator* iterator, INT *resultCount, - INT* startIndex, INT* endIndex, BOOL* isClosed); - -GpStatus WINGDIPAPI -GdipPathIterNextSubpathPath(GpPathIterator* iterator, INT* resultCount, - GpPath* path, BOOL* isClosed); - -GpStatus WINGDIPAPI -GdipPathIterNextPathType(GpPathIterator* iterator, INT* resultCount, - BYTE* pathType, INT* startIndex, INT* endIndex); - -GpStatus WINGDIPAPI -GdipPathIterNextMarker(GpPathIterator* iterator, INT *resultCount, - INT* startIndex, INT* endIndex); - -GpStatus WINGDIPAPI -GdipPathIterNextMarkerPath(GpPathIterator* iterator, INT* resultCount, - GpPath* path); - -GpStatus WINGDIPAPI -GdipPathIterGetCount(GpPathIterator* iterator, INT* count); - -GpStatus WINGDIPAPI -GdipPathIterGetSubpathCount(GpPathIterator* iterator, INT* count); - -GpStatus WINGDIPAPI -GdipPathIterIsValid(GpPathIterator* iterator, BOOL* valid); - -GpStatus WINGDIPAPI -GdipPathIterHasCurve(GpPathIterator* iterator, BOOL* hasCurve); - -GpStatus WINGDIPAPI -GdipPathIterRewind(GpPathIterator* iterator); - -GpStatus WINGDIPAPI -GdipPathIterEnumerate(GpPathIterator* iterator, INT* resultCount, - GpPointF *points, BYTE *types, INT count); - -GpStatus WINGDIPAPI -GdipPathIterCopyData(GpPathIterator* iterator, INT* resultCount, - GpPointF* points, BYTE* types, INT startIndex, INT endIndex); - -//---------------------------------------------------------------------------- -// Matrix APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateMatrix(GpMatrix **matrix); - -GpStatus WINGDIPAPI -GdipCreateMatrix2(REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, - REAL dy, GpMatrix **matrix); - -GpStatus WINGDIPAPI -GdipCreateMatrix3(GDIPCONST GpRectF *rect, GDIPCONST GpPointF *dstplg, - GpMatrix **matrix); - -GpStatus WINGDIPAPI -GdipCreateMatrix3I(GDIPCONST GpRect *rect, GDIPCONST GpPoint *dstplg, - GpMatrix **matrix); - -GpStatus WINGDIPAPI -GdipCloneMatrix(GpMatrix *matrix, GpMatrix **cloneMatrix); - -GpStatus WINGDIPAPI -GdipDeleteMatrix(GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipSetMatrixElements(GpMatrix *matrix, REAL m11, REAL m12, REAL m21, REAL m22, - REAL dx, REAL dy); - -GpStatus WINGDIPAPI -GdipMultiplyMatrix(GpMatrix *matrix, GpMatrix* matrix2, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipTranslateMatrix(GpMatrix *matrix, REAL offsetX, REAL offsetY, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipScaleMatrix(GpMatrix *matrix, REAL scaleX, REAL scaleY, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipRotateMatrix(GpMatrix *matrix, REAL angle, GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipShearMatrix(GpMatrix *matrix, REAL shearX, REAL shearY, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipInvertMatrix(GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipTransformMatrixPoints(GpMatrix *matrix, GpPointF *pts, INT count); - -GpStatus WINGDIPAPI -GdipTransformMatrixPointsI(GpMatrix *matrix, GpPoint *pts, INT count); - -GpStatus WINGDIPAPI -GdipVectorTransformMatrixPoints(GpMatrix *matrix, GpPointF *pts, - INT count); - -GpStatus WINGDIPAPI -GdipVectorTransformMatrixPointsI(GpMatrix *matrix, GpPoint *pts, - INT count); - -GpStatus WINGDIPAPI -GdipGetMatrixElements(GDIPCONST GpMatrix *matrix, REAL *matrixOut); - -GpStatus WINGDIPAPI -GdipIsMatrixInvertible(GDIPCONST GpMatrix *matrix, BOOL *result); - -GpStatus WINGDIPAPI -GdipIsMatrixIdentity(GDIPCONST GpMatrix *matrix, BOOL *result); - -GpStatus WINGDIPAPI -GdipIsMatrixEqual(GDIPCONST GpMatrix *matrix, GDIPCONST GpMatrix *matrix2, - BOOL *result); - -//---------------------------------------------------------------------------- -// Region APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateRegion(GpRegion **region); - -GpStatus WINGDIPAPI -GdipCreateRegionRect(GDIPCONST GpRectF *rect, GpRegion **region); - -GpStatus WINGDIPAPI -GdipCreateRegionRectI(GDIPCONST GpRect *rect, GpRegion **region); - -GpStatus WINGDIPAPI -GdipCreateRegionPath(GpPath *path, GpRegion **region); - -GpStatus WINGDIPAPI -GdipCreateRegionRgnData(GDIPCONST BYTE *regionData, INT size, - GpRegion **region); - -GpStatus WINGDIPAPI -GdipCreateRegionHrgn(HRGN hRgn, GpRegion **region); - -GpStatus WINGDIPAPI -GdipCloneRegion(GpRegion *region, GpRegion **cloneRegion); - -GpStatus WINGDIPAPI -GdipDeleteRegion(GpRegion *region); - -GpStatus WINGDIPAPI -GdipSetInfinite(GpRegion *region); - -GpStatus WINGDIPAPI -GdipSetEmpty(GpRegion *region); - -GpStatus WINGDIPAPI -GdipCombineRegionRect(GpRegion *region, GDIPCONST GpRectF *rect, - CombineMode combineMode); - -GpStatus WINGDIPAPI -GdipCombineRegionRectI(GpRegion *region, GDIPCONST GpRect *rect, - CombineMode combineMode); - -GpStatus WINGDIPAPI -GdipCombineRegionPath(GpRegion *region, GpPath *path, CombineMode combineMode); - -GpStatus WINGDIPAPI -GdipCombineRegionRegion(GpRegion *region, GpRegion *region2, - CombineMode combineMode); - -GpStatus WINGDIPAPI -GdipTranslateRegion(GpRegion *region, REAL dx, REAL dy); - -GpStatus WINGDIPAPI -GdipTranslateRegionI(GpRegion *region, INT dx, INT dy); - -GpStatus WINGDIPAPI -GdipTransformRegion(GpRegion *region, GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipGetRegionBounds(GpRegion *region, GpGraphics *graphics, - GpRectF *rect); - -GpStatus WINGDIPAPI -GdipGetRegionBoundsI(GpRegion *region, GpGraphics *graphics, - GpRect *rect); - -GpStatus WINGDIPAPI -GdipGetRegionHRgn(GpRegion *region, GpGraphics *graphics, HRGN *hRgn); - -GpStatus WINGDIPAPI -GdipIsEmptyRegion(GpRegion *region, GpGraphics *graphics, - BOOL *result); - -GpStatus WINGDIPAPI -GdipIsInfiniteRegion(GpRegion *region, GpGraphics *graphics, - BOOL *result); - -GpStatus WINGDIPAPI -GdipIsEqualRegion(GpRegion *region, GpRegion *region2, - GpGraphics *graphics, BOOL *result); - -GpStatus WINGDIPAPI -GdipGetRegionDataSize(GpRegion *region, UINT * bufferSize); - -GpStatus WINGDIPAPI -GdipGetRegionData(GpRegion *region, BYTE * buffer, UINT bufferSize, - UINT * sizeFilled); - -GpStatus WINGDIPAPI -GdipIsVisibleRegionPoint(GpRegion *region, REAL x, REAL y, - GpGraphics *graphics, BOOL *result); - -GpStatus WINGDIPAPI -GdipIsVisibleRegionPointI(GpRegion *region, INT x, INT y, - GpGraphics *graphics, BOOL *result); - -GpStatus WINGDIPAPI -GdipIsVisibleRegionRect(GpRegion *region, REAL x, REAL y, REAL width, - REAL height, GpGraphics *graphics, BOOL *result); - -GpStatus WINGDIPAPI -GdipIsVisibleRegionRectI(GpRegion *region, INT x, INT y, INT width, - INT height, GpGraphics *graphics, BOOL *result); - -GpStatus WINGDIPAPI -GdipGetRegionScansCount(GpRegion *region, UINT* count, GpMatrix* matrix); - -GpStatus WINGDIPAPI -GdipGetRegionScans(GpRegion *region, GpRectF* rects, INT* count, - GpMatrix* matrix); - -GpStatus WINGDIPAPI -GdipGetRegionScansI(GpRegion *region, GpRect* rects, INT* count, - GpMatrix* matrix); - -//---------------------------------------------------------------------------- -// Brush APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCloneBrush(GpBrush *brush, GpBrush **cloneBrush); - -GpStatus WINGDIPAPI -GdipDeleteBrush(GpBrush *brush); - -GpStatus WINGDIPAPI -GdipGetBrushType(GpBrush *brush, GpBrushType *type); - -//---------------------------------------------------------------------------- -// HatchBrush APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateHatchBrush(GpHatchStyle hatchstyle, ARGB forecol, - ARGB backcol, GpHatch **brush); - -GpStatus WINGDIPAPI -GdipGetHatchStyle(GpHatch *brush, GpHatchStyle *hatchstyle); - -GpStatus WINGDIPAPI -GdipGetHatchForegroundColor(GpHatch *brush, ARGB* forecol); - -GpStatus WINGDIPAPI -GdipGetHatchBackgroundColor(GpHatch *brush, ARGB* backcol); - -//---------------------------------------------------------------------------- -// TextureBrush APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateTexture(GpImage *image, GpWrapMode wrapmode, - GpTexture **texture); - -GpStatus WINGDIPAPI -GdipCreateTexture2(GpImage *image, GpWrapMode wrapmode, REAL x, - REAL y, REAL width, REAL height, GpTexture **texture); - -GpStatus WINGDIPAPI -GdipCreateTextureIA(GpImage *image, - GDIPCONST GpImageAttributes *imageAttributes, - REAL x, REAL y, REAL width, REAL height, - GpTexture **texture); - -GpStatus WINGDIPAPI -GdipCreateTexture2I(GpImage *image, GpWrapMode wrapmode, INT x, - INT y, INT width, INT height, GpTexture **texture); - -GpStatus WINGDIPAPI -GdipCreateTextureIAI(GpImage *image, - GDIPCONST GpImageAttributes *imageAttributes, - INT x, INT y, INT width, INT height, - GpTexture **texture); - - -GpStatus WINGDIPAPI -GdipGetTextureTransform(GpTexture *brush, GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipSetTextureTransform(GpTexture *brush, GDIPCONST GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipResetTextureTransform(GpTexture* brush); - -GpStatus WINGDIPAPI -GdipMultiplyTextureTransform(GpTexture* brush, GDIPCONST GpMatrix *matrix, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipTranslateTextureTransform(GpTexture* brush, REAL dx, REAL dy, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipScaleTextureTransform(GpTexture* brush, REAL sx, REAL sy, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipRotateTextureTransform(GpTexture* brush, REAL angle, GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipSetTextureWrapMode(GpTexture *brush, GpWrapMode wrapmode); - -GpStatus WINGDIPAPI -GdipGetTextureWrapMode(GpTexture *brush, GpWrapMode *wrapmode); - -GpStatus WINGDIPAPI -GdipGetTextureImage(GpTexture *brush, GpImage **image); - -//---------------------------------------------------------------------------- -// SolidBrush APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateSolidFill(ARGB color, GpSolidFill **brush); - -GpStatus WINGDIPAPI -GdipSetSolidFillColor(GpSolidFill *brush, ARGB color); - -GpStatus WINGDIPAPI -GdipGetSolidFillColor(GpSolidFill *brush, ARGB *color); - -//---------------------------------------------------------------------------- -// LineBrush APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateLineBrush(GDIPCONST GpPointF* point1, - GDIPCONST GpPointF* point2, - ARGB color1, ARGB color2, - GpWrapMode wrapMode, - GpLineGradient **lineGradient); - -GpStatus WINGDIPAPI -GdipCreateLineBrushI(GDIPCONST GpPoint* point1, - GDIPCONST GpPoint* point2, - ARGB color1, ARGB color2, - GpWrapMode wrapMode, - GpLineGradient **lineGradient); - -GpStatus WINGDIPAPI -GdipCreateLineBrushFromRect(GDIPCONST GpRectF* rect, - ARGB color1, ARGB color2, - LinearGradientMode mode, - GpWrapMode wrapMode, - GpLineGradient **lineGradient); - -GpStatus WINGDIPAPI -GdipCreateLineBrushFromRectI(GDIPCONST GpRect* rect, - ARGB color1, ARGB color2, - LinearGradientMode mode, - GpWrapMode wrapMode, - GpLineGradient **lineGradient); - -GpStatus WINGDIPAPI -GdipCreateLineBrushFromRectWithAngle(GDIPCONST GpRectF* rect, - ARGB color1, ARGB color2, - REAL angle, - BOOL isAngleScalable, - GpWrapMode wrapMode, - GpLineGradient **lineGradient); - -GpStatus WINGDIPAPI -GdipCreateLineBrushFromRectWithAngleI(GDIPCONST GpRect* rect, - ARGB color1, ARGB color2, - REAL angle, - BOOL isAngleScalable, - GpWrapMode wrapMode, - GpLineGradient **lineGradient); - -GpStatus WINGDIPAPI -GdipSetLineColors(GpLineGradient *brush, ARGB color1, ARGB color2); - -GpStatus WINGDIPAPI -GdipGetLineColors(GpLineGradient *brush, ARGB* colors); - -GpStatus WINGDIPAPI -GdipGetLineRect(GpLineGradient *brush, GpRectF *rect); - -GpStatus WINGDIPAPI -GdipGetLineRectI(GpLineGradient *brush, GpRect *rect); - -GpStatus WINGDIPAPI -GdipSetLineGammaCorrection(GpLineGradient *brush, BOOL useGammaCorrection); - -GpStatus WINGDIPAPI -GdipGetLineGammaCorrection(GpLineGradient *brush, BOOL *useGammaCorrection); - -GpStatus WINGDIPAPI -GdipGetLineBlendCount(GpLineGradient *brush, INT *count); - -GpStatus WINGDIPAPI -GdipGetLineBlend(GpLineGradient *brush, REAL *blend, REAL* positions, - INT count); - -GpStatus WINGDIPAPI -GdipSetLineBlend(GpLineGradient *brush, GDIPCONST REAL *blend, - GDIPCONST REAL* positions, INT count); - -GpStatus WINGDIPAPI -GdipGetLinePresetBlendCount(GpLineGradient *brush, INT *count); - -GpStatus WINGDIPAPI -GdipGetLinePresetBlend(GpLineGradient *brush, ARGB *blend, - REAL* positions, INT count); - -GpStatus WINGDIPAPI -GdipSetLinePresetBlend(GpLineGradient *brush, GDIPCONST ARGB *blend, - GDIPCONST REAL* positions, INT count); - -GpStatus WINGDIPAPI -GdipSetLineSigmaBlend(GpLineGradient *brush, REAL focus, REAL scale); - -GpStatus WINGDIPAPI -GdipSetLineLinearBlend(GpLineGradient *brush, REAL focus, REAL scale); - -GpStatus WINGDIPAPI -GdipSetLineWrapMode(GpLineGradient *brush, GpWrapMode wrapmode); - -GpStatus WINGDIPAPI -GdipGetLineWrapMode(GpLineGradient *brush, GpWrapMode *wrapmode); - -GpStatus WINGDIPAPI -GdipGetLineTransform(GpLineGradient *brush, GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipSetLineTransform(GpLineGradient *brush, GDIPCONST GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipResetLineTransform(GpLineGradient* brush); - -GpStatus WINGDIPAPI -GdipMultiplyLineTransform(GpLineGradient* brush, GDIPCONST GpMatrix *matrix, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipTranslateLineTransform(GpLineGradient* brush, REAL dx, REAL dy, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipScaleLineTransform(GpLineGradient* brush, REAL sx, REAL sy, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipRotateLineTransform(GpLineGradient* brush, REAL angle, - GpMatrixOrder order); - -//---------------------------------------------------------------------------- -// PathGradientBrush APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreatePathGradient(GDIPCONST GpPointF* points, - INT count, - GpWrapMode wrapMode, - GpPathGradient **polyGradient); - -GpStatus WINGDIPAPI -GdipCreatePathGradientI(GDIPCONST GpPoint* points, - INT count, - GpWrapMode wrapMode, - GpPathGradient **polyGradient); - -GpStatus WINGDIPAPI -GdipCreatePathGradientFromPath(GDIPCONST GpPath* path, - GpPathGradient **polyGradient); - -GpStatus WINGDIPAPI -GdipGetPathGradientCenterColor( - GpPathGradient *brush, ARGB* colors); - -GpStatus WINGDIPAPI -GdipSetPathGradientCenterColor( - GpPathGradient *brush, ARGB colors); - -GpStatus WINGDIPAPI -GdipGetPathGradientSurroundColorsWithCount( - GpPathGradient *brush, ARGB* color, INT* count); - -GpStatus WINGDIPAPI -GdipSetPathGradientSurroundColorsWithCount( - GpPathGradient *brush, - GDIPCONST ARGB* color, INT* count); - -GpStatus WINGDIPAPI -GdipGetPathGradientPath(GpPathGradient *brush, GpPath *path); - -GpStatus WINGDIPAPI -GdipSetPathGradientPath(GpPathGradient *brush, GDIPCONST GpPath *path); - -GpStatus WINGDIPAPI -GdipGetPathGradientCenterPoint( - GpPathGradient *brush, GpPointF* points); - -GpStatus WINGDIPAPI -GdipGetPathGradientCenterPointI( - GpPathGradient *brush, GpPoint* points); - -GpStatus WINGDIPAPI -GdipSetPathGradientCenterPoint( - GpPathGradient *brush, GDIPCONST GpPointF* points); - -GpStatus WINGDIPAPI -GdipSetPathGradientCenterPointI( - GpPathGradient *brush, GDIPCONST GpPoint* points); - -GpStatus WINGDIPAPI -GdipGetPathGradientRect(GpPathGradient *brush, GpRectF *rect); - -GpStatus WINGDIPAPI -GdipGetPathGradientRectI(GpPathGradient *brush, GpRect *rect); - -GpStatus WINGDIPAPI -GdipGetPathGradientPointCount(GpPathGradient *brush, INT* count); - -GpStatus WINGDIPAPI -GdipGetPathGradientSurroundColorCount(GpPathGradient *brush, INT* count); - -GpStatus WINGDIPAPI -GdipSetPathGradientGammaCorrection(GpPathGradient *brush, - BOOL useGammaCorrection); - -GpStatus WINGDIPAPI -GdipGetPathGradientGammaCorrection(GpPathGradient *brush, - BOOL *useGammaCorrection); - -GpStatus WINGDIPAPI -GdipGetPathGradientBlendCount(GpPathGradient *brush, - INT *count); - -GpStatus WINGDIPAPI -GdipGetPathGradientBlend(GpPathGradient *brush, - REAL *blend, REAL *positions, INT count); - -GpStatus WINGDIPAPI -GdipSetPathGradientBlend(GpPathGradient *brush, - GDIPCONST REAL *blend, GDIPCONST REAL *positions, INT count); - -GpStatus WINGDIPAPI -GdipGetPathGradientPresetBlendCount(GpPathGradient *brush, INT *count); - -GpStatus WINGDIPAPI -GdipGetPathGradientPresetBlend(GpPathGradient *brush, ARGB *blend, - REAL* positions, INT count); - -GpStatus WINGDIPAPI -GdipSetPathGradientPresetBlend(GpPathGradient *brush, GDIPCONST ARGB *blend, - GDIPCONST REAL* positions, INT count); - -GpStatus WINGDIPAPI -GdipSetPathGradientSigmaBlend(GpPathGradient *brush, REAL focus, REAL scale); - -GpStatus WINGDIPAPI -GdipSetPathGradientLinearBlend(GpPathGradient *brush, REAL focus, REAL scale); - -GpStatus WINGDIPAPI -GdipGetPathGradientWrapMode(GpPathGradient *brush, - GpWrapMode *wrapmode); - -GpStatus WINGDIPAPI -GdipSetPathGradientWrapMode(GpPathGradient *brush, - GpWrapMode wrapmode); - -GpStatus WINGDIPAPI -GdipGetPathGradientTransform(GpPathGradient *brush, - GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipSetPathGradientTransform(GpPathGradient *brush, - GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipResetPathGradientTransform(GpPathGradient* brush); - -GpStatus WINGDIPAPI -GdipMultiplyPathGradientTransform(GpPathGradient* brush, - GDIPCONST GpMatrix *matrix, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipTranslatePathGradientTransform(GpPathGradient* brush, REAL dx, REAL dy, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipScalePathGradientTransform(GpPathGradient* brush, REAL sx, REAL sy, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipRotatePathGradientTransform(GpPathGradient* brush, REAL angle, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipGetPathGradientFocusScales(GpPathGradient *brush, REAL* xScale, - REAL* yScale); - -GpStatus WINGDIPAPI -GdipSetPathGradientFocusScales(GpPathGradient *brush, REAL xScale, - REAL yScale); - -//---------------------------------------------------------------------------- -// Pen APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreatePen1(ARGB color, REAL width, GpUnit unit, GpPen **pen); - -GpStatus WINGDIPAPI -GdipCreatePen2(GpBrush *brush, REAL width, GpUnit unit, - GpPen **pen); - -GpStatus WINGDIPAPI -GdipClonePen(GpPen *pen, GpPen **clonepen); - -GpStatus WINGDIPAPI -GdipDeletePen(GpPen *pen); - -GpStatus WINGDIPAPI -GdipSetPenWidth(GpPen *pen, REAL width); - -GpStatus WINGDIPAPI -GdipGetPenWidth(GpPen *pen, REAL *width); - -GpStatus WINGDIPAPI -GdipSetPenUnit(GpPen *pen, GpUnit unit); - -GpStatus WINGDIPAPI -GdipGetPenUnit(GpPen *pen, GpUnit *unit); - -GpStatus WINGDIPAPI -GdipSetPenLineCap197819(GpPen *pen, GpLineCap startCap, GpLineCap endCap, - GpDashCap dashCap); - -GpStatus WINGDIPAPI -GdipSetPenStartCap(GpPen *pen, GpLineCap startCap); - -GpStatus WINGDIPAPI -GdipSetPenEndCap(GpPen *pen, GpLineCap endCap); - -GpStatus WINGDIPAPI -GdipSetPenDashCap197819(GpPen *pen, GpDashCap dashCap); - -GpStatus WINGDIPAPI -GdipGetPenStartCap(GpPen *pen, GpLineCap *startCap); - -GpStatus WINGDIPAPI -GdipGetPenEndCap(GpPen *pen, GpLineCap *endCap); - -GpStatus WINGDIPAPI -GdipGetPenDashCap197819(GpPen *pen, GpDashCap *dashCap); - -GpStatus WINGDIPAPI -GdipSetPenLineJoin(GpPen *pen, GpLineJoin lineJoin); - -GpStatus WINGDIPAPI -GdipGetPenLineJoin(GpPen *pen, GpLineJoin *lineJoin); - -GpStatus WINGDIPAPI -GdipSetPenCustomStartCap(GpPen *pen, GpCustomLineCap* customCap); - -GpStatus WINGDIPAPI -GdipGetPenCustomStartCap(GpPen *pen, GpCustomLineCap** customCap); - -GpStatus WINGDIPAPI -GdipSetPenCustomEndCap(GpPen *pen, GpCustomLineCap* customCap); - -GpStatus WINGDIPAPI -GdipGetPenCustomEndCap(GpPen *pen, GpCustomLineCap** customCap); - -GpStatus WINGDIPAPI -GdipSetPenMiterLimit(GpPen *pen, REAL miterLimit); - -GpStatus WINGDIPAPI -GdipGetPenMiterLimit(GpPen *pen, REAL *miterLimit); - -GpStatus WINGDIPAPI -GdipSetPenMode(GpPen *pen, GpPenAlignment penMode); - -GpStatus WINGDIPAPI -GdipGetPenMode(GpPen *pen, GpPenAlignment *penMode); - -GpStatus WINGDIPAPI -GdipSetPenTransform(GpPen *pen, GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipGetPenTransform(GpPen *pen, GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipResetPenTransform(GpPen *pen); - -GpStatus WINGDIPAPI -GdipMultiplyPenTransform(GpPen *pen, GDIPCONST GpMatrix *matrix, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipTranslatePenTransform(GpPen *pen, REAL dx, REAL dy, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipScalePenTransform(GpPen *pen, REAL sx, REAL sy, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipRotatePenTransform(GpPen *pen, REAL angle, GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipSetPenColor(GpPen *pen, ARGB argb); - -GpStatus WINGDIPAPI -GdipGetPenColor(GpPen *pen, ARGB *argb); - -GpStatus WINGDIPAPI -GdipSetPenBrushFill(GpPen *pen, GpBrush *brush); - -GpStatus WINGDIPAPI -GdipGetPenBrushFill(GpPen *pen, GpBrush **brush); - -GpStatus WINGDIPAPI -GdipGetPenFillType(GpPen *pen, GpPenType* type); - -GpStatus WINGDIPAPI -GdipGetPenDashStyle(GpPen *pen, GpDashStyle *dashstyle); - -GpStatus WINGDIPAPI -GdipSetPenDashStyle(GpPen *pen, GpDashStyle dashstyle); - -GpStatus WINGDIPAPI -GdipGetPenDashOffset(GpPen *pen, REAL *offset); - -GpStatus WINGDIPAPI -GdipSetPenDashOffset(GpPen *pen, REAL offset); - -GpStatus WINGDIPAPI -GdipGetPenDashCount(GpPen *pen, INT *count); - -GpStatus WINGDIPAPI -GdipSetPenDashArray(GpPen *pen, GDIPCONST REAL *dash, INT count); - -GpStatus WINGDIPAPI -GdipGetPenDashArray(GpPen *pen, REAL *dash, INT count); - -GpStatus WINGDIPAPI -GdipGetPenCompoundCount(GpPen *pen, INT *count); - -GpStatus WINGDIPAPI -GdipSetPenCompoundArray(GpPen *pen, GDIPCONST REAL *dash, INT count); - -GpStatus WINGDIPAPI -GdipGetPenCompoundArray(GpPen *pen, REAL *dash, INT count); - -//---------------------------------------------------------------------------- -// CustomLineCap APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateCustomLineCap(GpPath* fillPath, GpPath* strokePath, - GpLineCap baseCap, REAL baseInset, GpCustomLineCap **customCap); - -GpStatus WINGDIPAPI -GdipDeleteCustomLineCap(GpCustomLineCap* customCap); - -GpStatus WINGDIPAPI -GdipCloneCustomLineCap(GpCustomLineCap* customCap, - GpCustomLineCap** clonedCap); - -GpStatus WINGDIPAPI -GdipGetCustomLineCapType(GpCustomLineCap* customCap, - CustomLineCapType* capType); - -GpStatus WINGDIPAPI -GdipSetCustomLineCapStrokeCaps(GpCustomLineCap* customCap, - GpLineCap startCap, GpLineCap endCap); - -GpStatus WINGDIPAPI -GdipGetCustomLineCapStrokeCaps(GpCustomLineCap* customCap, - GpLineCap* startCap, GpLineCap* endCap); - -GpStatus WINGDIPAPI -GdipSetCustomLineCapStrokeJoin(GpCustomLineCap* customCap, - GpLineJoin lineJoin); - -GpStatus WINGDIPAPI -GdipGetCustomLineCapStrokeJoin(GpCustomLineCap* customCap, - GpLineJoin* lineJoin); - -GpStatus WINGDIPAPI -GdipSetCustomLineCapBaseCap(GpCustomLineCap* customCap, GpLineCap baseCap); - -GpStatus WINGDIPAPI -GdipGetCustomLineCapBaseCap(GpCustomLineCap* customCap, GpLineCap* baseCap); - -GpStatus WINGDIPAPI -GdipSetCustomLineCapBaseInset(GpCustomLineCap* customCap, REAL inset); - -GpStatus WINGDIPAPI -GdipGetCustomLineCapBaseInset(GpCustomLineCap* customCap, REAL* inset); - -GpStatus WINGDIPAPI -GdipSetCustomLineCapWidthScale(GpCustomLineCap* customCap, REAL widthScale); - -GpStatus WINGDIPAPI -GdipGetCustomLineCapWidthScale(GpCustomLineCap* customCap, REAL* widthScale); - -//---------------------------------------------------------------------------- -// AdjustableArrowCap APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateAdjustableArrowCap(REAL height, REAL width, BOOL isFilled, - GpAdjustableArrowCap **cap); - -GpStatus WINGDIPAPI -GdipSetAdjustableArrowCapHeight(GpAdjustableArrowCap* cap, REAL height); - -GpStatus WINGDIPAPI -GdipGetAdjustableArrowCapHeight(GpAdjustableArrowCap* cap, REAL* height); - -GpStatus WINGDIPAPI -GdipSetAdjustableArrowCapWidth(GpAdjustableArrowCap* cap, REAL width); - -GpStatus WINGDIPAPI -GdipGetAdjustableArrowCapWidth(GpAdjustableArrowCap* cap, REAL* width); - -GpStatus WINGDIPAPI -GdipSetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap* cap, - REAL middleInset); - -GpStatus WINGDIPAPI -GdipGetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap* cap, - REAL* middleInset); - -GpStatus WINGDIPAPI -GdipSetAdjustableArrowCapFillState(GpAdjustableArrowCap* cap, BOOL fillState); - -GpStatus WINGDIPAPI -GdipGetAdjustableArrowCapFillState(GpAdjustableArrowCap* cap, BOOL* fillState); - -//---------------------------------------------------------------------------- -// Image APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipLoadImageFromStream(IStream* stream, GpImage **image); - -GpStatus WINGDIPAPI -GdipLoadImageFromFile(GDIPCONST WCHAR* filename, GpImage **image); - -GpStatus WINGDIPAPI -GdipLoadImageFromStreamICM(IStream* stream, GpImage **image); - -GpStatus WINGDIPAPI -GdipLoadImageFromFileICM(GDIPCONST WCHAR* filename, GpImage **image); - -GpStatus WINGDIPAPI -GdipCloneImage(GpImage *image, GpImage **cloneImage); - -GpStatus WINGDIPAPI -GdipDisposeImage(GpImage *image); - -GpStatus WINGDIPAPI -GdipSaveImageToFile(GpImage *image, GDIPCONST WCHAR* filename, - GDIPCONST CLSID* clsidEncoder, - GDIPCONST EncoderParameters* encoderParams); - -GpStatus WINGDIPAPI -GdipSaveImageToStream(GpImage *image, IStream* stream, - GDIPCONST CLSID* clsidEncoder, - GDIPCONST EncoderParameters* encoderParams); - -GpStatus WINGDIPAPI -GdipSaveAdd(GpImage *image, GDIPCONST EncoderParameters* encoderParams); - -GpStatus WINGDIPAPI -GdipSaveAddImage(GpImage *image, GpImage* newImage, - GDIPCONST EncoderParameters* encoderParams); - -GpStatus WINGDIPAPI -GdipGetImageGraphicsContext(GpImage *image, GpGraphics **graphics); - -GpStatus WINGDIPAPI -GdipGetImageBounds(GpImage *image, GpRectF *srcRect, GpUnit *srcUnit); - -GpStatus WINGDIPAPI -GdipGetImageDimension(GpImage *image, REAL *width, REAL *height); - -GpStatus WINGDIPAPI -GdipGetImageType(GpImage *image, ImageType *type); - -GpStatus WINGDIPAPI -GdipGetImageWidth(GpImage *image, UINT *width); - -GpStatus WINGDIPAPI -GdipGetImageHeight(GpImage *image, UINT *height); - -GpStatus WINGDIPAPI -GdipGetImageHorizontalResolution(GpImage *image, REAL *resolution); - -GpStatus WINGDIPAPI -GdipGetImageVerticalResolution(GpImage *image, REAL *resolution); - -GpStatus WINGDIPAPI -GdipGetImageFlags(GpImage *image, UINT *flags); - -GpStatus WINGDIPAPI -GdipGetImageRawFormat(GpImage *image, GUID *format); - -GpStatus WINGDIPAPI -GdipGetImagePixelFormat(GpImage *image, PixelFormat *format); - -GpStatus WINGDIPAPI -GdipGetImageThumbnail(GpImage *image, UINT thumbWidth, UINT thumbHeight, - GpImage **thumbImage, - GetThumbnailImageAbort callback, VOID * callbackData); - -GpStatus WINGDIPAPI -GdipGetEncoderParameterListSize(GpImage *image, GDIPCONST CLSID* clsidEncoder, - UINT* size); - -GpStatus WINGDIPAPI -GdipGetEncoderParameterList(GpImage *image, GDIPCONST CLSID* clsidEncoder, - UINT size, EncoderParameters* buffer); - -GpStatus WINGDIPAPI -GdipImageGetFrameDimensionsCount(GpImage* image, UINT* count); - -GpStatus WINGDIPAPI -GdipImageGetFrameDimensionsList(GpImage* image, GUID* dimensionIDs, - UINT count); - -GpStatus WINGDIPAPI -GdipImageGetFrameCount(GpImage *image, GDIPCONST GUID* dimensionID, - UINT* count); - -GpStatus WINGDIPAPI -GdipImageSelectActiveFrame(GpImage *image, GDIPCONST GUID* dimensionID, - UINT frameIndex); - -GpStatus WINGDIPAPI -GdipImageRotateFlip(GpImage *image, RotateFlipType rfType); - -GpStatus WINGDIPAPI -GdipGetImagePalette(GpImage *image, ColorPalette *palette, INT size); - -GpStatus WINGDIPAPI -GdipSetImagePalette(GpImage *image, GDIPCONST ColorPalette *palette); - -GpStatus WINGDIPAPI -GdipGetImagePaletteSize(GpImage *image, INT *size); - -GpStatus WINGDIPAPI -GdipGetPropertyCount(GpImage *image, UINT* numOfProperty); - -GpStatus WINGDIPAPI -GdipGetPropertyIdList(GpImage *image, UINT numOfProperty, PROPID* list); - -GpStatus WINGDIPAPI -GdipGetPropertyItemSize(GpImage *image, PROPID propId, UINT* size); - -GpStatus WINGDIPAPI -GdipGetPropertyItem(GpImage *image, PROPID propId,UINT propSize, - PropertyItem* buffer); - -GpStatus WINGDIPAPI -GdipGetPropertySize(GpImage *image, UINT* totalBufferSize, - UINT* numProperties); - -GpStatus WINGDIPAPI -GdipGetAllPropertyItems(GpImage *image, UINT totalBufferSize, - UINT numProperties, PropertyItem* allItems); - -GpStatus WINGDIPAPI -GdipRemovePropertyItem(GpImage *image, PROPID propId); - -GpStatus WINGDIPAPI -GdipSetPropertyItem(GpImage *image, GDIPCONST PropertyItem* item); - -GpStatus WINGDIPAPI -GdipImageForceValidation(GpImage *image); - -//---------------------------------------------------------------------------- -// Bitmap APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateBitmapFromStream(IStream* stream, GpBitmap **bitmap); - -GpStatus WINGDIPAPI -GdipCreateBitmapFromFile(GDIPCONST WCHAR* filename, GpBitmap **bitmap); - -GpStatus WINGDIPAPI -GdipCreateBitmapFromStreamICM(IStream* stream, GpBitmap **bitmap); - -GpStatus WINGDIPAPI -GdipCreateBitmapFromFileICM(GDIPCONST WCHAR* filename, GpBitmap **bitmap); - -GpStatus WINGDIPAPI -GdipCreateBitmapFromScan0(INT width, - INT height, - INT stride, - PixelFormat format, - BYTE* scan0, - GpBitmap** bitmap); - -GpStatus WINGDIPAPI -GdipCreateBitmapFromGraphics(INT width, - INT height, - GpGraphics* target, - GpBitmap** bitmap); - -GpStatus WINGDIPAPI -GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7* surface, - GpBitmap** bitmap); - -GpStatus WINGDIPAPI -GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO* gdiBitmapInfo, - VOID* gdiBitmapData, - GpBitmap** bitmap); - -GpStatus WINGDIPAPI -GdipCreateBitmapFromHBITMAP(HBITMAP hbm, - HPALETTE hpal, - GpBitmap** bitmap); - -GpStatus WINGDIPAPI -GdipCreateHBITMAPFromBitmap(GpBitmap* bitmap, - HBITMAP* hbmReturn, - ARGB background); - -GpStatus WINGDIPAPI -GdipCreateBitmapFromHICON(HICON hicon, - GpBitmap** bitmap); - -GpStatus WINGDIPAPI -GdipCreateHICONFromBitmap(GpBitmap* bitmap, - HICON* hbmReturn); - -GpStatus WINGDIPAPI -GdipCreateBitmapFromResource(HINSTANCE hInstance, - GDIPCONST WCHAR* lpBitmapName, - GpBitmap** bitmap); - -GpStatus WINGDIPAPI -GdipCloneBitmapArea(REAL x, REAL y, REAL width, REAL height, - PixelFormat format, - GpBitmap *srcBitmap, - GpBitmap **dstBitmap); - -GpStatus WINGDIPAPI -GdipCloneBitmapAreaI(INT x, - INT y, - INT width, - INT height, - PixelFormat format, - GpBitmap *srcBitmap, - GpBitmap **dstBitmap); - -GpStatus WINGDIPAPI -GdipBitmapLockBits(GpBitmap* bitmap, - GDIPCONST GpRect* rect, - UINT flags, - PixelFormat format, - BitmapData* lockedBitmapData); - -GpStatus WINGDIPAPI -GdipBitmapUnlockBits(GpBitmap* bitmap, - BitmapData* lockedBitmapData); - -GpStatus WINGDIPAPI -GdipBitmapGetPixel(GpBitmap* bitmap, INT x, INT y, ARGB *color); - -GpStatus WINGDIPAPI -GdipBitmapSetPixel(GpBitmap* bitmap, INT x, INT y, ARGB color); - -GpStatus WINGDIPAPI -GdipBitmapSetResolution(GpBitmap* bitmap, REAL xdpi, REAL ydpi); - -//---------------------------------------------------------------------------- -// ImageAttributes APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateImageAttributes(GpImageAttributes **imageattr); - -GpStatus WINGDIPAPI -GdipCloneImageAttributes(GDIPCONST GpImageAttributes *imageattr, - GpImageAttributes **cloneImageattr); - -GpStatus WINGDIPAPI -GdipDisposeImageAttributes(GpImageAttributes *imageattr); - -GpStatus WINGDIPAPI -GdipSetImageAttributesToIdentity(GpImageAttributes *imageattr, - ColorAdjustType type); -GpStatus WINGDIPAPI -GdipResetImageAttributes(GpImageAttributes *imageattr, - ColorAdjustType type); - -GpStatus WINGDIPAPI -GdipSetImageAttributesColorMatrix(GpImageAttributes *imageattr, - ColorAdjustType type, - BOOL enableFlag, - GDIPCONST ColorMatrix* colorMatrix, - GDIPCONST ColorMatrix* grayMatrix, - ColorMatrixFlags flags); - -GpStatus WINGDIPAPI -GdipSetImageAttributesThreshold(GpImageAttributes *imageattr, - ColorAdjustType type, - BOOL enableFlag, - REAL threshold); - -GpStatus WINGDIPAPI -GdipSetImageAttributesGamma(GpImageAttributes *imageattr, - ColorAdjustType type, - BOOL enableFlag, - REAL gamma); - -GpStatus WINGDIPAPI -GdipSetImageAttributesNoOp(GpImageAttributes *imageattr, - ColorAdjustType type, - BOOL enableFlag); - -GpStatus WINGDIPAPI -GdipSetImageAttributesColorKeys(GpImageAttributes *imageattr, - ColorAdjustType type, - BOOL enableFlag, - ARGB colorLow, - ARGB colorHigh); - -GpStatus WINGDIPAPI -GdipSetImageAttributesOutputChannel(GpImageAttributes *imageattr, - ColorAdjustType type, - BOOL enableFlag, - ColorChannelFlags channelFlags); - -GpStatus WINGDIPAPI -GdipSetImageAttributesOutputChannelColorProfile(GpImageAttributes *imageattr, - ColorAdjustType type, - BOOL enableFlag, - GDIPCONST - WCHAR *colorProfileFilename); - -GpStatus WINGDIPAPI -GdipSetImageAttributesRemapTable(GpImageAttributes *imageattr, - ColorAdjustType type, - BOOL enableFlag, - UINT mapSize, - GDIPCONST ColorMap *map); -GpStatus WINGDIPAPI -GdipSetImageAttributesWrapMode( - GpImageAttributes *imageAttr, - WrapMode wrap, - ARGB argb, - BOOL clamp -); - -GpStatus WINGDIPAPI -GdipSetImageAttributesICMMode( - GpImageAttributes *imageAttr, - BOOL on -); - -GpStatus WINGDIPAPI -GdipGetImageAttributesAdjustedPalette( - GpImageAttributes *imageAttr, - ColorPalette * colorPalette, - ColorAdjustType colorAdjustType -); - -//---------------------------------------------------------------------------- -// Graphics APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipFlush(GpGraphics *graphics, GpFlushIntention intention); - -GpStatus WINGDIPAPI -GdipCreateFromHDC(HDC hdc, GpGraphics **graphics); - -GpStatus WINGDIPAPI -GdipCreateFromHDC2(HDC hdc, HANDLE hDevice, GpGraphics **graphics); - -GpStatus WINGDIPAPI -GdipCreateFromHWND(HWND hwnd, GpGraphics **graphics); - -GpStatus WINGDIPAPI -GdipCreateFromHWNDICM(HWND hwnd, GpGraphics **graphics); - -GpStatus WINGDIPAPI -GdipDeleteGraphics(GpGraphics *graphics); - -GpStatus WINGDIPAPI -GdipGetDC(GpGraphics* graphics, HDC * hdc); - -GpStatus WINGDIPAPI -GdipReleaseDC(GpGraphics* graphics, HDC hdc); - -GpStatus WINGDIPAPI -GdipSetCompositingMode(GpGraphics *graphics, CompositingMode compositingMode); - -GpStatus WINGDIPAPI -GdipGetCompositingMode(GpGraphics *graphics, CompositingMode *compositingMode); - -GpStatus WINGDIPAPI -GdipSetRenderingOrigin(GpGraphics *graphics, INT x, INT y); - -GpStatus WINGDIPAPI -GdipGetRenderingOrigin(GpGraphics *graphics, INT *x, INT *y); - -GpStatus WINGDIPAPI -GdipSetCompositingQuality(GpGraphics *graphics, - CompositingQuality compositingQuality); - -GpStatus WINGDIPAPI -GdipGetCompositingQuality(GpGraphics *graphics, - CompositingQuality *compositingQuality); - -GpStatus WINGDIPAPI -GdipSetSmoothingMode(GpGraphics *graphics, SmoothingMode smoothingMode); - -GpStatus WINGDIPAPI -GdipGetSmoothingMode(GpGraphics *graphics, SmoothingMode *smoothingMode); - -GpStatus WINGDIPAPI -GdipSetPixelOffsetMode(GpGraphics* graphics, PixelOffsetMode pixelOffsetMode); - -GpStatus WINGDIPAPI -GdipGetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode *pixelOffsetMode); - -GpStatus WINGDIPAPI -GdipSetTextRenderingHint(GpGraphics *graphics, TextRenderingHint mode); - -GpStatus WINGDIPAPI -GdipGetTextRenderingHint(GpGraphics *graphics, TextRenderingHint *mode); - -GpStatus WINGDIPAPI -GdipSetTextContrast(GpGraphics *graphics, UINT contrast); - -GpStatus WINGDIPAPI -GdipGetTextContrast(GpGraphics *graphics, UINT * contrast); - -GpStatus WINGDIPAPI -GdipSetInterpolationMode(GpGraphics *graphics, - InterpolationMode interpolationMode); - -GpStatus WINGDIPAPI -GdipGetInterpolationMode(GpGraphics *graphics, - InterpolationMode *interpolationMode); - -GpStatus WINGDIPAPI -GdipSetWorldTransform(GpGraphics *graphics, GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipResetWorldTransform(GpGraphics *graphics); - -GpStatus WINGDIPAPI -GdipMultiplyWorldTransform(GpGraphics *graphics, GDIPCONST GpMatrix *matrix, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipTranslateWorldTransform(GpGraphics *graphics, REAL dx, REAL dy, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipScaleWorldTransform(GpGraphics *graphics, REAL sx, REAL sy, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipRotateWorldTransform(GpGraphics *graphics, REAL angle, - GpMatrixOrder order); - -GpStatus WINGDIPAPI -GdipGetWorldTransform(GpGraphics *graphics, GpMatrix *matrix); - -GpStatus WINGDIPAPI -GdipResetPageTransform(GpGraphics *graphics); - -GpStatus WINGDIPAPI -GdipGetPageUnit(GpGraphics *graphics, GpUnit *unit); - -GpStatus WINGDIPAPI -GdipGetPageScale(GpGraphics *graphics, REAL *scale); - -GpStatus WINGDIPAPI -GdipSetPageUnit(GpGraphics *graphics, GpUnit unit); - -GpStatus WINGDIPAPI -GdipSetPageScale(GpGraphics *graphics, REAL scale); - -GpStatus WINGDIPAPI -GdipGetDpiX(GpGraphics *graphics, REAL* dpi); - -GpStatus WINGDIPAPI -GdipGetDpiY(GpGraphics *graphics, REAL* dpi); - -GpStatus WINGDIPAPI -GdipTransformPoints(GpGraphics *graphics, GpCoordinateSpace destSpace, - GpCoordinateSpace srcSpace, GpPointF *points, - INT count); - -GpStatus WINGDIPAPI -GdipTransformPointsI(GpGraphics *graphics, GpCoordinateSpace destSpace, - GpCoordinateSpace srcSpace, GpPoint *points, - INT count); - -GpStatus WINGDIPAPI -GdipGetNearestColor(GpGraphics *graphics, ARGB* argb); - -// Creates the Win9x Halftone Palette (even on NT) with correct Desktop colors -HPALETTE WINGDIPAPI -GdipCreateHalftonePalette(); - -GpStatus WINGDIPAPI -GdipDrawLine(GpGraphics *graphics, GpPen *pen, REAL x1, REAL y1, - REAL x2, REAL y2); - -GpStatus WINGDIPAPI -GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1, INT y1, - INT x2, INT y2); - -GpStatus WINGDIPAPI -GdipDrawLines(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, - INT count); - -GpStatus WINGDIPAPI -GdipDrawLinesI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, - INT count); - -GpStatus WINGDIPAPI -GdipDrawArc(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, - REAL width, REAL height, REAL startAngle, REAL sweepAngle); - -GpStatus WINGDIPAPI -GdipDrawArcI(GpGraphics *graphics, GpPen *pen, INT x, INT y, - INT width, INT height, REAL startAngle, REAL sweepAngle); - -GpStatus WINGDIPAPI -GdipDrawBezier(GpGraphics *graphics, GpPen *pen, REAL x1, REAL y1, - REAL x2, REAL y2, REAL x3, REAL y3, REAL x4, REAL y4); - -GpStatus WINGDIPAPI -GdipDrawBezierI(GpGraphics *graphics, GpPen *pen, INT x1, INT y1, - INT x2, INT y2, INT x3, INT y3, INT x4, INT y4); - -GpStatus WINGDIPAPI -GdipDrawBeziers(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, - INT count); - -GpStatus WINGDIPAPI -GdipDrawBeziersI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, - INT count); - -GpStatus WINGDIPAPI -GdipDrawRectangle(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, - REAL width, REAL height); - -GpStatus WINGDIPAPI -GdipDrawRectangleI(GpGraphics *graphics, GpPen *pen, INT x, INT y, - INT width, INT height); - -GpStatus WINGDIPAPI -GdipDrawRectangles(GpGraphics *graphics, GpPen *pen, GDIPCONST GpRectF *rects, - INT count); - -GpStatus WINGDIPAPI -GdipDrawRectanglesI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpRect *rects, - INT count); - -GpStatus WINGDIPAPI -GdipDrawEllipse(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, - REAL width, REAL height); - -GpStatus WINGDIPAPI -GdipDrawEllipseI(GpGraphics *graphics, GpPen *pen, INT x, INT y, - INT width, INT height); - -GpStatus WINGDIPAPI -GdipDrawPie(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, - REAL width, REAL height, REAL startAngle, - REAL sweepAngle); - -GpStatus WINGDIPAPI -GdipDrawPieI(GpGraphics *graphics, GpPen *pen, INT x, INT y, - INT width, INT height, REAL startAngle, REAL sweepAngle); - -GpStatus WINGDIPAPI -GdipDrawPolygon(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, - INT count); - -GpStatus WINGDIPAPI -GdipDrawPolygonI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, - INT count); - -GpStatus WINGDIPAPI -GdipDrawPath(GpGraphics *graphics, GpPen *pen, GpPath *path); - -GpStatus WINGDIPAPI -GdipDrawCurve(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, - INT count); - -GpStatus WINGDIPAPI -GdipDrawCurveI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, - INT count); - -GpStatus WINGDIPAPI -GdipDrawCurve2(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, - INT count, REAL tension); - -GpStatus WINGDIPAPI -GdipDrawCurve2I(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, - INT count, REAL tension); - -GpStatus WINGDIPAPI -GdipDrawCurve3(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, - INT count, INT offset, INT numberOfSegments, REAL tension); - -GpStatus WINGDIPAPI -GdipDrawCurve3I(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, - INT count, INT offset, INT numberOfSegments, REAL tension); - -GpStatus WINGDIPAPI -GdipDrawClosedCurve(GpGraphics *graphics, GpPen *pen, - GDIPCONST GpPointF *points, INT count); - -GpStatus WINGDIPAPI -GdipDrawClosedCurveI(GpGraphics *graphics, GpPen *pen, - GDIPCONST GpPoint *points, INT count); - -GpStatus WINGDIPAPI -GdipDrawClosedCurve2(GpGraphics *graphics, GpPen *pen, - GDIPCONST GpPointF *points, INT count, REAL tension); - -GpStatus WINGDIPAPI -GdipDrawClosedCurve2I(GpGraphics *graphics, GpPen *pen, - GDIPCONST GpPoint *points, INT count, REAL tension); - -GpStatus WINGDIPAPI -GdipGraphicsClear(GpGraphics *graphics, ARGB color); - -GpStatus WINGDIPAPI -GdipFillRectangle(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y, - REAL width, REAL height); - -GpStatus WINGDIPAPI -GdipFillRectangleI(GpGraphics *graphics, GpBrush *brush, INT x, INT y, - INT width, INT height); - -GpStatus WINGDIPAPI -GdipFillRectangles(GpGraphics *graphics, GpBrush *brush, - GDIPCONST GpRectF *rects, INT count); - -GpStatus WINGDIPAPI -GdipFillRectanglesI(GpGraphics *graphics, GpBrush *brush, - GDIPCONST GpRect *rects, INT count); - -GpStatus WINGDIPAPI -GdipFillPolygon(GpGraphics *graphics, GpBrush *brush, - GDIPCONST GpPointF *points, INT count, GpFillMode fillMode); - -GpStatus WINGDIPAPI -GdipFillPolygonI(GpGraphics *graphics, GpBrush *brush, - GDIPCONST GpPoint *points, INT count, GpFillMode fillMode); - -GpStatus WINGDIPAPI -GdipFillPolygon2(GpGraphics *graphics, GpBrush *brush, - GDIPCONST GpPointF *points, INT count); - -GpStatus WINGDIPAPI -GdipFillPolygon2I(GpGraphics *graphics, GpBrush *brush, - GDIPCONST GpPoint *points, INT count); - -GpStatus WINGDIPAPI -GdipFillEllipse(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y, - REAL width, REAL height); - -GpStatus WINGDIPAPI -GdipFillEllipseI(GpGraphics *graphics, GpBrush *brush, INT x, INT y, - INT width, INT height); - -GpStatus WINGDIPAPI -GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y, - REAL width, REAL height, REAL startAngle, REAL sweepAngle); - -GpStatus WINGDIPAPI -GdipFillPieI(GpGraphics *graphics, GpBrush *brush, INT x, INT y, - INT width, INT height, REAL startAngle, REAL sweepAngle); - -GpStatus WINGDIPAPI -GdipFillPath(GpGraphics *graphics, GpBrush *brush, GpPath *path); - -GpStatus WINGDIPAPI -GdipFillClosedCurve(GpGraphics *graphics, GpBrush *brush, - GDIPCONST GpPointF *points, INT count); - -GpStatus WINGDIPAPI -GdipFillClosedCurveI(GpGraphics *graphics, GpBrush *brush, - GDIPCONST GpPoint *points, INT count); - -GpStatus WINGDIPAPI -GdipFillClosedCurve2(GpGraphics *graphics, GpBrush *brush, - GDIPCONST GpPointF *points, INT count, - REAL tension, GpFillMode fillMode); - -GpStatus WINGDIPAPI -GdipFillClosedCurve2I(GpGraphics *graphics, GpBrush *brush, - GDIPCONST GpPoint *points, INT count, - REAL tension, GpFillMode fillMode); - -GpStatus WINGDIPAPI -GdipFillRegion(GpGraphics *graphics, GpBrush *brush, - GpRegion *region); - -GpStatus WINGDIPAPI -GdipDrawImage(GpGraphics *graphics, GpImage *image, REAL x, REAL y); - -GpStatus WINGDIPAPI -GdipDrawImageI(GpGraphics *graphics, GpImage *image, INT x, INT y); - -GpStatus WINGDIPAPI -GdipDrawImageRect(GpGraphics *graphics, GpImage *image, REAL x, REAL y, - REAL width, REAL height); - -GpStatus WINGDIPAPI -GdipDrawImageRectI(GpGraphics *graphics, GpImage *image, INT x, INT y, - INT width, INT height); - -GpStatus WINGDIPAPI -GdipDrawImagePoints(GpGraphics *graphics, GpImage *image, - GDIPCONST GpPointF *dstpoints, INT count); - -GpStatus WINGDIPAPI -GdipDrawImagePointsI(GpGraphics *graphics, GpImage *image, - GDIPCONST GpPoint *dstpoints, INT count); - -GpStatus WINGDIPAPI -GdipDrawImagePointRect(GpGraphics *graphics, GpImage *image, REAL x, - REAL y, REAL srcx, REAL srcy, REAL srcwidth, - REAL srcheight, GpUnit srcUnit); - -GpStatus WINGDIPAPI -GdipDrawImagePointRectI(GpGraphics *graphics, GpImage *image, INT x, - INT y, INT srcx, INT srcy, INT srcwidth, - INT srcheight, GpUnit srcUnit); - -GpStatus WINGDIPAPI -GdipDrawImageRectRect(GpGraphics *graphics, GpImage *image, REAL dstx, - REAL dsty, REAL dstwidth, REAL dstheight, - REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight, - GpUnit srcUnit, - GDIPCONST GpImageAttributes* imageAttributes, - DrawImageAbort callback, VOID * callbackData); - -GpStatus WINGDIPAPI -GdipDrawImageRectRectI(GpGraphics *graphics, GpImage *image, INT dstx, - INT dsty, INT dstwidth, INT dstheight, - INT srcx, INT srcy, INT srcwidth, INT srcheight, - GpUnit srcUnit, - GDIPCONST GpImageAttributes* imageAttributes, - DrawImageAbort callback, VOID * callbackData); - -GpStatus WINGDIPAPI -GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image, - GDIPCONST GpPointF *points, INT count, REAL srcx, - REAL srcy, REAL srcwidth, REAL srcheight, - GpUnit srcUnit, - GDIPCONST GpImageAttributes* imageAttributes, - DrawImageAbort callback, VOID * callbackData); - -GpStatus WINGDIPAPI -GdipDrawImagePointsRectI(GpGraphics *graphics, GpImage *image, - GDIPCONST GpPoint *points, INT count, INT srcx, - INT srcy, INT srcwidth, INT srcheight, - GpUnit srcUnit, - GDIPCONST GpImageAttributes* imageAttributes, - DrawImageAbort callback, VOID * callbackData); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileDestPoint( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST PointF & destPoint, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileDestPointI( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST Point & destPoint, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileDestRect( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST RectF & destRect, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileDestRectI( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST Rect & destRect, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileDestPoints( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST PointF * destPoints, - INT count, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileDestPointsI( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST Point * destPoints, - INT count, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileSrcRectDestPoint( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST PointF & destPoint, - GDIPCONST RectF & srcRect, - Unit srcUnit, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileSrcRectDestPointI( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST Point & destPoint, - GDIPCONST Rect & srcRect, - Unit srcUnit, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileSrcRectDestRect( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST RectF & destRect, - GDIPCONST RectF & srcRect, - Unit srcUnit, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileSrcRectDestRectI( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST Rect & destRect, - GDIPCONST Rect & srcRect, - Unit srcUnit, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileSrcRectDestPoints( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST PointF * destPoints, - INT count, - GDIPCONST RectF & srcRect, - Unit srcUnit, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipEnumerateMetafileSrcRectDestPointsI( - GpGraphics * graphics, - GDIPCONST GpMetafile * metafile, - GDIPCONST Point * destPoints, - INT count, - GDIPCONST Rect & srcRect, - Unit srcUnit, - EnumerateMetafileProc callback, - VOID * callbackData, - GDIPCONST GpImageAttributes * imageAttributes - ); - -GpStatus WINGDIPAPI -GdipPlayMetafileRecord( - GDIPCONST GpMetafile * metafile, - EmfPlusRecordType recordType, - UINT flags, - UINT dataSize, - GDIPCONST BYTE * data - ); - -GpStatus WINGDIPAPI -GdipSetClipGraphics(GpGraphics *graphics, GpGraphics *srcgraphics, - CombineMode combineMode); - -GpStatus WINGDIPAPI -GdipSetClipRect(GpGraphics *graphics, REAL x, REAL y, - REAL width, REAL height, CombineMode combineMode); - -GpStatus WINGDIPAPI -GdipSetClipRectI(GpGraphics *graphics, INT x, INT y, - INT width, INT height, CombineMode combineMode); - -GpStatus WINGDIPAPI -GdipSetClipPath(GpGraphics *graphics, GpPath *path, CombineMode combineMode); - -GpStatus WINGDIPAPI -GdipSetClipRegion(GpGraphics *graphics, GpRegion *region, - CombineMode combineMode); - -GpStatus WINGDIPAPI -GdipSetClipHrgn(GpGraphics *graphics, HRGN hRgn, CombineMode combineMode); - -GpStatus WINGDIPAPI -GdipResetClip(GpGraphics *graphics); - -GpStatus WINGDIPAPI -GdipTranslateClip(GpGraphics *graphics, REAL dx, REAL dy); - -GpStatus WINGDIPAPI -GdipTranslateClipI(GpGraphics *graphics, INT dx, INT dy); - -GpStatus WINGDIPAPI -GdipGetClip(GpGraphics *graphics, GpRegion *region); - -GpStatus WINGDIPAPI -GdipGetClipBounds(GpGraphics *graphics, GpRectF *rect); - -GpStatus WINGDIPAPI -GdipGetClipBoundsI(GpGraphics *graphics, GpRect *rect); - -GpStatus WINGDIPAPI -GdipIsClipEmpty(GpGraphics *graphics, BOOL *result); - -GpStatus WINGDIPAPI -GdipGetVisibleClipBounds(GpGraphics *graphics, GpRectF *rect); - -GpStatus WINGDIPAPI -GdipGetVisibleClipBoundsI(GpGraphics *graphics, GpRect *rect); - -GpStatus WINGDIPAPI -GdipIsVisibleClipEmpty(GpGraphics *graphics, BOOL *result); - -GpStatus WINGDIPAPI -GdipIsVisiblePoint(GpGraphics *graphics, REAL x, REAL y, - BOOL *result); - -GpStatus WINGDIPAPI -GdipIsVisiblePointI(GpGraphics *graphics, INT x, INT y, - BOOL *result); - -GpStatus WINGDIPAPI -GdipIsVisibleRect(GpGraphics *graphics, REAL x, REAL y, - REAL width, REAL height, BOOL *result); - -GpStatus WINGDIPAPI -GdipIsVisibleRectI(GpGraphics *graphics, INT x, INT y, - INT width, INT height, BOOL *result); - -GpStatus WINGDIPAPI -GdipSaveGraphics(GpGraphics *graphics, GraphicsState *state); - -GpStatus WINGDIPAPI -GdipRestoreGraphics(GpGraphics *graphics, GraphicsState state); - -GpStatus WINGDIPAPI -GdipBeginContainer(GpGraphics *graphics, GDIPCONST GpRectF* dstrect, - GDIPCONST GpRectF *srcrect, GpUnit unit, - GraphicsContainer *state); - -GpStatus WINGDIPAPI -GdipBeginContainerI(GpGraphics *graphics, GDIPCONST GpRect* dstrect, - GDIPCONST GpRect *srcrect, GpUnit unit, - GraphicsContainer *state); - -GpStatus WINGDIPAPI -GdipBeginContainer2(GpGraphics *graphics, GraphicsContainer* state); - -GpStatus WINGDIPAPI -GdipEndContainer(GpGraphics *graphics, GraphicsContainer state); - -GpStatus -GdipGetMetafileHeaderFromWmf( - HMETAFILE hWmf, - GDIPCONST WmfPlaceableFileHeader * wmfPlaceableFileHeader, - MetafileHeader * header - ); - -GpStatus -WINGDIPAPI -GdipGetMetafileHeaderFromEmf( - HENHMETAFILE hEmf, - MetafileHeader * header - ); - -GpStatus -WINGDIPAPI -GdipGetMetafileHeaderFromFile( - GDIPCONST WCHAR* filename, - MetafileHeader * header - ); - -GpStatus -WINGDIPAPI -GdipGetMetafileHeaderFromStream( - IStream * stream, - MetafileHeader * header - ); - -GpStatus -WINGDIPAPI -GdipGetMetafileHeaderFromMetafile( - GpMetafile * metafile, - MetafileHeader * header - ); - -GpStatus -WINGDIPAPI -GdipGetHemfFromMetafile( - GpMetafile * metafile, - HENHMETAFILE * hEmf - ); - -GpStatus WINGDIPAPI -GdipCreateStreamOnFile(GDIPCONST WCHAR * filename, UINT access, - IStream **stream); - -GpStatus WINGDIPAPI -GdipCreateMetafileFromWmf(HMETAFILE hWmf, BOOL deleteWmf, - GDIPCONST WmfPlaceableFileHeader * wmfPlaceableFileHeader, - GpMetafile **metafile); - -GpStatus WINGDIPAPI -GdipCreateMetafileFromEmf(HENHMETAFILE hEmf, BOOL deleteEmf, - GpMetafile **metafile); - -GpStatus WINGDIPAPI -GdipCreateMetafileFromFile(GDIPCONST WCHAR* file, GpMetafile **metafile); - -GpStatus WINGDIPAPI -GdipCreateMetafileFromWmfFile(GDIPCONST WCHAR* file, - GDIPCONST WmfPlaceableFileHeader * wmfPlaceableFileHeader, - GpMetafile **metafile); - -GpStatus WINGDIPAPI -GdipCreateMetafileFromStream(IStream * stream, GpMetafile **metafile); - -GpStatus WINGDIPAPI -GdipRecordMetafile( - HDC referenceHdc, - EmfType type, - GDIPCONST GpRectF * frameRect, - MetafileFrameUnit frameUnit, - GDIPCONST WCHAR * description, - GpMetafile ** metafile - ); - -GpStatus WINGDIPAPI -GdipRecordMetafileI( - HDC referenceHdc, - EmfType type, - GDIPCONST GpRect * frameRect, - MetafileFrameUnit frameUnit, - GDIPCONST WCHAR * description, - GpMetafile ** metafile - ); - -GpStatus WINGDIPAPI -GdipRecordMetafileFileName( - GDIPCONST WCHAR* fileName, - HDC referenceHdc, - EmfType type, - GDIPCONST GpRectF * frameRect, - MetafileFrameUnit frameUnit, - GDIPCONST WCHAR * description, - GpMetafile ** metafile - ); - -GpStatus WINGDIPAPI -GdipRecordMetafileFileNameI( - GDIPCONST WCHAR* fileName, - HDC referenceHdc, - EmfType type, - GDIPCONST GpRect * frameRect, - MetafileFrameUnit frameUnit, - GDIPCONST WCHAR * description, - GpMetafile ** metafile - ); - -GpStatus WINGDIPAPI -GdipRecordMetafileStream( - IStream * stream, - HDC referenceHdc, - EmfType type, - GDIPCONST GpRectF * frameRect, - MetafileFrameUnit frameUnit, - GDIPCONST WCHAR * description, - GpMetafile ** metafile - ); - -GpStatus WINGDIPAPI -GdipRecordMetafileStreamI( - IStream * stream, - HDC referenceHdc, - EmfType type, - GDIPCONST GpRect * frameRect, - MetafileFrameUnit frameUnit, - GDIPCONST WCHAR * description, - GpMetafile ** metafile - ); - -GpStatus WINGDIPAPI -GdipSetMetafileDownLevelRasterizationLimit( - GpMetafile * metafile, - UINT metafileRasterizationLimitDpi - ); - -GpStatus WINGDIPAPI -GdipGetMetafileDownLevelRasterizationLimit( - GDIPCONST GpMetafile * metafile, - UINT * metafileRasterizationLimitDpi - ); - -GpStatus WINGDIPAPI -GdipGetImageDecodersSize(UINT *numDecoders, UINT *size); - -GpStatus WINGDIPAPI -GdipGetImageDecoders(UINT numDecoders, - UINT size, - ImageCodecInfo *decoders); - -GpStatus WINGDIPAPI -GdipGetImageEncodersSize(UINT *numEncoders, UINT *size); - -GpStatus WINGDIPAPI -GdipGetImageEncoders(UINT numEncoders, - UINT size, - ImageCodecInfo *encoders); - -GpStatus WINGDIPAPI -GdipComment(GpGraphics* graphics, UINT sizeData, GDIPCONST BYTE * data); - -//---------------------------------------------------------------------------- -// FontFamily APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name, - GpFontCollection *fontCollection, - GpFontFamily **FontFamily); - -GpStatus WINGDIPAPI -GdipDeleteFontFamily(GpFontFamily *FontFamily); - -GpStatus WINGDIPAPI -GdipCloneFontFamily(GpFontFamily *FontFamily, GpFontFamily **clonedFontFamily); - -GpStatus WINGDIPAPI -GdipGetGenericFontFamilySansSerif(GpFontFamily **nativeFamily); - -GpStatus WINGDIPAPI -GdipGetGenericFontFamilySerif(GpFontFamily **nativeFamily); - -GpStatus WINGDIPAPI -GdipGetGenericFontFamilyMonospace(GpFontFamily **nativeFamily); - - -GpStatus WINGDIPAPI -GdipGetFamilyName( - GDIPCONST GpFontFamily *family, - WCHAR name[LF_FACESIZE], - LANGID language -); - -GpStatus WINGDIPAPI -GdipIsStyleAvailable(GDIPCONST GpFontFamily *family, INT style, - BOOL * IsStyleAvailable); - -GpStatus WINGDIPAPI -GdipFontCollectionEnumerable( - GpFontCollection* fontCollection, - GpGraphics* graphics, - INT * numFound -); - -GpStatus WINGDIPAPI GdipFontCollectionEnumerate( - GpFontCollection* fontCollection, - INT numSought, - GpFontFamily* gpfamilies[], - INT* numFound, - GpGraphics* graphics -); - -GpStatus WINGDIPAPI -GdipGetEmHeight(GDIPCONST GpFontFamily *family, INT style, - UINT16 * EmHeight); - -GpStatus WINGDIPAPI -GdipGetCellAscent(GDIPCONST GpFontFamily *family, INT style, - UINT16 * CellAscent); - -GpStatus WINGDIPAPI -GdipGetCellDescent(GDIPCONST GpFontFamily *family, INT style, - UINT16 * CellDescent); - -GpStatus WINGDIPAPI -GdipGetLineSpacing(GDIPCONST GpFontFamily *family, INT style, - UINT16 * LineSpacing); - - -//---------------------------------------------------------------------------- -// Font APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateFontFromDC( - HDC hdc, - GpFont **font -); - -GpStatus WINGDIPAPI -GdipCreateFontFromLogfontA( - HDC hdc, - GDIPCONST LOGFONTA *logfont, - GpFont **font -); - -GpStatus WINGDIPAPI -GdipCreateFontFromLogfontW( - HDC hdc, - GDIPCONST LOGFONTW *logfont, - GpFont **font -); - -GpStatus WINGDIPAPI -GdipCreateFont( - GDIPCONST GpFontFamily *fontFamily, - REAL emSize, - INT style, - Unit unit, - GpFont **font -); - -GpStatus WINGDIPAPI -GdipCloneFont(GpFont* font, GpFont** cloneFont); - -GpStatus WINGDIPAPI -GdipDeleteFont(GpFont* font); - -GpStatus WINGDIPAPI -GdipGetFamily(GpFont *font, GpFontFamily **family); - -GpStatus WINGDIPAPI -GdipGetFontStyle(GpFont *font, INT *style); - -GpStatus WINGDIPAPI -GdipGetFontSize(GpFont *font, REAL *size); - -GpStatus WINGDIPAPI -GdipGetFontUnit(GpFont *font, Unit *unit); - -GpStatus WINGDIPAPI -GdipGetFontHeight(GDIPCONST GpFont *font, GDIPCONST GpGraphics *graphics, - REAL *height); - -GpStatus WINGDIPAPI -GdipGetFontHeightGivenDPI(GDIPCONST GpFont *font, REAL dpi, REAL *height); - -GpStatus WINGDIPAPI -GdipGetLogFontA(GpFont * font, GpGraphics *graphics, LOGFONTA * logfontA); - -GpStatus WINGDIPAPI -GdipGetLogFontW(GpFont * font, GpGraphics *graphics, LOGFONTW * logfontW); - -GpStatus WINGDIPAPI -GdipNewInstalledFontCollection(GpFontCollection** fontCollection); - -GpStatus WINGDIPAPI -GdipNewPrivateFontCollection(GpFontCollection** fontCollection); - -GpStatus WINGDIPAPI -GdipDeletePrivateFontCollection(GpFontCollection** fontCollection); - -GpStatus WINGDIPAPI -GdipGetFontCollectionFamilyCount( - GpFontCollection* fontCollection, - INT * numFound -); - -GpStatus WINGDIPAPI -GdipGetFontCollectionFamilyList( - GpFontCollection* fontCollection, - INT numSought, - GpFontFamily* gpfamilies[], - INT* numFound -); - -GpStatus WINGDIPAPI -GdipPrivateAddFontFile( - GpFontCollection* fontCollection, - GDIPCONST WCHAR* filename -); - -GpStatus WINGDIPAPI -GdipPrivateAddMemoryFont( - GpFontCollection* fontCollection, - GDIPCONST void* memory, - INT length -); - -//---------------------------------------------------------------------------- -// Text APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipDrawString( - GpGraphics *graphics, - GDIPCONST WCHAR *string, - INT length, - GDIPCONST GpFont *font, - GDIPCONST RectF *layoutRect, - GDIPCONST GpStringFormat *stringFormat, - GDIPCONST GpBrush *brush -); - -GpStatus WINGDIPAPI -GdipMeasureString( - GpGraphics *graphics, - GDIPCONST WCHAR *string, - INT length, - GDIPCONST GpFont *font, - GDIPCONST RectF *layoutRect, - GDIPCONST GpStringFormat *stringFormat, - RectF *boundingBox, - INT *codepointsFitted, - INT *linesFilled -); - -GpStatus -WINGDIPAPI -GdipMeasureCharacterRanges( - GpGraphics *graphics, - GDIPCONST WCHAR *string, - INT length, - GDIPCONST GpFont *font, - GDIPCONST RectF &layoutRect, - GDIPCONST GpStringFormat *stringFormat, - INT regionCount, - GpRegion **regions -); - -GpStatus WINGDIPAPI -GdipDrawDriverString( - GpGraphics *graphics, - GDIPCONST UINT16 *text, - INT length, - GDIPCONST GpFont *font, - GDIPCONST GpBrush *brush, - GDIPCONST PointF *positions, - INT flags, - GDIPCONST GpMatrix *matrix -); - -GpStatus WINGDIPAPI -GdipMeasureDriverString( - GpGraphics *graphics, - GDIPCONST UINT16 *text, - INT length, - GDIPCONST GpFont *font, - GDIPCONST PointF *positions, - INT flags, - GDIPCONST GpMatrix *matrix, - RectF *boundingBox -); - -//---------------------------------------------------------------------------- -// String format APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateStringFormat( - INT formatAttributes, - LANGID language, - GpStringFormat **format -); - -GpStatus WINGDIPAPI -GdipStringFormatGetGenericDefault(GpStringFormat **format); - -GpStatus WINGDIPAPI -GdipStringFormatGetGenericTypographic(GpStringFormat **format); - -GpStatus WINGDIPAPI -GdipDeleteStringFormat(GpStringFormat *format); - -GpStatus WINGDIPAPI -GdipCloneStringFormat(GDIPCONST GpStringFormat *format, - GpStringFormat **newFormat); - -GpStatus WINGDIPAPI -GdipSetStringFormatFlags(GpStringFormat *format, INT flags); - -GpStatus WINGDIPAPI GdipGetStringFormatFlags(GDIPCONST GpStringFormat *format, - INT *flags); - -GpStatus WINGDIPAPI -GdipSetStringFormatAlign(GpStringFormat *format, StringAlignment align); - -GpStatus WINGDIPAPI -GdipGetStringFormatAlign(GDIPCONST GpStringFormat *format, - StringAlignment *align); - -GpStatus WINGDIPAPI -GdipSetStringFormatLineAlign(GpStringFormat *format, - StringAlignment align); - -GpStatus WINGDIPAPI -GdipGetStringFormatLineAlign(GDIPCONST GpStringFormat *format, - StringAlignment *align); - -GpStatus WINGDIPAPI -GdipSetStringFormatTrimming( - GpStringFormat *format, - StringTrimming trimming -); - -GpStatus WINGDIPAPI -GdipGetStringFormatTrimming( - GDIPCONST GpStringFormat *format, - StringTrimming *trimming -); - -GpStatus WINGDIPAPI -GdipSetStringFormatHotkeyPrefix(GpStringFormat *format, INT hotkeyPrefix); - -GpStatus WINGDIPAPI -GdipGetStringFormatHotkeyPrefix(GDIPCONST GpStringFormat *format, - INT *hotkeyPrefix); - -GpStatus WINGDIPAPI -GdipSetStringFormatTabStops(GpStringFormat *format, REAL firstTabOffset, - INT count, GDIPCONST REAL *tabStops); - -GpStatus WINGDIPAPI -GdipGetStringFormatTabStops(GDIPCONST GpStringFormat *format, INT count, - REAL *firstTabOffset, REAL *tabStops); - -GpStatus WINGDIPAPI -GdipGetStringFormatTabStopCount(GDIPCONST GpStringFormat *format, INT * count); - -GpStatus WINGDIPAPI -GdipSetStringFormatDigitSubstitution(GpStringFormat *format, LANGID language, - StringDigitSubstitute substitute); - -GpStatus WINGDIPAPI -GdipGetStringFormatDigitSubstitution(GDIPCONST GpStringFormat *format, - LANGID *language, - StringDigitSubstitute *substitute); - -GpStatus WINGDIPAPI -GdipGetStringFormatMeasurableCharacterRangeCount( - GDIPCONST GpStringFormat *format, - INT *count -); - -GpStatus WINGDIPAPI -GdipSetStringFormatMeasurableCharacterRanges( - GpStringFormat *format, - INT rangeCount, - GDIPCONST CharacterRange *ranges -); - -//---------------------------------------------------------------------------- -// Cached Bitmap APIs -//---------------------------------------------------------------------------- - -GpStatus WINGDIPAPI -GdipCreateCachedBitmap( - GpBitmap *bitmap, - GpGraphics *graphics, - GpCachedBitmap **cachedBitmap -); - -GpStatus WINGDIPAPI -GdipDeleteCachedBitmap(GpCachedBitmap *cachedBitmap); - -GpStatus WINGDIPAPI -GdipDrawCachedBitmap( - GpGraphics *graphics, - GpCachedBitmap *cachedBitmap, - INT x, - INT y -); - -UINT WINGDIPAPI -GdipEmfToWmfBits( - HENHMETAFILE hemf, - UINT cbData16, - LPBYTE pData16, - INT iMapMode, - INT eFlags -); - -GpStatus WINGDIPAPI -GdipSetImageAttributesCachedBackground( - GpImageAttributes *imageattr, - BOOL enableFlag -); - -GpStatus WINGDIPAPI -GdipTestControl( - GpTestControlEnum control, - void * param -); - -GpStatus WINAPI -GdiplusNotificationHook( - OUT ULONG_PTR *token -); - -VOID WINAPI -GdiplusNotificationUnhook( - ULONG_PTR token -); - -#ifdef __cplusplus -} -#endif - -#endif // !_FLATAPI_H diff --git a/desmume/src/windows/gdiplus/GdiPlusFont.h b/desmume/src/windows/gdiplus/GdiPlusFont.h deleted file mode 100644 index 082c46ca5..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusFont.h +++ /dev/null @@ -1,280 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusFont.h -* -* Abstract: -* -* GDI+ Font class -* -\**************************************************************************/ - -#ifndef _GDIPLUSFONT_H -#define _GDIPLUSFONT_H - -inline -Font::Font(IN HDC hdc) -{ - GpFont *font = NULL; - lastResult = DllExports::GdipCreateFontFromDC(hdc, &font); - - SetNativeFont(font); -} - -inline -Font::Font(IN HDC hdc, - IN const HFONT hfont) -{ - GpFont *font = NULL; - - if (hfont) - { - LOGFONTA lf; - - if(GetObjectA(hfont, sizeof(LOGFONTA), &lf)) - lastResult = DllExports::GdipCreateFontFromLogfontA(hdc, &lf, &font); - else - lastResult = DllExports::GdipCreateFontFromDC(hdc, &font); - } - else - { - lastResult = DllExports::GdipCreateFontFromDC(hdc, &font); - } - - SetNativeFont(font); -} - -inline -Font::Font(IN HDC hdc, - IN const LOGFONTW* logfont) -{ - GpFont *font = NULL; - if (logfont) - { - lastResult = DllExports::GdipCreateFontFromLogfontW(hdc, logfont, &font); - } - else - { - lastResult = DllExports::GdipCreateFontFromDC(hdc, &font); - } - - SetNativeFont(font); -} - -inline -Font::Font(IN HDC hdc, - IN const LOGFONTA* logfont) -{ - GpFont *font = NULL; - - if (logfont) - { - lastResult = DllExports::GdipCreateFontFromLogfontA(hdc, logfont, &font); - } - else - { - lastResult = DllExports::GdipCreateFontFromDC(hdc, &font); - } - - SetNativeFont(font); -} - -inline -Font::Font( - IN const FontFamily * family, - IN REAL emSize, - IN INT style, - IN Unit unit -) -{ - GpFont *font = NULL; - - lastResult = DllExports::GdipCreateFont(family ? family->nativeFamily : NULL, - emSize, - style, - unit, - &font); - - SetNativeFont(font); -} - -inline -Font::Font( - IN const WCHAR * familyName, - IN REAL emSize, - IN INT style, - IN Unit unit, - IN const FontCollection * fontCollection -) -{ - nativeFont = NULL; - - FontFamily family(familyName, fontCollection); - GpFontFamily *nativeFamily = family.nativeFamily; - - lastResult = family.GetLastStatus(); - - if (lastResult != Ok) - { - nativeFamily = FontFamily::GenericSansSerif()->nativeFamily; - lastResult = FontFamily::GenericSansSerif()->lastResult; - if (lastResult != Ok) - return; - } - - lastResult = DllExports::GdipCreateFont(nativeFamily, - emSize, - style, - unit, - &nativeFont); - - if (lastResult != Ok) - { - nativeFamily = FontFamily::GenericSansSerif()->nativeFamily; - lastResult = FontFamily::GenericSansSerif()->lastResult; - if (lastResult != Ok) - return; - - lastResult = DllExports::GdipCreateFont( - nativeFamily, - emSize, - style, - unit, - &nativeFont); - } -} - -inline Status -Font::GetLogFontA(IN const Graphics *g, - OUT LOGFONTA *logfontA) const -{ - return SetStatus(DllExports::GdipGetLogFontA(nativeFont, g ? g->nativeGraphics : NULL, logfontA)); - -} - -inline Status -Font::GetLogFontW(IN const Graphics *g, - OUT LOGFONTW *logfontW) const -{ - return SetStatus(DllExports::GdipGetLogFontW(nativeFont, g ? g->nativeGraphics : NULL, logfontW)); -} - - -inline Font* -Font::Clone() const -{ - GpFont *cloneFont = NULL; - - SetStatus(DllExports::GdipCloneFont(nativeFont, &cloneFont)); - - return new Font(cloneFont, lastResult); -} - -inline -Font::~Font() -{ - DllExports::GdipDeleteFont(nativeFont); -} - -// Operations - -inline BOOL -Font::IsAvailable() const -{ - return (nativeFont ? TRUE : FALSE); -} - -inline Status -Font::GetFamily(OUT FontFamily *family) const -{ - if (family == NULL) - { - return SetStatus(InvalidParameter); - } - - Status status = DllExports::GdipGetFamily(nativeFont, &(family->nativeFamily)); - family->SetStatus(status); - - return SetStatus(status); -} - -inline INT -Font::GetStyle() const -{ - INT style; - - SetStatus(DllExports::GdipGetFontStyle(nativeFont, &style)); - - return style; -} - -inline REAL -Font::GetSize() const -{ - REAL size; - SetStatus(DllExports::GdipGetFontSize(nativeFont, &size)); - return size; -} - -inline Unit -Font::GetUnit() const -{ - Unit unit; - SetStatus(DllExports::GdipGetFontUnit(nativeFont, &unit)); - return unit; -} - -inline REAL -Font::GetHeight(IN const Graphics *graphics) const -{ - REAL height; - SetStatus(DllExports::GdipGetFontHeight( - nativeFont, - graphics ? graphics->nativeGraphics : NULL, - &height - )); - return height; -} - - -inline REAL -Font::GetHeight(IN REAL dpi) const -{ - REAL height; - SetStatus(DllExports::GdipGetFontHeightGivenDPI(nativeFont, dpi, &height)); - return height; -} - -inline -Font::Font(IN GpFont* font, - IN Status status) -{ - lastResult = status; - SetNativeFont(font); -} - -inline VOID -Font::SetNativeFont(GpFont *Font) -{ - nativeFont = Font; -} - -inline Status -Font::GetLastStatus(void) const -{ - return lastResult; -} - -inline Status -Font::SetStatus(IN Status status) const -{ - if (status != Ok) - return (lastResult = status); - else - return status; -} - -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusFontCollection.h b/desmume/src/windows/gdiplus/GdiPlusFontCollection.h deleted file mode 100644 index aa976106a..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusFontCollection.h +++ /dev/null @@ -1,134 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 2000, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusFontCollection.h -* -* Abstract: -* -* Font collections (Installed and Private) -* -\**************************************************************************/ - -#ifndef _GDIPLUSFONTCOLL_H -#define _GDIPLUSFONTCOLL_H - -inline -FontCollection::FontCollection() -{ - nativeFontCollection = NULL; -} - -inline -FontCollection::~FontCollection() -{ -} - -inline INT -FontCollection::GetFamilyCount() const -{ - INT numFound = 0; - - lastResult = DllExports::GdipGetFontCollectionFamilyCount( - nativeFontCollection, &numFound); - - - - return numFound; -} - -inline Status -FontCollection::GetFamilies( - IN INT numSought, - OUT FontFamily * gpfamilies, - OUT INT * numFound -) const -{ - if (numSought <= 0 || gpfamilies == NULL || numFound == NULL) - { - return SetStatus(InvalidParameter); - } - *numFound = 0; - GpFontFamily **nativeFamilyList = new GpFontFamily*[numSought]; - - if (nativeFamilyList == NULL) - { - return SetStatus(OutOfMemory); - } - - Status status = SetStatus(DllExports::GdipGetFontCollectionFamilyList( - nativeFontCollection, - numSought, - nativeFamilyList, - numFound - )); - if (status == Ok) - { - for (INT i = 0; i < *numFound; i++) - { - DllExports::GdipCloneFontFamily(nativeFamilyList[i], - &gpfamilies[i].nativeFamily); - } - } - - delete [] nativeFamilyList; - - return status; -} - -inline Status FontCollection::GetLastStatus () const -{ - return lastResult; -} - -inline Status -FontCollection::SetStatus(IN Status status) const -{ - lastResult = status; - return lastResult; -} - -inline -InstalledFontCollection::InstalledFontCollection() -{ - nativeFontCollection = NULL; - lastResult = DllExports::GdipNewInstalledFontCollection(&nativeFontCollection); -} - -inline -InstalledFontCollection::~InstalledFontCollection() -{ -} - -inline -PrivateFontCollection::PrivateFontCollection() -{ - nativeFontCollection = NULL; - lastResult = DllExports::GdipNewPrivateFontCollection(&nativeFontCollection); -} - -inline -PrivateFontCollection::~PrivateFontCollection() -{ - DllExports::GdipDeletePrivateFontCollection(&nativeFontCollection); -} - -inline Status -PrivateFontCollection::AddFontFile(IN const WCHAR* filename) -{ - return SetStatus(DllExports::GdipPrivateAddFontFile(nativeFontCollection, filename)); -} - -inline Status -PrivateFontCollection::AddMemoryFont(IN const void* memory, - IN INT length) -{ - return SetStatus(DllExports::GdipPrivateAddMemoryFont( - nativeFontCollection, - memory, - length)); -} - -#endif // _GDIPLUSFONTCOLL_H diff --git a/desmume/src/windows/gdiplus/GdiPlusFontFamily.h b/desmume/src/windows/gdiplus/GdiPlusFontFamily.h deleted file mode 100644 index 6ff8fba9d..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusFontFamily.h +++ /dev/null @@ -1,207 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusFontFamily.h -* -* Abstract: -* -* GDI+ Font Family class -* -\**************************************************************************/ - -#ifndef _GDIPLUS_FONT_FAMILY_H -#define _GDIPLUS_FONT_FAMILY_H - -inline -FontFamily::FontFamily() : - nativeFamily (NULL), - lastResult (Ok) -{ -} - -inline -FontFamily::FontFamily( - IN const WCHAR* name, - IN const FontCollection* fontCollection -) -{ - nativeFamily = NULL; - lastResult = DllExports::GdipCreateFontFamilyFromName( - name, - fontCollection ? fontCollection->nativeFontCollection : NULL, - &nativeFamily - ); -} - -inline -FontFamily::FontFamily( - IN GpFontFamily *nativeOrig, - IN Status status -) -{ - lastResult = status; - nativeFamily = nativeOrig; -} - -inline const FontFamily * -FontFamily::GenericSansSerif() -{ - if (GenericSansSerifFontFamily != NULL) - { - return GenericSansSerifFontFamily; - } - - GenericSansSerifFontFamily = - (FontFamily*) GenericSansSerifFontFamilyBuffer; - - GenericSansSerifFontFamily->lastResult = - DllExports::GdipGetGenericFontFamilySansSerif( - &(GenericSansSerifFontFamily->nativeFamily) - ); - - return GenericSansSerifFontFamily; -} - -inline const FontFamily * -FontFamily::GenericSerif() -{ - if (GenericSerifFontFamily != NULL) - { - return GenericSerifFontFamily; - } - - GenericSerifFontFamily = - (FontFamily*) GenericSerifFontFamilyBuffer; - - GenericSerifFontFamily->lastResult = - DllExports::GdipGetGenericFontFamilySerif( - &(GenericSerifFontFamily->nativeFamily) - ); - - return GenericSerifFontFamily; -} - -inline const FontFamily * -FontFamily::GenericMonospace() -{ - if (GenericMonospaceFontFamily != NULL) - { - return GenericMonospaceFontFamily; - } - - GenericMonospaceFontFamily = - (FontFamily*) GenericMonospaceFontFamilyBuffer; - - GenericMonospaceFontFamily->lastResult = - DllExports::GdipGetGenericFontFamilyMonospace( - &(GenericMonospaceFontFamily->nativeFamily) - ); - - return GenericMonospaceFontFamily; -} - -inline FontFamily::~FontFamily() -{ - DllExports::GdipDeleteFontFamily (nativeFamily); -} - -inline FontFamily * -FontFamily::Clone() const -{ - GpFontFamily * clonedFamily = NULL; - - SetStatus(DllExports::GdipCloneFontFamily (nativeFamily, &clonedFamily)); - - return new FontFamily(clonedFamily, lastResult); -} - -inline Status -FontFamily::GetFamilyName( - IN WCHAR name[LF_FACESIZE], - IN LANGID language -) const -{ - return SetStatus(DllExports::GdipGetFamilyName(nativeFamily, - name, - language)); -} - -inline BOOL -FontFamily::IsStyleAvailable(IN INT style) const -{ - BOOL StyleAvailable; - Status status; - - status = SetStatus(DllExports::GdipIsStyleAvailable(nativeFamily, style, &StyleAvailable)); - - if (status != Ok) - StyleAvailable = FALSE; - - return StyleAvailable; -} - - -inline UINT16 -FontFamily::GetEmHeight(IN INT style) const -{ - UINT16 EmHeight; - - SetStatus(DllExports::GdipGetEmHeight(nativeFamily, style, &EmHeight)); - - return EmHeight; -} - -inline UINT16 -FontFamily::GetCellAscent(IN INT style) const -{ - UINT16 CellAscent; - - SetStatus(DllExports::GdipGetCellAscent(nativeFamily, style, &CellAscent)); - - return CellAscent; -} - -inline UINT16 -FontFamily::GetCellDescent(IN INT style) const -{ - UINT16 CellDescent; - - SetStatus(DllExports::GdipGetCellDescent(nativeFamily, style, &CellDescent)); - - return CellDescent; -} - - -inline UINT16 -FontFamily::GetLineSpacing(IN INT style) const -{ - UINT16 LineSpacing; - - SetStatus(DllExports::GdipGetLineSpacing(nativeFamily, style, &LineSpacing)); - - return LineSpacing; - -} - -inline Status -FontFamily::GetLastStatus() const -{ - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; -} - -inline Status -FontFamily::SetStatus(Status status) const -{ - if (status != Ok) - return (lastResult = status); - else - return status; -} - -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusGpStubs.h b/desmume/src/windows/gdiplus/GdiPlusGpStubs.h deleted file mode 100644 index 6cd5920cd..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusGpStubs.h +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusGpStubs.h -* -* Abstract: -* -* Private GDI+ header file. -* -\**************************************************************************/ - -#ifndef _GDIPLUSGPSTUBS_H -#define _GDIPLUSGPSTUBS_H - -//--------------------------------------------------------------------------- -// GDI+ classes for forward reference -//--------------------------------------------------------------------------- - -class Graphics; -class Pen; -class Brush; -class Matrix; -class Bitmap; -class Metafile; -class GraphicsPath; -class PathIterator; -class Region; -class Image; -class TextureBrush; -class HatchBrush; -class SolidBrush; -class LinearGradientBrush; -class PathGradientBrush; -class Font; -class FontFamily; -class FontCollection; -class InstalledFontCollection; -class PrivateFontCollection; -class ImageAttributes; -class CachedBitmap; - -//--------------------------------------------------------------------------- -// Private GDI+ classes for internal type checking -//--------------------------------------------------------------------------- -class GpGraphics {}; - -class GpBrush {}; -class GpTexture : public GpBrush {}; -class GpSolidFill : public GpBrush {}; -class GpLineGradient : public GpBrush {}; -class GpPathGradient : public GpBrush {}; -class GpHatch : public GpBrush {}; - -class GpPen {}; -class GpCustomLineCap {}; -class GpAdjustableArrowCap : public GpCustomLineCap {}; - -class GpImage {}; -class GpBitmap : public GpImage {}; -class GpMetafile : public GpImage {}; -class GpImageAttributes {}; - -class GpPath {}; -class GpRegion {}; -class GpPathIterator {}; - -class GpFontFamily {}; -class GpFont {}; -class GpStringFormat {}; -class GpFontCollection {}; -class GpInstalledFontCollection : public GpFontCollection {}; -class GpPrivateFontCollection : public GpFontCollection {}; - -class GpCachedBitmap; - -typedef Status GpStatus; -typedef FillMode GpFillMode; -typedef WrapMode GpWrapMode; -typedef Unit GpUnit; -typedef CoordinateSpace GpCoordinateSpace; -typedef PointF GpPointF; -typedef Point GpPoint; -typedef RectF GpRectF; -typedef Rect GpRect; -typedef SizeF GpSizeF; -typedef HatchStyle GpHatchStyle; -typedef DashStyle GpDashStyle; -typedef LineCap GpLineCap; -typedef DashCap GpDashCap; - - -typedef PenAlignment GpPenAlignment; - -typedef LineJoin GpLineJoin; -typedef PenType GpPenType; - -typedef Matrix GpMatrix; -typedef BrushType GpBrushType; -typedef MatrixOrder GpMatrixOrder; -typedef FlushIntention GpFlushIntention; -typedef PathData GpPathData; - -#endif // !_GDIPLUSGPSTUBS.HPP - diff --git a/desmume/src/windows/gdiplus/GdiPlusGraphics.h b/desmume/src/windows/gdiplus/GdiPlusGraphics.h deleted file mode 100644 index a8e5ce09c..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusGraphics.h +++ /dev/null @@ -1,2496 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusGraphics.h -* -* Abstract: -* -* GDI+ Graphics Object -* -\**************************************************************************/ - -#ifndef _GDIPLUSGRAPHICS_H -#define _GDIPLUSGRAPHICS_H - -class Graphics : public GdiplusBase -{ -public: - friend class Region; - friend class GraphicsPath; - friend class Image; - friend class Bitmap; - friend class Metafile; - friend class Font; - friend class FontFamily; - friend class FontCollection; - friend class CachedBitmap; - - static Graphics* FromHDC(IN HDC hdc) - { - return new Graphics(hdc); - } - - static Graphics* FromHDC(IN HDC hdc, - IN HANDLE hdevice) - { - return new Graphics(hdc, hdevice); - } - - static Graphics* FromHWND(IN HWND hwnd, - IN BOOL icm = FALSE) - { - return new Graphics(hwnd, icm); - } - - static Graphics* FromImage(IN Image *image) - { - return new Graphics(image); - } - - Graphics(IN HDC hdc) - { - GpGraphics *graphics = NULL; - - lastResult = DllExports::GdipCreateFromHDC(hdc, &graphics); - - SetNativeGraphics(graphics); - } - - Graphics(IN HDC hdc, - IN HANDLE hdevice) - { - GpGraphics *graphics = NULL; - - lastResult = DllExports::GdipCreateFromHDC2(hdc, hdevice, &graphics); - - SetNativeGraphics(graphics); - } - - Graphics(IN HWND hwnd, - IN BOOL icm = FALSE) - { - GpGraphics *graphics = NULL; - - if (icm) - { - lastResult = DllExports::GdipCreateFromHWNDICM(hwnd, &graphics); - } - else - { - lastResult = DllExports::GdipCreateFromHWND(hwnd, &graphics); - } - - SetNativeGraphics(graphics); - } - - Graphics(IN Image* image) - { - GpGraphics *graphics = NULL; - - if (image != NULL) - { - lastResult = DllExports::GdipGetImageGraphicsContext( - image->nativeImage, &graphics); - } - SetNativeGraphics(graphics); - } - - ~Graphics() - { - DllExports::GdipDeleteGraphics(nativeGraphics); - } - - VOID Flush(IN FlushIntention intention = FlushIntentionFlush) - { - DllExports::GdipFlush(nativeGraphics, intention); - } - - //------------------------------------------------------------------------ - // GDI Interop methods - //------------------------------------------------------------------------ - - // Locks the graphics until ReleaseDC is called - - HDC GetHDC() - { - HDC hdc = NULL; - - SetStatus(DllExports::GdipGetDC(nativeGraphics, &hdc)); - - return hdc; - } - - VOID ReleaseHDC(IN HDC hdc) - { - SetStatus(DllExports::GdipReleaseDC(nativeGraphics, hdc)); - } - - //------------------------------------------------------------------------ - // Rendering modes - //------------------------------------------------------------------------ - - Status SetRenderingOrigin(IN INT x, IN INT y) - { - return SetStatus( - DllExports::GdipSetRenderingOrigin( - nativeGraphics, x, y - ) - ); - } - - Status GetRenderingOrigin(OUT INT *x, OUT INT *y) const - { - return SetStatus( - DllExports::GdipGetRenderingOrigin( - nativeGraphics, x, y - ) - ); - } - - Status SetCompositingMode(IN CompositingMode compositingMode) - { - return SetStatus(DllExports::GdipSetCompositingMode(nativeGraphics, - compositingMode)); - } - - CompositingMode GetCompositingMode() const - { - CompositingMode mode; - - SetStatus(DllExports::GdipGetCompositingMode(nativeGraphics, - &mode)); - - return mode; - } - - Status SetCompositingQuality(IN CompositingQuality compositingQuality) - { - return SetStatus(DllExports::GdipSetCompositingQuality( - nativeGraphics, - compositingQuality)); - } - - CompositingQuality GetCompositingQuality() const - { - CompositingQuality quality; - - SetStatus(DllExports::GdipGetCompositingQuality( - nativeGraphics, - &quality)); - - return quality; - } - - Status SetTextRenderingHint(IN TextRenderingHint newMode) - { - return SetStatus(DllExports::GdipSetTextRenderingHint(nativeGraphics, - newMode)); - } - - TextRenderingHint GetTextRenderingHint() const - { - TextRenderingHint hint; - - SetStatus(DllExports::GdipGetTextRenderingHint(nativeGraphics, - &hint)); - - return hint; - } - - Status SetTextContrast(IN UINT contrast) - { - return SetStatus(DllExports::GdipSetTextContrast(nativeGraphics, - contrast)); - } - - UINT GetTextContrast() const - { - UINT contrast; - - SetStatus(DllExports::GdipGetTextContrast(nativeGraphics, - &contrast)); - - return contrast; - } - - InterpolationMode GetInterpolationMode() const - { - InterpolationMode mode = InterpolationModeInvalid; - - SetStatus(DllExports::GdipGetInterpolationMode(nativeGraphics, - &mode)); - - return mode; - } - - Status SetInterpolationMode(IN InterpolationMode interpolationMode) - { - return SetStatus(DllExports::GdipSetInterpolationMode(nativeGraphics, - interpolationMode)); - } - - SmoothingMode GetSmoothingMode() const - { - SmoothingMode smoothingMode = SmoothingModeInvalid; - - SetStatus(DllExports::GdipGetSmoothingMode(nativeGraphics, - &smoothingMode)); - - return smoothingMode; - } - - Status SetSmoothingMode(IN SmoothingMode smoothingMode) - { - return SetStatus(DllExports::GdipSetSmoothingMode(nativeGraphics, - smoothingMode)); - } - - PixelOffsetMode GetPixelOffsetMode() const - { - PixelOffsetMode pixelOffsetMode = PixelOffsetModeInvalid; - - SetStatus(DllExports::GdipGetPixelOffsetMode(nativeGraphics, - &pixelOffsetMode)); - - return pixelOffsetMode; - } - - Status SetPixelOffsetMode(IN PixelOffsetMode pixelOffsetMode) - { - return SetStatus(DllExports::GdipSetPixelOffsetMode(nativeGraphics, - pixelOffsetMode)); - } - - //------------------------------------------------------------------------ - // Manipulate current world transform - //------------------------------------------------------------------------ - - Status SetTransform(IN const Matrix* matrix) - { - return SetStatus(DllExports::GdipSetWorldTransform(nativeGraphics, - matrix->nativeMatrix)); - } - Status ResetTransform() - { - return SetStatus(DllExports::GdipResetWorldTransform(nativeGraphics)); - } - - Status MultiplyTransform(IN const Matrix* matrix, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipMultiplyWorldTransform(nativeGraphics, - matrix->nativeMatrix, - order)); - } - - Status TranslateTransform(IN REAL dx, - IN REAL dy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipTranslateWorldTransform(nativeGraphics, - dx, dy, order)); - } - - Status ScaleTransform(IN REAL sx, - IN REAL sy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipScaleWorldTransform(nativeGraphics, - sx, sy, order)); - } - - Status RotateTransform(IN REAL angle, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipRotateWorldTransform(nativeGraphics, - angle, order)); - } - - Status GetTransform(OUT Matrix* matrix) const - { - return SetStatus(DllExports::GdipGetWorldTransform(nativeGraphics, - matrix->nativeMatrix)); - } - - Status SetPageUnit(IN Unit unit) - { - return SetStatus(DllExports::GdipSetPageUnit(nativeGraphics, - unit)); - } - - Status SetPageScale(IN REAL scale) - { - return SetStatus(DllExports::GdipSetPageScale(nativeGraphics, - scale)); - } - - Unit GetPageUnit() const - { - Unit unit; - - SetStatus(DllExports::GdipGetPageUnit(nativeGraphics, &unit)); - - return unit; - } - - REAL GetPageScale() const - { - REAL scale; - - SetStatus(DllExports::GdipGetPageScale(nativeGraphics, &scale)); - - return scale; - } - - REAL GetDpiX() const - { - REAL dpi; - - SetStatus(DllExports::GdipGetDpiX(nativeGraphics, &dpi)); - - return dpi; - } - - REAL GetDpiY() const - { - REAL dpi; - - SetStatus(DllExports::GdipGetDpiY(nativeGraphics, &dpi)); - - return dpi; - } - - Status TransformPoints(IN CoordinateSpace destSpace, - IN CoordinateSpace srcSpace, - IN OUT PointF* pts, - IN INT count) const - { - return SetStatus(DllExports::GdipTransformPoints(nativeGraphics, - destSpace, - srcSpace, - pts, - count)); - } - - Status TransformPoints(IN CoordinateSpace destSpace, - IN CoordinateSpace srcSpace, - IN OUT Point* pts, - IN INT count) const - { - - return SetStatus(DllExports::GdipTransformPointsI(nativeGraphics, - destSpace, - srcSpace, - pts, - count)); - } - - //------------------------------------------------------------------------ - // GetNearestColor (for <= 8bpp surfaces). Note: Alpha is ignored. - //------------------------------------------------------------------------ - - Status GetNearestColor(IN OUT Color* color) const - { - if (color == NULL) - { - return SetStatus(InvalidParameter); - } - - ARGB argb = color->GetValue(); - - Status status = SetStatus(DllExports::GdipGetNearestColor(nativeGraphics, &argb)); - - color->SetValue(argb); - - return status; - } - - Status DrawLine(IN const Pen* pen, - IN REAL x1, - IN REAL y1, - IN REAL x2, - IN REAL y2) - { - return SetStatus(DllExports::GdipDrawLine(nativeGraphics, - pen->nativePen, x1, y1, x2, - y2)); - } - - Status DrawLine(IN const Pen* pen, - IN const PointF& pt1, - IN const PointF& pt2) - { - return DrawLine(pen, pt1.X, pt1.Y, pt2.X, pt2.Y); - } - - Status DrawLines(IN const Pen* pen, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawLines(nativeGraphics, - pen->nativePen, - points, count)); - } - - Status DrawLine(IN const Pen* pen, - IN INT x1, - IN INT y1, - IN INT x2, - IN INT y2) - { - return SetStatus(DllExports::GdipDrawLineI(nativeGraphics, - pen->nativePen, - x1, - y1, - x2, - y2)); - } - - Status DrawLine(IN const Pen* pen, - IN const Point& pt1, - IN const Point& pt2) - { - return DrawLine(pen, - pt1.X, - pt1.Y, - pt2.X, - pt2.Y); - } - - Status DrawLines(IN const Pen* pen, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawLinesI(nativeGraphics, - pen->nativePen, - points, - count)); - } - - Status DrawArc(IN const Pen* pen, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipDrawArc(nativeGraphics, - pen->nativePen, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - Status DrawArc(IN const Pen* pen, - IN const RectF& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return DrawArc(pen, rect.X, rect.Y, rect.Width, rect.Height, - startAngle, sweepAngle); - } - - Status DrawArc(IN const Pen* pen, - IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipDrawArcI(nativeGraphics, - pen->nativePen, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - - Status DrawArc(IN const Pen* pen, - IN const Rect& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return DrawArc(pen, - rect.X, - rect.Y, - rect.Width, - rect.Height, - startAngle, - sweepAngle); - } - - Status DrawBezier(IN const Pen* pen, - IN REAL x1, - IN REAL y1, - IN REAL x2, - IN REAL y2, - IN REAL x3, - IN REAL y3, - IN REAL x4, - IN REAL y4) - { - return SetStatus(DllExports::GdipDrawBezier(nativeGraphics, - pen->nativePen, x1, y1, - x2, y2, x3, y3, x4, y4)); - } - - Status DrawBezier(IN const Pen* pen, - IN const PointF& pt1, - IN const PointF& pt2, - IN const PointF& pt3, - IN const PointF& pt4) - { - return DrawBezier(pen, - pt1.X, - pt1.Y, - pt2.X, - pt2.Y, - pt3.X, - pt3.Y, - pt4.X, - pt4.Y); - } - - Status DrawBeziers(IN const Pen* pen, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawBeziers(nativeGraphics, - pen->nativePen, - points, - count)); - } - - Status DrawBezier(IN const Pen* pen, - IN INT x1, - IN INT y1, - IN INT x2, - IN INT y2, - IN INT x3, - IN INT y3, - IN INT x4, - IN INT y4) - { - return SetStatus(DllExports::GdipDrawBezierI(nativeGraphics, - pen->nativePen, - x1, - y1, - x2, - y2, - x3, - y3, - x4, - y4)); - } - - Status DrawBezier(IN const Pen* pen, - IN const Point& pt1, - IN const Point& pt2, - IN const Point& pt3, - IN const Point& pt4) - { - return DrawBezier(pen, - pt1.X, - pt1.Y, - pt2.X, - pt2.Y, - pt3.X, - pt3.Y, - pt4.X, - pt4.Y); - } - - Status DrawBeziers(IN const Pen* pen, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawBeziersI(nativeGraphics, - pen->nativePen, - points, - count)); - } - - Status DrawRectangle(IN const Pen* pen, - IN const RectF& rect) - { - return DrawRectangle(pen, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status DrawRectangle(IN const Pen* pen, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipDrawRectangle(nativeGraphics, - pen->nativePen, x, y, - width, height)); - } - - Status DrawRectangles(IN const Pen* pen, - IN const RectF* rects, - IN INT count) - { - return SetStatus(DllExports::GdipDrawRectangles(nativeGraphics, - pen->nativePen, - rects, count)); - } - - Status DrawRectangle(IN const Pen* pen, - IN const Rect& rect) - { - return DrawRectangle(pen, - rect.X, - rect.Y, - rect.Width, - rect.Height); - } - - Status DrawRectangle(IN const Pen* pen, - IN INT x, - IN INT y, - IN INT width, - IN INT height) - { - return SetStatus(DllExports::GdipDrawRectangleI(nativeGraphics, - pen->nativePen, - x, - y, - width, - height)); - } - - Status DrawRectangles(IN const Pen* pen, - IN const Rect* rects, - IN INT count) - { - return SetStatus(DllExports::GdipDrawRectanglesI(nativeGraphics, - pen->nativePen, - rects, - count)); - } - - Status DrawEllipse(IN const Pen* pen, - IN const RectF& rect) - { - return DrawEllipse(pen, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status DrawEllipse(IN const Pen* pen, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipDrawEllipse(nativeGraphics, - pen->nativePen, - x, - y, - width, - height)); - } - - Status DrawEllipse(IN const Pen* pen, - IN const Rect& rect) - { - return DrawEllipse(pen, - rect.X, - rect.Y, - rect.Width, - rect.Height); - } - - Status DrawEllipse(IN const Pen* pen, - IN INT x, - IN INT y, - IN INT width, - IN INT height) - { - return SetStatus(DllExports::GdipDrawEllipseI(nativeGraphics, - pen->nativePen, - x, - y, - width, - height)); - } - - Status DrawPie(IN const Pen* pen, - IN const RectF& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return DrawPie(pen, - rect.X, - rect.Y, - rect.Width, - rect.Height, - startAngle, - sweepAngle); - } - - Status DrawPie(IN const Pen* pen, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipDrawPie(nativeGraphics, - pen->nativePen, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - Status DrawPie(IN const Pen* pen, - IN const Rect& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return DrawPie(pen, - rect.X, - rect.Y, - rect.Width, - rect.Height, - startAngle, - sweepAngle); - } - - Status DrawPie(IN const Pen* pen, - IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipDrawPieI(nativeGraphics, - pen->nativePen, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - Status DrawPolygon(IN const Pen* pen, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawPolygon(nativeGraphics, - pen->nativePen, - points, - count)); - } - - Status DrawPolygon(IN const Pen* pen, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawPolygonI(nativeGraphics, - pen->nativePen, - points, - count)); - } - - Status DrawPath(IN const Pen* pen, - IN const GraphicsPath* path) - { - return SetStatus(DllExports::GdipDrawPath(nativeGraphics, - pen ? pen->nativePen : NULL, - path ? path->nativePath : NULL)); - } - - Status DrawCurve(IN const Pen* pen, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawCurve(nativeGraphics, - pen->nativePen, points, - count)); - } - - Status DrawCurve(IN const Pen* pen, - IN const PointF* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipDrawCurve2(nativeGraphics, - pen->nativePen, points, - count, tension)); - } - - Status DrawCurve(IN const Pen* pen, - IN const PointF* points, - IN INT count, - IN INT offset, - IN INT numberOfSegments, - IN REAL tension = 0.5f) - { - return SetStatus(DllExports::GdipDrawCurve3(nativeGraphics, - pen->nativePen, points, - count, offset, - numberOfSegments, tension)); - } - - Status DrawCurve(IN const Pen* pen, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawCurveI(nativeGraphics, - pen->nativePen, - points, - count)); - } - - Status DrawCurve(IN const Pen* pen, - IN const Point* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipDrawCurve2I(nativeGraphics, - pen->nativePen, - points, - count, - tension)); - } - - Status DrawCurve(IN const Pen* pen, - IN const Point* points, - IN INT count, - IN INT offset, - IN INT numberOfSegments, - IN REAL tension = 0.5f) - { - return SetStatus(DllExports::GdipDrawCurve3I(nativeGraphics, - pen->nativePen, - points, - count, - offset, - numberOfSegments, - tension)); - } - - Status DrawClosedCurve(IN const Pen* pen, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawClosedCurve(nativeGraphics, - pen->nativePen, - points, count)); - } - - Status DrawClosedCurve(IN const Pen *pen, - IN const PointF* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipDrawClosedCurve2(nativeGraphics, - pen->nativePen, - points, count, - tension)); - } - - Status DrawClosedCurve(IN const Pen* pen, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipDrawClosedCurveI(nativeGraphics, - pen->nativePen, - points, - count)); - } - - Status DrawClosedCurve(IN const Pen *pen, - IN const Point* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipDrawClosedCurve2I(nativeGraphics, - pen->nativePen, - points, - count, - tension)); - } - - Status Clear(IN const Color &color) - { - return SetStatus(DllExports::GdipGraphicsClear( - nativeGraphics, - color.GetValue())); - } - - Status FillRectangle(IN const Brush* brush, - IN const RectF& rect) - { - return FillRectangle(brush, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status FillRectangle(IN const Brush* brush, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipFillRectangle(nativeGraphics, - brush->nativeBrush, x, y, - width, height)); - } - - Status FillRectangles(IN const Brush* brush, - IN const RectF* rects, - IN INT count) - { - return SetStatus(DllExports::GdipFillRectangles(nativeGraphics, - brush->nativeBrush, - rects, count)); - } - - Status FillRectangle(IN const Brush* brush, - IN const Rect& rect) - { - return FillRectangle(brush, - rect.X, - rect.Y, - rect.Width, - rect.Height); - } - - Status FillRectangle(IN const Brush* brush, - IN INT x, - IN INT y, - IN INT width, - IN INT height) - { - return SetStatus(DllExports::GdipFillRectangleI(nativeGraphics, - brush->nativeBrush, - x, - y, - width, - height)); - } - - Status FillRectangles(IN const Brush* brush, - IN const Rect* rects, - IN INT count) - { - return SetStatus(DllExports::GdipFillRectanglesI(nativeGraphics, - brush->nativeBrush, - rects, - count)); - } - - Status FillPolygon(IN const Brush* brush, - IN const PointF* points, - IN INT count) - { - return FillPolygon(brush, points, count, FillModeAlternate); - } - - Status FillPolygon(IN const Brush* brush, - IN const PointF* points, - IN INT count, - IN FillMode fillMode) - { - return SetStatus(DllExports::GdipFillPolygon(nativeGraphics, - brush->nativeBrush, - points, count, fillMode)); - } - - Status FillPolygon(IN const Brush* brush, - IN const Point* points, - IN INT count) - { - return FillPolygon(brush, points, count, FillModeAlternate); - } - - Status FillPolygon(IN const Brush* brush, - IN const Point* points, - IN INT count, - IN FillMode fillMode) - { - return SetStatus(DllExports::GdipFillPolygonI(nativeGraphics, - brush->nativeBrush, - points, count, - fillMode)); - } - - Status FillEllipse(IN const Brush* brush, - IN const RectF& rect) - { - return FillEllipse(brush, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status FillEllipse(IN const Brush* brush, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipFillEllipse(nativeGraphics, - brush->nativeBrush, x, y, - width, height)); - } - - Status FillEllipse(IN const Brush* brush, - IN const Rect& rect) - { - return FillEllipse(brush, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status FillEllipse(IN const Brush* brush, - IN INT x, - IN INT y, - IN INT width, - IN INT height) - { - return SetStatus(DllExports::GdipFillEllipseI(nativeGraphics, - brush->nativeBrush, - x, - y, - width, - height)); - } - - Status FillPie(IN const Brush* brush, - IN const RectF& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return FillPie(brush, rect.X, rect.Y, rect.Width, rect.Height, - startAngle, sweepAngle); - } - - Status FillPie(IN const Brush* brush, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipFillPie(nativeGraphics, - brush->nativeBrush, x, y, - width, height, startAngle, - sweepAngle)); - } - - Status FillPie(IN const Brush* brush, - IN const Rect& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return FillPie(brush, rect.X, rect.Y, rect.Width, rect.Height, - startAngle, sweepAngle); - } - - Status FillPie(IN const Brush* brush, - IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipFillPieI(nativeGraphics, - brush->nativeBrush, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - Status FillPath(IN const Brush* brush, - IN const GraphicsPath* path) - { - return SetStatus(DllExports::GdipFillPath(nativeGraphics, - brush->nativeBrush, - path->nativePath)); - } - - Status FillClosedCurve(IN const Brush* brush, - IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipFillClosedCurve(nativeGraphics, - brush->nativeBrush, - points, count)); - - } - - Status FillClosedCurve(IN const Brush* brush, - IN const PointF* points, - IN INT count, - IN FillMode fillMode, - IN REAL tension = 0.5f) - { - return SetStatus(DllExports::GdipFillClosedCurve2(nativeGraphics, - brush->nativeBrush, - points, count, - tension, fillMode)); - } - - Status FillClosedCurve(IN const Brush* brush, - IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipFillClosedCurveI(nativeGraphics, - brush->nativeBrush, - points, - count)); - } - - Status FillClosedCurve(IN const Brush* brush, - IN const Point* points, - IN INT count, - IN FillMode fillMode, - IN REAL tension = 0.5f) - { - return SetStatus(DllExports::GdipFillClosedCurve2I(nativeGraphics, - brush->nativeBrush, - points, count, - tension, fillMode)); - } - - Status FillRegion(IN const Brush* brush, - IN const Region* region) - { - return SetStatus(DllExports::GdipFillRegion(nativeGraphics, - brush->nativeBrush, - region->nativeRegion)); - } - - Status - DrawString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const RectF &layoutRect, - IN const StringFormat *stringFormat, - IN const Brush *brush - ) - { - return SetStatus(DllExports::GdipDrawString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &layoutRect, - stringFormat ? stringFormat->nativeFormat : NULL, - brush ? brush->nativeBrush : NULL - )); - } - - Status - DrawString( - const WCHAR *string, - INT length, - const Font *font, - const PointF &origin, - const Brush *brush - ) - { - RectF rect(origin.X, origin.Y, 0.0f, 0.0f); - - return SetStatus(DllExports::GdipDrawString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &rect, - NULL, - brush ? brush->nativeBrush : NULL - )); - } - - Status - DrawString( - const WCHAR *string, - INT length, - const Font *font, - const PointF &origin, - const StringFormat *stringFormat, - const Brush *brush - ) - { - RectF rect(origin.X, origin.Y, 0.0f, 0.0f); - - return SetStatus(DllExports::GdipDrawString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &rect, - stringFormat ? stringFormat->nativeFormat : NULL, - brush ? brush->nativeBrush : NULL - )); - } - - Status - MeasureString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const RectF &layoutRect, - IN const StringFormat *stringFormat, - OUT RectF *boundingBox, - OUT INT *codepointsFitted = 0, - OUT INT *linesFilled = 0 - ) const - { - return SetStatus(DllExports::GdipMeasureString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &layoutRect, - stringFormat ? stringFormat->nativeFormat : NULL, - boundingBox, - codepointsFitted, - linesFilled - )); - } - - Status - MeasureString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const SizeF &layoutRectSize, - IN const StringFormat *stringFormat, - OUT SizeF *size, - OUT INT *codepointsFitted = 0, - OUT INT *linesFilled = 0 - ) const - { - RectF layoutRect(0, 0, layoutRectSize.Width, layoutRectSize.Height); - RectF boundingBox; - Status status; - - if (size == NULL) - { - return SetStatus(InvalidParameter); - } - - status = SetStatus(DllExports::GdipMeasureString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &layoutRect, - stringFormat ? stringFormat->nativeFormat : NULL, - size ? &boundingBox : NULL, - codepointsFitted, - linesFilled - )); - - if (size && status == Ok) - { - size->Width = boundingBox.Width; - size->Height = boundingBox.Height; - } - - return status; - } - - Status - MeasureString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const PointF &origin, - IN const StringFormat *stringFormat, - OUT RectF *boundingBox - ) const - { - RectF rect(origin.X, origin.Y, 0.0f, 0.0f); - - return SetStatus(DllExports::GdipMeasureString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &rect, - stringFormat ? stringFormat->nativeFormat : NULL, - boundingBox, - NULL, - NULL - )); - } - - Status - MeasureString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const RectF &layoutRect, - OUT RectF *boundingBox - ) const - { - return SetStatus(DllExports::GdipMeasureString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &layoutRect, - NULL, - boundingBox, - NULL, - NULL - )); - } - - Status - MeasureString( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const PointF &origin, - OUT RectF *boundingBox - ) const - { - RectF rect(origin.X, origin.Y, 0.0f, 0.0f); - - return SetStatus(DllExports::GdipMeasureString( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - &rect, - NULL, - boundingBox, - NULL, - NULL - )); - } - - - Status - MeasureCharacterRanges( - IN const WCHAR *string, - IN INT length, - IN const Font *font, - IN const RectF &layoutRect, - IN const StringFormat *stringFormat, - IN INT regionCount, - OUT Region *regions - ) const - { - if (!regions || regionCount <= 0) - { - return InvalidParameter; - } - - GpRegion **nativeRegions = new GpRegion* [regionCount]; - - if (!nativeRegions) - { - return OutOfMemory; - } - - for (INT i = 0; i < regionCount; i++) - { - nativeRegions[i] = regions[i].nativeRegion; - } - - Status status = SetStatus(DllExports::GdipMeasureCharacterRanges( - nativeGraphics, - string, - length, - font ? font->nativeFont : NULL, - layoutRect, - stringFormat ? stringFormat->nativeFormat : NULL, - regionCount, - nativeRegions - )); - - delete [] nativeRegions; - - return status; - } - - Status DrawDriverString( - IN const UINT16 *text, - IN INT length, - IN const Font *font, - IN const Brush *brush, - IN const PointF *positions, - IN INT flags, - IN const Matrix *matrix - ) - { - return SetStatus(DllExports::GdipDrawDriverString( - nativeGraphics, - text, - length, - font ? font->nativeFont : NULL, - brush ? brush->nativeBrush : NULL, - positions, - flags, - matrix ? matrix->nativeMatrix : NULL - )); - } - - Status MeasureDriverString( - IN const UINT16 *text, - IN INT length, - IN const Font *font, - IN const PointF *positions, - IN INT flags, - IN const Matrix *matrix, - OUT RectF *boundingBox - ) const - { - return SetStatus(DllExports::GdipMeasureDriverString( - nativeGraphics, - text, - length, - font ? font->nativeFont : NULL, - positions, - flags, - matrix ? matrix->nativeMatrix : NULL, - boundingBox - )); - } - - // Draw a cached bitmap on this graphics destination offset by - // x, y. Note this will fail with WrongState if the CachedBitmap - // native format differs from this Graphics. - - Status DrawCachedBitmap(IN CachedBitmap *cb, - IN INT x, - IN INT y) - { - return SetStatus(DllExports::GdipDrawCachedBitmap( - nativeGraphics, - cb->nativeCachedBitmap, - x, y - )); - } - - Status DrawImage(IN Image* image, - IN const PointF& point) - { - return DrawImage(image, point.X, point.Y); - } - - Status DrawImage(IN Image* image, - IN REAL x, - IN REAL y) - { - return SetStatus(DllExports::GdipDrawImage(nativeGraphics, - image ? image->nativeImage - : NULL, - x, - y)); - } - - Status DrawImage(IN Image* image, - IN const RectF& rect) - { - return DrawImage(image, rect.X, rect.Y, rect.Width, rect.Height); - } - - Status DrawImage(IN Image* image, - IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipDrawImageRect(nativeGraphics, - image ? image->nativeImage - : NULL, - x, - y, - width, - height)); - } - - Status DrawImage(IN Image* image, - IN const Point& point) - { - return DrawImage(image, point.X, point.Y); - } - - Status DrawImage(IN Image* image, - IN INT x, - IN INT y) - { - return SetStatus(DllExports::GdipDrawImageI(nativeGraphics, - image ? image->nativeImage - : NULL, - x, - y)); - } - - Status DrawImage(IN Image* image, - IN const Rect& rect) - { - return DrawImage(image, - rect.X, - rect.Y, - rect.Width, - rect.Height); - } - - Status DrawImage(IN Image* image, - IN INT x, - IN INT y, - IN INT width, - IN INT height) { - return SetStatus(DllExports::GdipDrawImageRectI(nativeGraphics, - image ? image->nativeImage - : NULL, - x, - y, - width, - height)); - } - - - // Affine Draw Image - // destPoints.length = 3: rect => parallelogram - // destPoints[0] <=> top-left corner of the source rectangle - // destPoints[1] <=> top-right corner - // destPoints[2] <=> bottom-left corner - // destPoints.length = 4: rect => quad - // destPoints[3] <=> bottom-right corner - - Status DrawImage(IN Image* image, - IN const PointF* destPoints, - IN INT count) - { - if (count != 3 && count != 4) - return SetStatus(InvalidParameter); - - return SetStatus(DllExports::GdipDrawImagePoints(nativeGraphics, - image ? image->nativeImage - : NULL, - destPoints, count)); - } - - Status DrawImage(IN Image* image, - IN const Point* destPoints, - IN INT count) - { - if (count != 3 && count != 4) - return SetStatus(InvalidParameter); - - return SetStatus(DllExports::GdipDrawImagePointsI(nativeGraphics, - image ? image->nativeImage - : NULL, - destPoints, - count)); - } - - Status DrawImage(IN Image* image, - IN REAL x, - IN REAL y, - IN REAL srcx, - IN REAL srcy, - IN REAL srcwidth, - IN REAL srcheight, - IN Unit srcUnit) - { - return SetStatus(DllExports::GdipDrawImagePointRect(nativeGraphics, - image ? image->nativeImage - : NULL, - x, y, - srcx, srcy, - srcwidth, srcheight, srcUnit)); - } - - Status DrawImage(IN Image* image, - IN const RectF& destRect, - IN REAL srcx, - IN REAL srcy, - IN REAL srcwidth, - IN REAL srcheight, - IN Unit srcUnit, - IN const ImageAttributes* imageAttributes = NULL, - IN DrawImageAbort callback = NULL, - IN VOID* callbackData = NULL) - { - return SetStatus(DllExports::GdipDrawImageRectRect(nativeGraphics, - image ? image->nativeImage - : NULL, - destRect.X, - destRect.Y, - destRect.Width, - destRect.Height, - srcx, srcy, - srcwidth, srcheight, - srcUnit, - imageAttributes - ? imageAttributes->nativeImageAttr - : NULL, - callback, - callbackData)); - } - - Status DrawImage(IN Image* image, - IN const PointF* destPoints, - IN INT count, - IN REAL srcx, - IN REAL srcy, - IN REAL srcwidth, - IN REAL srcheight, - IN Unit srcUnit, - IN const ImageAttributes* imageAttributes = NULL, - IN DrawImageAbort callback = NULL, - IN VOID* callbackData = NULL) - { - return SetStatus(DllExports::GdipDrawImagePointsRect(nativeGraphics, - image ? image->nativeImage - : NULL, - destPoints, count, - srcx, srcy, - srcwidth, - srcheight, - srcUnit, - imageAttributes - ? imageAttributes->nativeImageAttr - : NULL, - callback, - callbackData)); - } - - Status DrawImage(IN Image* image, - IN INT x, - IN INT y, - IN INT srcx, - IN INT srcy, - IN INT srcwidth, - IN INT srcheight, - IN Unit srcUnit) - { - return SetStatus(DllExports::GdipDrawImagePointRectI(nativeGraphics, - image ? image->nativeImage - : NULL, - x, - y, - srcx, - srcy, - srcwidth, - srcheight, - srcUnit)); - } - - Status DrawImage(IN Image* image, - IN const Rect& destRect, - IN INT srcx, - IN INT srcy, - IN INT srcwidth, - IN INT srcheight, - IN Unit srcUnit, - IN const ImageAttributes* imageAttributes = NULL, - IN DrawImageAbort callback = NULL, - IN VOID* callbackData = NULL) - { - return SetStatus(DllExports::GdipDrawImageRectRectI(nativeGraphics, - image ? image->nativeImage - : NULL, - destRect.X, - destRect.Y, - destRect.Width, - destRect.Height, - srcx, - srcy, - srcwidth, - srcheight, - srcUnit, - imageAttributes - ? imageAttributes->nativeImageAttr - : NULL, - callback, - callbackData)); - } - - Status DrawImage(IN Image* image, - IN const Point* destPoints, - IN INT count, - IN INT srcx, - IN INT srcy, - IN INT srcwidth, - IN INT srcheight, - IN Unit srcUnit, - IN const ImageAttributes* imageAttributes = NULL, - IN DrawImageAbort callback = NULL, - IN VOID* callbackData = NULL) - { - return SetStatus(DllExports::GdipDrawImagePointsRectI(nativeGraphics, - image ? image->nativeImage - : NULL, - destPoints, - count, - srcx, - srcy, - srcwidth, - srcheight, - srcUnit, - imageAttributes - ? imageAttributes->nativeImageAttr - : NULL, - callback, - callbackData)); - } - - // The following methods are for playing an EMF+ to a graphics - // via the enumeration interface. Each record of the EMF+ is - // sent to the callback (along with the callbackData). Then - // the callback can invoke the Metafile::PlayRecord method - // to play the particular record. - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const PointF & destPoint, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestPoint( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoint, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Point & destPoint, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestPointI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoint, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const RectF & destRect, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestRect( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destRect, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Rect & destRect, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestRectI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destRect, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const PointF * destPoints, - IN INT count, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestPoints( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoints, - count, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Point * destPoints, - IN INT count, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileDestPointsI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoints, - count, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const PointF & destPoint, - IN const RectF & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestPoint( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoint, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Point & destPoint, - IN const Rect & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestPointI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoint, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const RectF & destRect, - IN const RectF & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestRect( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destRect, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Rect & destRect, - IN const Rect & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestRectI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destRect, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const PointF * destPoints, - IN INT count, - IN const RectF & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestPoints( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoints, - count, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status - EnumerateMetafile( - IN const Metafile * metafile, - IN const Point * destPoints, - IN INT count, - IN const Rect & srcRect, - IN Unit srcUnit, - IN EnumerateMetafileProc callback, - IN VOID * callbackData = NULL, - IN const ImageAttributes * imageAttributes = NULL - ) - { - return SetStatus(DllExports::GdipEnumerateMetafileSrcRectDestPointsI( - nativeGraphics, - (const GpMetafile *)(metafile ? metafile->nativeImage:NULL), - destPoints, - count, - srcRect, - srcUnit, - callback, - callbackData, - imageAttributes ? imageAttributes->nativeImageAttr : NULL)); - } - - Status SetClip(IN const Graphics* g, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipGraphics(nativeGraphics, - g->nativeGraphics, - combineMode)); - } - - Status SetClip(IN const RectF& rect, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipRect(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - combineMode)); - } - - Status SetClip(IN const Rect& rect, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipRectI(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - combineMode)); - } - - Status SetClip(IN const GraphicsPath* path, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipPath(nativeGraphics, - path->nativePath, - combineMode)); - } - - Status SetClip(IN const Region* region, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipRegion(nativeGraphics, - region->nativeRegion, - combineMode)); - } - - // This is different than the other SetClip methods because it assumes - // that the HRGN is already in device units, so it doesn't transform - // the coordinates in the HRGN. - - Status SetClip(IN HRGN hRgn, - IN CombineMode combineMode = CombineModeReplace) - { - return SetStatus(DllExports::GdipSetClipHrgn(nativeGraphics, hRgn, - combineMode)); - } - - Status IntersectClip(IN const RectF& rect) - { - return SetStatus(DllExports::GdipSetClipRect(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - CombineModeIntersect)); - } - - Status IntersectClip(IN const Rect& rect) - { - return SetStatus(DllExports::GdipSetClipRectI(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - CombineModeIntersect)); - } - - Status IntersectClip(IN const Region* region) - { - return SetStatus(DllExports::GdipSetClipRegion(nativeGraphics, - region->nativeRegion, - CombineModeIntersect)); - } - - Status ExcludeClip(IN const RectF& rect) - { - return SetStatus(DllExports::GdipSetClipRect(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - CombineModeExclude)); - } - - Status ExcludeClip(IN const Rect& rect) - { - return SetStatus(DllExports::GdipSetClipRectI(nativeGraphics, - rect.X, rect.Y, - rect.Width, rect.Height, - CombineModeExclude)); - } - - Status ExcludeClip(IN const Region* region) - { - return SetStatus(DllExports::GdipSetClipRegion(nativeGraphics, - region->nativeRegion, - CombineModeExclude)); - } - - Status ResetClip() - { - return SetStatus(DllExports::GdipResetClip(nativeGraphics)); - } - - Status TranslateClip(IN REAL dx, - IN REAL dy) - { - return SetStatus(DllExports::GdipTranslateClip(nativeGraphics, dx, dy)); - } - - Status TranslateClip(IN INT dx, - IN INT dy) - { - return SetStatus(DllExports::GdipTranslateClipI(nativeGraphics, - dx, dy)); - } - - Status GetClip(OUT Region* region) const - { - return SetStatus(DllExports::GdipGetClip(nativeGraphics, - region->nativeRegion)); - } - - Status GetClipBounds(OUT RectF* rect) const - { - return SetStatus(DllExports::GdipGetClipBounds(nativeGraphics, rect)); - } - - Status GetClipBounds(OUT Rect* rect) const - { - return SetStatus(DllExports::GdipGetClipBoundsI(nativeGraphics, rect)); - } - - BOOL IsClipEmpty() const - { - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsClipEmpty(nativeGraphics, &booln)); - - return booln; - } - - Status GetVisibleClipBounds(OUT RectF *rect) const - { - - return SetStatus(DllExports::GdipGetVisibleClipBounds(nativeGraphics, - rect)); - } - - Status GetVisibleClipBounds(OUT Rect *rect) const - { - return SetStatus(DllExports::GdipGetVisibleClipBoundsI(nativeGraphics, - rect)); - } - - BOOL IsVisibleClipEmpty() const - { - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsVisibleClipEmpty(nativeGraphics, &booln)); - - return booln; - } - - BOOL IsVisible(IN INT x, - IN INT y) const - { - return IsVisible(Point(x,y)); - } - - BOOL IsVisible(IN const Point& point) const - { - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsVisiblePointI(nativeGraphics, - point.X, - point.Y, - &booln)); - - return booln; - } - - BOOL IsVisible(IN INT x, - IN INT y, - IN INT width, - IN INT height) const - { - return IsVisible(Rect(x, y, width, height)); - } - - BOOL IsVisible(IN const Rect& rect) const - { - - BOOL booln = TRUE; - - SetStatus(DllExports::GdipIsVisibleRectI(nativeGraphics, - rect.X, - rect.Y, - rect.Width, - rect.Height, - &booln)); - return booln; - } - - BOOL IsVisible(IN REAL x, - IN REAL y) const - { - return IsVisible(PointF(x, y)); - } - - BOOL IsVisible(IN const PointF& point) const - { - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsVisiblePoint(nativeGraphics, - point.X, - point.Y, - &booln)); - - return booln; - } - - BOOL IsVisible(IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) const - { - return IsVisible(RectF(x, y, width, height)); - } - - BOOL IsVisible(IN const RectF& rect) const - { - BOOL booln = TRUE; - - SetStatus(DllExports::GdipIsVisibleRect(nativeGraphics, - rect.X, - rect.Y, - rect.Width, - rect.Height, - &booln)); - return booln; - } - - GraphicsState Save() const - { - GraphicsState gstate; - - SetStatus(DllExports::GdipSaveGraphics(nativeGraphics, &gstate)); - - return gstate; - } - - Status Restore(IN GraphicsState gstate) - { - return SetStatus(DllExports::GdipRestoreGraphics(nativeGraphics, - gstate)); - } - - GraphicsContainer BeginContainer(IN const RectF &dstrect, - IN const RectF &srcrect, - IN Unit unit) - { - GraphicsContainer state; - - SetStatus(DllExports::GdipBeginContainer(nativeGraphics, &dstrect, - &srcrect, unit, &state)); - - return state; - } - - GraphicsContainer BeginContainer(IN const Rect &dstrect, - IN const Rect &srcrect, - IN Unit unit) - { - GraphicsContainer state; - - SetStatus(DllExports::GdipBeginContainerI(nativeGraphics, &dstrect, - &srcrect, unit, &state)); - - return state; - } - - GraphicsContainer BeginContainer() - { - GraphicsContainer state; - - SetStatus(DllExports::GdipBeginContainer2(nativeGraphics, &state)); - - return state; - } - - Status EndContainer(IN GraphicsContainer state) - { - return SetStatus(DllExports::GdipEndContainer(nativeGraphics, state)); - } - - // Only valid when recording metafiles. - - Status AddMetafileComment(IN const BYTE * data, - IN UINT sizeData) - { - return SetStatus(DllExports::GdipComment(nativeGraphics, sizeData, data)); - } - - static HPALETTE GetHalftonePalette() - { - return DllExports::GdipCreateHalftonePalette(); - } - - Status GetLastStatus() const - { - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; - } - -private: - Graphics(const Graphics &); - Graphics& operator=(const Graphics &); - -protected: - Graphics(GpGraphics* graphics) - { - lastResult = Ok; - SetNativeGraphics(graphics); - } - - VOID SetNativeGraphics(GpGraphics *graphics) - { - this->nativeGraphics = graphics; - } - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - - GpGraphics* GetNativeGraphics() const - { - return this->nativeGraphics; - } - - GpPen* GetNativePen(const Pen* pen) - { - return pen->nativePen; - } - -protected: - GpGraphics* nativeGraphics; - mutable Status lastResult; - -}; - -//---------------------------------------------------------------------------- -// Implementation of GraphicsPath methods that use Graphics -//---------------------------------------------------------------------------- - -// The GetBounds rectangle may not be the tightest bounds. - -inline Status -GraphicsPath::GetBounds( - OUT RectF* bounds, - IN const Matrix* matrix, - IN const Pen* pen) const -{ - GpMatrix* nativeMatrix = NULL; - GpPen* nativePen = NULL; - - if (matrix) - nativeMatrix = matrix->nativeMatrix; - - if (pen) - nativePen = pen->nativePen; - - return SetStatus(DllExports::GdipGetPathWorldBounds(nativePath, bounds, - nativeMatrix, nativePen)); -} - -inline Status -GraphicsPath::GetBounds( - OUT Rect* bounds, - IN const Matrix* matrix, - IN const Pen* pen -) const -{ - GpMatrix* nativeMatrix = NULL; - GpPen* nativePen = NULL; - - if (matrix) - nativeMatrix = matrix->nativeMatrix; - - if (pen) - nativePen = pen->nativePen; - - return SetStatus(DllExports::GdipGetPathWorldBoundsI(nativePath, bounds, - nativeMatrix, nativePen)); -} - -inline BOOL -GraphicsPath::IsVisible( - IN REAL x, - IN REAL y, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - GpGraphics* nativeGraphics = NULL; - - if (g) - nativeGraphics = g->nativeGraphics; - - SetStatus(DllExports::GdipIsVisiblePathPoint(nativePath, - x, y, nativeGraphics, - &booln)); - return booln; -} - -inline BOOL -GraphicsPath::IsVisible( - IN INT x, - IN INT y, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - GpGraphics* nativeGraphics = NULL; - - if (g) - nativeGraphics = g->nativeGraphics; - - SetStatus(DllExports::GdipIsVisiblePathPointI(nativePath, - x, y, nativeGraphics, - &booln)); - return booln; -} - -inline BOOL -GraphicsPath::IsOutlineVisible( - IN REAL x, - IN REAL y, - IN const Pen* pen, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - GpGraphics* nativeGraphics = NULL; - GpPen* nativePen = NULL; - - if(g) - nativeGraphics = g->nativeGraphics; - if(pen) - nativePen = pen->nativePen; - - SetStatus(DllExports::GdipIsOutlineVisiblePathPoint(nativePath, - x, y, nativePen, nativeGraphics, - &booln)); - return booln; -} - -inline BOOL -GraphicsPath::IsOutlineVisible( - IN INT x, - IN INT y, - IN const Pen* pen, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - GpGraphics* nativeGraphics = NULL; - GpPen* nativePen = NULL; - - if(g) - nativeGraphics = g->nativeGraphics; - if(pen) - nativePen = pen->nativePen; - - SetStatus(DllExports::GdipIsOutlineVisiblePathPointI(nativePath, - x, y, nativePen, nativeGraphics, - &booln)); - return booln; -} - -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusHeaders.h b/desmume/src/windows/gdiplus/GdiPlusHeaders.h deleted file mode 100644 index 9a9f53ef3..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusHeaders.h +++ /dev/null @@ -1,671 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusHeaders.h -* -* Abstract: -* -* GDI+ Region, Font, Image, CustomLineCap class definitions. -* -* -* Class definition and inline class implementation are separated into -* different files to avoid circular dependencies. -* -\**************************************************************************/ - -#ifndef _GDIPLUSHEADERS_H -#define _GDIPLUSHEADERS_H - -class Region : public GdiplusBase -{ -public: - friend class Graphics; - - Region(); - Region(IN const RectF& rect); - Region(IN const Rect& rect); - Region(IN const GraphicsPath* path); - Region(IN const BYTE* regionData, IN INT size); - Region(IN HRGN hRgn); - static Region* FromHRGN(IN HRGN hRgn); - - ~Region(); - Region* Clone() const; - - Status MakeInfinite(); - Status MakeEmpty(); - - UINT GetDataSize() const; - - // buffer - where to put the data - // bufferSize - how big the buffer is (should be at least as big as GetDataSize()) - // sizeFilled - if not NULL, this is an OUT param that says how many bytes - // of data were written to the buffer. - - Status GetData(OUT BYTE* buffer, - IN UINT bufferSize, - OUT UINT* sizeFilled = NULL) const; - - Status Intersect(IN const Rect& rect); - Status Intersect(IN const RectF& rect); - Status Intersect(IN const GraphicsPath* path); - Status Intersect(IN const Region* region); - Status Union(IN const Rect& rect); - Status Union(IN const RectF& rect); - Status Union(IN const GraphicsPath* path); - Status Union(IN const Region* region); - Status Xor(IN const Rect& rect); - Status Xor(IN const RectF& rect); - Status Xor(IN const GraphicsPath* path); - Status Xor(IN const Region* region); - Status Exclude(IN const Rect& rect); - Status Exclude(IN const RectF& rect); - Status Exclude(IN const GraphicsPath* path); - Status Exclude(IN const Region* region); - Status Complement(IN const Rect& rect); - Status Complement(IN const RectF& rect); - Status Complement(IN const GraphicsPath* path); - Status Complement(IN const Region* region); - Status Translate(IN REAL dx, - IN REAL dy); - Status Translate(IN INT dx, - IN INT dy); - Status Transform(IN const Matrix* matrix); - - Status GetBounds(OUT Rect* rect, - IN const Graphics* g) const; - - Status GetBounds(OUT RectF* rect, - IN const Graphics* g) const; - - HRGN GetHRGN (IN const Graphics * g) const; - - BOOL IsEmpty(IN const Graphics *g) const; - BOOL IsInfinite(IN const Graphics *g) const; - - BOOL IsVisible(IN INT x, - IN INT y, - IN const Graphics* g = NULL) const - { - return IsVisible(Point(x, y), g); - } - - BOOL IsVisible(IN const Point& point, - IN const Graphics* g = NULL) const; - - BOOL IsVisible(IN REAL x, - IN REAL y, - IN const Graphics* g = NULL) const - { - return IsVisible(PointF(x, y), g); - } - - BOOL IsVisible(IN const PointF& point, - IN const Graphics* g = NULL) const; - - BOOL IsVisible(IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN const Graphics* g) const - { - return IsVisible(Rect(x, y, width, height), g); - } - - BOOL IsVisible(IN const Rect& rect, - IN const Graphics* g = NULL) const; - - BOOL IsVisible(IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN const Graphics* g = NULL) const - { - return IsVisible(RectF(x, y, width, height), g); - } - - BOOL IsVisible(IN const RectF& rect, - IN const Graphics* g = NULL) const; - - BOOL Equals(IN const Region* region, - IN const Graphics* g) const; - - UINT GetRegionScansCount(IN const Matrix* matrix) const; - Status GetRegionScans(IN const Matrix* matrix, - OUT RectF* rects, - OUT INT* count) const; - Status GetRegionScans(IN const Matrix* matrix, - OUT Rect* rects, - OUT INT* count) const; - Status GetLastStatus() const; - -protected: - -private: - Region(const Region ®ion); - Region& operator=(const Region ®ion); -protected: - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - - Region(GpRegion* nativeRegion); - - VOID SetNativeRegion(GpRegion* nativeRegion); - -protected: - GpRegion* nativeRegion; - mutable Status lastResult; -}; - - -//-------------------------------------------------------------------------- -// FontFamily -//-------------------------------------------------------------------------- - -class FontFamily : public GdiplusBase -{ -public: - friend class Font; - friend class Graphics; - friend class GraphicsPath; - friend class FontCollection; - - FontFamily(); - - FontFamily( - IN const WCHAR *name, - IN const FontCollection *fontCollection = NULL - ); - - ~FontFamily(); - - static const FontFamily *GenericSansSerif(); - static const FontFamily *GenericSerif(); - static const FontFamily *GenericMonospace(); - - Status GetFamilyName( - OUT WCHAR name[LF_FACESIZE], - IN LANGID language = 0 - ) const; - - FontFamily * Clone() const; - - BOOL IsAvailable() const - { - return (nativeFamily != NULL); - }; - - BOOL IsStyleAvailable(IN INT style) const; - - UINT16 GetEmHeight (IN INT style) const; - UINT16 GetCellAscent (IN INT style) const; - UINT16 GetCellDescent (IN INT style) const; - UINT16 GetLineSpacing (IN INT style) const; - - Status GetLastStatus() const; - -private: - FontFamily(const FontFamily &); - FontFamily& operator=(const FontFamily &); - -protected: - Status SetStatus(Status status) const; - - FontFamily(GpFontFamily * nativeFamily, Status status); - -protected: - - GpFontFamily *nativeFamily; - mutable Status lastResult; -}; - -static FontFamily *GenericSansSerifFontFamily = NULL; -static FontFamily *GenericSerifFontFamily = NULL; -static FontFamily *GenericMonospaceFontFamily = NULL; - -static BYTE GenericSansSerifFontFamilyBuffer[sizeof(FontFamily)] = {0}; -static BYTE GenericSerifFontFamilyBuffer [sizeof(FontFamily)] = {0}; -static BYTE GenericMonospaceFontFamilyBuffer[sizeof(FontFamily)] = {0}; - - -//-------------------------------------------------------------------------- -// Font -//-------------------------------------------------------------------------- - -class Font : public GdiplusBase -{ -public: - friend class Graphics; - - Font(IN HDC hdc); - Font(IN HDC hdc, - IN const LOGFONTA* logfont); - Font(IN HDC hdc, - IN const LOGFONTW* logfont); - Font(IN HDC hdc, - IN const HFONT hfont); - Font( - IN const FontFamily * family, - IN REAL emSize, - IN INT style = FontStyleRegular, - IN Unit unit = UnitPoint - ); - - Font( - IN const WCHAR * familyName, - IN REAL emSize, - IN INT style = FontStyleRegular, - IN Unit unit = UnitPoint, - IN const FontCollection * fontCollection = NULL - ); - - Status GetLogFontA(IN const Graphics* g, - OUT LOGFONTA * logfontA) const; - Status GetLogFontW(IN const Graphics* g, - OUT LOGFONTW * logfontW) const; - - Font* Clone() const; - ~Font(); - BOOL IsAvailable() const; - INT GetStyle() const; - REAL GetSize() const; - Unit GetUnit() const; - Status GetLastStatus() const; - REAL GetHeight(IN const Graphics *graphics) const; - REAL GetHeight(IN REAL dpi) const; - - Status GetFamily(OUT FontFamily *family) const; - -private: - Font(const Font &); - Font& operator=(const Font &); - -protected: - Font(GpFont* font, Status status); - VOID SetNativeFont(GpFont *Font); - Status SetStatus(Status status) const; - -protected: - - GpFont* nativeFont; - mutable Status lastResult; -}; - -//-------------------------------------------------------------------------- -// Font Collection -//-------------------------------------------------------------------------- - -class FontCollection : public GdiplusBase -{ -public: - friend class FontFamily; - - FontCollection(); - virtual ~FontCollection(); - - INT GetFamilyCount() const; - - Status GetFamilies( - IN INT numSought, - OUT FontFamily * gpfamilies, - OUT INT * numFound - ) const; - - Status GetLastStatus() const; - -private: - FontCollection(const FontCollection &); - FontCollection& operator=(const FontCollection &); - -protected: - Status SetStatus(Status status) const ; - - GpFontCollection *nativeFontCollection; - mutable Status lastResult; -}; - - -class InstalledFontCollection : public FontCollection -{ -public: - InstalledFontCollection(); - ~InstalledFontCollection(); - -private: - InstalledFontCollection(const InstalledFontCollection &); - InstalledFontCollection& operator=(const InstalledFontCollection &); - -protected: - Status SetStatus(Status status) const ; -}; - - -class PrivateFontCollection : public FontCollection -{ -public: - PrivateFontCollection(); - ~PrivateFontCollection(); - - Status AddFontFile(IN const WCHAR* filename); - Status AddMemoryFont(IN const VOID* memory, - IN INT length); - -private: - PrivateFontCollection(const PrivateFontCollection &); - PrivateFontCollection& operator=(const PrivateFontCollection &); -}; - - -//-------------------------------------------------------------------------- -// Abstract base class for Image and Metafile -//-------------------------------------------------------------------------- - -class Image : public GdiplusBase -{ -public: - friend class Brush; - friend class TextureBrush; - friend class Graphics; - - Image( - IN const WCHAR* filename, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - Image( - IN IStream* stream, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - static Image* FromFile( - IN const WCHAR* filename, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - static Image* FromStream( - IN IStream* stream, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - virtual ~Image(); - virtual Image* Clone(); - - Status Save(IN const WCHAR* filename, - IN const CLSID* clsidEncoder, - IN const EncoderParameters *encoderParams = NULL); - Status Save(IN IStream* stream, - IN const CLSID* clsidEncoder, - IN const EncoderParameters *encoderParams = NULL); - Status SaveAdd(IN const EncoderParameters* encoderParams); - Status SaveAdd(IN Image* newImage, - IN const EncoderParameters* encoderParams); - - ImageType GetType() const; - Status GetPhysicalDimension(OUT SizeF* size); - Status GetBounds(OUT RectF* srcRect, - OUT Unit* srcUnit); - - UINT GetWidth(); - UINT GetHeight(); - REAL GetHorizontalResolution(); - REAL GetVerticalResolution(); - UINT GetFlags(); - Status GetRawFormat(OUT GUID *format); - PixelFormat GetPixelFormat(); - - INT GetPaletteSize(); - Status GetPalette(OUT ColorPalette* palette, - IN INT size); - Status SetPalette(IN const ColorPalette* palette); - - Image* GetThumbnailImage(IN UINT thumbWidth, - IN UINT thumbHeight, - IN GetThumbnailImageAbort callback = NULL, - IN VOID* callbackData = NULL); - UINT GetFrameDimensionsCount(); - Status GetFrameDimensionsList(OUT GUID* dimensionIDs, - IN UINT count); - UINT GetFrameCount(IN const GUID* dimensionID); - Status SelectActiveFrame(IN const GUID* dimensionID, - IN UINT frameIndex); - Status RotateFlip(IN RotateFlipType rotateFlipType); - UINT GetPropertyCount(); - Status GetPropertyIdList(IN UINT numOfProperty, - OUT PROPID* list); - UINT GetPropertyItemSize(IN PROPID propId); - Status GetPropertyItem(IN PROPID propId, - IN UINT propSize, - OUT PropertyItem* buffer); - Status GetPropertySize(OUT UINT* totalBufferSize, - OUT UINT* numProperties); - Status GetAllPropertyItems(IN UINT totalBufferSize, - IN UINT numProperties, - OUT PropertyItem* allItems); - Status RemovePropertyItem(IN PROPID propId); - Status SetPropertyItem(IN const PropertyItem* item); - - UINT GetEncoderParameterListSize(IN const CLSID* clsidEncoder); - Status GetEncoderParameterList(IN const CLSID* clsidEncoder, - IN UINT size, - OUT EncoderParameters* buffer); - - Status GetLastStatus() const; - -protected: - - Image() {} - - Image(GpImage *nativeImage, Status status); - - VOID SetNativeImage(GpImage* nativeImage); - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - - GpImage* nativeImage; - mutable Status lastResult; - mutable Status loadStatus; - -private: - Image(IN const Image& C); - Image& operator=(IN const Image& C); -}; - -class Bitmap : public Image -{ -public: - friend class Image; - friend class CachedBitmap; - - Bitmap( - IN const WCHAR *filename, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - Bitmap( - IN IStream *stream, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - static Bitmap* FromFile( - IN const WCHAR *filename, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - static Bitmap* FromStream( - IN IStream *stream, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - Bitmap(IN INT width, - IN INT height, - IN INT stride, PixelFormat format, - IN BYTE* scan0); - Bitmap(IN INT width, - IN INT height, - IN PixelFormat format = PixelFormat32bppARGB); - Bitmap(IN INT width, - IN INT height, - IN Graphics* target); - - Bitmap* Clone(IN const Rect& rect, - IN PixelFormat format); - Bitmap* Clone(IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN PixelFormat format); - Bitmap* Clone(IN const RectF& rect, - IN PixelFormat format); - Bitmap* Clone(IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN PixelFormat format); - - Status LockBits(IN const Rect* rect, - IN UINT flags, - IN PixelFormat format, - OUT BitmapData* lockedBitmapData); - Status UnlockBits(IN BitmapData* lockedBitmapData); - Status GetPixel(IN INT x, - IN INT y, - OUT Color *color); - Status SetPixel(IN INT x, - IN INT y, - IN const Color &color); - Status SetResolution(IN REAL xdpi, - IN REAL ydpi); - - Bitmap(IN IDirectDrawSurface7* surface); - Bitmap(IN const BITMAPINFO* gdiBitmapInfo, - IN VOID* gdiBitmapData); - Bitmap(IN HBITMAP hbm, - IN HPALETTE hpal); - Bitmap(IN HICON hicon); - Bitmap(IN HINSTANCE hInstance, - IN const WCHAR * bitmapName); - static Bitmap* FromDirectDrawSurface7(IN IDirectDrawSurface7* surface); - static Bitmap* FromBITMAPINFO(IN const BITMAPINFO* gdiBitmapInfo, - IN VOID* gdiBitmapData); - static Bitmap* FromHBITMAP(IN HBITMAP hbm, - IN HPALETTE hpal); - static Bitmap* FromHICON(IN HICON hicon); - static Bitmap* FromResource(IN HINSTANCE hInstance, - IN const WCHAR * bitmapName); - - Status GetHBITMAP(IN const Color& colorBackground, - OUT HBITMAP *hbmReturn); - Status GetHICON(HICON *hicon); - -private: - Bitmap(const Bitmap &); - Bitmap& operator=(const Bitmap &); - -protected: - Bitmap(GpBitmap *nativeBitmap); -}; - -class CustomLineCap : public GdiplusBase -{ -public: - friend class Pen; - - CustomLineCap( - IN const GraphicsPath* fillPath, - IN const GraphicsPath* strokePath, - IN LineCap baseCap = LineCapFlat, - IN REAL baseInset = 0 - ); - virtual ~CustomLineCap(); - - CustomLineCap* Clone() const; - - // This changes both the start and end cap. - - Status SetStrokeCap(IN LineCap strokeCap) - { - return SetStrokeCaps(strokeCap, strokeCap); - } - - Status SetStrokeCaps(IN LineCap startCap, - IN LineCap endCap); - Status GetStrokeCaps(OUT LineCap* startCap, - OUT LineCap* endCap) const; - Status SetStrokeJoin(IN LineJoin lineJoin); - LineJoin GetStrokeJoin() const; - Status SetBaseCap(IN LineCap baseCap); - LineCap GetBaseCap() const; - Status SetBaseInset(IN REAL inset); - REAL GetBaseInset() const; - Status SetWidthScale(IN REAL widthScale); - REAL GetWidthScale() const; - Status GetLastStatus() const; - -protected: - CustomLineCap(); - -private: - CustomLineCap(const CustomLineCap &); - CustomLineCap& operator=(const CustomLineCap &); - -protected: - CustomLineCap(GpCustomLineCap* nativeCap, Status status) - { - lastResult = status; - SetNativeCap(nativeCap); - } - - VOID SetNativeCap(GpCustomLineCap* nativeCap) - { - this->nativeCap = nativeCap; - } - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - -protected: - GpCustomLineCap* nativeCap; - mutable Status lastResult; -}; - -class CachedBitmap : public GdiplusBase -{ - friend Graphics; - -public: - CachedBitmap(IN Bitmap *bitmap, - IN Graphics *graphics); - virtual ~CachedBitmap(); - - Status GetLastStatus() const; - -private: - CachedBitmap(const CachedBitmap &); - CachedBitmap& operator=(const CachedBitmap &); - -protected: - GpCachedBitmap *nativeCachedBitmap; - mutable Status lastResult; -}; - -#endif // !_GDIPLUSHEADERS.HPP diff --git a/desmume/src/windows/gdiplus/GdiPlusImageCodec.h b/desmume/src/windows/gdiplus/GdiPlusImageCodec.h deleted file mode 100644 index ad3997fc4..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusImageCodec.h +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 2000-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusImageCodec.h -* -* Abstract: -* -* GDI+ Codec Image APIs -* -\**************************************************************************/ - -#ifndef _GDIPLUSIMAGECODEC_H -#define _GDIPLUSIMAGECODEC_H - -//-------------------------------------------------------------------------- -// Codec Management APIs -//-------------------------------------------------------------------------- - -inline Status -GetImageDecodersSize( - OUT UINT *numDecoders, - OUT UINT *size) -{ - return DllExports::GdipGetImageDecodersSize(numDecoders, size); -} - - -inline Status -GetImageDecoders( - IN UINT numDecoders, - IN UINT size, - OUT ImageCodecInfo *decoders) -{ - return DllExports::GdipGetImageDecoders(numDecoders, size, decoders); -} - - -inline Status -GetImageEncodersSize( - OUT UINT *numEncoders, - OUT UINT *size) -{ - return DllExports::GdipGetImageEncodersSize(numEncoders, size); -} - - -inline Status -GetImageEncoders( - IN UINT numEncoders, - IN UINT size, - OUT ImageCodecInfo *encoders) -{ - return DllExports::GdipGetImageEncoders(numEncoders, size, encoders); -} - -#endif // _GDIPLUSIMAGECODEC_H diff --git a/desmume/src/windows/gdiplus/GdiPlusImaging.h b/desmume/src/windows/gdiplus/GdiPlusImaging.h deleted file mode 100644 index 56e460c74..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusImaging.h +++ /dev/null @@ -1,526 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1999-2000 Microsoft Corporation -* -* Module Name: -* -* GdiplusImaging.h -* -* Abstract: -* -* GDI+ Imaging GUIDs -* -\**************************************************************************/ - -#ifndef _GDIPLUSIMAGING_H -#define _GDIPLUSIMAGING_H - -//--------------------------------------------------------------------------- -// Image file format identifiers -//--------------------------------------------------------------------------- - -DEFINE_GUID(ImageFormatUndefined, 0xb96b3ca9,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); -DEFINE_GUID(ImageFormatMemoryBMP, 0xb96b3caa,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); -DEFINE_GUID(ImageFormatBMP, 0xb96b3cab,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); -DEFINE_GUID(ImageFormatEMF, 0xb96b3cac,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); -DEFINE_GUID(ImageFormatWMF, 0xb96b3cad,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); -DEFINE_GUID(ImageFormatJPEG, 0xb96b3cae,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); -DEFINE_GUID(ImageFormatPNG, 0xb96b3caf,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); -DEFINE_GUID(ImageFormatGIF, 0xb96b3cb0,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); -DEFINE_GUID(ImageFormatTIFF, 0xb96b3cb1,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); -DEFINE_GUID(ImageFormatEXIF, 0xb96b3cb2,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); -DEFINE_GUID(ImageFormatIcon, 0xb96b3cb5,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); - -//--------------------------------------------------------------------------- -// Predefined multi-frame dimension IDs -//--------------------------------------------------------------------------- - -DEFINE_GUID(FrameDimensionTime, 0x6aedbd6d,0x3fb5,0x418a,0x83,0xa6,0x7f,0x45,0x22,0x9d,0xc8,0x72); -DEFINE_GUID(FrameDimensionResolution, 0x84236f7b,0x3bd3,0x428f,0x8d,0xab,0x4e,0xa1,0x43,0x9c,0xa3,0x15); -DEFINE_GUID(FrameDimensionPage, 0x7462dc86,0x6180,0x4c7e,0x8e,0x3f,0xee,0x73,0x33,0xa7,0xa4,0x83); - -//--------------------------------------------------------------------------- -// Property sets -//--------------------------------------------------------------------------- - -DEFINE_GUID(FormatIDImageInformation, 0xe5836cbe,0x5eef,0x4f1d,0xac,0xde,0xae,0x4c,0x43,0xb6,0x08,0xce); -DEFINE_GUID(FormatIDJpegAppHeaders, 0x1c4afdcd,0x6177,0x43cf,0xab,0xc7,0x5f,0x51,0xaf,0x39,0xee,0x85); - -//--------------------------------------------------------------------------- -// Encoder parameter sets -//--------------------------------------------------------------------------- - -DEFINE_GUID(EncoderCompression, 0xe09d739d,0xccd4,0x44ee,0x8e,0xba,0x3f,0xbf,0x8b,0xe4,0xfc,0x58); -DEFINE_GUID(EncoderColorDepth, 0x66087055,0xad66,0x4c7c,0x9a,0x18,0x38,0xa2,0x31,0x0b,0x83,0x37); -DEFINE_GUID(EncoderScanMethod, 0x3a4e2661,0x3109,0x4e56,0x85,0x36,0x42,0xc1,0x56,0xe7,0xdc,0xfa); -DEFINE_GUID(EncoderVersion, 0x24d18c76,0x814a,0x41a4,0xbf,0x53,0x1c,0x21,0x9c,0xcc,0xf7,0x97); -DEFINE_GUID(EncoderRenderMethod, 0x6d42c53a,0x229a,0x4825,0x8b,0xb7,0x5c,0x99,0xe2,0xb9,0xa8,0xb8); -DEFINE_GUID(EncoderQuality, 0x1d5be4b5,0xfa4a,0x452d,0x9c,0xdd,0x5d,0xb3,0x51,0x05,0xe7,0xeb); -DEFINE_GUID(EncoderTransformation,0x8d0eb2d1,0xa58e,0x4ea8,0xaa,0x14,0x10,0x80,0x74,0xb7,0xb6,0xf9); -DEFINE_GUID(EncoderLuminanceTable,0xedb33bce,0x0266,0x4a77,0xb9,0x04,0x27,0x21,0x60,0x99,0xe7,0x17); -DEFINE_GUID(EncoderChrominanceTable,0xf2e455dc,0x09b3,0x4316,0x82,0x60,0x67,0x6a,0xda,0x32,0x48,0x1c); -DEFINE_GUID(EncoderSaveFlag,0x292266fc,0xac40,0x47bf,0x8c, 0xfc, 0xa8, 0x5b, 0x89, 0xa6, 0x55, 0xde); - -DEFINE_GUID(CodecIImageBytes,0x025d1823,0x6c7d,0x447b,0xbb, 0xdb, 0xa3, 0xcb, 0xc3, 0xdf, 0xa2, 0xfc); - -MIDL_INTERFACE("025D1823-6C7D-447B-BBDB-A3CBC3DFA2FC") -IImageBytes : public IUnknown -{ -public: - // Return total number of bytes in the IStream - - STDMETHOD(CountBytes)( - OUT UINT *pcb - ) = 0; - - // Locks "cb" bytes, starting from "ulOffset" in the stream, and returns the - // pointer to the beginning of the locked memory chunk in "ppvBytes" - - STDMETHOD(LockBytes)( - IN UINT cb, - IN ULONG ulOffset, - OUT const VOID ** ppvBytes - ) = 0; - - // Unlocks "cb" bytes, pointed by "pvBytes", starting from "ulOffset" in the - // stream - - STDMETHOD(UnlockBytes)( - IN const VOID *pvBytes, - IN UINT cb, - IN ULONG ulOffset - ) = 0; -}; - -//-------------------------------------------------------------------------- -// ImageCodecInfo structure -//-------------------------------------------------------------------------- - -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; -}; - -//-------------------------------------------------------------------------- -// Information flags about image codecs -//-------------------------------------------------------------------------- - -enum ImageCodecFlags -{ - ImageCodecFlagsEncoder = 0x00000001, - ImageCodecFlagsDecoder = 0x00000002, - ImageCodecFlagsSupportBitmap = 0x00000004, - ImageCodecFlagsSupportVector = 0x00000008, - ImageCodecFlagsSeekableEncode = 0x00000010, - ImageCodecFlagsBlockingDecode = 0x00000020, - - ImageCodecFlagsBuiltin = 0x00010000, - ImageCodecFlagsSystem = 0x00020000, - ImageCodecFlagsUser = 0x00040000 -}; - -//--------------------------------------------------------------------------- -// Access modes used when calling Image::LockBits -//--------------------------------------------------------------------------- - -enum ImageLockMode -{ - ImageLockModeRead = 0x0001, - ImageLockModeWrite = 0x0002, - ImageLockModeUserInputBuf= 0x0004 -}; - -//--------------------------------------------------------------------------- -// Information about image pixel data -//--------------------------------------------------------------------------- - -class BitmapData -{ -public: - UINT Width; - UINT Height; - INT Stride; - PixelFormat PixelFormat; - VOID* Scan0; - UINT_PTR Reserved; -}; - -//--------------------------------------------------------------------------- -// Image flags -//--------------------------------------------------------------------------- - -enum ImageFlags -{ - ImageFlagsNone = 0, - - // Low-word: shared with SINKFLAG_x - - ImageFlagsScalable = 0x0001, - ImageFlagsHasAlpha = 0x0002, - ImageFlagsHasTranslucent = 0x0004, - ImageFlagsPartiallyScalable = 0x0008, - - // Low-word: color space definition - - ImageFlagsColorSpaceRGB = 0x0010, - ImageFlagsColorSpaceCMYK = 0x0020, - ImageFlagsColorSpaceGRAY = 0x0040, - ImageFlagsColorSpaceYCBCR = 0x0080, - ImageFlagsColorSpaceYCCK = 0x0100, - - // Low-word: image size info - - ImageFlagsHasRealDPI = 0x1000, - ImageFlagsHasRealPixelSize = 0x2000, - - // High-word - - ImageFlagsReadOnly = 0x00010000, - ImageFlagsCaching = 0x00020000 -}; - -enum RotateFlipType -{ - RotateNoneFlipNone = 0, - Rotate90FlipNone = 1, - Rotate180FlipNone = 2, - Rotate270FlipNone = 3, - - RotateNoneFlipX = 4, - Rotate90FlipX = 5, - Rotate180FlipX = 6, - Rotate270FlipX = 7, - - RotateNoneFlipY = Rotate180FlipX, - Rotate90FlipY = Rotate270FlipX, - Rotate180FlipY = RotateNoneFlipX, - Rotate270FlipY = Rotate90FlipX, - - RotateNoneFlipXY = Rotate180FlipNone, - Rotate90FlipXY = Rotate270FlipNone, - Rotate180FlipXY = RotateNoneFlipNone, - Rotate270FlipXY = Rotate90FlipNone -}; - -//--------------------------------------------------------------------------- -// Encoder Parameter structure -//--------------------------------------------------------------------------- -class EncoderParameter -{ -public: - GUID Guid; // GUID of the parameter - ULONG NumberOfValues; // Number of the parameter values - ULONG Type; // Value type, like ValueTypeLONG etc. - VOID* Value; // A pointer to the parameter values -}; - -//--------------------------------------------------------------------------- -// Encoder Parameters structure -//--------------------------------------------------------------------------- -class EncoderParameters -{ -public: - UINT Count; // Number of parameters in this structure - EncoderParameter Parameter[1]; // Parameter values -}; - -//--------------------------------------------------------------------------- -// Property Item -//--------------------------------------------------------------------------- -class PropertyItem -{ -public: - PROPID id; // ID of this property - ULONG length; // Length of the property value, in bytes - WORD type; // Type of the value, as one of TAG_TYPE_XXX - // defined above - VOID* value; // property value -}; - -//--------------------------------------------------------------------------- -// Image 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 - -//--------------------------------------------------------------------------- -// Image property ID tags -//--------------------------------------------------------------------------- - -#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 // Image resolution in width direction -#define PropertyTagYResolution 0x011B // Image resolution in height direction -#define PropertyTagPlanarConfig 0x011C // Image data arrangement -#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 // Unit of X and Y resolution -#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 // This TAG is defined by ICC - // for embedded ICC in TIFF -#define PropertyTagGamma 0x0301 -#define PropertyTagICCProfileDescriptor 0x0302 -#define PropertyTagSRGBRenderingIntent 0x0303 - -#define PropertyTagImageTitle 0x0320 -#define PropertyTagCopyright 0x8298 - -// Extra TAGs (Like Adobe Image Information tags etc.) - -#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 // 1 = JPEG, 0 = RAW RGB -#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// RAW thumbnail bits in - // JPEG format or RGB format - // depends on - // PropertyTagThumbnailFormat - -// Thumbnail related TAGs - -#define PropertyTagThumbnailImageWidth 0x5020 // Thumbnail width -#define PropertyTagThumbnailImageHeight 0x5021 // Thumbnail height -#define PropertyTagThumbnailBitsPerSample 0x5022 // Number of bits per - // component -#define PropertyTagThumbnailCompression 0x5023 // Compression Scheme -#define PropertyTagThumbnailPhotometricInterp 0x5024 // Pixel composition -#define PropertyTagThumbnailImageDescription 0x5025 // Image Tile -#define PropertyTagThumbnailEquipMake 0x5026 // Manufacturer of Image - // Input equipment -#define PropertyTagThumbnailEquipModel 0x5027 // Model of Image input - // equipment -#define PropertyTagThumbnailStripOffsets 0x5028 // Image data location -#define PropertyTagThumbnailOrientation 0x5029 // Orientation of image -#define PropertyTagThumbnailSamplesPerPixel 0x502A // Number of components -#define PropertyTagThumbnailRowsPerStrip 0x502B // Number of rows per strip -#define PropertyTagThumbnailStripBytesCount 0x502C // Bytes per compressed - // strip -#define PropertyTagThumbnailResolutionX 0x502D // Resolution in width - // direction -#define PropertyTagThumbnailResolutionY 0x502E // Resolution in height - // direction -#define PropertyTagThumbnailPlanarConfig 0x502F // Image data arrangement -#define PropertyTagThumbnailResolutionUnit 0x5030 // Unit of X and Y - // Resolution -#define PropertyTagThumbnailTransferFunction 0x5031 // Transfer function -#define PropertyTagThumbnailSoftwareUsed 0x5032 // Software used -#define PropertyTagThumbnailDateTime 0x5033 // File change date and - // time -#define PropertyTagThumbnailArtist 0x5034 // Person who created the - // image -#define PropertyTagThumbnailWhitePoint 0x5035 // White point chromaticity -#define PropertyTagThumbnailPrimaryChromaticities 0x5036 - // Chromaticities of - // primaries -#define PropertyTagThumbnailYCbCrCoefficients 0x5037 // Color space transforma- - // tion coefficients -#define PropertyTagThumbnailYCbCrSubsampling 0x5038 // Subsampling ratio of Y - // to C -#define PropertyTagThumbnailYCbCrPositioning 0x5039 // Y and C position -#define PropertyTagThumbnailRefBlackWhite 0x503A // Pair of black and white - // reference values -#define PropertyTagThumbnailCopyRight 0x503B // CopyRight holder - -#define PropertyTagLuminanceTable 0x5090 -#define PropertyTagChrominanceTable 0x5091 - -#define PropertyTagFrameDelay 0x5100 -#define PropertyTagLoopCount 0x5101 - -#define PropertyTagPixelUnit 0x5110 // Unit specifier for pixel/unit -#define PropertyTagPixelPerUnitX 0x5111 // Pixels per unit in X -#define PropertyTagPixelPerUnitY 0x5112 // Pixels per unit in Y -#define PropertyTagPaletteHistogram 0x5113 // Palette histogram - -// EXIF specific tag - -#define PropertyTagExifExposureTime 0x829A -#define PropertyTagExifFNumber 0x829D - -#define PropertyTagExifExposureProg 0x8822 -#define PropertyTagExifSpectralSense 0x8824 -#define PropertyTagExifISOSpeed 0x8827 -#define PropertyTagExifOECF 0x8828 - -#define PropertyTagExifVer 0x9000 -#define PropertyTagExifDTOrig 0x9003 // Date & time of original -#define PropertyTagExifDTDigitized 0x9004 // Date & time of digital data generation - -#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 // Date & Time subseconds -#define PropertyTagExifDTOrigSS 0x9291 // Date & Time original subseconds -#define PropertyTagExifDTDigSS 0x9292 // Date & TIme digitized subseconds - -#define PropertyTagExifFPXVer 0xA000 -#define PropertyTagExifColorSpace 0xA001 -#define PropertyTagExifPixXDim 0xA002 -#define PropertyTagExifPixYDim 0xA003 -#define PropertyTagExifRelatedWav 0xA004 // related sound file -#define PropertyTagExifInterop 0xA005 -#define PropertyTagExifFlashEnergy 0xA20B -#define PropertyTagExifSpatialFR 0xA20C // Spatial Frequency Response -#define PropertyTagExifFocalXRes 0xA20E // Focal Plane X Resolution -#define PropertyTagExifFocalYRes 0xA20F // Focal Plane Y Resolution -#define PropertyTagExifFocalResUnit 0xA210 // Focal Plane Resolution Unit -#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 0x00A -#define PropertyTagGpsGpsDop 0x000B // Measurement precision -#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 - diff --git a/desmume/src/windows/gdiplus/GdiPlusInit.h b/desmume/src/windows/gdiplus/GdiPlusInit.h deleted file mode 100644 index b80bdd5d0..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusInit.h +++ /dev/null @@ -1,97 +0,0 @@ -/************************************************************************** -* -* Copyright (c) 2000-2001 Microsoft Corporation -* -* Module Name: -* -* Gdiplus initialization -* -* Abstract: -* -* GDI+ Startup and Shutdown APIs -* -**************************************************************************/ - -#ifndef _GDIPLUSINIT_H -#define _GDIPLUSINIT_H - -enum DebugEventLevel -{ - DebugEventLevelFatal, - DebugEventLevelWarning -}; - -// Callback function that GDI+ can call, on debug builds, for assertions -// and warnings. - -typedef VOID (WINAPI *DebugEventProc)(DebugEventLevel level, CHAR *message); - -// Notification functions which the user must call appropriately if -// "SuppressBackgroundThread" (below) is set. - -typedef Status (WINAPI *NotificationHookProc)(OUT ULONG_PTR *token); -typedef VOID (WINAPI *NotificationUnhookProc)(ULONG_PTR token); - -// Input structure for GdiplusStartup() - -struct GdiplusStartupInput -{ - UINT32 GdiplusVersion; // Must be 1 - DebugEventProc DebugEventCallback; // Ignored on free builds - BOOL SuppressBackgroundThread; // FALSE unless you're prepared to call - // the hook/unhook functions properly - BOOL SuppressExternalCodecs; // FALSE unless you want GDI+ only to use - // its internal image codecs. - - GdiplusStartupInput( - DebugEventProc debugEventCallback = NULL, - BOOL suppressBackgroundThread = FALSE, - BOOL suppressExternalCodecs = FALSE) - { - GdiplusVersion = 1; - DebugEventCallback = debugEventCallback; - SuppressBackgroundThread = suppressBackgroundThread; - SuppressExternalCodecs = suppressExternalCodecs; - } -}; - -// Output structure for GdiplusStartup() - -struct GdiplusStartupOutput -{ - // The following 2 fields are NULL if SuppressBackgroundThread is FALSE. - // Otherwise, they are functions which must be called appropriately to - // replace the background thread. - // - // These should be called on the application's main message loop - i.e. - // a message loop which is active for the lifetime of GDI+. - // "NotificationHook" should be called before starting the loop, - // and "NotificationUnhook" should be called after the loop ends. - - NotificationHookProc NotificationHook; - NotificationUnhookProc NotificationUnhook; -}; - -// GDI+ initialization. Must not be called from DllMain - can cause deadlock. -// -// Must be called before GDI+ API's or constructors are used. -// -// token - may not be NULL - accepts a token to be passed in the corresponding -// GdiplusShutdown call. -// input - may not be NULL -// output - may be NULL only if input->SuppressBackgroundThread is FALSE. - -extern "C" Status WINAPI GdiplusStartup( - OUT ULONG_PTR *token, - const GdiplusStartupInput *input, - OUT GdiplusStartupOutput *output); - -// GDI+ termination. Must be called before GDI+ is unloaded. -// Must not be called from DllMain - can cause deadlock. -// -// GDI+ API's may not be called after GdiplusShutdown. Pay careful attention -// to GDI+ object destructors. - -extern "C" VOID WINAPI GdiplusShutdown(ULONG_PTR token); - -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusLineCaps.h b/desmume/src/windows/gdiplus/GdiPlusLineCaps.h deleted file mode 100644 index 869a958ea..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusLineCaps.h +++ /dev/null @@ -1,262 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 2000-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusLineCaps.h -* -* Abstract: -* -* GDI+ CustomLineCap APIs -* -\**************************************************************************/ - -#ifndef _GDIPLUSLINECAPS_H -#define _GDIPLUSLINECAPS_H - -inline -CustomLineCap::CustomLineCap( - IN const GraphicsPath* fillPath, - IN const GraphicsPath* strokePath, - IN LineCap baseCap, - IN REAL baseInset - ) -{ - nativeCap = NULL; - GpPath* nativeFillPath = NULL; - GpPath* nativeStrokePath = NULL; - - if(fillPath) - nativeFillPath = fillPath->nativePath; - if(strokePath) - nativeStrokePath = strokePath->nativePath; - - lastResult = DllExports::GdipCreateCustomLineCap( - nativeFillPath, nativeStrokePath, - baseCap, baseInset, &nativeCap); -} - -inline -CustomLineCap::CustomLineCap() -{ - nativeCap = NULL; - lastResult = Ok; -} - -inline -CustomLineCap::~CustomLineCap() -{ - DllExports::GdipDeleteCustomLineCap(nativeCap); -} - -inline Status -CustomLineCap::SetStrokeCaps( - IN LineCap startCap, - IN LineCap endCap) -{ - return SetStatus(DllExports::GdipSetCustomLineCapStrokeCaps(nativeCap, - startCap, endCap)); -} - -inline Status -CustomLineCap::GetStrokeCaps( - OUT LineCap* startCap, - OUT LineCap* endCap) const -{ - return SetStatus(DllExports::GdipGetCustomLineCapStrokeCaps(nativeCap, - startCap, endCap)); -} - -inline Status -CustomLineCap::SetStrokeJoin( - IN LineJoin lineJoin) -{ - return SetStatus(DllExports::GdipSetCustomLineCapStrokeJoin(nativeCap, - lineJoin)); -} - -inline LineJoin -CustomLineCap::GetStrokeJoin() const -{ - LineJoin lineJoin; - - SetStatus(DllExports::GdipGetCustomLineCapStrokeJoin(nativeCap, - &lineJoin)); - - return lineJoin; -} - -inline Status -CustomLineCap::SetBaseCap(IN LineCap baseCap) -{ - return SetStatus(DllExports::GdipSetCustomLineCapBaseCap(nativeCap, - baseCap)); -} - -inline LineCap -CustomLineCap::GetBaseCap() const -{ - LineCap baseCap; - SetStatus(DllExports::GdipGetCustomLineCapBaseCap(nativeCap, &baseCap)); - - return baseCap; -} - -inline Status -CustomLineCap::SetBaseInset(IN REAL inset) -{ - return SetStatus(DllExports::GdipSetCustomLineCapBaseInset(nativeCap, - inset)); -} - -inline REAL -CustomLineCap::GetBaseInset() const -{ - REAL inset; - SetStatus(DllExports::GdipGetCustomLineCapBaseInset(nativeCap, &inset)); - - return inset; -} - - -inline Status -CustomLineCap::SetWidthScale(IN REAL widthScale) -{ - return SetStatus(DllExports::GdipSetCustomLineCapWidthScale(nativeCap, - widthScale)); -} - -inline REAL -CustomLineCap::GetWidthScale() const -{ - REAL widthScale; - SetStatus(DllExports::GdipGetCustomLineCapWidthScale(nativeCap, - &widthScale)); - - return widthScale; -} - -inline CustomLineCap* -CustomLineCap::Clone() const -{ - GpCustomLineCap *newNativeLineCap = NULL; - - SetStatus(DllExports::GdipCloneCustomLineCap(nativeCap, - &newNativeLineCap)); - - if (lastResult == Ok) - { - CustomLineCap *newLineCap = new CustomLineCap(newNativeLineCap, - lastResult); - if (newLineCap == NULL) - { - SetStatus(DllExports::GdipDeleteCustomLineCap(newNativeLineCap)); - } - - return newLineCap; - } - - return NULL; -} - -inline Status -CustomLineCap::GetLastStatus() const -{ - Status lastStatus = lastResult; - lastResult = Ok; - return (lastStatus); -} - -class AdjustableArrowCap : public CustomLineCap -{ -public: - - AdjustableArrowCap( - IN REAL height, - IN REAL width, - IN BOOL isFilled = TRUE - ) - { - GpAdjustableArrowCap* cap = NULL; - - lastResult = DllExports::GdipCreateAdjustableArrowCap( - height, width, isFilled, &cap); - SetNativeCap(cap); - } - - Status SetHeight(IN REAL height) - { - GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; - return SetStatus(DllExports::GdipSetAdjustableArrowCapHeight( - cap, height)); - } - - REAL GetHeight() const - { - GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; - REAL height; - SetStatus(DllExports::GdipGetAdjustableArrowCapHeight( - cap, &height)); - - return height; - } - - Status SetWidth(IN REAL width) - { - GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; - return SetStatus(DllExports::GdipSetAdjustableArrowCapWidth( - cap, width)); - } - - REAL GetWidth() const - { - GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; - REAL width; - SetStatus(DllExports::GdipGetAdjustableArrowCapWidth( - cap, &width)); - - return width; - } - - Status SetMiddleInset(IN REAL middleInset) - { - GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; - return SetStatus(DllExports::GdipSetAdjustableArrowCapMiddleInset( - cap, middleInset)); - } - - REAL GetMiddleInset() const - { - GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; - REAL middleInset; - SetStatus(DllExports::GdipGetAdjustableArrowCapMiddleInset( - cap, &middleInset)); - - return middleInset; - } - - Status SetFillState(IN BOOL isFilled) - { - GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; - return SetStatus(DllExports::GdipSetAdjustableArrowCapFillState( - cap, isFilled)); - } - - BOOL IsFilled() const - { - GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; - BOOL isFilled; - SetStatus(DllExports::GdipGetAdjustableArrowCapFillState( - cap, &isFilled)); - - return isFilled; - } - -private: - AdjustableArrowCap(const AdjustableArrowCap &); - AdjustableArrowCap& operator=(const AdjustableArrowCap &); -}; - - -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusMatrix.h b/desmume/src/windows/gdiplus/GdiPlusMatrix.h deleted file mode 100644 index 1d573c365..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusMatrix.h +++ /dev/null @@ -1,307 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusMatrix.h -* -* Abstract: -* -* GDI+ Matrix class -* -\**************************************************************************/ - -class Matrix : public GdiplusBase -{ -public: - friend class Graphics; - friend class GraphicsPath; - friend class TextureBrush; - friend class LinearGradientBrush; - friend class PathGradientBrush; - friend class Pen; - friend class Region; - - // Default constructor is set to identity matrix. - - Matrix() - { - GpMatrix *matrix = NULL; - - lastResult = DllExports::GdipCreateMatrix(&matrix); - - SetNativeMatrix(matrix); - } - - Matrix(IN REAL m11, - IN REAL m12, - IN REAL m21, - IN REAL m22, - IN REAL dx, - IN REAL dy) - { - GpMatrix *matrix = NULL; - - lastResult = DllExports::GdipCreateMatrix2(m11, m12, m21, m22, - dx, dy, &matrix); - - SetNativeMatrix(matrix); - } - - Matrix(IN const RectF& rect, - IN const PointF* dstplg) - { - GpMatrix *matrix = NULL; - - lastResult = DllExports::GdipCreateMatrix3(&rect, - dstplg, - &matrix); - - SetNativeMatrix(matrix); - } - - Matrix(IN const Rect& rect, - IN const Point* dstplg) - { - GpMatrix *matrix = NULL; - - lastResult = DllExports::GdipCreateMatrix3I(&rect, - dstplg, - &matrix); - - SetNativeMatrix(matrix); - } - - ~Matrix() - { - DllExports::GdipDeleteMatrix(nativeMatrix); - } - - Matrix *Clone() const - { - GpMatrix *cloneMatrix = NULL; - - SetStatus(DllExports::GdipCloneMatrix(nativeMatrix, - &cloneMatrix)); - - if (lastResult != Ok) - return NULL; - - return new Matrix(cloneMatrix); - } - - Status GetElements(OUT REAL *m) const - { - return SetStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m)); - } - - Status SetElements(IN REAL m11, - IN REAL m12, - IN REAL m21, - IN REAL m22, - IN REAL dx, - IN REAL dy) - { - return SetStatus(DllExports::GdipSetMatrixElements(nativeMatrix, - m11, m12, m21, m22, dx, dy)); - } - - REAL OffsetX() const - { - REAL elements[6]; - - if (GetElements(&elements[0]) == Ok) - return elements[4]; - else - return 0.0f; - } - - REAL OffsetY() const - { - REAL elements[6]; - - if (GetElements(&elements[0]) == Ok) - return elements[5]; - else - return 0.0f; - } - - Status Reset() - { - // set identity matrix elements - return SetStatus(DllExports::GdipSetMatrixElements(nativeMatrix, - 1.0, 0.0, 0.0, 1.0, 0.0, 0.0)); - } - - Status Multiply(IN const Matrix *matrix, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipMultiplyMatrix(nativeMatrix, - matrix->nativeMatrix, - order)); - } - - Status Translate(IN REAL offsetX, - IN REAL offsetY, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipTranslateMatrix(nativeMatrix, offsetX, - offsetY, order)); - } - - Status Scale(IN REAL scaleX, - IN REAL scaleY, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipScaleMatrix(nativeMatrix, scaleX, - scaleY, order)); - } - - Status Rotate(IN REAL angle, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipRotateMatrix(nativeMatrix, angle, - order)); - } - - Status RotateAt(IN REAL angle, - IN const PointF& center, - IN MatrixOrder order = MatrixOrderPrepend) - { - if(order == MatrixOrderPrepend) - { - SetStatus(DllExports::GdipTranslateMatrix(nativeMatrix, center.X, - center.Y, order)); - SetStatus(DllExports::GdipRotateMatrix(nativeMatrix, angle, - order)); - return SetStatus(DllExports::GdipTranslateMatrix(nativeMatrix, - -center.X, - -center.Y, - order)); - } - else - { - SetStatus(DllExports::GdipTranslateMatrix(nativeMatrix, - - center.X, - - center.Y, - order)); - SetStatus(DllExports::GdipRotateMatrix(nativeMatrix, angle, - order)); - return SetStatus(DllExports::GdipTranslateMatrix(nativeMatrix, - center.X, - center.Y, - order)); - } - } - - Status Shear(IN REAL shearX, - IN REAL shearY, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipShearMatrix(nativeMatrix, shearX, - shearY, order)); - } - - Status Invert() - { - return SetStatus(DllExports::GdipInvertMatrix(nativeMatrix)); - } - - // float version - Status TransformPoints(IN OUT PointF* pts, - IN INT count = 1) const - { - return SetStatus(DllExports::GdipTransformMatrixPoints(nativeMatrix, - pts, count)); - } - - Status TransformPoints(IN OUT Point* pts, - IN INT count = 1) const - { - return SetStatus(DllExports::GdipTransformMatrixPointsI(nativeMatrix, - pts, - count)); - } - - Status TransformVectors(IN OUT PointF* pts, - IN INT count = 1) const - { - return SetStatus(DllExports::GdipVectorTransformMatrixPoints( - nativeMatrix, pts, count)); - } - - Status TransformVectors(IN OUT Point* pts, - IN INT count = 1) const - { - return SetStatus(DllExports::GdipVectorTransformMatrixPointsI( - nativeMatrix, - pts, - count)); - } - - BOOL IsInvertible() const - { - BOOL result = FALSE; - - SetStatus(DllExports::GdipIsMatrixInvertible(nativeMatrix, &result)); - - return result; - } - - BOOL IsIdentity() const - { - BOOL result = FALSE; - - SetStatus(DllExports::GdipIsMatrixIdentity(nativeMatrix, &result)); - - return result; - } - - BOOL Equals(IN const Matrix *matrix) const - { - BOOL result = FALSE; - - SetStatus(DllExports::GdipIsMatrixEqual(nativeMatrix, - matrix->nativeMatrix, - &result)); - - return result; - } - - Status GetLastStatus() const - { - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; - } - -private: - Matrix(const Matrix &); - Matrix& operator=(const Matrix &); - -protected: - Matrix(GpMatrix *nativeMatrix) - { - lastResult = Ok; - SetNativeMatrix(nativeMatrix); - } - - VOID SetNativeMatrix(GpMatrix *nativeMatrix) - { - this->nativeMatrix = nativeMatrix; - } - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - -protected: - GpMatrix *nativeMatrix; - mutable Status lastResult; -}; diff --git a/desmume/src/windows/gdiplus/GdiPlusMem.h b/desmume/src/windows/gdiplus/GdiPlusMem.h deleted file mode 100644 index e52cc10df..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusMem.h +++ /dev/null @@ -1,38 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusMem.h -* -* Abstract: -* -* GDI+ Private Memory Management APIs -* -\**************************************************************************/ - -#ifndef _GDIPLUSMEM_H -#define _GDIPLUSMEM_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define WINGDIPAPI __stdcall - -//---------------------------------------------------------------------------- -// Memory Allocation APIs -//---------------------------------------------------------------------------- - -void* WINGDIPAPI -GdipAlloc(size_t size); - -void WINGDIPAPI -GdipFree(void* ptr); - -#ifdef __cplusplus -} -#endif - -#endif // !_GDIPLUSMEM_H diff --git a/desmume/src/windows/gdiplus/GdiPlusMetaFile.h b/desmume/src/windows/gdiplus/GdiPlusMetaFile.h deleted file mode 100644 index e1fadab76..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusMetaFile.h +++ /dev/null @@ -1,381 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusMetafile.h -* -* Abstract: -* -* GDI+ Metafile class -* -\**************************************************************************/ - -#ifndef _GDIPLUSMETAFILE_H -#define _GDIPLUSMETAFILE_H - -class Metafile : public Image -{ -public: - friend class Image; - - // Playback a metafile from a HMETAFILE - // If deleteWmf is TRUE, then when the metafile is deleted, - // the hWmf will also be deleted. Otherwise, it won't be. - - Metafile(IN HMETAFILE hWmf, - IN const WmfPlaceableFileHeader * wmfPlaceableFileHeader, - IN BOOL deleteWmf = FALSE) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipCreateMetafileFromWmf(hWmf, deleteWmf, - wmfPlaceableFileHeader, - &metafile); - - SetNativeImage(metafile); - } - - // Playback a metafile from a HENHMETAFILE - // If deleteEmf is TRUE, then when the metafile is deleted, - // the hEmf will also be deleted. Otherwise, it won't be. - - Metafile(IN HENHMETAFILE hEmf, - IN BOOL deleteEmf = FALSE) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipCreateMetafileFromEmf(hEmf, deleteEmf, - &metafile); - - SetNativeImage(metafile); - } - - Metafile(IN const WCHAR* filename) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipCreateMetafileFromFile(filename, - &metafile); - - SetNativeImage(metafile); - } - - // Playback a WMF metafile from a file. - - Metafile(IN const WCHAR* filename, - IN const WmfPlaceableFileHeader * wmfPlaceableFileHeader - ) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipCreateMetafileFromWmfFile(filename, - wmfPlaceableFileHeader, - &metafile); - - SetNativeImage(metafile); - } - - Metafile(IN IStream* stream) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipCreateMetafileFromStream(stream, - &metafile); - - SetNativeImage(metafile); - } - - // Record a metafile to memory. - - Metafile( - IN HDC referenceHdc, - IN EmfType type = EmfTypeEmfPlusDual, - IN const WCHAR * description = NULL - ) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipRecordMetafile( - referenceHdc, type, NULL, MetafileFrameUnitGdi, - description, &metafile); - - SetNativeImage(metafile); - } - - // Record a metafile to memory. - - Metafile( - IN HDC referenceHdc, - IN const RectF & frameRect, - IN MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, - IN EmfType type = EmfTypeEmfPlusDual, - IN const WCHAR * description = NULL - ) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipRecordMetafile( - referenceHdc, type, &frameRect, frameUnit, - description, &metafile); - - SetNativeImage(metafile); - } - - // Record a metafile to memory. - - Metafile( - IN HDC referenceHdc, - IN const Rect & frameRect, - IN MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, - IN EmfType type = EmfTypeEmfPlusDual, - IN const WCHAR * description = NULL - ) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipRecordMetafileI( - referenceHdc, type, &frameRect, frameUnit, - description, &metafile); - - SetNativeImage(metafile); - } - - Metafile( - IN const WCHAR* fileName, - IN HDC referenceHdc, - IN EmfType type = EmfTypeEmfPlusDual, - IN const WCHAR * description = NULL - ) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipRecordMetafileFileName(fileName, - referenceHdc, type, NULL, MetafileFrameUnitGdi, - description, &metafile); - - SetNativeImage(metafile); - } - - Metafile( - IN const WCHAR* fileName, - IN HDC referenceHdc, - IN const RectF & frameRect, - IN MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, - IN EmfType type = EmfTypeEmfPlusDual, - IN const WCHAR * description = NULL - ) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipRecordMetafileFileName(fileName, - referenceHdc, type, &frameRect, frameUnit, - description, &metafile); - - SetNativeImage(metafile); - } - - Metafile( - IN const WCHAR* fileName, - IN HDC referenceHdc, - IN const Rect & frameRect, - IN MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, - IN EmfType type = EmfTypeEmfPlusDual, - IN const WCHAR * description = NULL - ) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipRecordMetafileFileNameI(fileName, - referenceHdc, type, &frameRect, frameUnit, - description, &metafile); - - SetNativeImage(metafile); - } - - Metafile( - IN IStream * stream, - IN HDC referenceHdc, - IN EmfType type = EmfTypeEmfPlusDual, - IN const WCHAR * description = NULL - ) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipRecordMetafileStream(stream, - referenceHdc, type, NULL, MetafileFrameUnitGdi, - description, &metafile); - - SetNativeImage(metafile); - } - - Metafile( - IN IStream * stream, - IN HDC referenceHdc, - IN const RectF & frameRect, - IN MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, - IN EmfType type = EmfTypeEmfPlusDual, - IN const WCHAR * description = NULL - ) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipRecordMetafileStream(stream, - referenceHdc, type, &frameRect, frameUnit, - description, &metafile); - - SetNativeImage(metafile); - } - - Metafile( - IN IStream * stream, - IN HDC referenceHdc, - IN const Rect & frameRect, - IN MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, - IN EmfType type = EmfTypeEmfPlusDual, - IN const WCHAR * description = NULL - ) - { - GpMetafile * metafile = NULL; - - lastResult = DllExports::GdipRecordMetafileStreamI(stream, - referenceHdc, type, &frameRect, frameUnit, - description, &metafile); - - SetNativeImage(metafile); - } - - static Status GetMetafileHeader( - IN HMETAFILE hWmf, - IN const WmfPlaceableFileHeader * wmfPlaceableFileHeader, - OUT MetafileHeader * header - ) - { - return DllExports::GdipGetMetafileHeaderFromWmf(hWmf, - wmfPlaceableFileHeader, - header); - } - - static Status GetMetafileHeader( - IN HENHMETAFILE hEmf, - OUT MetafileHeader * header - ) - { - return DllExports::GdipGetMetafileHeaderFromEmf(hEmf, header); - } - - static Status GetMetafileHeader( - IN const WCHAR* filename, - OUT MetafileHeader * header - ) - { - return DllExports::GdipGetMetafileHeaderFromFile(filename, header); - } - - static Status GetMetafileHeader( - IN IStream * stream, - OUT MetafileHeader * header - ) - { - return DllExports::GdipGetMetafileHeaderFromStream(stream, header); - } - - Status GetMetafileHeader( - OUT MetafileHeader * header - ) const - { - return SetStatus(DllExports::GdipGetMetafileHeaderFromMetafile( - (GpMetafile *)nativeImage, - header)); - } - - // Once this method is called, the Metafile object is in an invalid state - // and can no longer be used. It is the responsiblity of the caller to - // invoke DeleteEnhMetaFile to delete this hEmf. - - HENHMETAFILE GetHENHMETAFILE() - { - HENHMETAFILE hEmf; - - SetStatus(DllExports::GdipGetHemfFromMetafile( - (GpMetafile *)nativeImage, - &hEmf)); - - return hEmf; - } - - // Used in conjuction with Graphics::EnumerateMetafile to play an EMF+ - // The data must be DWORD aligned if it's an EMF or EMF+. It must be - // WORD aligned if it's a WMF. - - Status PlayRecord( - IN EmfPlusRecordType recordType, - IN UINT flags, - IN UINT dataSize, - IN const BYTE * data - ) const - { - return SetStatus(DllExports::GdipPlayMetafileRecord( - (GpMetafile *)nativeImage, - recordType, - flags, - dataSize, - data)); - } - - // If you're using a printer HDC for the metafile, but you want the - // metafile rasterized at screen resolution, then use this API to set - // the rasterization dpi of the metafile to the screen resolution, - // e.g. 96 dpi or 120 dpi. - - Status SetDownLevelRasterizationLimit( - IN UINT metafileRasterizationLimitDpi - ) - { - return SetStatus(DllExports:: - GdipSetMetafileDownLevelRasterizationLimit( - (GpMetafile *)nativeImage, - metafileRasterizationLimitDpi)); - } - - UINT GetDownLevelRasterizationLimit() const - { - UINT metafileRasterizationLimitDpi = 0; - - SetStatus(DllExports::GdipGetMetafileDownLevelRasterizationLimit( - (GpMetafile *)nativeImage, - &metafileRasterizationLimitDpi)); - - return metafileRasterizationLimitDpi; - } - - static UINT Metafile::EmfToWmfBits( - IN HENHMETAFILE hemf, - IN UINT cbData16, - OUT LPBYTE pData16, - IN INT iMapMode = MM_ANISOTROPIC, - IN INT eFlags = EmfToWmfBitsFlagsDefault - ) - { - return DllExports::GdipEmfToWmfBits( - hemf, - cbData16, - pData16, - iMapMode, - eFlags); - } - -protected: - Metafile() - { - SetNativeImage(NULL); - lastResult = Ok; - } - -private: - Metafile(const Metafile &); - Metafile& operator=(const Metafile &); -}; - -#endif // !_METAFILE_H diff --git a/desmume/src/windows/gdiplus/GdiPlusMetaHeader.h b/desmume/src/windows/gdiplus/GdiPlusMetaHeader.h deleted file mode 100644 index 83047afa8..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusMetaHeader.h +++ /dev/null @@ -1,221 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* Metafile headers -* -* Abstract: -* -* GDI+ Metafile Related Structures -* -\**************************************************************************/ - -#ifndef _GDIPLUSMETAHEADER_H -#define _GDIPLUSMETAHEADER_H - -typedef struct -{ - DWORD iType; // Record type EMR_HEADER - DWORD nSize; // Record size in bytes. This may be greater - // than the sizeof(ENHMETAHEADER). - RECTL rclBounds; // Inclusive-inclusive bounds in device units - RECTL rclFrame; // Inclusive-inclusive Picture Frame .01mm unit - DWORD dSignature; // Signature. Must be ENHMETA_SIGNATURE. - DWORD nVersion; // Version number - DWORD nBytes; // Size of the metafile in bytes - DWORD nRecords; // Number of records in the metafile - WORD nHandles; // Number of handles in the handle table - // Handle index zero is reserved. - WORD sReserved; // Reserved. Must be zero. - DWORD nDescription; // Number of chars in the unicode desc string - // This is 0 if there is no description string - DWORD offDescription; // Offset to the metafile description record. - // This is 0 if there is no description string - DWORD nPalEntries; // Number of entries in the metafile palette. - SIZEL szlDevice; // Size of the reference device in pels - SIZEL szlMillimeters; // Size of the reference device in millimeters -} ENHMETAHEADER3; - -// Placeable WMFs - -// Placeable Metafiles were created as a non-standard way of specifying how -// a metafile is mapped and scaled on an output device. -// Placeable metafiles are quite wide-spread, but not directly supported by -// the Windows API. To playback a placeable metafile using the Windows API, -// you will first need to strip the placeable metafile header from the file. -// This is typically performed by copying the metafile to a temporary file -// starting at file offset 22 (0x16). The contents of the temporary file may -// then be used as input to the Windows GetMetaFile(), PlayMetaFile(), -// CopyMetaFile(), etc. GDI functions. - -// Each placeable metafile begins with a 22-byte header, -// followed by a standard metafile: - -#include // set structure packing to 2 - -typedef struct -{ - INT16 Left; - INT16 Top; - INT16 Right; - INT16 Bottom; -} PWMFRect16; - -typedef struct -{ - UINT32 Key; // GDIP_WMF_PLACEABLEKEY - INT16 Hmf; // Metafile HANDLE number (always 0) - PWMFRect16 BoundingBox; // Coordinates in metafile units - INT16 Inch; // Number of metafile units per inch - UINT32 Reserved; // Reserved (always 0) - INT16 Checksum; // Checksum value for previous 10 WORDs -} WmfPlaceableFileHeader; - -#include - -// Key contains a special identification value that indicates the presence -// of a placeable metafile header and is always 0x9AC6CDD7. - -// Handle is used to stored the handle of the metafile in memory. When written -// to disk, this field is not used and will always contains the value 0. - -// Left, Top, Right, and Bottom contain the coordinates of the upper-left -// and lower-right corners of the image on the output device. These are -// measured in twips. - -// A twip (meaning "twentieth of a point") is the logical unit of measurement -// used in Windows Metafiles. A twip is equal to 1/1440 of an inch. Thus 720 -// twips equal 1/2 inch, while 32,768 twips is 22.75 inches. - -// Inch contains the number of twips per inch used to represent the image. -// Normally, there are 1440 twips per inch; however, this number may be -// changed to scale the image. A value of 720 indicates that the image is -// double its normal size, or scaled to a factor of 2:1. A value of 360 -// indicates a scale of 4:1, while a value of 2880 indicates that the image -// is scaled down in size by a factor of two. A value of 1440 indicates -// a 1:1 scale ratio. - -// Reserved is not used and is always set to 0. - -// Checksum contains a checksum value for the previous 10 WORDs in the header. -// This value can be used in an attempt to detect if the metafile has become -// corrupted. The checksum is calculated by XORing each WORD value to an -// initial value of 0. - -// If the metafile was recorded with a reference Hdc that was a display. - -#define GDIP_EMFPLUSFLAGS_DISPLAY 0x00000001 - -class MetafileHeader -{ -public: - MetafileType Type; - UINT Size; // Size of the metafile (in bytes) - UINT Version; // EMF+, EMF, or WMF version - UINT EmfPlusFlags; - REAL DpiX; - REAL DpiY; - INT X; // Bounds in device units - INT Y; - INT Width; - INT Height; - union - { - METAHEADER WmfHeader; - ENHMETAHEADER3 EmfHeader; - }; - INT EmfPlusHeaderSize; // size of the EMF+ header in file - INT LogicalDpiX; // Logical Dpi of reference Hdc - INT LogicalDpiY; // usually valid only for EMF+ - -public: - MetafileType GetType() const { return Type; } - - UINT GetMetafileSize() const { return Size; } - - // If IsEmfPlus, this is the EMF+ version; else it is the WMF or EMF ver - - UINT GetVersion() const { return Version; } - - // Get the EMF+ flags associated with the metafile - - UINT GetEmfPlusFlags() const { return EmfPlusFlags; } - - REAL GetDpiX() const { return DpiX; } - - REAL GetDpiY() const { return DpiY; } - - VOID GetBounds (OUT Rect *rect) const - { - rect->X = X; - rect->Y = Y; - rect->Width = Width; - rect->Height = Height; - } - - // Is it any type of WMF (standard or Placeable Metafile)? - - BOOL IsWmf() const - { - return ((Type == MetafileTypeWmf) || (Type == MetafileTypeWmfPlaceable)); - } - - // Is this an Placeable Metafile? - - BOOL IsWmfPlaceable() const { return (Type == MetafileTypeWmfPlaceable); } - - // Is this an EMF (not an EMF+)? - - BOOL IsEmf() const { return (Type == MetafileTypeEmf); } - - // Is this an EMF or EMF+ file? - - BOOL IsEmfOrEmfPlus() const { return (Type >= MetafileTypeEmf); } - - // Is this an EMF+ file? - - BOOL IsEmfPlus() const { return (Type >= MetafileTypeEmfPlusOnly); } - - // Is this an EMF+ dual (has dual, down-level records) file? - - BOOL IsEmfPlusDual() const { return (Type == MetafileTypeEmfPlusDual); } - - // Is this an EMF+ only (no dual records) file? - - BOOL IsEmfPlusOnly() const { return (Type == MetafileTypeEmfPlusOnly); } - - // If it's an EMF+ file, was it recorded against a display Hdc? - - BOOL IsDisplay() const - { - return (IsEmfPlus() && - ((EmfPlusFlags & GDIP_EMFPLUSFLAGS_DISPLAY) != 0)); - } - - // Get the WMF header of the metafile (if it is a WMF) - - const METAHEADER * GetWmfHeader() const - { - if (IsWmf()) - { - return &WmfHeader; - } - return NULL; - } - - // Get the EMF header of the metafile (if it is an EMF) - - const ENHMETAHEADER3 * GetEmfHeader() const - { - if (IsEmfOrEmfPlus()) - { - return &EmfHeader; - } - return NULL; - } -}; - -#endif - diff --git a/desmume/src/windows/gdiplus/GdiPlusPath.h b/desmume/src/windows/gdiplus/GdiPlusPath.h deleted file mode 100644 index f3534bb55..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusPath.h +++ /dev/null @@ -1,1536 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusPath.h -* -* Abstract: -* -* GDI+ Graphics Path class -* -\**************************************************************************/ - -#ifndef _GDIPLUSPATH_H -#define _GDIPLUSPATH_H - -class GraphicsPath : public GdiplusBase -{ -public: - friend class Graphics; - friend class Region; - friend class PathGradientBrush; - friend class GraphicsPathIterator; - friend class CustomLineCap; - - GraphicsPath(IN FillMode fillMode = FillModeAlternate) - { - nativePath = NULL; - lastResult = DllExports::GdipCreatePath(fillMode, &nativePath); - } - - GraphicsPath(IN const PointF* points, - IN const BYTE* types, - IN INT count, - IN FillMode fillMode = FillModeAlternate) - { - nativePath = NULL; - lastResult = DllExports::GdipCreatePath2(points, - types, - count, - fillMode, - &nativePath); - } - - GraphicsPath(IN const Point* points, - IN const BYTE* types, - IN INT count, - IN FillMode fillMode = FillModeAlternate) - { - nativePath = NULL; - lastResult = DllExports::GdipCreatePath2I(points, - types, - count, - fillMode, - &nativePath); - } - - ~GraphicsPath() - { - DllExports::GdipDeletePath(nativePath); - } - - GraphicsPath* Clone() const - { - GpPath *clonepath = NULL; - - SetStatus(DllExports::GdipClonePath(nativePath, &clonepath)); - - return new GraphicsPath(clonepath); - } - - // Reset the path object to empty (and fill mode to FillModeAlternate) - - Status Reset() - { - return SetStatus(DllExports::GdipResetPath(nativePath)); - } - - FillMode GetFillMode() const - { - FillMode fillmode = FillModeAlternate; - - SetStatus(DllExports::GdipGetPathFillMode(nativePath, &fillmode)); - - return fillmode; - } - - Status SetFillMode(IN FillMode fillmode) - { - return SetStatus(DllExports::GdipSetPathFillMode(nativePath, - fillmode)); - } - - Status GetPathData(OUT PathData* pathData) const - { - if (pathData == NULL) - { - return SetStatus(InvalidParameter); - } - - INT count = GetPointCount(); - - if ((count <= 0) || (pathData->Count>0 && pathData->CountCount = 0; - if (pathData->Points) - { - delete pathData->Points; - pathData->Points = NULL; - } - - if (pathData->Types) - { - delete pathData->Types; - pathData->Types = NULL; - } - - if (count <= 0) - { - return lastResult; - } - } - - if (pathData->Count == 0) - { - pathData->Points = new PointF[count]; - if (pathData->Points == NULL) - { - return SetStatus(OutOfMemory); - - } - pathData->Types = new byte[count]; - if (pathData->Types == NULL) - { - delete pathData->Points; - pathData->Points = NULL; - - return SetStatus(OutOfMemory); - } - pathData->Count = count; - } - - return SetStatus(DllExports::GdipGetPathData(nativePath, pathData)); - } - - Status StartFigure() - { - return SetStatus(DllExports::GdipStartPathFigure(nativePath)); - } - - Status CloseFigure() - { - return SetStatus(DllExports::GdipClosePathFigure(nativePath)); - } - - Status CloseAllFigures() - { - return SetStatus(DllExports::GdipClosePathFigures(nativePath)); - } - - Status SetMarker() - { - return SetStatus(DllExports::GdipSetPathMarker(nativePath)); - } - - Status ClearMarkers() - { - return SetStatus(DllExports::GdipClearPathMarkers(nativePath)); - } - - Status Reverse() - { - return SetStatus(DllExports::GdipReversePath(nativePath)); - } - - Status GetLastPoint(OUT PointF* lastPoint) const - { - return SetStatus(DllExports::GdipGetPathLastPoint(nativePath, - lastPoint)); - } - - Status AddLine(IN const PointF& pt1, - IN const PointF& pt2) - { - return AddLine(pt1.X, pt1.Y, pt2.X, pt2.Y); - } - - Status AddLine(IN REAL x1, - IN REAL y1, - IN REAL x2, - IN REAL y2) - { - return SetStatus(DllExports::GdipAddPathLine(nativePath, x1, y1, - x2, y2)); - } - - Status AddLines(IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathLine2(nativePath, points, - count)); - } - - Status AddLine(IN const Point& pt1, - IN const Point& pt2) - { - return AddLine(pt1.X, - pt1.Y, - pt2.X, - pt2.Y); - } - - Status AddLine(IN INT x1, - IN INT y1, - IN INT x2, - IN INT y2) - { - return SetStatus(DllExports::GdipAddPathLineI(nativePath, - x1, - y1, - x2, - y2)); - } - - Status AddLines(IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathLine2I(nativePath, - points, - count)); - } - - Status AddArc(IN const RectF& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return AddArc(rect.X, rect.Y, rect.Width, rect.Height, - startAngle, sweepAngle); - } - - Status AddArc(IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipAddPathArc(nativePath, x, y, width, - height, startAngle, - sweepAngle)); - } - - Status AddArc(IN const Rect& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return AddArc(rect.X, rect.Y, rect.Width, rect.Height, - startAngle, sweepAngle); - } - - Status AddArc(IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipAddPathArcI(nativePath, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - Status AddBezier(IN const PointF& pt1, - IN const PointF& pt2, - IN const PointF& pt3, - IN const PointF& pt4) - { - return AddBezier(pt1.X, pt1.Y, pt2.X, pt2.Y, pt3.X, pt3.Y, pt4.X, - pt4.Y); - } - - Status AddBezier(IN REAL x1, - IN REAL y1, - IN REAL x2, - IN REAL y2, - IN REAL x3, - IN REAL y3, - IN REAL x4, - IN REAL y4) - { - return SetStatus(DllExports::GdipAddPathBezier(nativePath, x1, y1, x2, - y2, x3, y3, x4, y4)); - } - - Status AddBeziers(IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathBeziers(nativePath, points, - count)); - } - - Status AddBezier(IN const Point& pt1, - IN const Point& pt2, - IN const Point& pt3, - IN const Point& pt4) - { - return AddBezier(pt1.X, pt1.Y, pt2.X, pt2.Y, pt3.X, pt3.Y, pt4.X, - pt4.Y); - } - - Status AddBezier(IN INT x1, - IN INT y1, - IN INT x2, - IN INT y2, - IN INT x3, - IN INT y3, - IN INT x4, - IN INT y4) - { - return SetStatus(DllExports::GdipAddPathBezierI(nativePath, - x1, - y1, - x2, - y2, - x3, - y3, - x4, - y4)); - } - - Status AddBeziers(IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathBeziersI(nativePath, - points, - count)); - } - - Status AddCurve(IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathCurve(nativePath, - points, - count)); - } - - Status AddCurve(IN const PointF* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipAddPathCurve2(nativePath, - points, - count, - tension)); - } - - Status AddCurve(IN const PointF* points, - IN INT count, - IN INT offset, - IN INT numberOfSegments, - IN REAL tension) - { - return SetStatus(DllExports::GdipAddPathCurve3(nativePath, - points, - count, - offset, - numberOfSegments, - tension)); - } - - Status AddCurve(IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathCurveI(nativePath, - points, - count)); - } - - Status AddCurve(IN const Point* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipAddPathCurve2I(nativePath, - points, - count, - tension)); - } - - Status AddCurve(IN const Point* points, - IN INT count, - IN INT offset, - IN INT numberOfSegments, - IN REAL tension) - { - return SetStatus(DllExports::GdipAddPathCurve3I(nativePath, - points, - count, - offset, - numberOfSegments, - tension)); - } - - Status AddClosedCurve(IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathClosedCurve(nativePath, - points, - count)); - } - - Status AddClosedCurve(IN const PointF* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipAddPathClosedCurve2(nativePath, - points, - count, - tension)); - } - - Status AddClosedCurve(IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathClosedCurveI(nativePath, - points, - count)); - } - - - Status AddClosedCurve(IN const Point* points, - IN INT count, - IN REAL tension) - { - return SetStatus(DllExports::GdipAddPathClosedCurve2I(nativePath, - points, - count, - tension)); - } - - Status AddRectangle(IN const RectF& rect) - { - return SetStatus(DllExports::GdipAddPathRectangle(nativePath, - rect.X, - rect.Y, - rect.Width, - rect.Height)); - } - - Status AddRectangles(IN const RectF* rects, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathRectangles(nativePath, - rects, - count)); - } - - Status AddRectangle(IN const Rect& rect) - { - return SetStatus(DllExports::GdipAddPathRectangleI(nativePath, - rect.X, - rect.Y, - rect.Width, - rect.Height)); - } - - Status AddRectangles(IN const Rect* rects, INT count) - { - return SetStatus(DllExports::GdipAddPathRectanglesI(nativePath, - rects, - count)); - } - - Status AddEllipse(IN const RectF& rect) - { - return AddEllipse(rect.X, rect.Y, rect.Width, rect.Height); - } - - Status AddEllipse(IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - return SetStatus(DllExports::GdipAddPathEllipse(nativePath, - x, - y, - width, - height)); - } - - Status AddEllipse(IN const Rect& rect) - { - return AddEllipse(rect.X, rect.Y, rect.Width, rect.Height); - } - - Status AddEllipse(IN INT x, - IN INT y, - IN INT width, - IN INT height) - { - return SetStatus(DllExports::GdipAddPathEllipseI(nativePath, - x, - y, - width, - height)); - } - - Status AddPie(IN const RectF& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return AddPie(rect.X, rect.Y, rect.Width, rect.Height, startAngle, - sweepAngle); - } - - Status AddPie(IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipAddPathPie(nativePath, x, y, width, - height, startAngle, - sweepAngle)); - } - - Status AddPie(IN const Rect& rect, - IN REAL startAngle, - IN REAL sweepAngle) - { - return AddPie(rect.X, - rect.Y, - rect.Width, - rect.Height, - startAngle, - sweepAngle); - } - - Status AddPie(IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN REAL startAngle, - IN REAL sweepAngle) - { - return SetStatus(DllExports::GdipAddPathPieI(nativePath, - x, - y, - width, - height, - startAngle, - sweepAngle)); - } - - Status AddPolygon(IN const PointF* points, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathPolygon(nativePath, points, - count)); - } - - Status AddPolygon(IN const Point* points, - IN INT count) - { - return SetStatus(DllExports::GdipAddPathPolygonI(nativePath, points, - count)); - } - - Status AddPath(IN const GraphicsPath* addingPath, - IN BOOL connect) - { - GpPath* nativePath2 = NULL; - if(addingPath) - nativePath2 = addingPath->nativePath; - - return SetStatus(DllExports::GdipAddPathPath(nativePath, nativePath2, - connect)); - } - - Status AddString( - IN const WCHAR *string, - IN INT length, - IN const FontFamily *family, - IN INT style, - IN REAL emSize, // World units - IN const PointF &origin, - IN const StringFormat *format - ) - { - RectF rect(origin.X, origin.Y, 0.0f, 0.0f); - - return SetStatus(DllExports::GdipAddPathString( - nativePath, - string, - length, - family ? family->nativeFamily : NULL, - style, - emSize, - &rect, - format ? format->nativeFormat : NULL - )); - } - - Status AddString( - IN const WCHAR *string, - IN INT length, - IN const FontFamily *family, - IN INT style, - IN REAL emSize, // World units - IN const RectF &layoutRect, - IN const StringFormat *format - ) - { - return SetStatus(DllExports::GdipAddPathString( - nativePath, - string, - length, - family ? family->nativeFamily : NULL, - style, - emSize, - &layoutRect, - format ? format->nativeFormat : NULL - )); - } - - Status AddString( - IN const WCHAR *string, - IN INT length, - IN const FontFamily *family, - IN INT style, - IN REAL emSize, // World units - IN const Point &origin, - IN const StringFormat *format - ) - { - Rect rect(origin.X, origin.Y, 0, 0); - - return SetStatus(DllExports::GdipAddPathStringI( - nativePath, - string, - length, - family ? family->nativeFamily : NULL, - style, - emSize, - &rect, - format ? format->nativeFormat : NULL - )); - } - - Status AddString( - IN const WCHAR *string, - IN INT length, - IN const FontFamily *family, - IN INT style, - IN REAL emSize, // World units - IN const Rect &layoutRect, - IN const StringFormat *format - ) - { - return SetStatus(DllExports::GdipAddPathStringI( - nativePath, - string, - length, - family ? family->nativeFamily : NULL, - style, - emSize, - &layoutRect, - format ? format->nativeFormat : NULL - )); - } - - Status Transform(IN const Matrix* matrix) - { - if(matrix) - return SetStatus(DllExports::GdipTransformPath(nativePath, - matrix->nativeMatrix)); - else - return Ok; - } - - // This is not always the tightest bounds. - - Status GetBounds(OUT RectF* bounds, - IN const Matrix* matrix = NULL, - IN const Pen* pen = NULL) const; - - Status GetBounds(OUT Rect* bounds, - IN const Matrix* matrix = NULL, - IN const Pen* pen = NULL) const; - - // Once flattened, the resultant path is made of line segments and - // the original path information is lost. When matrix is NULL the - // identity matrix is assumed. - - Status Flatten(IN const Matrix* matrix = NULL, - IN REAL flatness = FlatnessDefault) - { - GpMatrix* nativeMatrix = NULL; - if(matrix) - { - nativeMatrix = matrix->nativeMatrix; - } - - return SetStatus(DllExports::GdipFlattenPath( - nativePath, - nativeMatrix, - flatness - )); - } - - Status Widen( - IN const Pen* pen, - IN const Matrix* matrix = NULL, - IN REAL flatness = FlatnessDefault - ) - { - GpMatrix* nativeMatrix = NULL; - if(matrix) - nativeMatrix = matrix->nativeMatrix; - - return SetStatus(DllExports::GdipWidenPath( - nativePath, - pen->nativePen, - nativeMatrix, - flatness - )); - } - - Status Outline( - IN const Matrix *matrix = NULL, - IN REAL flatness = FlatnessDefault - ) - { - GpMatrix* nativeMatrix = NULL; - if(matrix) - { - nativeMatrix = matrix->nativeMatrix; - } - - return SetStatus(DllExports::GdipWindingModeOutline( - nativePath, nativeMatrix, flatness - )); - } - - // Once this is called, the resultant path is made of line segments and - // the original path information is lost. When matrix is NULL, the - // identity matrix is assumed. - - Status Warp(IN const PointF* destPoints, - IN INT count, - IN const RectF& srcRect, - IN const Matrix* matrix = NULL, - IN WarpMode warpMode = WarpModePerspective, - IN REAL flatness = FlatnessDefault) - { - GpMatrix* nativeMatrix = NULL; - if(matrix) - nativeMatrix = matrix->nativeMatrix; - - return SetStatus(DllExports::GdipWarpPath( - nativePath, - nativeMatrix, - destPoints, - count, - srcRect.X, - srcRect.Y, - srcRect.Width, - srcRect.Height, - warpMode, - flatness)); - } - - INT GetPointCount() const - { - INT count = 0; - - SetStatus(DllExports::GdipGetPointCount(nativePath, &count)); - - return count; - } - - Status GetPathTypes(OUT BYTE* types, - IN INT count) const - { - return SetStatus(DllExports::GdipGetPathTypes(nativePath, types, - count)); - } - - Status GetPathPoints(OUT PointF* points, - IN INT count) const - { - return SetStatus(DllExports::GdipGetPathPoints(nativePath, points, - count)); - } - - Status GetPathPoints(OUT Point* points, - IN INT count) const - { - return SetStatus(DllExports::GdipGetPathPointsI(nativePath, points, - count)); - } - - Status GetLastStatus() const - { - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; - } - - BOOL IsVisible(IN const PointF& point, - IN const Graphics* g = NULL) const - { - return IsVisible(point.X, point.Y, g); - } - - BOOL IsVisible(IN REAL x, - IN REAL y, - IN const Graphics* g = NULL) const; - - BOOL IsVisible(IN const Point& point, - IN const Graphics* g = NULL) const - { - return IsVisible(point.X, point.Y, g); - } - - BOOL IsVisible(IN INT x, - IN INT y, - IN const Graphics* g = NULL) const; - - BOOL IsOutlineVisible(IN const PointF& point, - IN const Pen* pen, - IN const Graphics* g = NULL) const - { - return IsOutlineVisible(point.X, point.Y, pen, g); - } - - BOOL IsOutlineVisible(IN REAL x, - IN REAL y, - IN const Pen* pen, - IN const Graphics* g = NULL) const; - - BOOL IsOutlineVisible(IN const Point& point, - IN const Pen* pen, - IN const Graphics* g = NULL) const - { - return IsOutlineVisible(point.X, point.Y, pen, g); - } - - BOOL IsOutlineVisible(IN INT x, - IN INT y, - IN const Pen* pen, - IN const Graphics* g = NULL) const; - -protected: - - GraphicsPath(const GraphicsPath& path) - { - GpPath *clonepath = NULL; - SetStatus(DllExports::GdipClonePath(path.nativePath, &clonepath)); - SetNativePath(clonepath); - } - -private: - GraphicsPath& operator=(const GraphicsPath &); - -protected: - GraphicsPath(GpPath* nativePath) - { - lastResult = Ok; - SetNativePath(nativePath); - } - - VOID SetNativePath(GpPath *nativePath) - { - this->nativePath = nativePath; - } - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - -protected: - GpPath* nativePath; - mutable Status lastResult; -}; - - -//-------------------------------------------------------------------------- -// GraphisPathIterator class -//-------------------------------------------------------------------------- - -class GraphicsPathIterator : public GdiplusBase -{ -public: - - GraphicsPathIterator(IN const GraphicsPath* path) - { - GpPath* nativePath = NULL; - if(path) - nativePath = path->nativePath; - - GpPathIterator *iter = NULL; - lastResult = DllExports::GdipCreatePathIter(&iter, nativePath); - SetNativeIterator(iter); - } - - ~GraphicsPathIterator() - { - DllExports::GdipDeletePathIter(nativeIterator); - } - - - INT NextSubpath(OUT INT* startIndex, - OUT INT* endIndex, - OUT BOOL* isClosed) - { - INT resultCount; - - SetStatus(DllExports::GdipPathIterNextSubpath(nativeIterator, - &resultCount, startIndex, endIndex, isClosed)); - - return resultCount; - } - - - INT NextSubpath(OUT const GraphicsPath* path, - OUT BOOL* isClosed) - { - GpPath* nativePath = NULL; - - INT resultCount; - - if(path) - nativePath= path->nativePath; - - SetStatus(DllExports::GdipPathIterNextSubpathPath(nativeIterator, - &resultCount, nativePath, isClosed)); - - return resultCount; - } - - INT NextPathType(OUT BYTE* pathType, - OUT INT* startIndex, - OUT INT* endIndex) - { - INT resultCount; - - SetStatus(DllExports::GdipPathIterNextPathType(nativeIterator, - &resultCount, pathType, startIndex, endIndex)); - - return resultCount; - } - - INT NextMarker(OUT INT* startIndex, - OUT INT* endIndex) - { - INT resultCount; - - SetStatus(DllExports::GdipPathIterNextMarker(nativeIterator, - &resultCount, startIndex, endIndex)); - - return resultCount; - } - - - INT NextMarker(OUT const GraphicsPath* path) - { - GpPath* nativePath = NULL; - - INT resultCount; - - if(path) - nativePath= path->nativePath; - - SetStatus(DllExports::GdipPathIterNextMarkerPath(nativeIterator, - &resultCount, nativePath)); - - return resultCount; - } - - INT GetCount() const - { - INT resultCount; - - SetStatus(DllExports::GdipPathIterGetCount(nativeIterator, - &resultCount)); - - return resultCount; - } - - INT GetSubpathCount() const - { - INT resultCount; - - SetStatus(DllExports::GdipPathIterGetSubpathCount(nativeIterator, - &resultCount)); - - return resultCount; - } - - BOOL HasCurve() const - { - BOOL hasCurve; - - SetStatus(DllExports::GdipPathIterHasCurve(nativeIterator, &hasCurve)); - - return hasCurve; - } - - VOID Rewind() - { - SetStatus(DllExports::GdipPathIterRewind(nativeIterator)); - } - - INT Enumerate(OUT PointF *points, - OUT BYTE *types, - IN INT count) - { - INT resultCount; - - SetStatus(DllExports::GdipPathIterEnumerate(nativeIterator, - &resultCount, points, types, count)); - - return resultCount; - } - - INT CopyData(OUT PointF* points, - OUT BYTE* types, - IN INT startIndex, - IN INT endIndex) - { - INT resultCount; - - SetStatus(DllExports::GdipPathIterCopyData(nativeIterator, - &resultCount, points, types, startIndex, endIndex)); - - return resultCount; - } - - Status GetLastStatus() const - { - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; - } - -private: - GraphicsPathIterator(const GraphicsPathIterator &); - GraphicsPathIterator& operator=(const GraphicsPathIterator &); - -protected: - VOID SetNativeIterator(GpPathIterator *nativeIterator) - { - this->nativeIterator = nativeIterator; - } - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - -protected: - GpPathIterator* nativeIterator; - mutable Status lastResult; -}; - - -//-------------------------------------------------------------------------- -// Path Gradient Brush -//-------------------------------------------------------------------------- - -class PathGradientBrush : public Brush -{ -public: - friend class Pen; - - PathGradientBrush( - IN const PointF* points, - IN INT count, - IN WrapMode wrapMode = WrapModeClamp) - { - GpPathGradient *brush = NULL; - - lastResult = DllExports::GdipCreatePathGradient( - points, count, - wrapMode, &brush); - SetNativeBrush(brush); - } - - PathGradientBrush( - IN const Point* points, - IN INT count, - IN WrapMode wrapMode = WrapModeClamp) - { - GpPathGradient *brush = NULL; - - lastResult = DllExports::GdipCreatePathGradientI( - points, count, - wrapMode, &brush); - - SetNativeBrush(brush); - } - - PathGradientBrush( - IN const GraphicsPath* path - ) - { - GpPathGradient *brush = NULL; - - lastResult = DllExports::GdipCreatePathGradientFromPath( - path->nativePath, &brush); - SetNativeBrush(brush); - } - - Status GetCenterColor(OUT Color* color) const - { - ARGB argb; - - if (color == NULL) - { - return SetStatus(InvalidParameter); - } - - SetStatus(DllExports::GdipGetPathGradientCenterColor( - (GpPathGradient*) nativeBrush, &argb)); - - color->SetValue(argb); - - return lastResult; - } - - Status SetCenterColor(IN const Color& color) - { - SetStatus(DllExports::GdipSetPathGradientCenterColor( - (GpPathGradient*) nativeBrush, - color.GetValue())); - - return lastResult; - } - - INT GetPointCount() const - { - INT count; - - SetStatus(DllExports::GdipGetPathGradientPointCount( - (GpPathGradient*) nativeBrush, &count)); - - return count; - } - - INT GetSurroundColorCount() const - { - INT count; - - SetStatus(DllExports::GdipGetPathGradientSurroundColorCount( - (GpPathGradient*) nativeBrush, &count)); - - return count; - } - - Status GetSurroundColors(OUT Color* colors, - IN OUT INT* count) const - { - if(colors == NULL || count == NULL) - { - return SetStatus(InvalidParameter); - } - - INT count1; - - SetStatus(DllExports::GdipGetPathGradientSurroundColorCount( - (GpPathGradient*) nativeBrush, &count1)); - - if(lastResult != Ok) - return lastResult; - - if((*count < count1) || (count1 <= 0)) - return SetStatus(InsufficientBuffer); - - ARGB* argbs = (ARGB*) new ARGB[count1]; - if(argbs == NULL) - return SetStatus(OutOfMemory); - - SetStatus(DllExports::GdipGetPathGradientSurroundColorsWithCount( - (GpPathGradient*)nativeBrush, argbs, &count1)); - - if(lastResult == Ok) - { - for(INT i = 0; i < count1; i++) - { - colors[i].SetValue(argbs[i]); - } - *count = count1; - } - - delete [] argbs; - return lastResult; - } - - Status SetSurroundColors(IN const Color* colors, - IN OUT INT* count) - { - if(colors == NULL || count == NULL) - { - return SetStatus(InvalidParameter); - } - - INT count1 = GetPointCount(); - - if((*count > count1) || (count1 <= 0)) - return SetStatus(InvalidParameter); - - count1 = *count; - - ARGB* argbs = (ARGB*) new ARGB[count1]; - if(argbs == NULL) - return SetStatus(OutOfMemory); - - for(INT i = 0; i < count1; i++) - { - argbs[i] = colors[i].GetValue(); - } - - SetStatus(DllExports::GdipSetPathGradientSurroundColorsWithCount( - (GpPathGradient*)nativeBrush, argbs, &count1)); - - if(lastResult == Ok) - *count = count1; - - delete [] argbs; - - return lastResult; - } - - Status GetGraphicsPath(OUT GraphicsPath* path) const - { - if(path == NULL) - return SetStatus(InvalidParameter); - - return SetStatus(DllExports::GdipGetPathGradientPath( - (GpPathGradient*)nativeBrush, path->nativePath)); - } - - Status SetGraphicsPath(IN const GraphicsPath* path) - { - if(path == NULL) - return SetStatus(InvalidParameter); - - return SetStatus(DllExports::GdipSetPathGradientPath( - (GpPathGradient*)nativeBrush, path->nativePath)); - } - - Status GetCenterPoint(OUT PointF* point) const - { - return SetStatus(DllExports::GdipGetPathGradientCenterPoint( - (GpPathGradient*)nativeBrush, - point)); - } - - Status GetCenterPoint(OUT Point* point) const - { - return SetStatus(DllExports::GdipGetPathGradientCenterPointI( - (GpPathGradient*)nativeBrush, - point)); - } - - Status SetCenterPoint(IN const PointF& point) - { - return SetStatus(DllExports::GdipSetPathGradientCenterPoint( - (GpPathGradient*)nativeBrush, - &point)); - } - - Status SetCenterPoint(IN const Point& point) - { - return SetStatus(DllExports::GdipSetPathGradientCenterPointI( - (GpPathGradient*)nativeBrush, - &point)); - } - - Status GetRectangle(OUT RectF* rect) const - { - return SetStatus(DllExports::GdipGetPathGradientRect( - (GpPathGradient*)nativeBrush, rect)); - } - - Status GetRectangle(OUT Rect* rect) const - { - return SetStatus(DllExports::GdipGetPathGradientRectI( - (GpPathGradient*)nativeBrush, rect)); - } - - Status SetGammaCorrection(IN BOOL useGammaCorrection) - { - return SetStatus(DllExports::GdipSetPathGradientGammaCorrection( - (GpPathGradient*)nativeBrush, useGammaCorrection)); - } - - BOOL GetGammaCorrection() const - { - BOOL useGammaCorrection; - - SetStatus(DllExports::GdipGetPathGradientGammaCorrection( - (GpPathGradient*)nativeBrush, &useGammaCorrection)); - - return useGammaCorrection; - } - - INT GetBlendCount() const - { - INT count = 0; - - SetStatus(DllExports::GdipGetPathGradientBlendCount( - (GpPathGradient*) nativeBrush, &count)); - - return count; - } - - Status GetBlend(OUT REAL* blendFactors, - OUT REAL* blendPositions, - IN INT count) const - { - return SetStatus(DllExports::GdipGetPathGradientBlend( - (GpPathGradient*)nativeBrush, - blendFactors, blendPositions, count)); - } - - Status SetBlend(IN const REAL* blendFactors, - IN const REAL* blendPositions, - IN INT count) - { - return SetStatus(DllExports::GdipSetPathGradientBlend( - (GpPathGradient*)nativeBrush, - blendFactors, blendPositions, count)); - } - - INT GetInterpolationColorCount() const - { - INT count = 0; - - SetStatus(DllExports::GdipGetPathGradientPresetBlendCount( - (GpPathGradient*) nativeBrush, &count)); - - return count; - } - - Status SetInterpolationColors(IN const Color* presetColors, - IN const REAL* blendPositions, - IN INT count) - { - if ((count <= 0) || !presetColors) - { - return SetStatus(InvalidParameter); - } - - ARGB* argbs = (ARGB*) new ARGB[count]; - if(argbs) - { - for(INT i = 0; i < count; i++) - { - argbs[i] = presetColors[i].GetValue(); - } - - Status status = SetStatus(DllExports:: - GdipSetPathGradientPresetBlend( - (GpPathGradient*) nativeBrush, - argbs, - blendPositions, - count)); - delete[] argbs; - return status; - } - else - { - return SetStatus(OutOfMemory); - } - } - - Status GetInterpolationColors(OUT Color* presetColors, - OUT REAL* blendPositions, - IN INT count) const - { - if ((count <= 0) || !presetColors) - { - return SetStatus(InvalidParameter); - } - - ARGB* argbs = (ARGB*) new ARGB[count]; - - if (!argbs) - { - return SetStatus(OutOfMemory); - } - - GpStatus status = SetStatus(DllExports::GdipGetPathGradientPresetBlend( - (GpPathGradient*)nativeBrush, - argbs, - blendPositions, - count)); - - for(INT i = 0; i < count; i++) - { - presetColors[i] = Color(argbs[i]); - } - delete [] argbs; - - return status; - } - - Status SetBlendBellShape(IN REAL focus, - IN REAL scale = 1.0) - { - return SetStatus(DllExports::GdipSetPathGradientSigmaBlend( - (GpPathGradient*)nativeBrush, focus, scale)); - } - - Status SetBlendTriangularShape( - IN REAL focus, - IN REAL scale = 1.0 - ) - { - return SetStatus(DllExports::GdipSetPathGradientLinearBlend( - (GpPathGradient*)nativeBrush, focus, scale)); - } - - Status GetTransform(OUT Matrix *matrix) const - { - return SetStatus(DllExports::GdipGetPathGradientTransform( - (GpPathGradient*) nativeBrush, - matrix->nativeMatrix)); - } - - Status SetTransform(IN const Matrix* matrix) - { - return SetStatus(DllExports::GdipSetPathGradientTransform( - (GpPathGradient*) nativeBrush, - matrix->nativeMatrix)); - } - - Status ResetTransform() - { - return SetStatus(DllExports::GdipResetPathGradientTransform( - (GpPathGradient*)nativeBrush)); - } - - Status MultiplyTransform(IN const Matrix* matrix, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipMultiplyPathGradientTransform( - (GpPathGradient*)nativeBrush, - matrix->nativeMatrix, - order)); - } - - Status TranslateTransform(IN REAL dx, - IN REAL dy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipTranslatePathGradientTransform( - (GpPathGradient*)nativeBrush, - dx, dy, order)); - } - - Status ScaleTransform(IN REAL sx, - IN REAL sy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipScalePathGradientTransform( - (GpPathGradient*)nativeBrush, - sx, sy, order)); - } - - Status RotateTransform(IN REAL angle, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipRotatePathGradientTransform( - (GpPathGradient*)nativeBrush, - angle, order)); - } - - Status GetFocusScales(OUT REAL* xScale, - OUT REAL* yScale) const - { - return SetStatus(DllExports::GdipGetPathGradientFocusScales( - (GpPathGradient*) nativeBrush, xScale, yScale)); - } - - Status SetFocusScales(IN REAL xScale, - IN REAL yScale) - { - return SetStatus(DllExports::GdipSetPathGradientFocusScales( - (GpPathGradient*) nativeBrush, xScale, yScale)); - } - - WrapMode GetWrapMode() const - { - WrapMode wrapMode; - - SetStatus(DllExports::GdipGetPathGradientWrapMode( - (GpPathGradient*) nativeBrush, &wrapMode)); - - return wrapMode; - } - - Status SetWrapMode(IN WrapMode wrapMode) - { - return SetStatus(DllExports::GdipSetPathGradientWrapMode( - (GpPathGradient*) nativeBrush, wrapMode)); - } - -private: - PathGradientBrush(const PathGradientBrush &); - PathGradientBrush& operator=(const PathGradientBrush &); - -protected: - - PathGradientBrush() - { - } -}; - -#endif // !_GRAPHICSPATH_HPP diff --git a/desmume/src/windows/gdiplus/GdiPlusPen.h b/desmume/src/windows/gdiplus/GdiPlusPen.h deleted file mode 100644 index 78e259e0d..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusPen.h +++ /dev/null @@ -1,475 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusPen.h -* -* Abstract: -* -* GDI+ Pen class -* -\**************************************************************************/ -#ifndef _GDIPLUSPEN_H -#define _GDIPLUSPEN_H - -//-------------------------------------------------------------------------- -// Pen class -//-------------------------------------------------------------------------- - -class Pen : public GdiplusBase -{ -public: - friend class GraphicsPath; - friend class Graphics; - - Pen(IN const Color& color, - IN REAL width = 1.0f) - { - Unit unit = UnitWorld; - nativePen = NULL; - lastResult = DllExports::GdipCreatePen1(color.GetValue(), - width, unit, &nativePen); - } - - Pen(IN const Brush* brush, - IN REAL width = 1.0f) - { - Unit unit = UnitWorld; - nativePen = NULL; - lastResult = DllExports::GdipCreatePen2(brush->nativeBrush, - width, unit, &nativePen); - } - - ~Pen() - { - DllExports::GdipDeletePen(nativePen); - } - - Pen* Clone() const - { - GpPen *clonePen = NULL; - - lastResult = DllExports::GdipClonePen(nativePen, &clonePen); - - return new Pen(clonePen, lastResult); - } - - Status SetWidth(IN REAL width) - { - return SetStatus(DllExports::GdipSetPenWidth(nativePen, width)); - } - - REAL GetWidth() const - { - REAL width; - - SetStatus(DllExports::GdipGetPenWidth(nativePen, &width)); - - return width; - } - - // Set/get line caps: start, end, and dash - - // Line cap and join APIs by using LineCap and LineJoin enums. - - Status SetLineCap(IN LineCap startCap, - IN LineCap endCap, - IN DashCap dashCap) - { - return SetStatus(DllExports::GdipSetPenLineCap197819(nativePen, - startCap, endCap, dashCap)); - } - - Status SetStartCap(IN LineCap startCap) - { - return SetStatus(DllExports::GdipSetPenStartCap(nativePen, startCap)); - } - - Status SetEndCap(IN LineCap endCap) - { - return SetStatus(DllExports::GdipSetPenEndCap(nativePen, endCap)); - } - - Status SetDashCap(IN DashCap dashCap) - { - return SetStatus(DllExports::GdipSetPenDashCap197819(nativePen, - dashCap)); - } - - LineCap GetStartCap() const - { - LineCap startCap; - - SetStatus(DllExports::GdipGetPenStartCap(nativePen, &startCap)); - - return startCap; - } - - LineCap GetEndCap() const - { - LineCap endCap; - - SetStatus(DllExports::GdipGetPenEndCap(nativePen, &endCap)); - - return endCap; - } - - DashCap GetDashCap() const - { - DashCap dashCap; - - SetStatus(DllExports::GdipGetPenDashCap197819(nativePen, - &dashCap)); - - return dashCap; - } - - Status SetLineJoin(IN LineJoin lineJoin) - { - return SetStatus(DllExports::GdipSetPenLineJoin(nativePen, lineJoin)); - } - - LineJoin GetLineJoin() const - { - LineJoin lineJoin; - - SetStatus(DllExports::GdipGetPenLineJoin(nativePen, &lineJoin)); - - return lineJoin; - } - - Status SetCustomStartCap(IN const CustomLineCap* customCap) - { - GpCustomLineCap* nativeCap = NULL; - if(customCap) - nativeCap = customCap->nativeCap; - - return SetStatus(DllExports::GdipSetPenCustomStartCap(nativePen, - nativeCap)); - } - - Status GetCustomStartCap(OUT CustomLineCap* customCap) const - { - if(!customCap) - return SetStatus(InvalidParameter); - - return SetStatus(DllExports::GdipGetPenCustomStartCap(nativePen, - &(customCap->nativeCap))); - } - - Status SetCustomEndCap(IN const CustomLineCap* customCap) - { - GpCustomLineCap* nativeCap = NULL; - if(customCap) - nativeCap = customCap->nativeCap; - - return SetStatus(DllExports::GdipSetPenCustomEndCap(nativePen, - nativeCap)); - } - - Status GetCustomEndCap(OUT CustomLineCap* customCap) const - { - if(!customCap) - return SetStatus(InvalidParameter); - - return SetStatus(DllExports::GdipGetPenCustomEndCap(nativePen, - &(customCap->nativeCap))); - } - - Status SetMiterLimit(IN REAL miterLimit) - { - return SetStatus(DllExports::GdipSetPenMiterLimit(nativePen, - miterLimit)); - } - - REAL GetMiterLimit() const - { - REAL miterLimit; - - SetStatus(DllExports::GdipGetPenMiterLimit(nativePen, &miterLimit)); - - return miterLimit; - } - - Status SetAlignment(IN PenAlignment penAlignment) - { - return SetStatus(DllExports::GdipSetPenMode(nativePen, penAlignment)); - } - - PenAlignment GetAlignment() const - { - PenAlignment penAlignment; - - SetStatus(DllExports::GdipGetPenMode(nativePen, &penAlignment)); - - return penAlignment; - } - - Status SetTransform(IN const Matrix* matrix) - { - return SetStatus(DllExports::GdipSetPenTransform(nativePen, - matrix->nativeMatrix)); - } - - Status GetTransform(OUT Matrix* matrix) const - { - return SetStatus(DllExports::GdipGetPenTransform(nativePen, - matrix->nativeMatrix)); - } - - Status ResetTransform() - { - return SetStatus(DllExports::GdipResetPenTransform(nativePen)); - } - - Status MultiplyTransform(IN const Matrix* matrix, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipMultiplyPenTransform(nativePen, - matrix->nativeMatrix, - order)); - } - - Status TranslateTransform(IN REAL dx, - IN REAL dy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipTranslatePenTransform(nativePen, - dx, - dy, - order)); - } - - Status ScaleTransform(IN REAL sx, - IN REAL sy, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipScalePenTransform(nativePen, - sx, - sy, - order)); - } - - Status RotateTransform(IN REAL angle, - IN MatrixOrder order = MatrixOrderPrepend) - { - return SetStatus(DllExports::GdipRotatePenTransform(nativePen, - angle, - order)); - } - - PenType GetPenType() const - { - PenType type; - SetStatus(DllExports::GdipGetPenFillType(nativePen, &type)); - - return type; - } - - Status SetColor(IN const Color& color) - { - return SetStatus(DllExports::GdipSetPenColor(nativePen, - color.GetValue())); - } - - Status SetBrush(IN const Brush* brush) - { - return SetStatus(DllExports::GdipSetPenBrushFill(nativePen, - brush->nativeBrush)); - } - - Status GetColor(OUT Color* color) const - { - if (color == NULL) - { - return SetStatus(InvalidParameter); - } - - PenType type = GetPenType(); - - if (type != PenTypeSolidColor) - { - return WrongState; - } - - ARGB argb; - - SetStatus(DllExports::GdipGetPenColor(nativePen, - &argb)); - if (lastResult == Ok) - { - color->SetValue(argb); - } - - return lastResult; - } - - Brush* GetBrush() const - { - PenType type = GetPenType(); - - Brush* brush = NULL; - - switch(type) - { - case PenTypeSolidColor: - brush = new SolidBrush(); - break; - - case PenTypeHatchFill: - brush = new HatchBrush(); - break; - - case PenTypeTextureFill: - brush = new TextureBrush(); - break; - - case PenTypePathGradient: - brush = new Brush(); - break; - - case PenTypeLinearGradient: - brush = new LinearGradientBrush(); - break; - - default: - break; - } - - if(brush) - { - GpBrush* nativeBrush; - - SetStatus(DllExports::GdipGetPenBrushFill(nativePen, - &nativeBrush)); - brush->SetNativeBrush(nativeBrush); - } - - return brush; - } - - DashStyle GetDashStyle() const - { - DashStyle dashStyle; - - SetStatus(DllExports::GdipGetPenDashStyle(nativePen, &dashStyle)); - - return dashStyle; - } - - Status SetDashStyle(IN DashStyle dashStyle) - { - return SetStatus(DllExports::GdipSetPenDashStyle(nativePen, - dashStyle)); - } - - REAL GetDashOffset() const - { - REAL dashOffset; - - SetStatus(DllExports::GdipGetPenDashOffset(nativePen, &dashOffset)); - - return dashOffset; - } - - Status SetDashOffset(IN REAL dashOffset) - { - return SetStatus(DllExports::GdipSetPenDashOffset(nativePen, - dashOffset)); - } - - Status SetDashPattern(IN const REAL* dashArray, IN INT count) - { - return SetStatus(DllExports::GdipSetPenDashArray(nativePen, - dashArray, - count)); - } - - INT GetDashPatternCount() const - { - INT count = 0; - - SetStatus(DllExports::GdipGetPenDashCount(nativePen, &count)); - - return count; - } - - Status GetDashPattern(OUT REAL* dashArray, - IN INT count) const - { - if (dashArray == NULL || count <= 0) - return SetStatus(InvalidParameter); - - return SetStatus(DllExports::GdipGetPenDashArray(nativePen, - dashArray, - count)); - } - - Status SetCompoundArray(IN const REAL* compoundArray, - IN INT count) - { - return SetStatus(DllExports::GdipSetPenCompoundArray(nativePen, - compoundArray, - count)); - } - - INT GetCompoundArrayCount() const - { - INT count = 0; - - SetStatus(DllExports::GdipGetPenCompoundCount(nativePen, &count)); - - return count; - } - - Status GetCompoundArray(OUT REAL* compoundArray, - IN INT count) const - { - if (compoundArray == NULL || count <= 0) - return SetStatus(InvalidParameter); - - return SetStatus(DllExports::GdipGetPenCompoundArray(nativePen, - compoundArray, - count)); - } - - Status GetLastStatus() const - { - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; - } - -private: - Pen(const Pen &); - Pen& operator=(const Pen &); - -protected: - Pen(GpPen* nativePen, Status status) - { - lastResult = status; - SetNativePen(nativePen); - } - - VOID SetNativePen(GpPen* nativePen) - { - this->nativePen = nativePen; - } - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - -protected: - GpPen* nativePen; - mutable Status lastResult; -}; - -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusPixelFormats.h b/desmume/src/windows/gdiplus/GdiPlusPixelFormats.h deleted file mode 100644 index bd5ae1a7a..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusPixelFormats.h +++ /dev/null @@ -1,124 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* Gdiplus Pixel Formats -* -* Abstract: -* -* GDI+ Pixel Formats -* -\**************************************************************************/ - -#ifndef _GDIPLUSPIXELFORMATS_H -#define _GDIPLUSPIXELFORMATS_H - -typedef DWORD ARGB; -typedef DWORDLONG ARGB64; - -#define ALPHA_SHIFT 24 -#define RED_SHIFT 16 -#define GREEN_SHIFT 8 -#define BLUE_SHIFT 0 -#define ALPHA_MASK ((ARGB) 0xff << ALPHA_SHIFT) - -// In-memory pixel data formats: -// bits 0-7 = format index -// bits 8-15 = pixel size (in bits) -// bits 16-23 = flags -// bits 24-31 = reserved - -typedef INT PixelFormat; - -#define PixelFormatIndexed 0x00010000 // Indexes into a palette -#define PixelFormatGDI 0x00020000 // Is a GDI-supported format -#define PixelFormatAlpha 0x00040000 // Has an alpha component -#define PixelFormatPAlpha 0x00080000 // Pre-multiplied alpha -#define PixelFormatExtended 0x00100000 // Extended color 16 bits/channel -#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 - -inline UINT -GetPixelFormatSize( - PixelFormat pixfmt - ) -{ - return (pixfmt >> 8) & 0xff; -} - -inline BOOL -IsIndexedPixelFormat( - PixelFormat pixfmt - ) -{ - return (pixfmt & PixelFormatIndexed) != 0; -} - -inline BOOL -IsAlphaPixelFormat( - PixelFormat pixfmt -) -{ - return (pixfmt & PixelFormatAlpha) != 0; -} - -inline BOOL -IsExtendedPixelFormat( - PixelFormat pixfmt - ) -{ - return (pixfmt & PixelFormatExtended) != 0; -} - -//-------------------------------------------------------------------------- -// Determine if the Pixel Format is Canonical format: -// PixelFormat32bppARGB -// PixelFormat32bppPARGB -// PixelFormat64bppARGB -// PixelFormat64bppPARGB -//-------------------------------------------------------------------------- - -inline BOOL -IsCanonicalPixelFormat( - PixelFormat pixfmt - ) -{ - return (pixfmt & PixelFormatCanonical) != 0; -} - -enum PaletteFlags -{ - PaletteFlagsHasAlpha = 0x0001, - PaletteFlagsGrayScale = 0x0002, - PaletteFlagsHalftone = 0x0004 -}; - -struct ColorPalette -{ -public: - UINT Flags; // Palette flags - UINT Count; // Number of color entries - ARGB Entries[1]; // Palette color entries -}; - -#endif diff --git a/desmume/src/windows/gdiplus/GdiPlusRegion.h b/desmume/src/windows/gdiplus/GdiPlusRegion.h deleted file mode 100644 index fee4b178a..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusRegion.h +++ /dev/null @@ -1,514 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusRegion.h -* -* Abstract: -* -* GDI+ Region class implementation -* -\**************************************************************************/ - -#ifndef _GDIPLUSREGION_H -#define _GDIPLUSREGION_H - -inline -Region::Region() -{ - GpRegion *region = NULL; - - lastResult = DllExports::GdipCreateRegion(®ion); - - SetNativeRegion(region); -} - -inline -Region::Region(IN const RectF& rect) -{ - GpRegion *region = NULL; - - lastResult = DllExports::GdipCreateRegionRect(&rect, ®ion); - - SetNativeRegion(region); -} - -inline -Region::Region(IN const Rect& rect) -{ - GpRegion *region = NULL; - - lastResult = DllExports::GdipCreateRegionRectI(&rect, ®ion); - - SetNativeRegion(region); -} - -inline -Region::Region(IN const GraphicsPath* path) -{ - GpRegion *region = NULL; - - lastResult = DllExports::GdipCreateRegionPath(path->nativePath, ®ion); - - SetNativeRegion(region); -} - -inline -Region::Region(IN const BYTE* regionData, IN INT size) -{ - GpRegion *region = NULL; - - lastResult = DllExports::GdipCreateRegionRgnData(regionData, size, - ®ion); - - SetNativeRegion(region); -} - -inline -Region::Region(IN HRGN hRgn) -{ - GpRegion *region = NULL; - - lastResult = DllExports::GdipCreateRegionHrgn(hRgn, ®ion); - - SetNativeRegion(region); -} - -inline -Region* Region::FromHRGN(IN HRGN hRgn) -{ - GpRegion *region = NULL; - - if (DllExports::GdipCreateRegionHrgn(hRgn, ®ion) == Ok) - { - Region* newRegion = new Region(region); - - if (newRegion == NULL) - { - DllExports::GdipDeleteRegion(region); - } - - return newRegion; - } - else - return NULL; -} - -inline -Region::~Region() -{ - DllExports::GdipDeleteRegion(nativeRegion); -} - -inline Region* -Region::Clone() const -{ - GpRegion *region = NULL; - - SetStatus(DllExports::GdipCloneRegion(nativeRegion, ®ion)); - - return new Region(region); -} - -inline Status -Region::MakeInfinite() -{ - return SetStatus(DllExports::GdipSetInfinite(nativeRegion)); -} - -inline Status -Region::MakeEmpty() -{ - return SetStatus(DllExports::GdipSetEmpty(nativeRegion)); -} - -inline Status -Region::Intersect(IN const RectF& rect) -{ - return SetStatus(DllExports::GdipCombineRegionRect(nativeRegion, &rect, - CombineModeIntersect)); -} - -inline Status -Region::Intersect(IN const Rect& rect) -{ - return SetStatus(DllExports::GdipCombineRegionRectI(nativeRegion, &rect, - CombineModeIntersect)); -} - -inline Status -Region::Intersect(IN const GraphicsPath* path) -{ - return SetStatus(DllExports::GdipCombineRegionPath(nativeRegion, - path->nativePath, - CombineModeIntersect)); -} - -inline Status -Region::Intersect(IN const Region* region) -{ - return SetStatus(DllExports::GdipCombineRegionRegion(nativeRegion, - region->nativeRegion, - CombineModeIntersect)); -} - -inline Status -Region::Union(IN const RectF& rect) -{ - return SetStatus(DllExports::GdipCombineRegionRect(nativeRegion, &rect, - CombineModeUnion)); -} - -inline Status -Region::Union(IN const Rect& rect) -{ - return SetStatus(DllExports::GdipCombineRegionRectI(nativeRegion, &rect, - CombineModeUnion)); -} - -inline Status -Region::Union(IN const GraphicsPath* path) -{ - return SetStatus(DllExports::GdipCombineRegionPath(nativeRegion, - path->nativePath, - CombineModeUnion)); -} - -inline Status -Region::Union(IN const Region* region) -{ - return SetStatus(DllExports::GdipCombineRegionRegion(nativeRegion, - region->nativeRegion, - CombineModeUnion)); -} - -inline Status -Region::Xor(IN const RectF& rect) -{ - return SetStatus(DllExports::GdipCombineRegionRect(nativeRegion, &rect, - CombineModeXor)); -} - -inline Status -Region::Xor(IN const Rect& rect) -{ - return SetStatus(DllExports::GdipCombineRegionRectI(nativeRegion, &rect, - CombineModeXor)); -} - -inline Status -Region::Xor(IN const GraphicsPath* path) -{ - return SetStatus(DllExports::GdipCombineRegionPath(nativeRegion, - path->nativePath, - CombineModeXor)); -} - -inline Status -Region::Xor(IN const Region* region) -{ - return SetStatus(DllExports::GdipCombineRegionRegion(nativeRegion, - region->nativeRegion, - CombineModeXor)); -} - -inline Status -Region::Exclude(IN const RectF& rect) -{ - return SetStatus(DllExports::GdipCombineRegionRect(nativeRegion, &rect, - CombineModeExclude)); -} - -inline Status -Region::Exclude(IN const Rect& rect) -{ - return SetStatus(DllExports::GdipCombineRegionRectI(nativeRegion, &rect, - CombineModeExclude)); -} - -inline Status -Region::Exclude(IN const GraphicsPath* path) -{ - return SetStatus(DllExports::GdipCombineRegionPath(nativeRegion, - path->nativePath, - CombineModeExclude)); -} - -inline Status -Region::Exclude(IN const Region* region) -{ - return SetStatus(DllExports::GdipCombineRegionRegion(nativeRegion, - region->nativeRegion, - CombineModeExclude)); -} - -inline Status -Region::Complement(IN const RectF& rect) -{ - return SetStatus(DllExports::GdipCombineRegionRect(nativeRegion, &rect, - CombineModeComplement)); -} - -inline Status -Region::Complement(IN const Rect& rect) -{ - return SetStatus(DllExports::GdipCombineRegionRectI(nativeRegion, &rect, - CombineModeComplement)); -} - -inline Status -Region::Complement(IN const GraphicsPath* path) -{ - return SetStatus(DllExports::GdipCombineRegionPath(nativeRegion, - path->nativePath, - CombineModeComplement)); -} - -inline Status -Region::Complement(IN const Region* region) -{ - return SetStatus(DllExports::GdipCombineRegionRegion(nativeRegion, - region->nativeRegion, - CombineModeComplement)); -} - -inline Status -Region::Translate(IN REAL dx, - IN REAL dy) -{ - return SetStatus(DllExports::GdipTranslateRegion(nativeRegion, dx, dy)); -} - -inline Status -Region::Translate(IN INT dx, - IN INT dy) -{ - return SetStatus(DllExports::GdipTranslateRegionI(nativeRegion, dx, dy)); -} - -inline Status -Region::Transform(IN const Matrix* matrix) -{ - return SetStatus(DllExports::GdipTransformRegion(nativeRegion, - matrix->nativeMatrix)); -} - -inline Status -Region::GetBounds(OUT RectF* rect, - IN const Graphics* g) const -{ - return SetStatus(DllExports::GdipGetRegionBounds(nativeRegion, - g->nativeGraphics, - rect)); -} - -inline Status -Region::GetBounds(OUT Rect* rect, - IN const Graphics* g) const -{ - return SetStatus(DllExports::GdipGetRegionBoundsI(nativeRegion, - g->nativeGraphics, - rect)); -} - -inline HRGN -Region::GetHRGN(IN const Graphics* g) const -{ - HRGN hrgn; - - SetStatus(DllExports::GdipGetRegionHRgn(nativeRegion, - g->nativeGraphics, - &hrgn)); - - return hrgn; -} - -inline BOOL -Region::IsEmpty(IN const Graphics *g) const -{ - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsEmptyRegion(nativeRegion, - g->nativeGraphics, - &booln)); - - return booln; -} - -inline BOOL -Region::IsInfinite(IN const Graphics *g) const -{ - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsInfiniteRegion(nativeRegion, - g->nativeGraphics, - &booln)); - - return booln; -} - -inline BOOL -Region::Equals(IN const Region* region, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsEqualRegion(nativeRegion, - region->nativeRegion, - g->nativeGraphics, - &booln)); - return booln; -} - -// Get the size of the buffer needed for the GetData method -inline UINT -Region::GetDataSize() const -{ - UINT bufferSize = 0; - - SetStatus(DllExports::GdipGetRegionDataSize(nativeRegion, &bufferSize)); - - return bufferSize; -} - -// buffer - where to put the data -// bufferSize - how big the buffer is (should be at least as big as GetDataSize()) -// sizeFilled - if not NULL, this is an OUT param that says how many bytes -// of data were written to the buffer. -inline Status -Region::GetData(OUT BYTE* buffer, - IN UINT bufferSize, - OUT UINT* sizeFilled) const -{ - return SetStatus(DllExports::GdipGetRegionData(nativeRegion, buffer, - bufferSize, sizeFilled)); -} - -/** - * Hit testing operations - */ -inline BOOL -Region::IsVisible(IN const PointF& point, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsVisibleRegionPoint(nativeRegion, - point.X, point.Y, - (g == NULL) ? NULL : g->nativeGraphics, - &booln)); - return booln; -} - -inline BOOL -Region::IsVisible(IN const RectF& rect, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsVisibleRegionRect(nativeRegion, rect.X, - rect.Y, rect.Width, - rect.Height, - (g == NULL) ? - NULL : g->nativeGraphics, - &booln)); - return booln; -} - -inline BOOL -Region::IsVisible(IN const Point& point, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - - SetStatus(DllExports::GdipIsVisibleRegionPointI(nativeRegion, - point.X, - point.Y, - (g == NULL) - ? NULL : g->nativeGraphics, - &booln)); - return booln; -} - -inline BOOL -Region::IsVisible(IN const Rect& rect, - IN const Graphics* g) const -{ - BOOL booln = FALSE; - - SetStatus(DllExports::GdipIsVisibleRegionRectI(nativeRegion, - rect.X, - rect.Y, - rect.Width, - rect.Height, - (g == NULL) - ? NULL : g->nativeGraphics, - &booln)); - return booln; -} - -inline UINT -Region::GetRegionScansCount(IN const Matrix* matrix) const -{ - UINT count = 0; - - SetStatus(DllExports::GdipGetRegionScansCount(nativeRegion, - &count, - matrix->nativeMatrix)); - return count; -} - -// If rects is NULL, return the count of rects in the region. -// Otherwise, assume rects is big enough to hold all the region rects -// and fill them in and return the number of rects filled in. -// The rects are returned in the units specified by the matrix -// (which is typically a world-to-device transform). -// Note that the number of rects returned can vary, depending on the -// matrix that is used. - -inline Status -Region::GetRegionScans( - IN const Matrix* matrix, - OUT RectF* rects, - IN OUT INT* count) const -{ - return SetStatus(DllExports::GdipGetRegionScans(nativeRegion, - rects, - count, - matrix->nativeMatrix)); -} - -inline Status -Region::GetRegionScans( - IN const Matrix* matrix, - OUT Rect* rects, - IN OUT INT* count) const -{ - return SetStatus(DllExports::GdipGetRegionScansI(nativeRegion, - rects, - count, - matrix->nativeMatrix)); -} - -inline Region::Region(GpRegion* nativeRegion) -{ - SetNativeRegion(nativeRegion); -} - -inline VOID Region::SetNativeRegion(GpRegion* nativeRegion) -{ - this->nativeRegion = nativeRegion; -} - -inline Status Region::GetLastStatus() const -{ - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; -} - -#endif // !_GDIPLUSREGION_H diff --git a/desmume/src/windows/gdiplus/GdiPlusStringFormat.h b/desmume/src/windows/gdiplus/GdiPlusStringFormat.h deleted file mode 100644 index e210c70dc..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusStringFormat.h +++ /dev/null @@ -1,333 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusStringFormat.h -* -* Abstract: -* -* GDI+ StringFormat class -* -\**************************************************************************/ - -#ifndef _GDIPLUSSTRINGFORMAT_H -#define _GDIPLUSSTRINGFORMAT_H - -class StringFormat : public GdiplusBase -{ -public: - friend class Graphics; - friend class GraphicsPath; - - - StringFormat( - IN INT formatFlags = 0, - IN LANGID language = LANG_NEUTRAL - ) - { - nativeFormat = NULL; - lastError = DllExports::GdipCreateStringFormat( - formatFlags, - language, - &nativeFormat - ); - } - - static const StringFormat *GenericDefault(); - static const StringFormat *GenericTypographic(); - - StringFormat( - IN const StringFormat *format - ) - { - nativeFormat = NULL; - lastError = DllExports::GdipCloneStringFormat( - format ? format->nativeFormat : NULL, - &nativeFormat - ); - } - - StringFormat *Clone() const - { - GpStringFormat *clonedStringFormat = NULL; - - lastError = DllExports::GdipCloneStringFormat( - nativeFormat, - &clonedStringFormat - ); - - if (lastError == Ok) - return new StringFormat(clonedStringFormat, lastError); - else - return NULL; - } - - ~StringFormat() - { - DllExports::GdipDeleteStringFormat(nativeFormat); - } - - Status SetFormatFlags(IN INT flags) - { - return SetStatus(DllExports::GdipSetStringFormatFlags( - nativeFormat, - flags - )); - } - - INT GetFormatFlags() const - { - INT flags; - SetStatus(DllExports::GdipGetStringFormatFlags(nativeFormat, &flags)); - return flags; - } - - Status SetAlignment(IN StringAlignment align) - { - return SetStatus(DllExports::GdipSetStringFormatAlign( - nativeFormat, - align - )); - } - - StringAlignment GetAlignment() const - { - StringAlignment alignment; - SetStatus(DllExports::GdipGetStringFormatAlign( - nativeFormat, - &alignment - )); - return alignment; - } - - Status SetLineAlignment(IN StringAlignment align) - { - return SetStatus(DllExports::GdipSetStringFormatLineAlign( - nativeFormat, - align - )); - } - - StringAlignment GetLineAlignment() const - { - StringAlignment alignment; - SetStatus(DllExports::GdipGetStringFormatLineAlign( - nativeFormat, - &alignment - )); - return alignment; - } - - Status SetHotkeyPrefix(IN HotkeyPrefix hotkeyPrefix) - { - return SetStatus(DllExports::GdipSetStringFormatHotkeyPrefix( - nativeFormat, - (INT)hotkeyPrefix - )); - } - - HotkeyPrefix GetHotkeyPrefix() const - { - HotkeyPrefix hotkeyPrefix; - SetStatus(DllExports::GdipGetStringFormatHotkeyPrefix( - nativeFormat, - (INT*)&hotkeyPrefix - )); - return hotkeyPrefix; - } - - Status SetTabStops( - IN REAL firstTabOffset, - IN INT count, - IN const REAL *tabStops - ) - { - return SetStatus(DllExports::GdipSetStringFormatTabStops( - nativeFormat, - firstTabOffset, - count, - tabStops - )); - } - - INT GetTabStopCount() const - { - INT count; - SetStatus(DllExports::GdipGetStringFormatTabStopCount(nativeFormat, &count)); - return count; - } - - Status GetTabStops( - IN INT count, - OUT REAL *firstTabOffset, - OUT REAL *tabStops - ) const - { - return SetStatus(DllExports::GdipGetStringFormatTabStops( - nativeFormat, - count, - firstTabOffset, - tabStops - )); - } - - Status SetDigitSubstitution( - IN LANGID language, - IN StringDigitSubstitute substitute - ) - { - return SetStatus(DllExports::GdipSetStringFormatDigitSubstitution( - nativeFormat, - language, - substitute - )); - } - - LANGID GetDigitSubstitutionLanguage( - ) const - { - LANGID language; - SetStatus(DllExports::GdipGetStringFormatDigitSubstitution( - nativeFormat, - &language, - NULL - )); - return language; - } - - StringDigitSubstitute GetDigitSubstitutionMethod( - ) const - { - StringDigitSubstitute substitute; - SetStatus(DllExports::GdipGetStringFormatDigitSubstitution( - nativeFormat, - NULL, - &substitute - )); - return substitute; - } - - Status SetTrimming(IN StringTrimming trimming) - { - return SetStatus(DllExports::GdipSetStringFormatTrimming( - nativeFormat, - trimming - )); - } - - StringTrimming StringFormat::GetTrimming() const - { - StringTrimming trimming; - SetStatus(DllExports::GdipGetStringFormatTrimming( - nativeFormat, - &trimming - )); - return trimming; - } - - Status SetMeasurableCharacterRanges( - IN INT rangeCount, - IN const CharacterRange *ranges - ) - { - return SetStatus(DllExports::GdipSetStringFormatMeasurableCharacterRanges( - nativeFormat, - rangeCount, - ranges - )); - } - - INT GetMeasurableCharacterRangeCount() - { - INT count; - SetStatus(DllExports::GdipGetStringFormatMeasurableCharacterRangeCount( - nativeFormat, - &count - )); - return count; - } - - Status GetLastStatus() const - { - Status lastStatus = lastError; - lastError = Ok; - - return lastStatus; - } - -protected: - - Status SetStatus(GpStatus newStatus) const - { - if (newStatus == Ok) - { - return Ok; - } - else - { - return lastError = newStatus; - } - } - - StringFormat(const StringFormat &source) - { - nativeFormat = NULL; - lastError = DllExports::GdipCloneStringFormat( - source.nativeFormat, - &nativeFormat - ); - } - - StringFormat& operator=(const StringFormat &source) - { - DllExports::GdipDeleteStringFormat(nativeFormat); - lastError = DllExports::GdipCloneStringFormat( - source.nativeFormat, - &nativeFormat - ); - return *this; - } - - StringFormat(GpStringFormat * clonedStringFormat, Status status) - { - lastError = status; - nativeFormat = clonedStringFormat; - - } - - GpStringFormat *nativeFormat; - mutable Status lastError; -}; - -static BYTE GenericTypographicStringFormatBuffer[sizeof(StringFormat)] = {0}; -static BYTE GenericDefaultStringFormatBuffer[sizeof(StringFormat)] = {0}; - -inline const StringFormat *StringFormat::GenericDefault() -{ - StringFormat * genericDefaultStringFormat = - (StringFormat*)GenericDefaultStringFormatBuffer; - - genericDefaultStringFormat->lastError = - DllExports::GdipStringFormatGetGenericDefault( - &(genericDefaultStringFormat->nativeFormat) - ); - - return genericDefaultStringFormat; -} - -inline const StringFormat *StringFormat::GenericTypographic() -{ - StringFormat * genericTypographicStringFormat = - (StringFormat*)GenericTypographicStringFormatBuffer; - - genericTypographicStringFormat->lastError = - DllExports::GdipStringFormatGetGenericTypographic( - &genericTypographicStringFormat->nativeFormat - ); - - return genericTypographicStringFormat; -} - -#endif // !_GDIPLUSSTRINGFORMAT_H diff --git a/desmume/src/windows/gdiplus/GdiPlusTypes.h b/desmume/src/windows/gdiplus/GdiPlusTypes.h deleted file mode 100644 index 883e8fed0..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusTypes.h +++ /dev/null @@ -1,760 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusTypes.h -* -* Abstract: -* -* GDI+ Types -* -\**************************************************************************/ - -#ifndef _GDIPLUSTYPES_H -#define _GDIPLUSTYPES_H - -//-------------------------------------------------------------------------- -// Callback functions -//-------------------------------------------------------------------------- - -extern "C" { -typedef BOOL (CALLBACK * ImageAbort)(VOID *); -typedef ImageAbort DrawImageAbort; -typedef ImageAbort GetThumbnailImageAbort; -} - -// Callback for EnumerateMetafile methods. The parameters are: - -// recordType WMF, EMF, or EMF+ record type -// flags (always 0 for WMF/EMF records) -// dataSize size of the record data (in bytes), or 0 if no data -// data pointer to the record data, or NULL if no data -// callbackData pointer to callbackData, if any - -// This method can then call Metafile::PlayRecord to play the -// record that was just enumerated. If this method returns -// FALSE, the enumeration process is aborted. Otherwise, it continues. - -extern "C" { -typedef BOOL (CALLBACK * EnumerateMetafileProc)(EmfPlusRecordType,UINT,UINT,const BYTE*,VOID*); -} - -//-------------------------------------------------------------------------- -// Primitive data types -// -// NOTE: -// Types already defined in standard header files: -// INT8 -// UINT8 -// INT16 -// UINT16 -// INT32 -// UINT32 -// INT64 -// UINT64 -// -// Avoid using the following types: -// LONG - use INT -// ULONG - use UINT -// DWORD - use UINT32 -//-------------------------------------------------------------------------- - -typedef float REAL; - -#define REAL_MAX FLT_MAX -#define REAL_MIN FLT_MIN -#define REAL_TOLERANCE (FLT_MIN * 100) -#define REAL_EPSILON 1.192092896e-07F /* FLT_EPSILON */ - -//-------------------------------------------------------------------------- -// Forward declarations of common classes -//-------------------------------------------------------------------------- - -class Size; -class SizeF; -class Point; -class PointF; -class Rect; -class RectF; -class CharacterRange; - -//-------------------------------------------------------------------------- -// Status return values from GDI+ methods -//-------------------------------------------------------------------------- - -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 -}; - -//-------------------------------------------------------------------------- -// Represents a dimension in a 2D coordinate system (floating-point coordinates) -//-------------------------------------------------------------------------- - -class SizeF -{ -public: - SizeF() - { - Width = Height = 0.0f; - } - - SizeF(IN const SizeF& size) - { - Width = size.Width; - Height = size.Height; - } - - SizeF(IN REAL width, - IN REAL height) - { - Width = width; - Height = height; - } - - SizeF operator+(IN const SizeF& sz) const - { - return SizeF(Width + sz.Width, - Height + sz.Height); - } - - SizeF operator-(IN const SizeF& sz) const - { - return SizeF(Width - sz.Width, - Height - sz.Height); - } - - BOOL Equals(IN const SizeF& sz) const - { - return (Width == sz.Width) && (Height == sz.Height); - } - - BOOL Empty() const - { - return (Width == 0.0f && Height == 0.0f); - } - -public: - - REAL Width; - REAL Height; -}; - -//-------------------------------------------------------------------------- -// Represents a dimension in a 2D coordinate system (integer coordinates) -//-------------------------------------------------------------------------- - -class Size -{ -public: - Size() - { - Width = Height = 0; - } - - Size(IN const Size& size) - { - Width = size.Width; - Height = size.Height; - } - - Size(IN INT width, - IN INT height) - { - Width = width; - Height = height; - } - - Size operator+(IN const Size& sz) const - { - return Size(Width + sz.Width, - Height + sz.Height); - } - - Size operator-(IN const Size& sz) const - { - return Size(Width - sz.Width, - Height - sz.Height); - } - - BOOL Equals(IN const Size& sz) const - { - return (Width == sz.Width) && (Height == sz.Height); - } - - BOOL Empty() const - { - return (Width == 0 && Height == 0); - } - -public: - - INT Width; - INT Height; -}; - -//-------------------------------------------------------------------------- -// Represents a location in a 2D coordinate system (floating-point coordinates) -//-------------------------------------------------------------------------- - -class PointF -{ -public: - PointF() - { - X = Y = 0.0f; - } - - PointF(IN const PointF &point) - { - X = point.X; - Y = point.Y; - } - - PointF(IN const SizeF &size) - { - X = size.Width; - Y = size.Height; - } - - PointF(IN REAL x, - IN REAL y) - { - X = x; - Y = y; - } - - PointF operator+(IN const PointF& point) const - { - return PointF(X + point.X, - Y + point.Y); - } - - PointF operator-(IN const PointF& point) const - { - return PointF(X - point.X, - Y - point.Y); - } - - BOOL Equals(IN const PointF& point) - { - return (X == point.X) && (Y == point.Y); - } - -public: - - REAL X; - REAL Y; -}; - -//-------------------------------------------------------------------------- -// Represents a location in a 2D coordinate system (integer coordinates) -//-------------------------------------------------------------------------- - -class Point -{ -public: - Point() - { - X = Y = 0; - } - - Point(IN const Point &point) - { - X = point.X; - Y = point.Y; - } - - Point(IN const Size &size) - { - X = size.Width; - Y = size.Height; - } - - Point(IN INT x, - IN INT y) - { - X = x; - Y = y; - } - - Point operator+(IN const Point& point) const - { - return Point(X + point.X, - Y + point.Y); - } - - Point operator-(IN const Point& point) const - { - return Point(X - point.X, - Y - point.Y); - } - - BOOL Equals(IN const Point& point) - { - return (X == point.X) && (Y == point.Y); - } - -public: - - INT X; - INT Y; -}; - -//-------------------------------------------------------------------------- -// Represents a rectangle in a 2D coordinate system (floating-point coordinates) -//-------------------------------------------------------------------------- - -class RectF -{ -public: - - RectF() - { - X = Y = Width = Height = 0.0f; - } - - RectF(IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height) - { - X = x; - Y = y; - Width = width; - Height = height; - } - - RectF(IN const PointF& location, - IN const SizeF& size) - { - X = location.X; - Y = location.Y; - Width = size.Width; - Height = size.Height; - } - - RectF* Clone() const - { - return new RectF(X, Y, Width, Height); - } - - VOID GetLocation(OUT PointF* point) const - { - point->X = X; - point->Y = Y; - } - - VOID GetSize(OUT SizeF* size) const - { - size->Width = Width; - size->Height = Height; - } - - VOID GetBounds(OUT RectF* rect) const - { - rect->X = X; - rect->Y = Y; - rect->Width = Width; - rect->Height = Height; - } - - REAL GetLeft() const - { - return X; - } - - REAL GetTop() const - { - return Y; - } - - REAL GetRight() const - { - return X+Width; - } - - REAL GetBottom() const - { - return Y+Height; - } - - BOOL IsEmptyArea() const - { - return (Width <= REAL_EPSILON) || (Height <= REAL_EPSILON); - } - - BOOL Equals(IN const RectF & rect) const - { - return X == rect.X && - Y == rect.Y && - Width == rect.Width && - Height == rect.Height; - } - - BOOL Contains(IN REAL x, - IN REAL y) const - { - return x >= X && x < X+Width && - y >= Y && y < Y+Height; - } - - BOOL Contains(IN const PointF& pt) const - { - return Contains(pt.X, pt.Y); - } - - BOOL Contains(IN const RectF& rect) const - { - return (X <= rect.X) && (rect.GetRight() <= GetRight()) && - (Y <= rect.Y) && (rect.GetBottom() <= GetBottom()); - } - - VOID Inflate(IN REAL dx, - IN REAL dy) - { - X -= dx; - Y -= dy; - Width += 2*dx; - Height += 2*dy; - } - - VOID Inflate(IN const PointF& point) - { - Inflate(point.X, point.Y); - } - - BOOL Intersect(IN const RectF& rect) - { - return Intersect(*this, *this, rect); - } - - static BOOL Intersect(OUT RectF& c, - IN const RectF& a, - IN const RectF& b) - { - REAL right = min(a.GetRight(), b.GetRight()); - REAL bottom = min(a.GetBottom(), b.GetBottom()); - REAL left = max(a.GetLeft(), b.GetLeft()); - REAL top = max(a.GetTop(), b.GetTop()); - - c.X = left; - c.Y = top; - c.Width = right - left; - c.Height = bottom - top; - return !c.IsEmptyArea(); - } - - BOOL IntersectsWith(IN const RectF& rect) const - { - return (GetLeft() < rect.GetRight() && - GetTop() < rect.GetBottom() && - GetRight() > rect.GetLeft() && - GetBottom() > rect.GetTop()); - } - - static BOOL Union(OUT RectF& c, - IN const RectF& a, - IN const RectF& b) - { - REAL right = max(a.GetRight(), b.GetRight()); - REAL bottom = max(a.GetBottom(), b.GetBottom()); - REAL left = min(a.GetLeft(), b.GetLeft()); - REAL top = min(a.GetTop(), b.GetTop()); - - c.X = left; - c.Y = top; - c.Width = right - left; - c.Height = bottom - top; - return !c.IsEmptyArea(); - } - - VOID Offset(IN const PointF& point) - { - Offset(point.X, point.Y); - } - - VOID Offset(IN REAL dx, - IN REAL dy) - { - X += dx; - Y += dy; - } - -public: - - REAL X; - REAL Y; - REAL Width; - REAL Height; -}; - -//-------------------------------------------------------------------------- -// Represents a rectangle in a 2D coordinate system (integer coordinates) -//-------------------------------------------------------------------------- - -class Rect -{ -public: - - Rect() - { - X = Y = Width = Height = 0; - } - - Rect(IN INT x, - IN INT y, - IN INT width, - IN INT height) - { - X = x; - Y = y; - Width = width; - Height = height; - } - - Rect(IN const Point& location, - IN const Size& size) - { - X = location.X; - Y = location.Y; - Width = size.Width; - Height = size.Height; - } - - Rect* Clone() const - { - return new Rect(X, Y, Width, Height); - } - - VOID GetLocation(OUT Point* point) const - { - point->X = X; - point->Y = Y; - } - - VOID GetSize(OUT Size* size) const - { - size->Width = Width; - size->Height = Height; - } - - VOID GetBounds(OUT Rect* rect) const - { - rect->X = X; - rect->Y = Y; - rect->Width = Width; - rect->Height = Height; - } - - INT GetLeft() const - { - return X; - } - - INT GetTop() const - { - return Y; - } - - INT GetRight() const - { - return X+Width; - } - - INT GetBottom() const - { - return Y+Height; - } - - BOOL IsEmptyArea() const - { - return (Width <= 0) || (Height <= 0); - } - - BOOL Equals(IN const Rect & rect) const - { - return X == rect.X && - Y == rect.Y && - Width == rect.Width && - Height == rect.Height; - } - - BOOL Contains(IN INT x, - IN INT y) const - { - return x >= X && x < X+Width && - y >= Y && y < Y+Height; - } - - BOOL Contains(IN const Point& pt) const - { - return Contains(pt.X, pt.Y); - } - - BOOL Contains(IN Rect& rect) const - { - return (X <= rect.X) && (rect.GetRight() <= GetRight()) && - (Y <= rect.Y) && (rect.GetBottom() <= GetBottom()); - } - - VOID Inflate(IN INT dx, - IN INT dy) - { - X -= dx; - Y -= dy; - Width += 2*dx; - Height += 2*dy; - } - - VOID Inflate(IN const Point& point) - { - Inflate(point.X, point.Y); - } - - BOOL Intersect(IN const Rect& rect) - { - return Intersect(*this, *this, rect); - } - - static BOOL Intersect(OUT Rect& c, - IN const Rect& a, - IN const Rect& b) - { - INT right = min(a.GetRight(), b.GetRight()); - INT bottom = min(a.GetBottom(), b.GetBottom()); - INT left = max(a.GetLeft(), b.GetLeft()); - INT top = max(a.GetTop(), b.GetTop()); - - c.X = left; - c.Y = top; - c.Width = right - left; - c.Height = bottom - top; - return !c.IsEmptyArea(); - } - - BOOL IntersectsWith(IN const Rect& rect) const - { - return (GetLeft() < rect.GetRight() && - GetTop() < rect.GetBottom() && - GetRight() > rect.GetLeft() && - GetBottom() > rect.GetTop()); - } - - static BOOL Union(OUT Rect& c, - IN const Rect& a, - IN const Rect& b) - { - INT right = max(a.GetRight(), b.GetRight()); - INT bottom = max(a.GetBottom(), b.GetBottom()); - INT left = min(a.GetLeft(), b.GetLeft()); - INT top = min(a.GetTop(), b.GetTop()); - - c.X = left; - c.Y = top; - c.Width = right - left; - c.Height = bottom - top; - return !c.IsEmptyArea(); - } - - VOID Offset(IN const Point& point) - { - Offset(point.X, point.Y); - } - - VOID Offset(IN INT dx, - IN INT dy) - { - X += dx; - Y += dy; - } - -public: - - INT X; - INT Y; - INT Width; - INT Height; -}; - -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; -}; - -class CharacterRange -{ -public: - CharacterRange( - INT first, - INT length - ) : - First (first), - Length (length) - {} - - CharacterRange() : First(0), Length(0) - {} - - CharacterRange & operator = (const CharacterRange &rhs) - { - First = rhs.First; - Length = rhs.Length; - return *this; - } - - INT First; - INT Length; -}; - -#endif // !_GDIPLUSTYPES_HPP diff --git a/desmume/src/windows/gdiplus/GdiPlusimageAttributes.h b/desmume/src/windows/gdiplus/GdiPlusimageAttributes.h deleted file mode 100644 index d6a9cd4d3..000000000 --- a/desmume/src/windows/gdiplus/GdiPlusimageAttributes.h +++ /dev/null @@ -1,377 +0,0 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* Image Attributes -* -* Abstract: -* -* GDI+ Image Attributes used with Graphics.DrawImage -* -* There are 5 possible sets of color adjustments: -* ColorAdjustDefault, -* ColorAdjustBitmap, -* ColorAdjustBrush, -* ColorAdjustPen, -* ColorAdjustText, -* -* Bitmaps, Brushes, Pens, and Text will all use any color adjustments -* that have been set into the default ImageAttributes until their own -* color adjustments have been set. So as soon as any "Set" method is -* called for Bitmaps, Brushes, Pens, or Text, then they start from -* scratch with only the color adjustments that have been set for them. -* Calling Reset removes any individual color adjustments for a type -* and makes it revert back to using all the default color adjustments -* (if any). The SetToIdentity method is a way to force a type to -* have no color adjustments at all, regardless of what previous adjustments -* have been set for the defaults or for that type. -* -\********************************************************************F******/ - -#ifndef _GDIPLUSIMAGEATTRIBUTES_H -#define _GDIPLUSIMAGEATTRIBUTES_H - -class GpImageAttributes; - -class ImageAttributes : public GdiplusBase -{ - friend class Graphics; - friend class TextureBrush; - -public: - - ImageAttributes() - { - nativeImageAttr = NULL; - lastResult = DllExports::GdipCreateImageAttributes(&nativeImageAttr); - } - - ~ImageAttributes() - { - DllExports::GdipDisposeImageAttributes(nativeImageAttr); - } - - ImageAttributes* Clone() const - { - GpImageAttributes* clone; - - SetStatus(DllExports::GdipCloneImageAttributes( - nativeImageAttr, - &clone)); - - return new ImageAttributes(clone, lastResult); - } - - Status - SetToIdentity( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesToIdentity( - nativeImageAttr, - type)); - } - - Status - Reset( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipResetImageAttributes( - nativeImageAttr, - type)); - } - - Status - SetColorMatrix( - IN const ColorMatrix *colorMatrix, - IN ColorMatrixFlags mode = ColorMatrixFlagsDefault, - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesColorMatrix( - nativeImageAttr, - type, - TRUE, - colorMatrix, - NULL, - mode)); - } - - Status ClearColorMatrix( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesColorMatrix( - nativeImageAttr, - type, - FALSE, - NULL, - NULL, - ColorMatrixFlagsDefault)); - } - - Status - SetColorMatrices( - IN const ColorMatrix *colorMatrix, - IN const ColorMatrix *grayMatrix, - IN ColorMatrixFlags mode = ColorMatrixFlagsDefault, - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesColorMatrix( - nativeImageAttr, - type, - TRUE, - colorMatrix, - grayMatrix, - mode)); - } - - Status ClearColorMatrices( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesColorMatrix( - nativeImageAttr, - type, - FALSE, - NULL, - NULL, - ColorMatrixFlagsDefault)); - } - - Status SetThreshold( - IN REAL threshold, - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesThreshold( - nativeImageAttr, - type, - TRUE, - threshold)); - } - - Status ClearThreshold( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesThreshold( - nativeImageAttr, - type, - FALSE, - 0.0)); - } - - Status SetGamma( - IN REAL gamma, - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesGamma( - nativeImageAttr, - type, - TRUE, - gamma)); - } - - Status ClearGamma( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesGamma( - nativeImageAttr, - type, - FALSE, - 0.0)); - } - - Status SetNoOp( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesNoOp( - nativeImageAttr, - type, - TRUE)); - } - - Status ClearNoOp( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesNoOp( - nativeImageAttr, - type, - FALSE)); - } - - Status SetColorKey( - IN const Color& colorLow, - IN const Color& colorHigh, - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesColorKeys( - nativeImageAttr, - type, - TRUE, - colorLow.GetValue(), - colorHigh.GetValue())); - } - - Status ClearColorKey( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesColorKeys( - nativeImageAttr, - type, - FALSE, - NULL, - NULL)); - } - - Status SetOutputChannel( - IN ColorChannelFlags channelFlags, - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesOutputChannel( - nativeImageAttr, - type, - TRUE, - channelFlags)); - } - - Status ClearOutputChannel( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesOutputChannel( - nativeImageAttr, - type, - FALSE, - ColorChannelFlagsLast)); - } - - Status SetOutputChannelColorProfile( - IN const WCHAR *colorProfileFilename, - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesOutputChannelColorProfile( - nativeImageAttr, - type, - TRUE, - colorProfileFilename)); - } - - Status ClearOutputChannelColorProfile( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesOutputChannelColorProfile( - nativeImageAttr, - type, - FALSE, - NULL)); - } - - Status SetRemapTable( - IN UINT mapSize, - IN const ColorMap *map, - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesRemapTable( - nativeImageAttr, - type, - TRUE, - mapSize, - map)); - } - - Status ClearRemapTable( - IN ColorAdjustType type = ColorAdjustTypeDefault - ) - { - return SetStatus(DllExports::GdipSetImageAttributesRemapTable( - nativeImageAttr, - type, - FALSE, - 0, - NULL)); - } - - Status SetBrushRemapTable(IN UINT mapSize, - IN const ColorMap *map) - { - return this->SetRemapTable(mapSize, map, ColorAdjustTypeBrush); - } - - Status ClearBrushRemapTable() - { - return this->ClearRemapTable(ColorAdjustTypeBrush); - } - - Status SetWrapMode(IN WrapMode wrap, - IN const Color& color = Color(), - IN BOOL clamp = FALSE) - { - ARGB argb = color.GetValue(); - - return SetStatus(DllExports::GdipSetImageAttributesWrapMode( - nativeImageAttr, wrap, argb, clamp)); - } - - // The flags of the palette are ignored. - - Status GetAdjustedPalette(IN OUT ColorPalette* colorPalette, - IN ColorAdjustType colorAdjustType) const - { - return SetStatus(DllExports::GdipGetImageAttributesAdjustedPalette( - nativeImageAttr, colorPalette, colorAdjustType)); - } - - Status GetLastStatus() const - { - Status lastStatus = lastResult; - lastResult = Ok; - - return lastStatus; - } - -private: - ImageAttributes(const ImageAttributes &); - ImageAttributes& operator=(const ImageAttributes &); - -protected: - ImageAttributes(GpImageAttributes* imageAttr, Status status) - { - SetNativeImageAttr(imageAttr); - lastResult = status; - } - - VOID SetNativeImageAttr(GpImageAttributes* nativeImageAttr) - { - this->nativeImageAttr = nativeImageAttr; - } - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - -protected: - GpImageAttributes* nativeImageAttr; - mutable Status lastResult; -}; - -#endif