2010-07-08 Markus Koenig <basilo@users.sourceforge.net>
* include/gdiplus.h: New file. * include/gdiplus/gdiplus.h: New file. * include/gdiplus/gdiplusbase.h: New file. * include/gdiplus/gdiplusbrush.h: New file. * include/gdiplus/gdipluscolor.h: New file. * include/gdiplus/gdipluscolormatrix.h: New file. * include/gdiplus/gdipluseffects.h: New file. * include/gdiplus/gdiplusenums.h: New file. * include/gdiplus/gdiplusflat.h: New file. * include/gdiplus/gdiplusgpstubs.h: New file. * include/gdiplus/gdiplusgraphics.h: New file. * include/gdiplus/gdiplusheaders.h: New file. * include/gdiplus/gdiplusimageattributes.h: New file. * include/gdiplus/gdiplusimagecodec.h: New file. * include/gdiplus/gdiplusimaging.h: New file. * include/gdiplus/gdiplusimpl.h: New file. * include/gdiplus/gdiplusinit.h: New file. * include/gdiplus/gdipluslinecaps.h: New file. * include/gdiplus/gdiplusmatrix.h: New file. * include/gdiplus/gdiplusmem.h: New file. * include/gdiplus/gdiplusmetafile.h: New file. * include/gdiplus/gdiplusmetaheader.h: New file. * include/gdiplus/gdipluspath.h: New file. * include/gdiplus/gdipluspen.h: New file. * include/gdiplus/gdipluspixelformats.h: New file. * include/gdiplus/gdiplusstringformat.h: New file. * include/gdiplus/gdiplustypes.h: New file. * lib/gdiplus.c: New file containing GDI+ variable definitions and GUIDs. * lib/gdiplus.def: New file. * lib/Makefile.in: Add gdiplus.o to EXTRA_OBJS, add gdiplus.c to SOURCES. * lib/test.c: Include gdiplus.h.
This commit is contained in:
parent
975a85f42c
commit
cc077128d3
@ -1,3 +1,39 @@
|
|||||||
|
2010-07-08 Markus Koenig <basilo@users.sourceforge.net>
|
||||||
|
|
||||||
|
* include/gdiplus.h: New file.
|
||||||
|
* include/gdiplus/gdiplus.h: New file.
|
||||||
|
* include/gdiplus/gdiplusbase.h: New file.
|
||||||
|
* include/gdiplus/gdiplusbrush.h: New file.
|
||||||
|
* include/gdiplus/gdipluscolor.h: New file.
|
||||||
|
* include/gdiplus/gdipluscolormatrix.h: New file.
|
||||||
|
* include/gdiplus/gdipluseffects.h: New file.
|
||||||
|
* include/gdiplus/gdiplusenums.h: New file.
|
||||||
|
* include/gdiplus/gdiplusflat.h: New file.
|
||||||
|
* include/gdiplus/gdiplusgpstubs.h: New file.
|
||||||
|
* include/gdiplus/gdiplusgraphics.h: New file.
|
||||||
|
* include/gdiplus/gdiplusheaders.h: New file.
|
||||||
|
* include/gdiplus/gdiplusimageattributes.h: New file.
|
||||||
|
* include/gdiplus/gdiplusimagecodec.h: New file.
|
||||||
|
* include/gdiplus/gdiplusimaging.h: New file.
|
||||||
|
* include/gdiplus/gdiplusimpl.h: New file.
|
||||||
|
* include/gdiplus/gdiplusinit.h: New file.
|
||||||
|
* include/gdiplus/gdipluslinecaps.h: New file.
|
||||||
|
* include/gdiplus/gdiplusmatrix.h: New file.
|
||||||
|
* include/gdiplus/gdiplusmem.h: New file.
|
||||||
|
* include/gdiplus/gdiplusmetafile.h: New file.
|
||||||
|
* include/gdiplus/gdiplusmetaheader.h: New file.
|
||||||
|
* include/gdiplus/gdipluspath.h: New file.
|
||||||
|
* include/gdiplus/gdipluspen.h: New file.
|
||||||
|
* include/gdiplus/gdipluspixelformats.h: New file.
|
||||||
|
* include/gdiplus/gdiplusstringformat.h: New file.
|
||||||
|
* include/gdiplus/gdiplustypes.h: New file.
|
||||||
|
* lib/gdiplus.c: New file containing GDI+ variable definitions
|
||||||
|
and GUIDs.
|
||||||
|
* lib/gdiplus.def: New file.
|
||||||
|
* lib/Makefile.in: Add gdiplus.o to EXTRA_OBJS,
|
||||||
|
add gdiplus.c to SOURCES.
|
||||||
|
* lib/test.c: Include gdiplus.h.
|
||||||
|
|
||||||
2010-06-28 Rick Rankin <rrankin1424-mingw@yahoo.com>
|
2010-06-28 Rick Rankin <rrankin1424-mingw@yahoo.com>
|
||||||
|
|
||||||
* include/psapi.h (PROCESS_MEMORY_COUNTERS_EX, PERFORMANCE_INFORMATION,
|
* include/psapi.h (PROCESS_MEMORY_COUNTERS_EX, PERFORMANCE_INFORMATION,
|
||||||
|
1
winsup/w32api/include/gdiplus.h
Executable file
1
winsup/w32api/include/gdiplus.h
Executable file
@ -0,0 +1 @@
|
|||||||
|
#include "gdiplus/gdiplus.h"
|
81
winsup/w32api/include/gdiplus/gdiplus.h
Executable file
81
winsup/w32api/include/gdiplus/gdiplus.h
Executable file
@ -0,0 +1,81 @@
|
|||||||
|
/*
|
||||||
|
* gdiplus.h
|
||||||
|
*
|
||||||
|
* GDI+ main header
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_H
|
||||||
|
#define __GDIPLUS_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef RC_INVOKED
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <windef.h>
|
||||||
|
#include <wingdi.h>
|
||||||
|
|
||||||
|
#include <basetyps.h>
|
||||||
|
typedef _COM_interface IStream IStream;
|
||||||
|
typedef _COM_interface IDirectDrawSurface7 IDirectDrawSurface7;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
namespace Gdiplus {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef float REAL;
|
||||||
|
typedef SHORT INT16;
|
||||||
|
typedef WORD UINT16;
|
||||||
|
|
||||||
|
#include "gdiplusenums.h"
|
||||||
|
#include "gdiplustypes.h"
|
||||||
|
#include "gdiplusgpstubs.h"
|
||||||
|
#include "gdiplusimaging.h"
|
||||||
|
#include "gdiplusinit.h"
|
||||||
|
#include "gdiplusmem.h"
|
||||||
|
#include "gdiplusmetaheader.h"
|
||||||
|
#include "gdipluspixelformats.h"
|
||||||
|
#include "gdipluscolor.h"
|
||||||
|
#include "gdipluscolormatrix.h"
|
||||||
|
#include "gdiplusflat.h"
|
||||||
|
#include "gdipluseffects.h"
|
||||||
|
#include "gdiplusimagecodec.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include "gdiplusbase.h"
|
||||||
|
#include "gdiplusheaders.h"
|
||||||
|
#include "gdiplusimageattributes.h"
|
||||||
|
#include "gdiplusmatrix.h"
|
||||||
|
#include "gdiplusbrush.h"
|
||||||
|
#include "gdiplusmetafile.h"
|
||||||
|
#include "gdipluspen.h"
|
||||||
|
#include "gdiplusstringformat.h"
|
||||||
|
#include "gdipluspath.h"
|
||||||
|
#include "gdiplusgraphics.h"
|
||||||
|
#include "gdipluslinecaps.h"
|
||||||
|
#include "gdiplusimpl.h"
|
||||||
|
|
||||||
|
} /* namespace Gdiplus */
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
#endif /* !RC_INVOKED */
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_H */
|
54
winsup/w32api/include/gdiplus/gdiplusbase.h
Executable file
54
winsup/w32api/include/gdiplus/gdiplusbase.h
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusbase.h
|
||||||
|
*
|
||||||
|
* GDI+ base class
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_BASE_H
|
||||||
|
#define __GDIPLUS_BASE_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#error "A C++ compiler is required to include gdiplusbase.h."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class GdiplusBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static void* operator new(size_t in_size)
|
||||||
|
{
|
||||||
|
return DllExports::GdipAlloc(in_size);
|
||||||
|
}
|
||||||
|
static void* operator new[](size_t in_size)
|
||||||
|
{
|
||||||
|
return DllExports::GdipAlloc(in_size);
|
||||||
|
}
|
||||||
|
static void operator delete(void *in_pVoid)
|
||||||
|
{
|
||||||
|
DllExports::GdipFree(in_pVoid);
|
||||||
|
}
|
||||||
|
static void operator delete[](void *in_pVoid)
|
||||||
|
{
|
||||||
|
DllExports::GdipFree(in_pVoid);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_BASE_H */
|
606
winsup/w32api/include/gdiplus/gdiplusbrush.h
Executable file
606
winsup/w32api/include/gdiplus/gdiplusbrush.h
Executable file
@ -0,0 +1,606 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusbrush.h
|
||||||
|
*
|
||||||
|
* GDI+ brush classes
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_BRUSH_H
|
||||||
|
#define __GDIPLUS_BRUSH_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#error "A C++ compiler is required to include gdiplusbrush.h."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class Brush: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class HatchBrush;
|
||||||
|
friend class LinearGradientBrush;
|
||||||
|
friend class PathGradientBrush;
|
||||||
|
friend class SolidBrush;
|
||||||
|
friend class TextureBrush;
|
||||||
|
friend class Graphics;
|
||||||
|
friend class Pen;
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual ~Brush()
|
||||||
|
{
|
||||||
|
DllExports::GdipDeleteBrush(nativeBrush);
|
||||||
|
}
|
||||||
|
virtual Brush* Clone() const // each subclass must implement this
|
||||||
|
{
|
||||||
|
lastStatus = NotImplemented;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
BrushType GetType() const
|
||||||
|
{
|
||||||
|
BrushType result = BrushTypeSolidColor;
|
||||||
|
updateStatus(DllExports::GdipGetBrushType(nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Brush(): nativeBrush(NULL), lastStatus(Ok) {}
|
||||||
|
Brush(GpBrush *brush, Status status):
|
||||||
|
nativeBrush(brush), lastStatus(status) {}
|
||||||
|
Brush(const Brush& brush);
|
||||||
|
Brush& operator=(const Brush&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpBrush *nativeBrush;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
class HatchBrush: public Brush
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
HatchBrush(HatchStyle hatchStyle,
|
||||||
|
const Color& foreColor,
|
||||||
|
const Color& backColor = Color())
|
||||||
|
{
|
||||||
|
GpHatch *nativeHatch = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateHatchBrush(hatchStyle,
|
||||||
|
foreColor.GetValue(), backColor.GetValue(),
|
||||||
|
&nativeHatch);
|
||||||
|
nativeBrush = nativeHatch;
|
||||||
|
}
|
||||||
|
virtual HatchBrush* Clone() const
|
||||||
|
{
|
||||||
|
GpBrush *cloneBrush = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneBrush(
|
||||||
|
nativeBrush, &cloneBrush));
|
||||||
|
if (status == Ok) {
|
||||||
|
HatchBrush *result =
|
||||||
|
new HatchBrush(cloneBrush, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeleteBrush(cloneBrush);
|
||||||
|
updateStatus(OutOfMemory);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Status GetBackgroundColor(Color *color) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetHatchBackgroundColor(
|
||||||
|
(GpHatch*) nativeBrush,
|
||||||
|
color ? &color->Value : NULL));
|
||||||
|
}
|
||||||
|
Status GetForegroundColor(Color *color) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetHatchForegroundColor(
|
||||||
|
(GpHatch*) nativeBrush,
|
||||||
|
color ? &color->Value : NULL));
|
||||||
|
}
|
||||||
|
HatchStyle GetHatchStyle() const
|
||||||
|
{
|
||||||
|
HatchStyle result;
|
||||||
|
updateStatus(DllExports::GdipGetHatchStyle(
|
||||||
|
(GpHatch*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
HatchBrush(GpBrush *brush, Status status): Brush(brush, status) {}
|
||||||
|
HatchBrush(const HatchBrush& brush);
|
||||||
|
HatchBrush& operator=(const HatchBrush&);
|
||||||
|
};
|
||||||
|
|
||||||
|
class LinearGradientBrush: public Brush
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LinearGradientBrush(const PointF& point1, const PointF& point2,
|
||||||
|
const Color& color1, const Color& color2)
|
||||||
|
{
|
||||||
|
GpLineGradient *nativeLineGradient = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateLineBrush(
|
||||||
|
&point1, &point2,
|
||||||
|
color1.GetValue(), color2.GetValue(),
|
||||||
|
WrapModeTile, &nativeLineGradient);
|
||||||
|
nativeBrush = nativeLineGradient;
|
||||||
|
}
|
||||||
|
LinearGradientBrush(const Point& point1, const Point& point2,
|
||||||
|
const Color& color1, const Color& color2)
|
||||||
|
{
|
||||||
|
GpLineGradient *nativeLineGradient = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateLineBrushI(
|
||||||
|
&point1, &point2,
|
||||||
|
color1.GetValue(), color2.GetValue(),
|
||||||
|
WrapModeTile, &nativeLineGradient);
|
||||||
|
nativeBrush = nativeLineGradient;
|
||||||
|
}
|
||||||
|
LinearGradientBrush(const RectF& rect, const Color& color1,
|
||||||
|
const Color& color2, LinearGradientMode mode)
|
||||||
|
{
|
||||||
|
GpLineGradient *nativeLineGradient = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateLineBrushFromRect(
|
||||||
|
&rect, color1.GetValue(), color2.GetValue(),
|
||||||
|
mode, WrapModeTile, &nativeLineGradient);
|
||||||
|
nativeBrush = nativeLineGradient;
|
||||||
|
}
|
||||||
|
LinearGradientBrush(const Rect& rect, const Color& color1,
|
||||||
|
const Color& color2, LinearGradientMode mode)
|
||||||
|
{
|
||||||
|
GpLineGradient *nativeLineGradient = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateLineBrushFromRectI(
|
||||||
|
&rect, color1.GetValue(), color2.GetValue(),
|
||||||
|
mode, WrapModeTile, &nativeLineGradient);
|
||||||
|
nativeBrush = nativeLineGradient;
|
||||||
|
}
|
||||||
|
LinearGradientBrush(const RectF& rect, const Color& color1,
|
||||||
|
const Color& color2, REAL angle,
|
||||||
|
BOOL isAngleScalable = FALSE)
|
||||||
|
{
|
||||||
|
GpLineGradient *nativeLineGradient = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateLineBrushFromRectWithAngle(
|
||||||
|
&rect, color1.GetValue(), color2.GetValue(),
|
||||||
|
angle, isAngleScalable, WrapModeTile,
|
||||||
|
&nativeLineGradient);
|
||||||
|
nativeBrush = nativeLineGradient;
|
||||||
|
}
|
||||||
|
LinearGradientBrush(const Rect& rect, const Color& color1,
|
||||||
|
const Color& color2, REAL angle,
|
||||||
|
BOOL isAngleScalable = FALSE)
|
||||||
|
{
|
||||||
|
GpLineGradient *nativeLineGradient = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateLineBrushFromRectWithAngleI(
|
||||||
|
&rect, color1.GetValue(), color2.GetValue(),
|
||||||
|
angle, isAngleScalable, WrapModeTile,
|
||||||
|
&nativeLineGradient);
|
||||||
|
nativeBrush = nativeLineGradient;
|
||||||
|
}
|
||||||
|
virtual LinearGradientBrush* Clone() const
|
||||||
|
{
|
||||||
|
GpBrush *cloneBrush = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneBrush(
|
||||||
|
nativeBrush, &cloneBrush));
|
||||||
|
if (status == Ok) {
|
||||||
|
LinearGradientBrush *result =
|
||||||
|
new LinearGradientBrush(cloneBrush, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeleteBrush(cloneBrush);
|
||||||
|
updateStatus(OutOfMemory);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Status GetBlend(REAL *blendFactors, REAL *blendPositions,
|
||||||
|
INT count) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetLineBlend(
|
||||||
|
(GpLineGradient*) nativeBrush,
|
||||||
|
blendFactors, blendPositions, count));
|
||||||
|
}
|
||||||
|
INT GetBlendCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetLineBlendCount(
|
||||||
|
(GpLineGradient*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
BOOL GetGammaCorrection() const
|
||||||
|
{
|
||||||
|
BOOL result = FALSE;
|
||||||
|
updateStatus(DllExports::GdipGetLineGammaCorrection(
|
||||||
|
(GpLineGradient*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT GetInterpolationColorCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetLinePresetBlendCount(
|
||||||
|
(GpLineGradient*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetInterpolationColors(Color *presetColors,
|
||||||
|
REAL *blendPositions, INT count) const
|
||||||
|
{
|
||||||
|
if (!presetColors || count <= 0)
|
||||||
|
return lastStatus = InvalidParameter;
|
||||||
|
|
||||||
|
ARGB *presetArgb =
|
||||||
|
(ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB));
|
||||||
|
if (!presetArgb)
|
||||||
|
return lastStatus = OutOfMemory;
|
||||||
|
|
||||||
|
Status status = updateStatus(DllExports::GdipGetLinePresetBlend(
|
||||||
|
(GpLineGradient*) nativeBrush, presetArgb,
|
||||||
|
blendPositions, count));
|
||||||
|
for (INT i = 0; i < count; ++i) {
|
||||||
|
presetColors[i].SetValue(presetArgb[i]);
|
||||||
|
}
|
||||||
|
DllExports::GdipFree((void*) presetArgb);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
Status GetLinearColors(Color *colors) const
|
||||||
|
{
|
||||||
|
if (!colors) return lastStatus = InvalidParameter;
|
||||||
|
|
||||||
|
ARGB colorsArgb[2];
|
||||||
|
Status status = updateStatus(DllExports::GdipGetLineColors(
|
||||||
|
(GpLineGradient*) nativeBrush, colorsArgb));
|
||||||
|
colors[0].SetValue(colorsArgb[0]);
|
||||||
|
colors[1].SetValue(colorsArgb[1]);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
Status GetRectangle(RectF *rect) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetLineRect(
|
||||||
|
(GpLineGradient*) nativeBrush, rect));
|
||||||
|
}
|
||||||
|
Status GetRectangle(Rect *rect) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetLineRectI(
|
||||||
|
(GpLineGradient*) nativeBrush, rect));
|
||||||
|
}
|
||||||
|
Status GetTransform(Matrix *matrix) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetLineTransform(
|
||||||
|
(GpLineGradient*) nativeBrush,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL));
|
||||||
|
}
|
||||||
|
WrapMode GetWrapMode() const
|
||||||
|
{
|
||||||
|
WrapMode wrapMode = WrapModeTile;
|
||||||
|
updateStatus(DllExports::GdipGetLineWrapMode(
|
||||||
|
(GpLineGradient*) nativeBrush, &wrapMode));
|
||||||
|
return wrapMode;
|
||||||
|
}
|
||||||
|
Status MultiplyTransform(const Matrix *matrix,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipMultiplyLineTransform(
|
||||||
|
(GpLineGradient*) nativeBrush,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL, order));
|
||||||
|
}
|
||||||
|
Status ResetTransform()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipResetLineTransform(
|
||||||
|
(GpLineGradient*) nativeBrush));
|
||||||
|
}
|
||||||
|
Status RotateTranform(REAL angle, MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipRotateLineTransform(
|
||||||
|
(GpLineGradient*) nativeBrush, angle, order));
|
||||||
|
}
|
||||||
|
Status ScaleTransform(REAL sx, REAL sy,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipScaleLineTransform(
|
||||||
|
(GpLineGradient*) nativeBrush, sx, sy, order));
|
||||||
|
}
|
||||||
|
Status SetBlend(const REAL *blendFactors,
|
||||||
|
const REAL *blendPositions, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetLineBlend(
|
||||||
|
(GpLineGradient*) nativeBrush,
|
||||||
|
blendFactors, blendPositions, count));
|
||||||
|
}
|
||||||
|
Status SetBlendBellShape(REAL focus, REAL scale = 1.0f)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetLineSigmaBlend(
|
||||||
|
(GpLineGradient*) nativeBrush,
|
||||||
|
focus, scale));
|
||||||
|
}
|
||||||
|
Status SetBlendTriangularShape(REAL focus, REAL scale = 1.0f)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetLineLinearBlend(
|
||||||
|
(GpLineGradient*) nativeBrush,
|
||||||
|
focus, scale));
|
||||||
|
}
|
||||||
|
Status SetGammaCorrection(BOOL useGammaCorrection)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetLineGammaCorrection(
|
||||||
|
(GpLineGradient*) nativeBrush,
|
||||||
|
useGammaCorrection));
|
||||||
|
}
|
||||||
|
Status SetInterpolationColors(const Color *presetColors,
|
||||||
|
const REAL *blendPositions, INT count)
|
||||||
|
{
|
||||||
|
if (!presetColors || count < 0)
|
||||||
|
return lastStatus = InvalidParameter;
|
||||||
|
|
||||||
|
ARGB *presetArgb =
|
||||||
|
(ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB));
|
||||||
|
if (!presetArgb)
|
||||||
|
return lastStatus = OutOfMemory;
|
||||||
|
for (INT i = 0; i < count; ++i) {
|
||||||
|
presetArgb[i] = presetColors[i].GetValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
Status status = updateStatus(DllExports::GdipSetLinePresetBlend(
|
||||||
|
(GpLineGradient*) nativeBrush,
|
||||||
|
presetArgb, blendPositions, count));
|
||||||
|
DllExports::GdipFree((void*) presetArgb);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
Status SetLinearColors(const Color& color1, const Color& color2)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetLineColors(
|
||||||
|
(GpLineGradient*) nativeBrush,
|
||||||
|
color1.GetValue(), color2.GetValue()));
|
||||||
|
}
|
||||||
|
Status SetTransform(const Matrix *matrix)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetLineTransform(
|
||||||
|
(GpLineGradient*) nativeBrush,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL));
|
||||||
|
}
|
||||||
|
Status SetWrapMode(WrapMode wrapMode)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetLineWrapMode(
|
||||||
|
(GpLineGradient*) nativeBrush, wrapMode));
|
||||||
|
}
|
||||||
|
Status TranslateTransform(REAL dx, REAL dy,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipTranslateLineTransform(
|
||||||
|
(GpLineGradient*) nativeBrush, dx, dy, order));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
LinearGradientBrush(GpBrush *brush, Status status): Brush(brush, status) {}
|
||||||
|
LinearGradientBrush(const LinearGradientBrush& brush);
|
||||||
|
LinearGradientBrush& operator=(const LinearGradientBrush&);
|
||||||
|
};
|
||||||
|
|
||||||
|
class SolidBrush: public Brush
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SolidBrush(const Color& color)
|
||||||
|
{
|
||||||
|
GpSolidFill *nativeSolidFill = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateSolidFill(
|
||||||
|
color.GetValue(), &nativeSolidFill);
|
||||||
|
nativeBrush = nativeSolidFill;
|
||||||
|
}
|
||||||
|
virtual SolidBrush* Clone() const
|
||||||
|
{
|
||||||
|
GpBrush *cloneBrush = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneBrush(
|
||||||
|
nativeBrush, &cloneBrush));
|
||||||
|
if (status == Ok) {
|
||||||
|
SolidBrush *result =
|
||||||
|
new SolidBrush(cloneBrush, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeleteBrush(cloneBrush);
|
||||||
|
updateStatus(OutOfMemory);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Status GetColor(Color *color) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetSolidFillColor(
|
||||||
|
(GpSolidFill*) nativeBrush,
|
||||||
|
color ? &color->Value : NULL));
|
||||||
|
}
|
||||||
|
Status SetColor(const Color& color)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetSolidFillColor(
|
||||||
|
(GpSolidFill*) nativeBrush, color.GetValue()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
SolidBrush(GpBrush *brush, Status status): Brush(brush, status) {}
|
||||||
|
SolidBrush(const SolidBrush&);
|
||||||
|
SolidBrush& operator=(const SolidBrush&);
|
||||||
|
};
|
||||||
|
|
||||||
|
class TextureBrush: public Brush
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TextureBrush(Image *image, WrapMode wrapMode = WrapModeTile)
|
||||||
|
{
|
||||||
|
GpTexture *nativeTexture = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateTexture(
|
||||||
|
image ? image->nativeImage : NULL,
|
||||||
|
wrapMode, &nativeTexture);
|
||||||
|
nativeBrush = nativeTexture;
|
||||||
|
}
|
||||||
|
TextureBrush(Image *image, WrapMode wrapMode,
|
||||||
|
REAL dstX, REAL dstY, REAL dstWidth, REAL dstHeight)
|
||||||
|
{
|
||||||
|
GpTexture *nativeTexture = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateTexture2(
|
||||||
|
image ? image->nativeImage : NULL,
|
||||||
|
wrapMode, dstX, dstY, dstWidth, dstHeight,
|
||||||
|
&nativeTexture);
|
||||||
|
nativeBrush = nativeTexture;
|
||||||
|
}
|
||||||
|
TextureBrush(Image *image, WrapMode wrapMode,
|
||||||
|
INT dstX, INT dstY, INT dstWidth, INT dstHeight)
|
||||||
|
{
|
||||||
|
GpTexture *nativeTexture = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateTexture2I(
|
||||||
|
image ? image->nativeImage : NULL,
|
||||||
|
wrapMode, dstX, dstY, dstWidth, dstHeight,
|
||||||
|
&nativeTexture);
|
||||||
|
nativeBrush = nativeTexture;
|
||||||
|
}
|
||||||
|
TextureBrush(Image *image, WrapMode wrapMode, const RectF& dstRect)
|
||||||
|
{
|
||||||
|
GpTexture *nativeTexture = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateTexture2(
|
||||||
|
image ? image->nativeImage : NULL, wrapMode,
|
||||||
|
dstRect.X, dstRect.Y,
|
||||||
|
dstRect.Width, dstRect.Height, &nativeTexture);
|
||||||
|
nativeBrush = nativeTexture;
|
||||||
|
}
|
||||||
|
TextureBrush(Image *image, WrapMode wrapMode, const Rect& dstRect)
|
||||||
|
{
|
||||||
|
GpTexture *nativeTexture = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateTexture2I(
|
||||||
|
image ? image->nativeImage : NULL, wrapMode,
|
||||||
|
dstRect.X, dstRect.Y,
|
||||||
|
dstRect.Width, dstRect.Height, &nativeTexture);
|
||||||
|
nativeBrush = nativeTexture;
|
||||||
|
}
|
||||||
|
TextureBrush(Image *image, const RectF& dstRect,
|
||||||
|
ImageAttributes *imageAttributes = NULL)
|
||||||
|
{
|
||||||
|
GpTexture *nativeTexture = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateTextureIA(
|
||||||
|
image ? image->nativeImage : NULL,
|
||||||
|
imageAttributes ? imageAttributes->nativeImageAttributes : NULL,
|
||||||
|
dstRect.X, dstRect.Y,
|
||||||
|
dstRect.Width, dstRect.Height, &nativeTexture);
|
||||||
|
nativeBrush = nativeTexture;
|
||||||
|
}
|
||||||
|
TextureBrush(Image *image, const Rect& dstRect,
|
||||||
|
ImageAttributes *imageAttributes = NULL)
|
||||||
|
{
|
||||||
|
GpTexture *nativeTexture = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateTextureIAI(
|
||||||
|
image ? image->nativeImage : NULL,
|
||||||
|
imageAttributes ? imageAttributes->nativeImageAttributes : NULL,
|
||||||
|
dstRect.X, dstRect.Y,
|
||||||
|
dstRect.Width, dstRect.Height, &nativeTexture);
|
||||||
|
nativeBrush = nativeTexture;
|
||||||
|
}
|
||||||
|
virtual TextureBrush* Clone() const
|
||||||
|
{
|
||||||
|
GpBrush *cloneBrush = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneBrush(
|
||||||
|
nativeBrush, &cloneBrush));
|
||||||
|
if (status == Ok) {
|
||||||
|
TextureBrush *result =
|
||||||
|
new TextureBrush(cloneBrush, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeleteBrush(cloneBrush);
|
||||||
|
updateStatus(OutOfMemory);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: implement TextureBrush::GetImage()
|
||||||
|
//Image *GetImage() const
|
||||||
|
//{
|
||||||
|
// // where is the Image allocated (static,member,new,other)?
|
||||||
|
// // GdipGetTextureImage just returns a GpImage*
|
||||||
|
// updateStatus(NotImplemented);
|
||||||
|
// return NULL;
|
||||||
|
//}
|
||||||
|
Status GetTransfrom(Matrix *matrix) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetTextureTransform(
|
||||||
|
(GpTexture*) nativeBrush,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL));
|
||||||
|
}
|
||||||
|
WrapMode GetWrapMode() const
|
||||||
|
{
|
||||||
|
WrapMode result = WrapModeTile;
|
||||||
|
updateStatus(DllExports::GdipGetTextureWrapMode(
|
||||||
|
(GpTexture*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status MultiplyTransform(const Matrix *matrix,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipMultiplyTextureTransform(
|
||||||
|
(GpTexture*) nativeBrush,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL, order));
|
||||||
|
}
|
||||||
|
Status ResetTransform()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipResetTextureTransform(
|
||||||
|
(GpTexture*) nativeBrush));
|
||||||
|
}
|
||||||
|
Status RotateTransform(REAL angle,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipRotateTextureTransform(
|
||||||
|
(GpTexture*) nativeBrush, angle, order));
|
||||||
|
}
|
||||||
|
Status ScaleTransform(REAL sx, REAL sy,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipScaleTextureTransform(
|
||||||
|
(GpTexture*) nativeBrush, sx, sy, order));
|
||||||
|
}
|
||||||
|
Status SetTransform(const Matrix *matrix)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetTextureTransform(
|
||||||
|
(GpTexture*) nativeBrush,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL));
|
||||||
|
}
|
||||||
|
Status SetWrapMode(WrapMode wrapMode)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetTextureWrapMode(
|
||||||
|
(GpTexture*) nativeBrush, wrapMode));
|
||||||
|
}
|
||||||
|
Status TranslateTransform(REAL dx, REAL dy,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipTranslateTextureTransform(
|
||||||
|
(GpTexture*) nativeBrush, dx, dy, order));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
TextureBrush(GpBrush *brush, Status status): Brush(brush, status) {}
|
||||||
|
TextureBrush(const TextureBrush&);
|
||||||
|
TextureBrush& operator=(const TextureBrush&);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_BRUSH_H */
|
262
winsup/w32api/include/gdiplus/gdipluscolor.h
Executable file
262
winsup/w32api/include/gdiplus/gdipluscolor.h
Executable file
@ -0,0 +1,262 @@
|
|||||||
|
/*
|
||||||
|
* gdipluscolor.h
|
||||||
|
*
|
||||||
|
* GDI+ color
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_COLOR_H
|
||||||
|
#define __GDIPLUS_COLOR_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef enum ColorChannelFlags {
|
||||||
|
ColorChannelFlagsC = 0,
|
||||||
|
ColorChannelFlagsM = 1,
|
||||||
|
ColorChannelFlagsY = 2,
|
||||||
|
ColorChannelFlagsK = 3,
|
||||||
|
ColorChannelFlagsLast = 4
|
||||||
|
} ColorChannelFlags;
|
||||||
|
|
||||||
|
typedef struct Color
|
||||||
|
{
|
||||||
|
#ifdef __cplusplus
|
||||||
|
private:
|
||||||
|
#endif
|
||||||
|
ARGB Value;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
public:
|
||||||
|
friend class Bitmap;
|
||||||
|
friend class Graphics;
|
||||||
|
friend class HatchBrush;
|
||||||
|
friend class PathGradientBrush;
|
||||||
|
friend class Pen;
|
||||||
|
friend class SolidBrush;
|
||||||
|
|
||||||
|
static ARGB MakeARGB(BYTE a, BYTE r, BYTE g, BYTE b)
|
||||||
|
{
|
||||||
|
return (ARGB) ((((DWORD) a) << 24) | (((DWORD) r) << 16)
|
||||||
|
| (((DWORD) g) << 8) | ((DWORD) b));
|
||||||
|
}
|
||||||
|
|
||||||
|
static const ARGB AlphaMask = 0xFF000000UL;
|
||||||
|
|
||||||
|
static const ARGB AliceBlue = 0xFFF0F8FFUL;
|
||||||
|
static const ARGB AntiqueWhite = 0xFFFAEBD7UL;
|
||||||
|
static const ARGB Aqua = 0xFF00FFFFUL;
|
||||||
|
static const ARGB Aquamarine = 0xFF7FFFD4UL;
|
||||||
|
static const ARGB Azure = 0xFFF0FFFFUL;
|
||||||
|
static const ARGB Beige = 0xFFF5F5DCUL;
|
||||||
|
static const ARGB Bisque = 0xFFFFE4C4UL;
|
||||||
|
static const ARGB Black = 0xFF000000UL;
|
||||||
|
static const ARGB BlanchedAlmond = 0xFFFFEBCDUL;
|
||||||
|
static const ARGB Blue = 0xFF0000FFUL;
|
||||||
|
static const ARGB BlueViolet = 0xFF8A2BE2UL;
|
||||||
|
static const ARGB Brown = 0xFFA52A2AUL;
|
||||||
|
static const ARGB BurlyWood = 0xFFDEB887UL;
|
||||||
|
static const ARGB CadetBlue = 0xFF5F9EA0UL;
|
||||||
|
static const ARGB Chartreuse = 0xFF7FFF00UL;
|
||||||
|
static const ARGB Chocolate = 0xFFD2691EUL;
|
||||||
|
static const ARGB Coral = 0xFFFF7F50UL;
|
||||||
|
static const ARGB CornflowerBlue = 0xFF6495EDUL;
|
||||||
|
static const ARGB Cornsilk = 0xFFFFF8DCUL;
|
||||||
|
static const ARGB Crimson = 0xFFDC143CUL;
|
||||||
|
static const ARGB Cyan = 0xFF00FFFFUL;
|
||||||
|
static const ARGB DarkBlue = 0xFF00008BUL;
|
||||||
|
static const ARGB DarkCyan = 0xFF008B8BUL;
|
||||||
|
static const ARGB DarkGoldenrod = 0xFFB8860BUL;
|
||||||
|
static const ARGB DarkGray = 0xFFA9A9A9UL;
|
||||||
|
static const ARGB DarkGreen = 0xFF006400UL;
|
||||||
|
static const ARGB DarkKhaki = 0xFFBDB76BUL;
|
||||||
|
static const ARGB DarkMagenta = 0xFF8B008BUL;
|
||||||
|
static const ARGB DarkOliveGreen = 0xFF556B2FUL;
|
||||||
|
static const ARGB DarkOrange = 0xFFFF8C00UL;
|
||||||
|
static const ARGB DarkOrchid = 0xFF9932CCUL;
|
||||||
|
static const ARGB DarkRed = 0xFF8B0000UL;
|
||||||
|
static const ARGB DarkSalmon = 0xFFE9967AUL;
|
||||||
|
static const ARGB DarkSeaGreen = 0xFF8FBC8FUL;
|
||||||
|
static const ARGB DarkSlateBlue = 0xFF483D8BUL;
|
||||||
|
static const ARGB DarkSlateGray = 0xFF2F4F4FUL;
|
||||||
|
static const ARGB DarkTurquoise = 0xFF00CED1UL;
|
||||||
|
static const ARGB DarkViolet = 0xFF9400D3UL;
|
||||||
|
static const ARGB DeepPink = 0xFFFF1493UL;
|
||||||
|
static const ARGB DeepSkyBlue = 0xFF00BFFFUL;
|
||||||
|
static const ARGB DimGray = 0xFF696969UL;
|
||||||
|
static const ARGB DodgerBlue = 0xFF1E90FFUL;
|
||||||
|
static const ARGB Firebrick = 0xFFB22222UL;
|
||||||
|
static const ARGB FloralWhite = 0xFFFFFAF0UL;
|
||||||
|
static const ARGB ForestGreen = 0xFF228B22UL;
|
||||||
|
static const ARGB Fuchsia = 0xFFFF00FFUL;
|
||||||
|
static const ARGB Gainsboro = 0xFFDCDCDCUL;
|
||||||
|
static const ARGB GhostWhite = 0xFFF8F8FFUL;
|
||||||
|
static const ARGB Gold = 0xFFFFD700UL;
|
||||||
|
static const ARGB Goldenrod = 0xFFDAA520UL;
|
||||||
|
static const ARGB Gray = 0xFF808080UL;
|
||||||
|
static const ARGB Green = 0xFF008000UL;
|
||||||
|
static const ARGB GreenYellow = 0xFFADFF2FUL;
|
||||||
|
static const ARGB Honeydew = 0xFFF0FFF0UL;
|
||||||
|
static const ARGB HotPink = 0xFFFF69B4UL;
|
||||||
|
static const ARGB IndianRed = 0xFFCD5C5CUL;
|
||||||
|
static const ARGB Indigo = 0xFF4B0082UL;
|
||||||
|
static const ARGB Ivory = 0xFFFFFFF0UL;
|
||||||
|
static const ARGB Khaki = 0xFFF0E68CUL;
|
||||||
|
static const ARGB Lavender = 0xFFE6E6FAUL;
|
||||||
|
static const ARGB LavenderBlush = 0xFFFFF0F5UL;
|
||||||
|
static const ARGB LawnGreen = 0xFF7CFC00UL;
|
||||||
|
static const ARGB LemonChiffon = 0xFFFFFACDUL;
|
||||||
|
static const ARGB LightBlue = 0xFFADD8E6UL;
|
||||||
|
static const ARGB LightCoral = 0xFFF08080UL;
|
||||||
|
static const ARGB LightCyan = 0xFFE0FFFFUL;
|
||||||
|
static const ARGB LightGoldenrodYellow = 0xFFFAFAD2UL;
|
||||||
|
static const ARGB LightGray = 0xFFD3D3D3UL;
|
||||||
|
static const ARGB LightGreen = 0xFF90EE90UL;
|
||||||
|
static const ARGB LightPink = 0xFFFFB6C1UL;
|
||||||
|
static const ARGB LightSalmon = 0xFFFFA07AUL;
|
||||||
|
static const ARGB LightSeaGreen = 0xFF20B2AAUL;
|
||||||
|
static const ARGB LightSkyBlue = 0xFF87CEFAUL;
|
||||||
|
static const ARGB LightSlateGray = 0xFF778899UL;
|
||||||
|
static const ARGB LightSteelBlue = 0xFFB0C4DEUL;
|
||||||
|
static const ARGB LightYellow = 0xFFFFFFE0UL;
|
||||||
|
static const ARGB Lime = 0xFF00FF00UL;
|
||||||
|
static const ARGB LimeGreen = 0xFF32CD32UL;
|
||||||
|
static const ARGB Linen = 0xFFFAF0E6UL;
|
||||||
|
static const ARGB Magenta = 0xFFFF00FFUL;
|
||||||
|
static const ARGB Maroon = 0xFF800000UL;
|
||||||
|
static const ARGB MediumAquamarine = 0xFF66CDAAUL;
|
||||||
|
static const ARGB MediumBlue = 0xFF0000CDUL;
|
||||||
|
static const ARGB MediumOrchid = 0xFFBA55D3UL;
|
||||||
|
static const ARGB MediumPurple = 0xFF9370DBUL;
|
||||||
|
static const ARGB MediumSeaGreen = 0xFF3CB371UL;
|
||||||
|
static const ARGB MediumSlateBlue = 0xFF7B68EEUL;
|
||||||
|
static const ARGB MediumSpringGreen = 0xFF00FA9AUL;
|
||||||
|
static const ARGB MediumTurquoise = 0xFF48D1CCUL;
|
||||||
|
static const ARGB MediumVioletRed = 0xFFC71585UL;
|
||||||
|
static const ARGB MidnightBlue = 0xFF191970UL;
|
||||||
|
static const ARGB MintCream = 0xFFF5FFFAUL;
|
||||||
|
static const ARGB MistyRose = 0xFFFFE4E1UL;
|
||||||
|
static const ARGB Moccasin = 0xFFFFE4B5UL;
|
||||||
|
static const ARGB NavajoWhite = 0xFFFFDEADUL;
|
||||||
|
static const ARGB Navy = 0xFF000080UL;
|
||||||
|
static const ARGB OldLace = 0xFFFDF5E6UL;
|
||||||
|
static const ARGB Olive = 0xFF808000UL;
|
||||||
|
static const ARGB OliveDrab = 0xFF6B8E23UL;
|
||||||
|
static const ARGB Orange = 0xFFFFA500UL;
|
||||||
|
static const ARGB OrangeRed = 0xFFFF4500UL;
|
||||||
|
static const ARGB Orchid = 0xFFDA70D6UL;
|
||||||
|
static const ARGB PaleGoldenrod = 0xFFEEE8AAUL;
|
||||||
|
static const ARGB PaleGreen = 0xFF98FB98UL;
|
||||||
|
static const ARGB PaleTurquoise = 0xFFAFEEEEUL;
|
||||||
|
static const ARGB PaleVioletRed = 0xFFDB7093UL;
|
||||||
|
static const ARGB PapayaWhip = 0xFFFFEFD5UL;
|
||||||
|
static const ARGB PeachPuff = 0xFFFFDAB9UL;
|
||||||
|
static const ARGB Peru = 0xFFCD853FUL;
|
||||||
|
static const ARGB Pink = 0xFFFFC0CBUL;
|
||||||
|
static const ARGB Plum = 0xFFDDA0DDUL;
|
||||||
|
static const ARGB PowderBlue = 0xFFB0E0E6UL;
|
||||||
|
static const ARGB Purple = 0xFF800080UL;
|
||||||
|
static const ARGB Red = 0xFFFF0000UL;
|
||||||
|
static const ARGB RosyBrown = 0xFFBC8F8FUL;
|
||||||
|
static const ARGB RoyalBlue = 0xFF4169E1UL;
|
||||||
|
static const ARGB SaddleBrown = 0xFF8B4513UL;
|
||||||
|
static const ARGB Salmon = 0xFFFA8072UL;
|
||||||
|
static const ARGB SandyBrown = 0xFFF4A460UL;
|
||||||
|
static const ARGB SeaGreen = 0xFF2E8B57UL;
|
||||||
|
static const ARGB SeaShell = 0xFFFFF5EEUL;
|
||||||
|
static const ARGB Sienna = 0xFFA0522DUL;
|
||||||
|
static const ARGB Silver = 0xFFC0C0C0UL;
|
||||||
|
static const ARGB SkyBlue = 0xFF87CEEBUL;
|
||||||
|
static const ARGB SlateBlue = 0xFF6A5ACDUL;
|
||||||
|
static const ARGB SlateGray = 0xFF708090UL;
|
||||||
|
static const ARGB Snow = 0xFFFFFAFAUL;
|
||||||
|
static const ARGB SpringGreen = 0xFF00FF7FUL;
|
||||||
|
static const ARGB SteelBlue = 0xFF4682B4UL;
|
||||||
|
static const ARGB Tan = 0xFFD2B48CUL;
|
||||||
|
static const ARGB Teal = 0xFF008080UL;
|
||||||
|
static const ARGB Thistle = 0xFFD8BFD8UL;
|
||||||
|
static const ARGB Tomato = 0xFFFF6347UL;
|
||||||
|
static const ARGB Transparent = 0x00FFFFFFUL;
|
||||||
|
static const ARGB Turquoise = 0xFF40E0D0UL;
|
||||||
|
static const ARGB Violet = 0xFFEE82EEUL;
|
||||||
|
static const ARGB Wheat = 0xFFF5DEB3UL;
|
||||||
|
static const ARGB White = 0xFFFFFFFFUL;
|
||||||
|
static const ARGB WhiteSmoke = 0xFFF5F5F5UL;
|
||||||
|
static const ARGB Yellow = 0xFFFFFF00UL;
|
||||||
|
static const ARGB YellowGreen = 0xFF9ACD32UL;
|
||||||
|
|
||||||
|
Color(): Value(0xFF000000) {}
|
||||||
|
Color(ARGB argb): Value(argb) {}
|
||||||
|
Color(BYTE r, BYTE g, BYTE b): Value(MakeARGB(0xFF, r, g, b)) {}
|
||||||
|
Color(BYTE a, BYTE r, BYTE g, BYTE b): Value(MakeARGB(a, r, g, b)) {}
|
||||||
|
|
||||||
|
BYTE GetA() const
|
||||||
|
{
|
||||||
|
return (BYTE) (Value >> 24);
|
||||||
|
}
|
||||||
|
BYTE GetAlpha() const
|
||||||
|
{
|
||||||
|
return (BYTE) (Value >> 24);
|
||||||
|
}
|
||||||
|
BYTE GetB() const
|
||||||
|
{
|
||||||
|
return (BYTE) Value;
|
||||||
|
}
|
||||||
|
BYTE GetBlue() const
|
||||||
|
{
|
||||||
|
return (BYTE) Value;
|
||||||
|
}
|
||||||
|
BYTE GetG() const
|
||||||
|
{
|
||||||
|
return (BYTE) (Value >> 8);
|
||||||
|
}
|
||||||
|
BYTE GetGreen() const
|
||||||
|
{
|
||||||
|
return (BYTE) (Value >> 8);
|
||||||
|
}
|
||||||
|
BYTE GetR() const
|
||||||
|
{
|
||||||
|
return (BYTE) (Value >> 16);
|
||||||
|
}
|
||||||
|
BYTE GetRed() const
|
||||||
|
{
|
||||||
|
return (BYTE) (Value >> 16);
|
||||||
|
}
|
||||||
|
ARGB GetValue() const
|
||||||
|
{
|
||||||
|
return Value;
|
||||||
|
}
|
||||||
|
VOID SetFromCOLORREF(COLORREF rgb)
|
||||||
|
{
|
||||||
|
BYTE r = (BYTE) rgb;
|
||||||
|
BYTE g = (BYTE) (rgb >> 8);
|
||||||
|
BYTE b = (BYTE) (rgb >> 16);
|
||||||
|
Value = MakeARGB(0xFF, r, g, b);
|
||||||
|
}
|
||||||
|
VOID SetValue(ARGB argb)
|
||||||
|
{
|
||||||
|
Value = argb;
|
||||||
|
}
|
||||||
|
COLORREF ToCOLORREF() const
|
||||||
|
{
|
||||||
|
return RGB(GetRed(), GetGreen(), GetBlue());
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} Color;
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_COLOR_H */
|
67
winsup/w32api/include/gdiplus/gdipluscolormatrix.h
Executable file
67
winsup/w32api/include/gdiplus/gdipluscolormatrix.h
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
* gdipluscolormatrix.h
|
||||||
|
*
|
||||||
|
* GDI+ color mappings
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_COLORMATRIX_H
|
||||||
|
#define __GDIPLUS_COLORMATRIX_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef enum ColorAdjustType {
|
||||||
|
ColorAdjustTypeDefault = 0,
|
||||||
|
ColorAdjustTypeBitmap = 1,
|
||||||
|
ColorAdjustTypeBrush = 2,
|
||||||
|
ColorAdjustTypePen = 3,
|
||||||
|
ColorAdjustTypeText = 4,
|
||||||
|
ColorAdjustTypeCount = 5,
|
||||||
|
ColorAdjustTypeAny = 6
|
||||||
|
} ColorAdjustType;
|
||||||
|
|
||||||
|
typedef enum ColorMatrixFlags {
|
||||||
|
ColorMatrixFlagsDefault = 0,
|
||||||
|
ColorMatrixFlagsSkipGrays = 1,
|
||||||
|
ColorMatrixFlagsAltGray = 2
|
||||||
|
} ColorMatrixFlags;
|
||||||
|
|
||||||
|
typedef enum HistogramFormat {
|
||||||
|
HistogramFormatARGB = 0,
|
||||||
|
HistogramFormatPARGB = 1,
|
||||||
|
HistogramFormatRGB = 2,
|
||||||
|
HistogramFormatGray = 3,
|
||||||
|
HistogramFormatB = 4,
|
||||||
|
HistogramFormatG = 5,
|
||||||
|
HistogramFormatR = 6,
|
||||||
|
HistogramFormatA = 7
|
||||||
|
} HistogramFormat;
|
||||||
|
|
||||||
|
typedef struct ColorMap {
|
||||||
|
Color oldColor;
|
||||||
|
Color newColor;
|
||||||
|
} ColorMap;
|
||||||
|
|
||||||
|
typedef struct ColorMatrix {
|
||||||
|
REAL m[5][5];
|
||||||
|
} ColorMatrix;
|
||||||
|
|
||||||
|
typedef BYTE ColorChannelLUT[256];
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_COLORMATRIX_H */
|
116
winsup/w32api/include/gdiplus/gdipluseffects.h
Executable file
116
winsup/w32api/include/gdiplus/gdipluseffects.h
Executable file
@ -0,0 +1,116 @@
|
|||||||
|
/*
|
||||||
|
* gdipluseffects.h
|
||||||
|
*
|
||||||
|
* GDI+ filters and effects
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_EFFECTS_H
|
||||||
|
#define __GDIPLUS_EFFECTS_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef enum CurveAdjustments {
|
||||||
|
AdjustExposure = 0,
|
||||||
|
AdjustDensity = 1,
|
||||||
|
AdjustContrast = 2,
|
||||||
|
AdjustHighlight = 3,
|
||||||
|
AdjustShadow = 4,
|
||||||
|
AdjustMidtone = 5,
|
||||||
|
AdjustWhiteSaturation = 6,
|
||||||
|
AdjustBlackSaturation = 7
|
||||||
|
} CurveAdjustments;
|
||||||
|
|
||||||
|
typedef enum CurveChannel {
|
||||||
|
CurveChannelAll = 0,
|
||||||
|
CurveChannelRed = 1,
|
||||||
|
CurveChannelGreen = 2,
|
||||||
|
CurveChannelBlue = 3
|
||||||
|
} CurveChannel;
|
||||||
|
|
||||||
|
typedef struct BlurParams {
|
||||||
|
REAL radius;
|
||||||
|
BOOL expandEdge;
|
||||||
|
} BlurParams;
|
||||||
|
|
||||||
|
typedef struct BrightnessContrastParams {
|
||||||
|
INT brightnessLevel;
|
||||||
|
INT contrastLevel;
|
||||||
|
} BrightnessContrastParams;
|
||||||
|
|
||||||
|
typedef struct ColorBalanceParams {
|
||||||
|
INT cyanRed;
|
||||||
|
INT magentaGreen;
|
||||||
|
INT yellowBlue;
|
||||||
|
} ColorBalanceParams;
|
||||||
|
|
||||||
|
typedef struct ColorCurveParams {
|
||||||
|
CurveAdjustments adjustment;
|
||||||
|
CurveChannel channel;
|
||||||
|
INT adjustValue;
|
||||||
|
} ColorCurveParams;
|
||||||
|
|
||||||
|
typedef struct ColorLUTParams {
|
||||||
|
ColorChannelLUT lutB;
|
||||||
|
ColorChannelLUT lutG;
|
||||||
|
ColorChannelLUT lutR;
|
||||||
|
ColorChannelLUT lutA;
|
||||||
|
} ColorLUTParams;
|
||||||
|
|
||||||
|
typedef struct HueSaturationLightnessParams {
|
||||||
|
INT hueLevel;
|
||||||
|
INT saturationLevel;
|
||||||
|
INT lightnessLevel;
|
||||||
|
} HueSaturationLightnessParams;
|
||||||
|
|
||||||
|
typedef struct LevelsParams {
|
||||||
|
INT highlight;
|
||||||
|
INT midtone;
|
||||||
|
INT shadow;
|
||||||
|
} LevelsParams;
|
||||||
|
|
||||||
|
typedef struct RedEyeCorrectionParams {
|
||||||
|
UINT numberOfAreas;
|
||||||
|
RECT *areas;
|
||||||
|
} RedEyeCorrectionParams;
|
||||||
|
|
||||||
|
typedef struct SharpenParams {
|
||||||
|
REAL radius;
|
||||||
|
REAL amount;
|
||||||
|
} SharpenParams;
|
||||||
|
|
||||||
|
typedef struct TintParams {
|
||||||
|
INT hue;
|
||||||
|
INT amount;
|
||||||
|
} TintParams;
|
||||||
|
|
||||||
|
extern const GUID BlurEffectGuid; /* ? */
|
||||||
|
extern const GUID BrightnessContrastEffectGuid; /* ? */
|
||||||
|
extern const GUID ColorBalanceEffectGuid; /* ? */
|
||||||
|
extern const GUID ColorCurveEffectGuid; /* ? */
|
||||||
|
extern const GUID ColorLUTEffectGuid; /* ? */
|
||||||
|
extern const GUID ColorMatrixEffectGuid; /* ? */
|
||||||
|
extern const GUID HueSaturationLightnessEffectGuid; /* ? */
|
||||||
|
extern const GUID LevelsEffectGuid; /* ? */
|
||||||
|
extern const GUID RedEyeCorrectionEffectGuid; /* ? */
|
||||||
|
extern const GUID SharpenEffectGuid; /* ? */
|
||||||
|
extern const GUID TintEffectGuid; /* ? */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_EFFECTS_H */
|
755
winsup/w32api/include/gdiplus/gdiplusenums.h
Executable file
755
winsup/w32api/include/gdiplus/gdiplusenums.h
Executable file
@ -0,0 +1,755 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusenums.h
|
||||||
|
*
|
||||||
|
* GDI+ enumerations
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_ENUMS_H
|
||||||
|
#define __GDIPLUS_ENUMS_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef enum BrushType {
|
||||||
|
BrushTypeSolidColor = 0,
|
||||||
|
BrushTypeHatchFill = 1,
|
||||||
|
BrushTypeTextureFill = 2,
|
||||||
|
BrushTypePathGradient = 3,
|
||||||
|
BrushTypeLinearGradient = 4
|
||||||
|
} BrushType;
|
||||||
|
|
||||||
|
typedef enum CombineMode {
|
||||||
|
CombineModeReplace = 0,
|
||||||
|
CombineModeIntersect = 1,
|
||||||
|
CombineModeUnion = 2,
|
||||||
|
CombineModeXor = 3,
|
||||||
|
CombineModeExclude = 4,
|
||||||
|
CombineModeComplement = 5
|
||||||
|
} CombineMode;
|
||||||
|
|
||||||
|
typedef enum CompositingMode {
|
||||||
|
CompositingModeSourceOver = 0,
|
||||||
|
CompositingModeSourceCopy = 1
|
||||||
|
} CompositingMode;
|
||||||
|
|
||||||
|
typedef enum CompositingQuality {
|
||||||
|
CompositingQualityDefault = 0,
|
||||||
|
CompositingQualityHighSpeed = 1,
|
||||||
|
CompositingQualityHighQuality = 2,
|
||||||
|
CompositingQualityGammaCorrected = 3,
|
||||||
|
CompositingQualityAssumeLinear = 4
|
||||||
|
} CompositingQuality;
|
||||||
|
|
||||||
|
typedef enum CoordinateSpace {
|
||||||
|
CoordinateSpaceWorld = 0,
|
||||||
|
CoordinateSpacePage = 1,
|
||||||
|
CoordinateSpaceDevice = 2
|
||||||
|
} CoordinateSpace;
|
||||||
|
|
||||||
|
typedef enum CustomLineCapType {
|
||||||
|
CustomLineCapTypeDefault = 0,
|
||||||
|
CustomLineCapTypeAdjustableArrow = 1
|
||||||
|
} CustomLineCapType;
|
||||||
|
|
||||||
|
typedef enum DashCap {
|
||||||
|
DashCapFlat = 0,
|
||||||
|
DashCapRound = 2,
|
||||||
|
DashCapTriangle = 3
|
||||||
|
} DashCap;
|
||||||
|
|
||||||
|
typedef enum DashStyle {
|
||||||
|
DashStyleSolid = 0,
|
||||||
|
DashStyleDash = 1,
|
||||||
|
DashStyleDot = 2,
|
||||||
|
DashStyleDashDot = 3,
|
||||||
|
DashStyleDashDotDot = 4,
|
||||||
|
DashStyleCustom = 5
|
||||||
|
} DashStyle;
|
||||||
|
|
||||||
|
typedef enum DitherType {
|
||||||
|
DitherTypeNone = 0,
|
||||||
|
DitherTypeSolid = 1,
|
||||||
|
DitherTypeOrdered4x4 = 2,
|
||||||
|
DitherTypeOrdered8x8 = 3,
|
||||||
|
DitherTypeOrdered16x16 = 4,
|
||||||
|
DitherTypeOrdered91x91 = 5,
|
||||||
|
DitherTypeSpiral4x4 = 6,
|
||||||
|
DitherTypeSpiral8x8 = 7,
|
||||||
|
DitherTypeDualSpiral4x4 = 8,
|
||||||
|
DitherTypeDualSpiral8x8 = 9,
|
||||||
|
DitherTypeErrorDiffusion = 10
|
||||||
|
} DitherType;
|
||||||
|
|
||||||
|
typedef enum DriverStringOptions {
|
||||||
|
DriverStringOptionsCmapLookup = 1,
|
||||||
|
DriverStringOptionsVertical = 2,
|
||||||
|
DriverStringOptionsRealizedAdvance = 4,
|
||||||
|
DriverStringOptionsLimitSubpixel = 8
|
||||||
|
} DriverStringOptions;
|
||||||
|
|
||||||
|
#define GDIP_WMF_RECORD_TO_EMFPLUS(meta) ((meta) | 0x10000)
|
||||||
|
#define GDIP_EMFPLUS_RECORD_BASE (0x4000)
|
||||||
|
typedef enum EmfPlusRecordType {
|
||||||
|
WmfRecordTypeSetBkColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR),
|
||||||
|
WmfRecordTypeSetBkMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE),
|
||||||
|
WmfRecordTypeSetMapMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE),
|
||||||
|
WmfRecordTypeSetROP2 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2),
|
||||||
|
WmfRecordTypeSetRelAbs = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS),
|
||||||
|
WmfRecordTypeSetPolyFillMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE),
|
||||||
|
WmfRecordTypeSetStretchBltMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE),
|
||||||
|
WmfRecordTypeSetTextCharExtra = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA),
|
||||||
|
WmfRecordTypeSetTextColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR),
|
||||||
|
WmfRecordTypeSetTextJustification = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION),
|
||||||
|
WmfRecordTypeSetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG),
|
||||||
|
WmfRecordTypeSetWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT),
|
||||||
|
WmfRecordTypeSetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG),
|
||||||
|
WmfRecordTypeSetViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT),
|
||||||
|
WmfRecordTypeOffsetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG),
|
||||||
|
WmfRecordTypeScaleWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT),
|
||||||
|
WmfRecordTypeOffsetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG),
|
||||||
|
WmfRecordTypeScaleViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT),
|
||||||
|
WmfRecordTypeLineTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO),
|
||||||
|
WmfRecordTypeMoveTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO),
|
||||||
|
WmfRecordTypeExcludeClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT),
|
||||||
|
WmfRecordTypeIntersectClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT),
|
||||||
|
WmfRecordTypeArc = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC),
|
||||||
|
WmfRecordTypeEllipse = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE),
|
||||||
|
WmfRecordTypeFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL),
|
||||||
|
WmfRecordTypePie = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE),
|
||||||
|
WmfRecordTypeRectangle = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE),
|
||||||
|
WmfRecordTypeRoundRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT),
|
||||||
|
WmfRecordTypePatBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT),
|
||||||
|
WmfRecordTypeSaveDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC),
|
||||||
|
WmfRecordTypeSetPixel = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL),
|
||||||
|
WmfRecordTypeOffsetClipRgn = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN),
|
||||||
|
WmfRecordTypeTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT),
|
||||||
|
WmfRecordTypeBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT),
|
||||||
|
WmfRecordTypeStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT),
|
||||||
|
WmfRecordTypePolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON),
|
||||||
|
WmfRecordTypePolyline = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE),
|
||||||
|
WmfRecordTypeEscape = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE),
|
||||||
|
WmfRecordTypeRestoreDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC),
|
||||||
|
WmfRecordTypeFillRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION),
|
||||||
|
WmfRecordTypeFrameRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION),
|
||||||
|
WmfRecordTypeInvertRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION),
|
||||||
|
WmfRecordTypePaintRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION),
|
||||||
|
WmfRecordTypeSelectClipRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION),
|
||||||
|
WmfRecordTypeSelectObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT),
|
||||||
|
WmfRecordTypeSetTextAlign = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN),
|
||||||
|
WmfRecordTypeDrawText = GDIP_WMF_RECORD_TO_EMFPLUS(0x062F),
|
||||||
|
WmfRecordTypeChord = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD),
|
||||||
|
WmfRecordTypeSetMapperFlags = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS),
|
||||||
|
WmfRecordTypeExtTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT),
|
||||||
|
WmfRecordTypeSetDIBToDev = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV),
|
||||||
|
WmfRecordTypeSelectPalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE),
|
||||||
|
WmfRecordTypeRealizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE),
|
||||||
|
WmfRecordTypeAnimatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE),
|
||||||
|
WmfRecordTypeSetPalEntries = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES),
|
||||||
|
WmfRecordTypePolyPolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON),
|
||||||
|
WmfRecordTypeResizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE),
|
||||||
|
WmfRecordTypeDIBBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT),
|
||||||
|
WmfRecordTypeDIBStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT),
|
||||||
|
WmfRecordTypeDIBCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH),
|
||||||
|
WmfRecordTypeStretchDIB = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB),
|
||||||
|
WmfRecordTypeExtFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL),
|
||||||
|
WmfRecordTypeSetLayout = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149),
|
||||||
|
WmfRecordTypeResetDC = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C),
|
||||||
|
WmfRecordTypeStartDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D),
|
||||||
|
WmfRecordTypeStartPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F),
|
||||||
|
WmfRecordTypeEndPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050),
|
||||||
|
WmfRecordTypeAbortDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052),
|
||||||
|
WmfRecordTypeEndDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E),
|
||||||
|
WmfRecordTypeDeleteObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT),
|
||||||
|
WmfRecordTypeCreatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE),
|
||||||
|
WmfRecordTypeCreateBrush = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8),
|
||||||
|
WmfRecordTypeCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH),
|
||||||
|
WmfRecordTypeCreatePenIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT),
|
||||||
|
WmfRecordTypeCreateFontIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT),
|
||||||
|
WmfRecordTypeCreateBrushIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT),
|
||||||
|
WmfRecordTypeCreateBitmapIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD),
|
||||||
|
WmfRecordTypeCreateBitmap = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE),
|
||||||
|
WmfRecordTypeCreateRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION),
|
||||||
|
EmfRecordTypeHeader = EMR_HEADER,
|
||||||
|
EmfRecordTypePolyBezier = EMR_POLYBEZIER,
|
||||||
|
EmfRecordTypePolygon = EMR_POLYGON,
|
||||||
|
EmfRecordTypePolyline = EMR_POLYLINE,
|
||||||
|
EmfRecordTypePolyBezierTo = EMR_POLYBEZIERTO,
|
||||||
|
EmfRecordTypePolyLineTo = EMR_POLYLINETO,
|
||||||
|
EmfRecordTypePolyPolyline = EMR_POLYPOLYLINE,
|
||||||
|
EmfRecordTypePolyPolygon = EMR_POLYPOLYGON,
|
||||||
|
EmfRecordTypeSetWindowExtEx = EMR_SETWINDOWEXTEX,
|
||||||
|
EmfRecordTypeSetWindowOrgEx = EMR_SETWINDOWORGEX,
|
||||||
|
EmfRecordTypeSetViewportExtEx = EMR_SETVIEWPORTEXTEX,
|
||||||
|
EmfRecordTypeSetViewportOrgEx = EMR_SETVIEWPORTORGEX,
|
||||||
|
EmfRecordTypeSetBrushOrgEx = EMR_SETBRUSHORGEX,
|
||||||
|
EmfRecordTypeEOF = EMR_EOF,
|
||||||
|
EmfRecordTypeSetPixelV = EMR_SETPIXELV,
|
||||||
|
EmfRecordTypeSetMapperFlags = EMR_SETMAPPERFLAGS,
|
||||||
|
EmfRecordTypeSetMapMode = EMR_SETMAPMODE,
|
||||||
|
EmfRecordTypeSetBkMode = EMR_SETBKMODE,
|
||||||
|
EmfRecordTypeSetPolyFillMode = EMR_SETPOLYFILLMODE,
|
||||||
|
EmfRecordTypeSetROP2 = EMR_SETROP2,
|
||||||
|
EmfRecordTypeSetStretchBltMode = EMR_SETSTRETCHBLTMODE,
|
||||||
|
EmfRecordTypeSetTextAlign = EMR_SETTEXTALIGN,
|
||||||
|
EmfRecordTypeSetColorAdjustment = EMR_SETCOLORADJUSTMENT,
|
||||||
|
EmfRecordTypeSetTextColor = EMR_SETTEXTCOLOR,
|
||||||
|
EmfRecordTypeSetBkColor = EMR_SETBKCOLOR,
|
||||||
|
EmfRecordTypeOffsetClipRgn = EMR_OFFSETCLIPRGN,
|
||||||
|
EmfRecordTypeMoveToEx = EMR_MOVETOEX,
|
||||||
|
EmfRecordTypeSetMetaRgn = EMR_SETMETARGN,
|
||||||
|
EmfRecordTypeExcludeClipRect = EMR_EXCLUDECLIPRECT,
|
||||||
|
EmfRecordTypeIntersectClipRect = EMR_INTERSECTCLIPRECT,
|
||||||
|
EmfRecordTypeScaleViewportExtEx = EMR_SCALEVIEWPORTEXTEX,
|
||||||
|
EmfRecordTypeScaleWindowExtEx = EMR_SCALEWINDOWEXTEX,
|
||||||
|
EmfRecordTypeSaveDC = EMR_SAVEDC,
|
||||||
|
EmfRecordTypeRestoreDC = EMR_RESTOREDC,
|
||||||
|
EmfRecordTypeSetWorldTransform = EMR_SETWORLDTRANSFORM,
|
||||||
|
EmfRecordTypeModifyWorldTransform = EMR_MODIFYWORLDTRANSFORM,
|
||||||
|
EmfRecordTypeSelectObject = EMR_SELECTOBJECT,
|
||||||
|
EmfRecordTypeCreatePen = EMR_CREATEPEN,
|
||||||
|
EmfRecordTypeCreateBrushIndirect = EMR_CREATEBRUSHINDIRECT,
|
||||||
|
EmfRecordTypeDeleteObject = EMR_DELETEOBJECT,
|
||||||
|
EmfRecordTypeAngleArc = EMR_ANGLEARC,
|
||||||
|
EmfRecordTypeEllipse = EMR_ELLIPSE,
|
||||||
|
EmfRecordTypeRectangle = EMR_RECTANGLE,
|
||||||
|
EmfRecordTypeRoundRect = EMR_ROUNDRECT,
|
||||||
|
EmfRecordTypeArc = EMR_ARC,
|
||||||
|
EmfRecordTypeChord = EMR_CHORD,
|
||||||
|
EmfRecordTypePie = EMR_PIE,
|
||||||
|
EmfRecordTypeSelectPalette = EMR_SELECTPALETTE,
|
||||||
|
EmfRecordTypeCreatePalette = EMR_CREATEPALETTE,
|
||||||
|
EmfRecordTypeSetPaletteEntries = EMR_SETPALETTEENTRIES,
|
||||||
|
EmfRecordTypeResizePalette = EMR_RESIZEPALETTE,
|
||||||
|
EmfRecordTypeRealizePalette = EMR_REALIZEPALETTE,
|
||||||
|
EmfRecordTypeExtFloodFill = EMR_EXTFLOODFILL,
|
||||||
|
EmfRecordTypeLineTo = EMR_LINETO,
|
||||||
|
EmfRecordTypeArcTo = EMR_ARCTO,
|
||||||
|
EmfRecordTypePolyDraw = EMR_POLYDRAW,
|
||||||
|
EmfRecordTypeSetArcDirection = EMR_SETARCDIRECTION,
|
||||||
|
EmfRecordTypeSetMiterLimit = EMR_SETMITERLIMIT,
|
||||||
|
EmfRecordTypeBeginPath = EMR_BEGINPATH,
|
||||||
|
EmfRecordTypeEndPath = EMR_ENDPATH,
|
||||||
|
EmfRecordTypeCloseFigure = EMR_CLOSEFIGURE,
|
||||||
|
EmfRecordTypeFillPath = EMR_FILLPATH,
|
||||||
|
EmfRecordTypeStrokeAndFillPath = EMR_STROKEANDFILLPATH,
|
||||||
|
EmfRecordTypeStrokePath = EMR_STROKEPATH,
|
||||||
|
EmfRecordTypeFlattenPath = EMR_FLATTENPATH,
|
||||||
|
EmfRecordTypeWidenPath = EMR_WIDENPATH,
|
||||||
|
EmfRecordTypeSelectClipPath = EMR_SELECTCLIPPATH,
|
||||||
|
EmfRecordTypeAbortPath = EMR_ABORTPATH,
|
||||||
|
EmfRecordTypeReserved_069 = 69,
|
||||||
|
EmfRecordTypeGdiComment = EMR_GDICOMMENT,
|
||||||
|
EmfRecordTypeFillRgn = EMR_FILLRGN,
|
||||||
|
EmfRecordTypeFrameRgn = EMR_FRAMERGN,
|
||||||
|
EmfRecordTypeInvertRgn = EMR_INVERTRGN,
|
||||||
|
EmfRecordTypePaintRgn = EMR_PAINTRGN,
|
||||||
|
EmfRecordTypeExtSelectClipRgn = EMR_EXTSELECTCLIPRGN,
|
||||||
|
EmfRecordTypeBitBlt = EMR_BITBLT,
|
||||||
|
EmfRecordTypeStretchBlt = EMR_STRETCHBLT,
|
||||||
|
EmfRecordTypeMaskBlt = EMR_MASKBLT,
|
||||||
|
EmfRecordTypePlgBlt = EMR_PLGBLT,
|
||||||
|
EmfRecordTypeSetDIBitsToDevice = 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,
|
||||||
|
EmfRecordTypeCreateColorSpace = 99,
|
||||||
|
EmfRecordTypeSetColorSpace = 100,
|
||||||
|
EmfRecordTypeDeleteColorSpace = 101,
|
||||||
|
EmfRecordTypeGLSRecord = 102,
|
||||||
|
EmfRecordTypeGLSBoundedRecord = 103,
|
||||||
|
EmfRecordTypePixelFormat = 104,
|
||||||
|
EmfRecordTypeDrawEscape = 105,
|
||||||
|
EmfRecordTypeExtEscape = 106,
|
||||||
|
EmfRecordTypeStartDoc = 107,
|
||||||
|
EmfRecordTypeSmallTextOut = 108,
|
||||||
|
EmfRecordTypeForceUFIMapping = 109,
|
||||||
|
EmfRecordTypeNamedEscape = 110,
|
||||||
|
EmfRecordTypeColorCorrectPalette = 111,
|
||||||
|
EmfRecordTypeSetICMProfileA = 112,
|
||||||
|
EmfRecordTypeSetICMProfileW = 113,
|
||||||
|
EmfRecordTypeAlphaBlend = 114,
|
||||||
|
EmfRecordTypeSetLayout = 115,
|
||||||
|
EmfRecordTypeTransparentBlt = 116,
|
||||||
|
EmfRecordTypeReserved_117 = 117,
|
||||||
|
EmfRecordTypeGradientFill = 118,
|
||||||
|
EmfRecordTypeSetLinkedUFIs = 119,
|
||||||
|
EmfRecordTypeSetTextJustification = 120,
|
||||||
|
EmfRecordTypeColorMatchToTargetW = 121,
|
||||||
|
EmfRecordTypeCreateColorSpaceW = 122,
|
||||||
|
EmfRecordTypeMax = 122,
|
||||||
|
EmfRecordTypeMin = 1,
|
||||||
|
EmfPlusRecordTypeInvalid = GDIP_EMFPLUS_RECORD_BASE,
|
||||||
|
EmfPlusRecordTypeHeader,
|
||||||
|
EmfPlusRecordTypeEndOfFile,
|
||||||
|
EmfPlusRecordTypeComment,
|
||||||
|
EmfPlusRecordTypeGetDC,
|
||||||
|
EmfPlusRecordTypeMultiFormatStart,
|
||||||
|
EmfPlusRecordTypeMultiFormatSection,
|
||||||
|
EmfPlusRecordTypeMultiFormatEnd,
|
||||||
|
EmfPlusRecordTypeObject,
|
||||||
|
EmfPlusRecordTypeClear,
|
||||||
|
EmfPlusRecordTypeFillRects,
|
||||||
|
EmfPlusRecordTypeDrawRects,
|
||||||
|
EmfPlusRecordTypeFillPolygon,
|
||||||
|
EmfPlusRecordTypeDrawLines,
|
||||||
|
EmfPlusRecordTypeFillEllipse,
|
||||||
|
EmfPlusRecordTypeDrawEllipse,
|
||||||
|
EmfPlusRecordTypeFillPie,
|
||||||
|
EmfPlusRecordTypeDrawPie,
|
||||||
|
EmfPlusRecordTypeDrawArc,
|
||||||
|
EmfPlusRecordTypeFillRegion,
|
||||||
|
EmfPlusRecordTypeFillPath,
|
||||||
|
EmfPlusRecordTypeDrawPath,
|
||||||
|
EmfPlusRecordTypeFillClosedCurve,
|
||||||
|
EmfPlusRecordTypeDrawClosedCurve,
|
||||||
|
EmfPlusRecordTypeDrawCurve,
|
||||||
|
EmfPlusRecordTypeDrawBeziers,
|
||||||
|
EmfPlusRecordTypeDrawImage,
|
||||||
|
EmfPlusRecordTypeDrawImagePoints,
|
||||||
|
EmfPlusRecordTypeDrawString,
|
||||||
|
EmfPlusRecordTypeSetRenderingOrigin,
|
||||||
|
EmfPlusRecordTypeSetAntiAliasMode,
|
||||||
|
EmfPlusRecordTypeSetTextRenderingHint,
|
||||||
|
EmfPlusRecordTypeSetTextContrast,
|
||||||
|
EmfPlusRecordTypeSetGammaValue,
|
||||||
|
EmfPlusRecordTypeSetInterpolationMode,
|
||||||
|
EmfPlusRecordTypeSetPixelOffsetMode,
|
||||||
|
EmfPlusRecordTypeSetCompositingMode,
|
||||||
|
EmfPlusRecordTypeSetCompositingQuality,
|
||||||
|
EmfPlusRecordTypeSave,
|
||||||
|
EmfPlusRecordTypeRestore,
|
||||||
|
EmfPlusRecordTypeBeginContainer,
|
||||||
|
EmfPlusRecordTypeBeginContainerNoParams,
|
||||||
|
EmfPlusRecordTypeEndContainer,
|
||||||
|
EmfPlusRecordTypeSetWorldTransform,
|
||||||
|
EmfPlusRecordTypeResetWorldTransform,
|
||||||
|
EmfPlusRecordTypeMultiplyWorldTransform,
|
||||||
|
EmfPlusRecordTypeTranslateWorldTransform,
|
||||||
|
EmfPlusRecordTypeScaleWorldTransform,
|
||||||
|
EmfPlusRecordTypeRotateWorldTransform,
|
||||||
|
EmfPlusRecordTypeSetPageTransform,
|
||||||
|
EmfPlusRecordTypeResetClip,
|
||||||
|
EmfPlusRecordTypeSetClipRect,
|
||||||
|
EmfPlusRecordTypeSetClipPath,
|
||||||
|
EmfPlusRecordTypeSetClipRegion,
|
||||||
|
EmfPlusRecordTypeOffsetClip,
|
||||||
|
EmfPlusRecordTypeDrawDriverString,
|
||||||
|
EmfPlusRecordTypeStrokeFillPath,
|
||||||
|
EmfPlusRecordTypeSerializableObject,
|
||||||
|
EmfPlusRecordTypeSetTSGraphics,
|
||||||
|
EmfPlusRecordTypeSetTSClip,
|
||||||
|
EmfPlusRecordTotal,
|
||||||
|
EmfPlusRecordTypeMax = EmfPlusRecordTotal-1,
|
||||||
|
EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader
|
||||||
|
} EmfPlusRecordType;
|
||||||
|
|
||||||
|
typedef enum EmfToWmfBitsFlags {
|
||||||
|
EmfToWmfBitsFlagsDefault = 0,
|
||||||
|
EmfToWmfBitsFlagsEmbedEmf = 1,
|
||||||
|
EmfToWmfBitsFlagsIncludePlaceable = 2,
|
||||||
|
EmfToWmfBitsFlagsNoXORClip = 4
|
||||||
|
} EmfToWmfBitsFlags;
|
||||||
|
|
||||||
|
typedef enum EmfType {
|
||||||
|
EmfTypeEmfOnly = 3,
|
||||||
|
EmfTypeEmfPlusOnly = 4,
|
||||||
|
EmfTypeEmfPlusDual = 5
|
||||||
|
} EmfType;
|
||||||
|
|
||||||
|
typedef enum EncoderParameterValueType {
|
||||||
|
EncoderParameterValueTypeByte = 1,
|
||||||
|
EncoderParameterValueTypeASCII = 2,
|
||||||
|
EncoderParameterValueTypeShort = 3,
|
||||||
|
EncoderParameterValueTypeLong = 4,
|
||||||
|
EncoderParameterValueTypeRational = 5,
|
||||||
|
EncoderParameterValueTypeLongRange = 6,
|
||||||
|
EncoderParameterValueTypeUndefined = 7,
|
||||||
|
EncoderParameterValueTypeRationalRange = 8,
|
||||||
|
EncoderParameterValueTypePointer = 9
|
||||||
|
} EncoderParameterValueType;
|
||||||
|
|
||||||
|
typedef enum EncoderValue {
|
||||||
|
EncoderValueColorTypeCMYK = 0,
|
||||||
|
EncoderValueColorTypeYCCK = 1,
|
||||||
|
EncoderValueCompressionLZW = 2,
|
||||||
|
EncoderValueCompressionCCITT3 = 3,
|
||||||
|
EncoderValueCompressionCCITT4 = 4,
|
||||||
|
EncoderValueCompressionRle = 5,
|
||||||
|
EncoderValueCompressionNone = 6,
|
||||||
|
EncoderValueScanMethodInterlaced = 7,
|
||||||
|
EncoderValueScanMethodNonInterlaced = 8,
|
||||||
|
EncoderValueVersionGif87 = 9,
|
||||||
|
EncoderValueVersionGif89 = 10,
|
||||||
|
EncoderValueRenderProgressive = 11,
|
||||||
|
EncoderValueRenderNonProgressive = 12,
|
||||||
|
EncoderValueTransformRotate90 = 13,
|
||||||
|
EncoderValueTransformRotate180 = 14,
|
||||||
|
EncoderValueTransformRotate270 = 15,
|
||||||
|
EncoderValueTransformFlipHorizontal = 16,
|
||||||
|
EncoderValueTransformFlipVertical = 17,
|
||||||
|
EncoderValueMultiFrame = 18,
|
||||||
|
EncoderValueLastFrame = 19,
|
||||||
|
EncoderValueFlush = 20,
|
||||||
|
EncoderValueFrameDimensionTime = 21,
|
||||||
|
EncoderValueFrameDimensionResolution = 22,
|
||||||
|
EncoderValueFrameDimensionPage = 23
|
||||||
|
} EncoderValue;
|
||||||
|
|
||||||
|
typedef enum FillMode {
|
||||||
|
FillModeAlternate = 0,
|
||||||
|
FillModeWinding = 1
|
||||||
|
} FillMode;
|
||||||
|
|
||||||
|
typedef enum FlushIntention {
|
||||||
|
FlushIntentionFlush = 0,
|
||||||
|
FlushIntentionSync = 1
|
||||||
|
} FlushIntention;
|
||||||
|
|
||||||
|
typedef enum FontStyle {
|
||||||
|
FontStyleRegular = 0,
|
||||||
|
FontStyleBold = 1,
|
||||||
|
FontStyleItalic = 2,
|
||||||
|
FontStyleBoldItalic = 3,
|
||||||
|
FontStyleUnderline = 4,
|
||||||
|
FontStyleStrikeout = 8
|
||||||
|
} FontStyle;
|
||||||
|
|
||||||
|
typedef enum HatchStyle {
|
||||||
|
HatchStyleHorizontal = 0,
|
||||||
|
HatchStyleVertical = 1,
|
||||||
|
HatchStyleForwardDiagonal = 2,
|
||||||
|
HatchStyleBackwardDiagonal = 3,
|
||||||
|
HatchStyleCross = 4,
|
||||||
|
HatchStyleLargeGrid = 4,
|
||||||
|
HatchStyleDiagonalCross = 5,
|
||||||
|
HatchStyle05Percent = 6,
|
||||||
|
HatchStyle10Percent = 7,
|
||||||
|
HatchStyle20Percent = 8,
|
||||||
|
HatchStyle25Percent = 9,
|
||||||
|
HatchStyle30Percent = 10,
|
||||||
|
HatchStyle40Percent = 11,
|
||||||
|
HatchStyle50Percent = 12,
|
||||||
|
HatchStyle60Percent = 13,
|
||||||
|
HatchStyle70Percent = 14,
|
||||||
|
HatchStyle75Percent = 15,
|
||||||
|
HatchStyle80Percent = 16,
|
||||||
|
HatchStyle90Percent = 17,
|
||||||
|
HatchStyleLightDownwardDiagonal = 18,
|
||||||
|
HatchStyleLightUpwardDiagonal = 19,
|
||||||
|
HatchStyleDarkDownwardDiagonal = 20,
|
||||||
|
HatchStyleDarkUpwardDiagonal = 21,
|
||||||
|
HatchStyleWideDownwardDiagonal = 22,
|
||||||
|
HatchStyleWideUpwardDiagonal = 23,
|
||||||
|
HatchStyleLightVertical = 24,
|
||||||
|
HatchStyleLightHorizontal = 25,
|
||||||
|
HatchStyleNarrowVertical = 26,
|
||||||
|
HatchStyleNarrowHorizontal = 27,
|
||||||
|
HatchStyleDarkVertical = 28,
|
||||||
|
HatchStyleDarkHorizontal = 29,
|
||||||
|
HatchStyleDashedDownwardDiagonal = 30,
|
||||||
|
HatchStyleDashedUpwardDiagonal = 31,
|
||||||
|
HatchStyleDashedHorizontal = 32,
|
||||||
|
HatchStyleDashedVertical = 33,
|
||||||
|
HatchStyleSmallConfetti = 34,
|
||||||
|
HatchStyleLargeConfetti = 35,
|
||||||
|
HatchStyleZigZag = 36,
|
||||||
|
HatchStyleWave = 37,
|
||||||
|
HatchStyleDiagonalBrick = 38,
|
||||||
|
HatchStyleHorizontalBrick = 39,
|
||||||
|
HatchStyleWeave = 40,
|
||||||
|
HatchStylePlaid = 41,
|
||||||
|
HatchStyleDivot = 42,
|
||||||
|
HatchStyleDottedGrid = 43,
|
||||||
|
HatchStyleDottedDiamond = 44,
|
||||||
|
HatchStyleShingle = 45,
|
||||||
|
HatchStyleTrellis = 46,
|
||||||
|
HatchStyleSphere = 47,
|
||||||
|
HatchStyleSmallGrid = 48,
|
||||||
|
HatchStyleSmallCheckerBoard = 49,
|
||||||
|
HatchStyleLargeCheckerBoard = 50,
|
||||||
|
HatchStyleOutlinedDiamond = 51,
|
||||||
|
HatchStyleSolidDiamond = 52,
|
||||||
|
HatchStyleTotal = 53,
|
||||||
|
HatchStyleMin = HatchStyleHorizontal,
|
||||||
|
HatchStyleMax = HatchStyleTotal - 1
|
||||||
|
} HatchStyle;
|
||||||
|
|
||||||
|
typedef enum HotkeyPrefix {
|
||||||
|
HotkeyPrefixNone = 0,
|
||||||
|
HotkeyPrefixShow = 1,
|
||||||
|
HotkeyPrefixHide = 2
|
||||||
|
} HotkeyPrefix;
|
||||||
|
|
||||||
|
typedef enum ImageType {
|
||||||
|
ImageTypeUnknown = 0,
|
||||||
|
ImageTypeBitmap = 1,
|
||||||
|
ImageTypeMetafile = 2
|
||||||
|
} ImageType;
|
||||||
|
|
||||||
|
/* TODO: InterpolationMode */
|
||||||
|
typedef enum InterpolationMode {
|
||||||
|
/*InterpolationModeInvalid = QualityModeInvalid,*/
|
||||||
|
InterpolationModeDefault = 0,
|
||||||
|
InterpolationModeLowQuality = 1,
|
||||||
|
InterpolationModeHighQuality = 2,
|
||||||
|
InterpolationModeBilinear = 3,
|
||||||
|
InterpolationModeBicubic = 4,
|
||||||
|
InterpolationModeNearestNeighbor = 5,
|
||||||
|
InterpolationModeHighQualityBilinear = 6,
|
||||||
|
InterpolationModeHighQualityBicubic = 7
|
||||||
|
} InterpolationMode;
|
||||||
|
|
||||||
|
typedef enum LinearGradientMode {
|
||||||
|
LinearGradientModeHorizontal = 0,
|
||||||
|
LinearGradientModeVertical = 1,
|
||||||
|
LinearGradientModeForwardDiagonal = 2,
|
||||||
|
LinearGradientModeBackwardDiagonal = 3
|
||||||
|
} LinearGradientMode;
|
||||||
|
|
||||||
|
typedef enum LineCap {
|
||||||
|
LineCapFlat = 0,
|
||||||
|
LineCapSquare = 1,
|
||||||
|
LineCapRound = 2,
|
||||||
|
LineCapTriangle = 3,
|
||||||
|
LineCapNoAnchor = 16,
|
||||||
|
LineCapSquareAnchor = 17,
|
||||||
|
LineCapRoundAnchor = 18,
|
||||||
|
LineCapDiamondAnchor = 19,
|
||||||
|
LineCapArrowAnchor = 20,
|
||||||
|
LineCapCustom = 255
|
||||||
|
} LineCap;
|
||||||
|
|
||||||
|
typedef enum LineJoin {
|
||||||
|
LineJoinMiter = 0,
|
||||||
|
LineJoinBevel = 1,
|
||||||
|
LineJoinRound = 2,
|
||||||
|
LineJoinMiterClipped = 3
|
||||||
|
} LineJoin;
|
||||||
|
|
||||||
|
typedef enum MatrixOrder {
|
||||||
|
MatrixOrderPrepend = 0,
|
||||||
|
MatrixOrderAppend = 1
|
||||||
|
} MatrixOrder;
|
||||||
|
|
||||||
|
typedef enum MetafileFrameUnit {
|
||||||
|
MetafileFrameUnitPixel = 2,
|
||||||
|
MetafileFrameUnitPoint = 3,
|
||||||
|
MetafileFrameUnitInch = 4,
|
||||||
|
MetafileFrameUnitDocument = 5,
|
||||||
|
MetafileFrameUnitMillimeter = 6,
|
||||||
|
MetafileFrameUnitGdi = 7
|
||||||
|
} MetafileFrameUnit;
|
||||||
|
|
||||||
|
typedef enum MetafileType {
|
||||||
|
MetafileTypeInvalid = 0,
|
||||||
|
MetafileTypeWmf = 1,
|
||||||
|
MetafileTypeWmfPlaceable = 2,
|
||||||
|
MetafileTypeEmf = 3,
|
||||||
|
MetafileTypeEmfPlusOnly = 4,
|
||||||
|
MetafileTypeEmfPlusDual = 5
|
||||||
|
} MetafileType;
|
||||||
|
|
||||||
|
typedef enum ObjectType {
|
||||||
|
ObjectTypeInvalid = 0,
|
||||||
|
ObjectTypeBrush = 1,
|
||||||
|
ObjectTypePen = 2,
|
||||||
|
ObjectTypePath = 3,
|
||||||
|
ObjectTypeRegion = 4,
|
||||||
|
ObjectTypeFont = 5,
|
||||||
|
ObjectTypeStringFormat = 6,
|
||||||
|
ObjectTypeImageAttributes = 7,
|
||||||
|
ObjectTypeCustomLineCap = 8,
|
||||||
|
ObjectTypeGraphics = 9,
|
||||||
|
ObjectTypeMin = ObjectTypeBrush,
|
||||||
|
ObjectTypeMax = ObjectTypeGraphics
|
||||||
|
} ObjectType;
|
||||||
|
|
||||||
|
typedef enum PathPointType {
|
||||||
|
PathPointTypeStart = 0x00,
|
||||||
|
PathPointTypeLine = 0x01,
|
||||||
|
PathPointTypeBezier = 0x03,
|
||||||
|
PathPointTypeBezier3 = 0x03,
|
||||||
|
PathPointTypePathTypeMask = 0x07,
|
||||||
|
PathPointTypePathDashMode = 0x10,
|
||||||
|
PathPointTypePathMarker = 0x20,
|
||||||
|
PathPointTypeCloseSubpath = 0x80
|
||||||
|
} PathPointType;
|
||||||
|
|
||||||
|
typedef enum PenAlignment {
|
||||||
|
PenAlignmentCenter = 0,
|
||||||
|
PenAlignmentInset = 1
|
||||||
|
} PenAlignment;
|
||||||
|
|
||||||
|
typedef enum PenType {
|
||||||
|
PenTypeUnknown = -1,
|
||||||
|
PenTypeSolidColor = 0,
|
||||||
|
PenTypeHatchFill = 1,
|
||||||
|
PenTypeTextureFill = 2,
|
||||||
|
PenTypePathGradient = 3,
|
||||||
|
PenTypeLinearGradient = 4
|
||||||
|
} PenType;
|
||||||
|
|
||||||
|
/* TODO: PixelOffsetMode */
|
||||||
|
typedef enum PixelOffsetMode {
|
||||||
|
/*PixelOffsetModeInvalid = QualityModeInvalid,*/
|
||||||
|
PixelOffsetModeDefault = 0,
|
||||||
|
PixelOffsetModeHighSpeed = 1,
|
||||||
|
PixelOffsetModeHighQuality = 2,
|
||||||
|
PixelOffsetModeNone = 3,
|
||||||
|
PixelOffsetModeHalf = 4
|
||||||
|
} PixelOffsetMode;
|
||||||
|
|
||||||
|
/* TODO: QualityMode */
|
||||||
|
typedef enum QualityMode {
|
||||||
|
/*QualityModeInvalid = ?,*/
|
||||||
|
QualityModeDefault = 0,
|
||||||
|
QualityModeLow = 1,
|
||||||
|
QualityModeHigh = 2
|
||||||
|
} QualityMode;
|
||||||
|
|
||||||
|
/* TODO: SmoothingMode */
|
||||||
|
typedef enum SmoothingMode {
|
||||||
|
/*SmoothingModeInvalid = QualityModeInvalid,*/
|
||||||
|
SmoothingModeDefault = 0,
|
||||||
|
SmoothingModeHighSpeed = 1,
|
||||||
|
SmoothingModeHighQuality = 2,
|
||||||
|
SmoothingModeNone = 3,
|
||||||
|
SmoothingModeAntiAlias8x4 = 4,
|
||||||
|
SmoothingModeAntiAlias = 4,
|
||||||
|
SmoothingModeAntiAlias8x8 = 5
|
||||||
|
} SmoothingMode;
|
||||||
|
|
||||||
|
typedef enum StringAlignment {
|
||||||
|
StringAlignmentNear = 0,
|
||||||
|
StringAlignmentCenter = 1,
|
||||||
|
StringAlignmentFar = 2
|
||||||
|
} StringAlignment;
|
||||||
|
|
||||||
|
typedef enum StringDigitSubstitute {
|
||||||
|
StringDigitSubstituteUser = 0,
|
||||||
|
StringDigitSubstituteNone = 1,
|
||||||
|
StringDigitSubstituteNational = 2,
|
||||||
|
StringDigitSubstituteTraditional = 3
|
||||||
|
} StringDigitSubstitute;
|
||||||
|
|
||||||
|
typedef enum StringFormatFlags {
|
||||||
|
StringFormatFlagsDirectionRightToLeft = 0x00000001,
|
||||||
|
StringFormatFlagsDirectionVertical = 0x00000002,
|
||||||
|
StringFormatFlagsNoFitBlackBox = 0x00000004,
|
||||||
|
StringFormatFlagsDisplayFormatControl = 0x00000020,
|
||||||
|
StringFormatFlagsNoFontFallback = 0x00000400,
|
||||||
|
StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
|
||||||
|
StringFormatFlagsNoWrap = 0x00001000,
|
||||||
|
StringFormatFlagsLineLimit = 0x00002000,
|
||||||
|
StringFormatFlagsNoClip = 0x00004000
|
||||||
|
} StringFormatFlags;
|
||||||
|
|
||||||
|
typedef enum StringTrimming {
|
||||||
|
StringTrimmingNone = 0,
|
||||||
|
StringTrimmingCharacter = 1,
|
||||||
|
StringTrimmingWord = 2,
|
||||||
|
StringTrimmingEllipsisCharacter = 3,
|
||||||
|
StringTrimmingEllipsisWord = 4,
|
||||||
|
StringTrimmingEllipsisPath = 5
|
||||||
|
} StringTrimming;
|
||||||
|
|
||||||
|
typedef enum TextRenderingHint {
|
||||||
|
TextRenderingHintSystemDefault = 0,
|
||||||
|
TextRenderingHintSingleBitPerPixelGridFit = 1,
|
||||||
|
TextRenderingHintSingleBitPerPixel = 2,
|
||||||
|
TextRenderingHintAntiAliasGridFit = 3,
|
||||||
|
TextRenderingHintAntiAlias = 4,
|
||||||
|
TextRenderingHintClearTypeGridFit = 5
|
||||||
|
} TextRenderingHint;
|
||||||
|
|
||||||
|
typedef enum Unit {
|
||||||
|
UnitWorld = 0,
|
||||||
|
UnitDisplay = 1,
|
||||||
|
UnitPixel = 2,
|
||||||
|
UnitPoint = 3,
|
||||||
|
UnitInch = 4,
|
||||||
|
UnitDocument = 5,
|
||||||
|
UnitMillimeter = 6
|
||||||
|
} Unit;
|
||||||
|
|
||||||
|
typedef enum WarpMode {
|
||||||
|
WarpModePerspective = 0,
|
||||||
|
WarpModeBilinear = 1
|
||||||
|
} WarpMode;
|
||||||
|
|
||||||
|
typedef enum WrapMode {
|
||||||
|
WrapModeTile = 0,
|
||||||
|
WrapModeTileFlipX = 1,
|
||||||
|
WrapModeTileFlipY = 2,
|
||||||
|
WrapModeTileFlipXY = 3,
|
||||||
|
WrapModeClamp = 4
|
||||||
|
} WrapMode;
|
||||||
|
|
||||||
|
typedef enum GpTestControlEnum {
|
||||||
|
TestControlForceBilinear = 0,
|
||||||
|
TestControlForceNoICM = 1,
|
||||||
|
TestControlGetBuildNumber = 2
|
||||||
|
} GpTestControlEnum;
|
||||||
|
|
||||||
|
/* Opaque handles to information blocks on an internal GDI+ stack. */
|
||||||
|
typedef DWORD GraphicsContainer;
|
||||||
|
typedef DWORD GraphicsState;
|
||||||
|
|
||||||
|
/* Default flatness for GraphicsPath methods Flatten, Outline, Warp, Widen */
|
||||||
|
/* FIXME: Is FlatnessDefault = 0.25f correct? */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
const REAL FlatnessDefault = 0.25f;
|
||||||
|
#else
|
||||||
|
#define FlatnessDefault ((REAL) 0.25f)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static __inline__ BOOL ObjectTypeIsValid(ObjectType type)
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case ObjectTypeBrush:
|
||||||
|
case ObjectTypePen:
|
||||||
|
case ObjectTypePath:
|
||||||
|
case ObjectTypeRegion:
|
||||||
|
case ObjectTypeFont:
|
||||||
|
case ObjectTypeStringFormat:
|
||||||
|
case ObjectTypeImageAttributes:
|
||||||
|
case ObjectTypeCustomLineCap:
|
||||||
|
case ObjectTypeGraphics:
|
||||||
|
return TRUE;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_ENUMS_H */
|
722
winsup/w32api/include/gdiplus/gdiplusflat.h
Executable file
722
winsup/w32api/include/gdiplus/gdiplusflat.h
Executable file
@ -0,0 +1,722 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusflat.h
|
||||||
|
*
|
||||||
|
* GDI+ Flat API
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_FLAT_H
|
||||||
|
#define __GDIPLUS_FLAT_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
namespace DllExports {
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* AdjustableArrowCap functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateAdjustableArrowCap(REAL,REAL,BOOL,GpAdjustableArrowCap**);
|
||||||
|
GpStatus WINGDIPAPI GdipSetAdjustableArrowCapHeight(GpAdjustableArrowCap*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetAdjustableArrowCapHeight(GpAdjustableArrowCap*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL*);
|
||||||
|
|
||||||
|
/* Bitmap functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromFileICM(GDIPCONST WCHAR*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT,INT,INT,PixelFormat,BYTE*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT,INT,GpGraphics*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO*,VOID*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP,HPALETTE,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateHBITMAPFromBitmap(GpBitmap*,HBITMAP*,ARGB);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap*,HICON*);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateBitmapFromResource(HINSTANCE,GDIPCONST WCHAR*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL,REAL,REAL,REAL,PixelFormat,GpBitmap*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipCloneBitmapAreaI(INT,INT,INT,INT,PixelFormat,GpBitmap*,GpBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap*,GDIPCONST GpRect*,UINT,PixelFormat,BitmapData*);
|
||||||
|
GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap*,BitmapData*);
|
||||||
|
GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap*,INT,INT,ARGB*);
|
||||||
|
GpStatus WINGDIPAPI GdipBitmapSetPixel(GpBitmap*,INT,INT,ARGB);
|
||||||
|
GpStatus WINGDIPAPI GdipBitmapSetResolution(GpBitmap*,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipBitmapConvertFormat(GpBitmap*,PixelFormat,DitherType,PaletteType,ColorPalette*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipInitializePalette(ColorPalette*,PaletteType,INT,BOOL,GpBitmap*);
|
||||||
|
GpStatus WINGDIPAPI GdipBitmapApplyEffect(GpBitmap*,CGpEffect*,RECT*,BOOL,VOID**,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipBitmapCreateApplyEffect(GpBitmap**,INT,CGpEffect*,RECT*,RECT*,GpBitmap**,BOOL,VOID**,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipBitmapGetHistogram(GpBitmap*,HistogramFormat,UINT,UINT*,UINT*,UINT*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipBitmapGetHistogramSize(HistogramFormat,UINT*);
|
||||||
|
|
||||||
|
/* Brush functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCloneBrush(GpBrush*,GpBrush**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetBrushType(GpBrush*,GpBrushType*);
|
||||||
|
|
||||||
|
/* CachedBitmap functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateCachedBitmap(GpBitmap*,GpGraphics*,GpCachedBitmap**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeleteCachedBitmap(GpCachedBitmap*);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawCachedBitmap(GpGraphics*,GpCachedBitmap*,INT,INT);
|
||||||
|
|
||||||
|
/* CustomLineCap functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateCustomLineCap(GpPath*,GpPath*,GpLineCap,REAL,GpCustomLineCap**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeleteCustomLineCap(GpCustomLineCap*);
|
||||||
|
GpStatus WINGDIPAPI GdipCloneCustomLineCap(GpCustomLineCap*,GpCustomLineCap**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetCustomLineCapType(GpCustomLineCap*,CustomLineCapType*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeCaps(GpCustomLineCap*,GpLineCap,GpLineCap);
|
||||||
|
GpStatus WINGDIPAPI GdipGetCustomLineCapStrokeCaps(GpCustomLineCap*,GpLineCap*,GpLineCap*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin);
|
||||||
|
GpStatus WINGDIPAPI GdipGetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap);
|
||||||
|
GpStatus WINGDIPAPI GdipGetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetCustomLineCapBaseInset(GpCustomLineCap*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetCustomLineCapBaseInset(GpCustomLineCap*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetCustomLineCapWidthScale(GpCustomLineCap*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetCustomLineCapWidthScale(GpCustomLineCap*,REAL*);
|
||||||
|
|
||||||
|
/* Effect functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateEffect(GDIPCONST GUID,CGpEffect**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeleteEffect(CGpEffect*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetEffectParameterSize(CGpEffect*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetEffectParameters(CGpEffect*,GDIPCONST VOID*,UINT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetEffectParameters(CGpEffect*,UINT*,VOID*);
|
||||||
|
|
||||||
|
/* Font functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateFontFromDC(HDC,GpFont**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateFontFromLogfontA(HDC,GDIPCONST LOGFONTA*,GpFont**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateFontFromLogfontW(HDC,GDIPCONST LOGFONTW*,GpFont**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily*,REAL,INT,Unit,GpFont**);
|
||||||
|
GpStatus WINGDIPAPI GdipCloneFont(GpFont*,GpFont**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeleteFont(GpFont*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetFamily(GpFont*,GpFontFamily**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetFontStyle(GpFont*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetFontSize(GpFont*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetFontUnit(GpFont*,Unit*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetFontHeight(GDIPCONST GpFont*,GDIPCONST GpGraphics*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetFontHeightGivenDPI(GDIPCONST GpFont*,REAL,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLogFontA(GpFont*,GpGraphics*,LOGFONTA*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLogFontW(GpFont*,GpGraphics*,LOGFONTW*);
|
||||||
|
GpStatus WINGDIPAPI GdipNewInstalledFontCollection(GpFontCollection**);
|
||||||
|
GpStatus WINGDIPAPI GdipNewPrivateFontCollection(GpFontCollection**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeletePrivateFontCollection(GpFontCollection**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetFontCollectionFamilyCount(GpFontCollection*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetFontCollectionFamilyList(GpFontCollection*,INT,GpFontFamily**,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipPrivateAddFontFile(GpFontCollection*,GDIPCONST WCHAR*);
|
||||||
|
GpStatus WINGDIPAPI GdipPrivateAddMemoryFont(GpFontCollection*,GDIPCONST void*,INT);
|
||||||
|
|
||||||
|
/* FontFamily functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR*,GpFontCollection*,GpFontFamily**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily*);
|
||||||
|
GpStatus WINGDIPAPI GdipCloneFontFamily(GpFontFamily*,GpFontFamily**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetGenericFontFamilySansSerif(GpFontFamily**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetGenericFontFamilySerif(GpFontFamily**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetGenericFontFamilyMonospace(GpFontFamily**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetFamilyName(GDIPCONST GpFontFamily*,WCHAR[LF_FACESIZE],LANGID);
|
||||||
|
GpStatus WINGDIPAPI GdipIsStyleAvailable(GDIPCONST GpFontFamily*,INT,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipFontCollectionEnumerable(GpFontCollection*,GpGraphics*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipFontCollectionEnumerate(GpFontCollection*,INT,GpFontFamily**,INT*,GpGraphics*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetEmHeight(GDIPCONST GpFontFamily*,INT,UINT16*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetCellAscent(GDIPCONST GpFontFamily*,INT,UINT16*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetCellDescent(GDIPCONST GpFontFamily*,INT,UINT16*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLineSpacing(GDIPCONST GpFontFamily*,INT,UINT16*);
|
||||||
|
|
||||||
|
/* Graphics functions */
|
||||||
|
GpStatus WINGDIPAPI GdipFlush(GpGraphics*,GpFlushIntention);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateFromHDC(HDC,GpGraphics**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateFromHDC2(HDC,HANDLE,GpGraphics**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateFromHWND(HWND,GpGraphics**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateFromHWNDICM(HWND,GpGraphics**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetDC(GpGraphics*,HDC*);
|
||||||
|
GpStatus WINGDIPAPI GdipReleaseDC(GpGraphics*,HDC);
|
||||||
|
GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics*,CompositingMode);
|
||||||
|
GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics*,CompositingMode*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetRenderingOrigin(GpGraphics*,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetRenderingOrigin(GpGraphics*,INT*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics*,CompositingQuality);
|
||||||
|
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics*,SmoothingMode);
|
||||||
|
GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics*,SmoothingMode*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics*,PixelOffsetMode);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics*,PixelOffsetMode*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetTextRenderingHint(GpGraphics*,TextRenderingHint);
|
||||||
|
GpStatus WINGDIPAPI GdipGetTextRenderingHint(GpGraphics*,TextRenderingHint*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetTextContrast(GpGraphics*,UINT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetTextContrast(GpGraphics*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics*,InterpolationMode);
|
||||||
|
GpStatus WINGDIPAPI GdipGraphicsSetAbort(GpGraphics*,GdiplusAbort*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetWorldTransform(GpGraphics*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipResetWorldTransform(GpGraphics*);
|
||||||
|
GpStatus WINGDIPAPI GdipMultiplyWorldTransform(GpGraphics*,GDIPCONST GpMatrix*,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipRotateWorldTransform(GpGraphics*,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipResetPageTransform(GpGraphics*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPageUnit(GpGraphics*,GpUnit*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPageScale(GpGraphics*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics*,GpUnit);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetDpiX(GpGraphics*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetDpiY(GpGraphics*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipTransformPoints(GpGraphics*,GpCoordinateSpace,GpCoordinateSpace,GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipTransformPointsI(GpGraphics*,GpCoordinateSpace,GpCoordinateSpace,GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetNearestColor(GpGraphics*,ARGB*);
|
||||||
|
HPALETTE WINGDIPAPI GdipCreateHalftonePalette(void);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawLine(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics*,GpPen*,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawLines(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawArc(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawArcI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawBezierI(GpGraphics*,GpPen*,INT,INT,INT,INT,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawBeziers(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawBeziersI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawRectangle(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics*,GpPen*,GDIPCONST GpRectF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawRectanglesI(GpGraphics*,GpPen*,GDIPCONST GpRect*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawEllipse(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawEllipseI(GpGraphics*,GpPen*,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawPieI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawPolygon(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawPolygonI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawPath(GpGraphics*,GpPen*,GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawCurve(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawCurveI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawCurve2I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawCurve3(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,INT,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawCurve3I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,INT,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawClosedCurve(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawClosedCurveI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawClosedCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawClosedCurve2I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGraphicsClear(GpGraphics*,ARGB);
|
||||||
|
GpStatus WINGDIPAPI GdipFillRectangle(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics*,GpBrush*,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics*,GpBrush*,GDIPCONST GpRectF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics*,GpBrush*,GDIPCONST GpRect*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipFillPolygon(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT,GpFillMode);
|
||||||
|
GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,GpFillMode);
|
||||||
|
GpStatus WINGDIPAPI GdipFillPolygon2(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipFillPolygon2I(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipFillEllipse(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipFillEllipseI(GpGraphics*,GpBrush*,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipFillPieI(GpGraphics*,GpBrush*,INT,INT,INT,INT,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipFillPath(GpGraphics*,GpBrush*,GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipFillClosedCurve(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipFillClosedCurveI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipFillClosedCurve2(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT,REAL,GpFillMode);
|
||||||
|
GpStatus WINGDIPAPI GdipFillClosedCurve2I(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,REAL,GpFillMode);
|
||||||
|
GpStatus WINGDIPAPI GdipFillRegion(GpGraphics*,GpBrush*,GpRegion*);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImage(GpGraphics*,GpImage*,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImageI(GpGraphics*,GpImage*,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImageRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImageRectI(GpGraphics*,GpImage*,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImagePoints(GpGraphics*,GpImage*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImagePointsI(GpGraphics*,GpImage*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImagePointRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL,REAL,REAL,GpUnit);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImagePointRectI(GpGraphics*,GpImage*,INT,INT,INT,INT,INT,INT,GpUnit);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImageRectRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImageRectRectI(GpGraphics*,GpImage*,INT,INT,INT,INT,INT,INT,INT,INT,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics*,GpImage*,GDIPCONST GpPointF*,INT,REAL,REAL,REAL,REAL,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImagePointsRectI(GpGraphics*,GpImage*,GDIPCONST GpPoint*,INT,INT,INT,INT,INT,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawImageFX(GpGraphics*,GpImage*,GpRectF*,GpMatrix*,CGpEffect*,GpImageAttributes*,GpUnit);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoint(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileDestRect(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST RectF&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileDestRectI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Rect&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
#endif
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoints(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF*,INT,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointsI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point*,INT,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPoint(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF&,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPointI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point&,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestRect(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST RectF&,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestRectI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Rect&,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPoints(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF*,INT,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPointsI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point*,INT,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*);
|
||||||
|
#endif
|
||||||
|
GpStatus WINGDIPAPI GdipSetClipGraphics(GpGraphics*,GpGraphics*,CombineMode);
|
||||||
|
GpStatus WINGDIPAPI GdipSetClipRect(GpGraphics*,REAL,REAL,REAL,REAL,CombineMode);
|
||||||
|
GpStatus WINGDIPAPI GdipSetClipRectI(GpGraphics*,INT,INT,INT,INT,CombineMode);
|
||||||
|
GpStatus WINGDIPAPI GdipSetClipPath(GpGraphics*,GpPath*,CombineMode);
|
||||||
|
GpStatus WINGDIPAPI GdipSetClipRegion(GpGraphics*,GpRegion*,CombineMode);
|
||||||
|
GpStatus WINGDIPAPI GdipSetClipHrgn(GpGraphics*,HRGN,CombineMode);
|
||||||
|
GpStatus WINGDIPAPI GdipResetClip(GpGraphics*);
|
||||||
|
GpStatus WINGDIPAPI GdipTranslateClip(GpGraphics*,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipTranslateClipI(GpGraphics*,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetClip(GpGraphics*,GpRegion*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetClipBounds(GpGraphics*,GpRectF*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetClipBoundsI(GpGraphics*,GpRect*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsClipEmpty(GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetVisibleClipBounds(GpGraphics*,GpRectF*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetVisibleClipBoundsI(GpGraphics*,GpRect*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisibleClipEmpty(GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisiblePoint(GpGraphics*,REAL,REAL,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisiblePointI(GpGraphics*,INT,INT,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisibleRect(GpGraphics*,REAL,REAL,REAL,REAL,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisibleRectI(GpGraphics*,INT,INT,INT,INT,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics*,GraphicsState*);
|
||||||
|
GpStatus WINGDIPAPI GdipRestoreGraphics(GpGraphics*,GraphicsState);
|
||||||
|
GpStatus WINGDIPAPI GdipBeginContainer(GpGraphics*,GDIPCONST GpRectF*,GDIPCONST GpRectF*,GpUnit,GraphicsContainer*);
|
||||||
|
GpStatus WINGDIPAPI GdipBeginContainerI(GpGraphics*,GDIPCONST GpRect*,GDIPCONST GpRect*,GpUnit,GraphicsContainer*);
|
||||||
|
GpStatus WINGDIPAPI GdipBeginContainer2(GpGraphics*,GraphicsContainer*);
|
||||||
|
GpStatus WINGDIPAPI GdipEndContainer(GpGraphics*,GraphicsContainer);
|
||||||
|
GpStatus WINGDIPAPI GdipComment(GpGraphics*,UINT,GDIPCONST BYTE*);
|
||||||
|
|
||||||
|
/* GraphicsPath functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreatePath(GpFillMode,GpPath**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreatePath2(GDIPCONST GpPointF*,GDIPCONST BYTE*,INT,GpFillMode,GpPath**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreatePath2I(GDIPCONST GpPoint*,GDIPCONST BYTE*,INT,GpFillMode,GpPath**);
|
||||||
|
GpStatus WINGDIPAPI GdipClonePath(GpPath*,GpPath**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeletePath(GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipResetPath(GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPointCount(GpPath*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathTypes(GpPath*,BYTE*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathPoints(GpPath*,GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathPointsI(GpPath*,GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathFillMode(GpPath*,GpFillMode*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathFillMode(GpPath*,GpFillMode);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathData(GpPath*,GpPathData*);
|
||||||
|
GpStatus WINGDIPAPI GdipStartPathFigure(GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipClosePathFigure(GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipClosePathFigures(GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathMarker(GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipClearPathMarkers(GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipReversePath(GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathLastPoint(GpPath*,GpPointF*);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathLine(GpPath*,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathLine2(GpPath*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathArc(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathBezier(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathBeziers(GpPath*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathCurve(GpPath*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathCurve2(GpPath*,GDIPCONST GpPointF*,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathCurve3(GpPath*,GDIPCONST GpPointF*,INT,INT,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathClosedCurve(GpPath*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathClosedCurve2(GpPath*,GDIPCONST GpPointF*,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathRectangle(GpPath*,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathRectangles(GpPath*,GDIPCONST GpRectF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath*,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathPie(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathPolygon(GpPath*,GDIPCONST GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathPath(GpPath*,GDIPCONST GpPath*,BOOL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathString(GpPath*,GDIPCONST WCHAR*,INT,GDIPCONST GpFontFamily*,INT,REAL,GDIPCONST RectF*,GDIPCONST GpStringFormat*);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathStringI(GpPath*,GDIPCONST WCHAR*,INT,GDIPCONST GpFontFamily*,INT,REAL,GDIPCONST Rect*,GDIPCONST GpStringFormat*);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathLineI(GpPath*,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathLine2I(GpPath*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathArcI(GpPath*,INT,INT,INT,INT,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathBezierI(GpPath*,INT,INT,INT,INT,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathBeziersI(GpPath*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathCurveI(GpPath*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathCurve2I(GpPath*,GDIPCONST GpPoint*,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathCurve3I(GpPath*,GDIPCONST GpPoint*,INT,INT,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathClosedCurveI(GpPath*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathClosedCurve2I(GpPath*,GDIPCONST GpPoint*,INT,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathRectangleI(GpPath*,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathRectanglesI(GpPath*,GDIPCONST GpRect*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathEllipseI(GpPath*,INT,INT,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathPieI(GpPath*,INT,INT,INT,INT,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipAddPathPolygonI(GpPath*,GDIPCONST GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipFlattenPath(GpPath*,GpMatrix*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipWindingModeOutline(GpPath*,GpMatrix*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipWidenPath(GpPath*,GpPen*,GpMatrix*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipWarpPath(GpPath*,GpMatrix*,GDIPCONST GpPointF*,INT,REAL,REAL,REAL,REAL,WarpMode,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipTransformPath(GpPath*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathWorldBounds(GpPath*,GpRectF*,GDIPCONST GpMatrix*,GDIPCONST GpPen*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathWorldBoundsI(GpPath*,GpRect*,GDIPCONST GpMatrix*,GDIPCONST GpPen*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisiblePathPoint(GpPath*,REAL,REAL,GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisiblePathPointI(GpPath*,INT,INT,GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPoint(GpPath*,REAL,REAL,GpPen*,GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPointI(GpPath*,INT,INT,GpPen*,GpGraphics*,BOOL*);
|
||||||
|
|
||||||
|
/* HatchBrush functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateHatchBrush(GpHatchStyle,ARGB,ARGB,GpHatch**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetHatchStyle(GpHatch*,GpHatchStyle*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetHatchForegroundColor(GpHatch*,ARGB*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetHatchBackgroundColor(GpHatch*,ARGB*);
|
||||||
|
|
||||||
|
/* Image functions */
|
||||||
|
GpStatus WINGDIPAPI GdipLoadImageFromStream(IStream*,GpImage**);
|
||||||
|
GpStatus WINGDIPAPI GdipLoadImageFromFile(GDIPCONST WCHAR*,GpImage**);
|
||||||
|
GpStatus WINGDIPAPI GdipLoadImageFromStreamICM(IStream*,GpImage**);
|
||||||
|
GpStatus WINGDIPAPI GdipLoadImageFromFileICM(GDIPCONST WCHAR*,GpImage**);
|
||||||
|
GpStatus WINGDIPAPI GdipCloneImage(GpImage*,GpImage**);
|
||||||
|
GpStatus WINGDIPAPI GdipDisposeImage(GpImage*);
|
||||||
|
GpStatus WINGDIPAPI GdipSaveImageToFile(GpImage*,GDIPCONST WCHAR*,GDIPCONST CLSID*,GDIPCONST EncoderParameters*);
|
||||||
|
GpStatus WINGDIPAPI GdipSaveImageToStream(GpImage*,IStream*,GDIPCONST CLSID*,GDIPCONST EncoderParameters*);
|
||||||
|
GpStatus WINGDIPAPI GdipSaveAdd(GpImage*,GDIPCONST EncoderParameters*);
|
||||||
|
GpStatus WINGDIPAPI GdipSaveAddImage(GpImage*,GpImage*,GDIPCONST EncoderParameters*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageGraphicsContext(GpImage*,GpGraphics**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageBounds(GpImage*,GpRectF*,GpUnit*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageDimension(GpImage*,REAL*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageType(GpImage*,ImageType*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageWidth(GpImage*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageHeight(GpImage*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageHorizontalResolution(GpImage*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageVerticalResolution(GpImage*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageFlags(GpImage*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageRawFormat(GpImage*,GUID*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImagePixelFormat(GpImage*,PixelFormat*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageThumbnail(GpImage*,UINT,UINT,GpImage**,GetThumbnailImageAbort,VOID*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetEncoderParameterListSize(GpImage*,GDIPCONST CLSID*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetEncoderParameterList(GpImage*,GDIPCONST CLSID*,UINT,EncoderParameters*);
|
||||||
|
GpStatus WINGDIPAPI GdipImageGetFrameDimensionsCount(GpImage*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipImageGetFrameDimensionsList(GpImage*,GUID*,UINT);
|
||||||
|
GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage*,GDIPCONST GUID*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipImageSelectActiveFrame(GpImage*,GDIPCONST GUID*,UINT);
|
||||||
|
GpStatus WINGDIPAPI GdipImageRotateFlip(GpImage*,RotateFlipType);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImagePalette(GpImage*,ColorPalette*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImagePalette(GpImage*,GDIPCONST ColorPalette*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImagePaletteSize(GpImage*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPropertyCount(GpImage*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPropertyIdList(GpImage*,UINT,PROPID*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPropertyItemSize(GpImage*,PROPID,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPropertyItem(GpImage*,PROPID,UINT,PropertyItem*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPropertySize(GpImage*,UINT*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetAllPropertyItems(GpImage*,UINT,UINT,PropertyItem*);
|
||||||
|
GpStatus WINGDIPAPI GdipRemovePropertyItem(GpImage*,PROPID);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPropertyItem(GpImage*,GDIPCONST PropertyItem*);
|
||||||
|
GpStatus WINGDIPAPI GdipFindFirstImageItem(GpImage*,ImageItemData*);
|
||||||
|
GpStatus WINGDIPAPI GdipFindNextImageItem(GpImage*,ImageItemData*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageItemData(GpImage*,ImageItemData*);
|
||||||
|
GpStatus WINGDIPAPI GdipImageSetAbort(GpImage*,GdiplusAbort*);
|
||||||
|
GpStatus WINGDIPAPI GdipImageForceValidation(GpImage*);
|
||||||
|
|
||||||
|
/* Image codec functions */
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageDecodersSize(UINT*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageDecoders(UINT,UINT,ImageCodecInfo*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageEncodersSize(UINT*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageEncoders(UINT,UINT,ImageCodecInfo*);
|
||||||
|
|
||||||
|
/* ImageAttributes functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateImageAttributes(GpImageAttributes**);
|
||||||
|
GpStatus WINGDIPAPI GdipCloneImageAttributes(GDIPCONST GpImageAttributes*,GpImageAttributes**);
|
||||||
|
GpStatus WINGDIPAPI GdipDisposeImageAttributes(GpImageAttributes*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesToIdentity(GpImageAttributes*,ColorAdjustType);
|
||||||
|
GpStatus WINGDIPAPI GdipResetImageAttributes(GpImageAttributes*,ColorAdjustType);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesColorMatrix(GpImageAttributes*,ColorAdjustType,BOOL,GDIPCONST ColorMatrix*,GDIPCONST ColorMatrix*,ColorMatrixFlags);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesThreshold(GpImageAttributes*,ColorAdjustType,BOOL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesGamma(GpImageAttributes*,ColorAdjustType,BOOL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesNoOp(GpImageAttributes*,ColorAdjustType,BOOL);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesColorKeys(GpImageAttributes*,ColorAdjustType,BOOL,ARGB,ARGB);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesOutputChannel(GpImageAttributes*,ColorAdjustType,BOOL,ColorChannelFlags);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesOutputChannelColorProfile(GpImageAttributes*,ColorAdjustType,BOOL,GDIPCONST WCHAR*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesRemapTable(GpImageAttributes*,ColorAdjustType,BOOL,UINT,GDIPCONST ColorMap*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesWrapMode(GpImageAttributes*,WrapMode,ARGB,BOOL);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesICMMode(GpImageAttributes*,BOOL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetImageAttributesAdjustedPalette(GpImageAttributes*,ColorPalette*,ColorAdjustType);
|
||||||
|
GpStatus WINGDIPAPI GdipSetImageAttributesCachedBackground(GpImageAttributes*,BOOL);
|
||||||
|
|
||||||
|
/* LinearGradientBrush functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateLineBrush(GDIPCONST GpPointF*,GDIPCONST GpPointF*,ARGB,ARGB,GpWrapMode,GpLineGradient**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateLineBrushI(GDIPCONST GpPoint*,GDIPCONST GpPoint*,ARGB,ARGB,GpWrapMode,GpLineGradient**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateLineBrushFromRect(GDIPCONST GpRectF*,ARGB,ARGB,LinearGradientMode,GpWrapMode,GpLineGradient**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateLineBrushFromRectI(GDIPCONST GpRect*,ARGB,ARGB,LinearGradientMode,GpWrapMode,GpLineGradient**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateLineBrushFromRectWithAngle(GDIPCONST GpRectF*,ARGB,ARGB,REAL,BOOL,GpWrapMode,GpLineGradient**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateLineBrushFromRectWithAngleI(GDIPCONST GpRect*,ARGB,ARGB,REAL,BOOL,GpWrapMode,GpLineGradient**);
|
||||||
|
GpStatus WINGDIPAPI GdipSetLineColors(GpLineGradient*,ARGB,ARGB);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLineColors(GpLineGradient*,ARGB*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLineRect(GpLineGradient*,GpRectF*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLineRectI(GpLineGradient*,GpRect*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetLineGammaCorrection(GpLineGradient*,BOOL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLineGammaCorrection(GpLineGradient*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLineBlendCount(GpLineGradient*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLineBlend(GpLineGradient*,REAL*,REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipSetLineBlend(GpLineGradient*,GDIPCONST REAL*,GDIPCONST REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLinePresetBlendCount(GpLineGradient*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLinePresetBlend(GpLineGradient*,ARGB*,REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipSetLinePresetBlend(GpLineGradient*,GDIPCONST ARGB*,GDIPCONST REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipSetLineSigmaBlend(GpLineGradient*,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipSetLineLinearBlend(GpLineGradient*,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipSetLineWrapMode(GpLineGradient*,GpWrapMode);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLineWrapMode(GpLineGradient*,GpWrapMode*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetLineTransform(GpLineGradient*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetLineTransform(GpLineGradient*,GDIPCONST GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipResetLineTransform(GpLineGradient*);
|
||||||
|
GpStatus WINGDIPAPI GdipMultiplyLineTransform(GpLineGradient*,GDIPCONST GpMatrix*,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipTranslateLineTransform(GpLineGradient*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipScaleLineTransform(GpLineGradient*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipRotateLineTransform(GpLineGradient*,REAL,GpMatrixOrder);
|
||||||
|
|
||||||
|
/* Matrix functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateMatrix2(REAL,REAL,REAL,REAL,REAL,REAL,GpMatrix**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF*,GDIPCONST GpPointF*,GpMatrix**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect*,GDIPCONST GpPoint*,GpMatrix**);
|
||||||
|
GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix*,GpMatrix**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetMatrixElements(GpMatrix*,REAL,REAL,REAL,REAL,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix*,GpMatrix*,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipTranslateMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix*,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipShearMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipInvertMatrix(GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipTransformMatrixPoints(GpMatrix*,GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipTransformMatrixPointsI(GpMatrix*,GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipVectorTransformMatrixPoints(GpMatrix*,GpPointF*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipVectorTransformMatrixPointsI(GpMatrix*,GpPoint*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsMatrixInvertible(GDIPCONST GpMatrix*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsMatrixIdentity(GDIPCONST GpMatrix*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsMatrixEqual(GDIPCONST GpMatrix*,GDIPCONST GpMatrix*,BOOL*);
|
||||||
|
|
||||||
|
/* Metafile functions */
|
||||||
|
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromEmf(HENHMETAFILE,MetafileHeader*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromFile(GDIPCONST WCHAR*,MetafileHeader*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromStream(IStream*,MetafileHeader*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile*,MetafileHeader*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetHemfFromMetafile(GpMetafile*,HENHMETAFILE*);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateStreamOnFile(GDIPCONST WCHAR*,UINT,IStream**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateMetafileFromWmf(HMETAFILE,BOOL,GDIPCONST WmfPlaceableFileHeader*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateMetafileFromEmf(HENHMETAFILE,BOOL,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateMetafileFromFile(GDIPCONST WCHAR*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateMetafileFromWmfFile(GDIPCONST WCHAR*,GDIPCONST WmfPlaceableFileHeader*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateMetafileFromStream(IStream*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipRecordMetafile(HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipRecordMetafileI(HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipRecordMetafileFileName(GDIPCONST WCHAR*,HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipRecordMetafileFileNameI(GDIPCONST WCHAR*,HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipRecordMetafileStream(IStream*,HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipRecordMetafileStreamI(IStream*,HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile*,EmfPlusRecordType,UINT,UINT,GDIPCONST BYTE*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetMetafileDownLevelRasterizationLimit(GpMetafile*,UINT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetMetafileDownLevelRasterizationLimit(GDIPCONST GpMetafile*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipConvertToEmfPlus(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,EmfType,GDIPCONST WCHAR*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipConvertToEmfPlusToFile(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,GDIPCONST WCHAR*,EmfType,GDIPCONST WCHAR*,GpMetafile**);
|
||||||
|
GpStatus WINGDIPAPI GdipConvertToEmfPlusToStream(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,IStream*,EmfType,GDIPCONST WCHAR*,GpMetafile**);
|
||||||
|
UINT WINGDIPAPI GdipEmfToWmfBits(HENHMETAFILE,UINT,LPBYTE,INT,INT);
|
||||||
|
|
||||||
|
/* PathGradientBrush functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF*,INT,GpWrapMode,GpPathGradient**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreatePathGradientI(GDIPCONST GpPoint*,INT,GpWrapMode,GpPathGradient**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath*,GpPathGradient**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientCenterColor(GpPathGradient*,ARGB*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient*,ARGB);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorsWithCount(GpPathGradient*,ARGB*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientSurroundColorsWithCount(GpPathGradient*,GDIPCONST ARGB*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientPath(GpPathGradient*,GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientPath(GpPathGradient*,GDIPCONST GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientCenterPoint(GpPathGradient*,GpPointF*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientCenterPointI(GpPathGradient*,GpPoint*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientCenterPoint(GpPathGradient*,GDIPCONST GpPointF*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientCenterPointI(GpPathGradient*,GDIPCONST GpPoint*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientRect(GpPathGradient*,GpRectF*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientRectI(GpPathGradient*,GpRect*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientPointCount(GpPathGradient*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorCount(GpPathGradient*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientGammaCorrection(GpPathGradient*,BOOL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientGammaCorrection(GpPathGradient*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientBlendCount(GpPathGradient*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientBlend(GpPathGradient*,REAL*,REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientBlend(GpPathGradient*,GDIPCONST REAL*,GDIPCONST REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientPresetBlendCount(GpPathGradient*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientPresetBlend(GpPathGradient*,ARGB*,REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientPresetBlend(GpPathGradient*,GDIPCONST ARGB*,GDIPCONST REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientSigmaBlend(GpPathGradient*,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientLinearBlend(GpPathGradient*,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientWrapMode(GpPathGradient*,GpWrapMode*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientWrapMode(GpPathGradient*,GpWrapMode);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientTransform(GpPathGradient*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientTransform(GpPathGradient*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipResetPathGradientTransform(GpPathGradient*);
|
||||||
|
GpStatus WINGDIPAPI GdipMultiplyPathGradientTransform(GpPathGradient*,GDIPCONST GpMatrix*,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipTranslatePathGradientTransform(GpPathGradient*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipScalePathGradientTransform(GpPathGradient*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipRotatePathGradientTransform(GpPathGradient*,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPathGradientFocusScales(GpPathGradient*,REAL*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPathGradientFocusScales(GpPathGradient*,REAL,REAL);
|
||||||
|
|
||||||
|
/* PathIterator functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreatePathIter(GpPathIterator**,GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipDeletePathIter(GpPathIterator*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterNextSubpath(GpPathIterator*,INT*,INT*,INT*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterNextSubpathPath(GpPathIterator*,INT*,GpPath*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterNextPathType(GpPathIterator*,INT*,BYTE*,INT*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterNextMarker(GpPathIterator*,INT*,INT*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterNextMarkerPath(GpPathIterator*,INT*,GpPath*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterGetCount(GpPathIterator*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterGetSubpathCount(GpPathIterator*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterIsValid(GpPathIterator*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterHasCurve(GpPathIterator*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterRewind(GpPathIterator*);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterEnumerate(GpPathIterator*,INT*,GpPointF*,BYTE*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipPathIterCopyData(GpPathIterator*,INT*,GpPointF*,BYTE*,INT,INT);
|
||||||
|
|
||||||
|
/* Pen functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreatePen1(ARGB,REAL,GpUnit,GpPen**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreatePen2(GpBrush*,REAL,GpUnit,GpPen**);
|
||||||
|
GpStatus WINGDIPAPI GdipClonePen(GpPen*,GpPen**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeletePen(GpPen*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenWidth(GpPen*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenWidth(GpPen*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenUnit(GpPen*,GpUnit);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenUnit(GpPen*,GpUnit*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenLineCap197819(GpPen*,GpLineCap,GpLineCap,GpDashCap);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenStartCap(GpPen*,GpLineCap);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenEndCap(GpPen*,GpLineCap);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenDashCap197819(GpPen*,GpDashCap);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenStartCap(GpPen*,GpLineCap*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenEndCap(GpPen*,GpLineCap*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenDashCap197819(GpPen*,GpDashCap*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenLineJoin(GpPen*,GpLineJoin);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenLineJoin(GpPen*,GpLineJoin*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenCustomStartCap(GpPen*,GpCustomLineCap*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenCustomStartCap(GpPen*,GpCustomLineCap**);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenCustomEndCap(GpPen*,GpCustomLineCap*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenCustomEndCap(GpPen*,GpCustomLineCap**);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenMiterLimit(GpPen*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenMiterLimit(GpPen*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenMode(GpPen*,GpPenAlignment);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenMode(GpPen*,GpPenAlignment*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenTransform(GpPen*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenTransform(GpPen*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipResetPenTransform(GpPen*);
|
||||||
|
GpStatus WINGDIPAPI GdipMultiplyPenTransform(GpPen*,GDIPCONST GpMatrix*,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipTranslatePenTransform(GpPen*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipScalePenTransform(GpPen*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipRotatePenTransform(GpPen*,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenColor(GpPen*,ARGB);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenColor(GpPen*,ARGB*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenBrushFill(GpPen*,GpBrush*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenBrushFill(GpPen*,GpBrush**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenFillType(GpPen*,GpPenType*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenDashStyle(GpPen*,GpDashStyle*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenDashStyle(GpPen*,GpDashStyle);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenDashOffset(GpPen*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenDashOffset(GpPen*,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenDashCount(GpPen*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenDashArray(GpPen*,GDIPCONST REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenDashArray(GpPen*,REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenCompoundCount(GpPen*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen*,GDIPCONST REAL*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetPenCompoundArray(GpPen*,REAL*,INT);
|
||||||
|
|
||||||
|
/* Region functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateRegion(GpRegion**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF*,GpRegion**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect*,GpRegion**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath*,GpRegion**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateRegionRgnData(GDIPCONST BYTE*,INT,GpRegion**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateRegionHrgn(HRGN,GpRegion**);
|
||||||
|
GpStatus WINGDIPAPI GdipCloneRegion(GpRegion*,GpRegion**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetInfinite(GpRegion*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetEmpty(GpRegion*);
|
||||||
|
GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion*,GDIPCONST GpRectF*,CombineMode);
|
||||||
|
GpStatus WINGDIPAPI GdipCombineRegionRectI(GpRegion*,GDIPCONST GpRect*,CombineMode);
|
||||||
|
GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion*,GpPath*,CombineMode);
|
||||||
|
GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion*,GpRegion*,CombineMode);
|
||||||
|
GpStatus WINGDIPAPI GdipTranslateRegion(GpRegion*,REAL,REAL);
|
||||||
|
GpStatus WINGDIPAPI GdipTranslateRegionI(GpRegion*,INT,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipTransformRegion(GpRegion*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetRegionBounds(GpRegion*,GpGraphics*,GpRectF*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetRegionBoundsI(GpRegion*,GpGraphics*,GpRect*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion*,GpGraphics*,HRGN*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsEmptyRegion(GpRegion*,GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsInfiniteRegion(GpRegion*,GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsEqualRegion(GpRegion*,GpRegion*,GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetRegionData(GpRegion*,BYTE*,UINT,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisibleRegionPoint(GpRegion*,REAL,REAL,GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisibleRegionPointI(GpRegion*,INT,INT,GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisibleRegionRect(GpRegion*,REAL,REAL,REAL,REAL,GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipIsVisibleRegionRectI(GpRegion*,INT,INT,INT,INT,GpGraphics*,BOOL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetRegionScansCount(GpRegion*,UINT*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetRegionScans(GpRegion*,GpRectF*,INT*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetRegionScansI(GpRegion*,GpRect*,INT*,GpMatrix*);
|
||||||
|
|
||||||
|
/* SolidBrush functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB,GpSolidFill**);
|
||||||
|
GpStatus WINGDIPAPI GdipSetSolidFillColor(GpSolidFill*,ARGB);
|
||||||
|
GpStatus WINGDIPAPI GdipGetSolidFillColor(GpSolidFill*,ARGB*);
|
||||||
|
|
||||||
|
/* StringFormat functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateStringFormat(INT,LANGID,GpStringFormat**);
|
||||||
|
GpStatus WINGDIPAPI GdipStringFormatGetGenericDefault(GpStringFormat**);
|
||||||
|
GpStatus WINGDIPAPI GdipStringFormatGetGenericTypographic(GpStringFormat**);
|
||||||
|
GpStatus WINGDIPAPI GdipDeleteStringFormat(GpStringFormat*);
|
||||||
|
GpStatus WINGDIPAPI GdipCloneStringFormat(GDIPCONST GpStringFormat*,GpStringFormat**);
|
||||||
|
GpStatus WINGDIPAPI GdipSetStringFormatFlags(GpStringFormat*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetStringFormatFlags(GDIPCONST GpStringFormat*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetStringFormatAlign(GpStringFormat*,StringAlignment);
|
||||||
|
GpStatus WINGDIPAPI GdipGetStringFormatAlign(GDIPCONST GpStringFormat*,StringAlignment*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetStringFormatLineAlign(GpStringFormat*,StringAlignment);
|
||||||
|
GpStatus WINGDIPAPI GdipGetStringFormatLineAlign(GDIPCONST GpStringFormat*,StringAlignment*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetStringFormatTrimming(GpStringFormat*,StringTrimming);
|
||||||
|
GpStatus WINGDIPAPI GdipGetStringFormatTrimming(GDIPCONST GpStringFormat*,StringTrimming*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetStringFormatHotkeyPrefix(GpStringFormat*,INT);
|
||||||
|
GpStatus WINGDIPAPI GdipGetStringFormatHotkeyPrefix(GDIPCONST GpStringFormat*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetStringFormatTabStops(GpStringFormat*,REAL,INT,GDIPCONST REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetStringFormatTabStops(GDIPCONST GpStringFormat*,INT,REAL*,REAL*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetStringFormatTabStopCount(GDIPCONST GpStringFormat*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetStringFormatDigitSubstitution(GpStringFormat*,LANGID,StringDigitSubstitute);
|
||||||
|
GpStatus WINGDIPAPI GdipGetStringFormatDigitSubstitution(GDIPCONST GpStringFormat*,LANGID*,StringDigitSubstitute*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetStringFormatMeasurableCharacterRangeCount(GDIPCONST GpStringFormat*,INT*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetStringFormatMeasurableCharacterRanges(GpStringFormat*,INT,GDIPCONST CharacterRange*);
|
||||||
|
|
||||||
|
/* Text functions */
|
||||||
|
GpStatus WINGDIPAPI GdipDrawString(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF*,GDIPCONST GpStringFormat*,GDIPCONST GpBrush*);
|
||||||
|
GpStatus WINGDIPAPI GdipMeasureString(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF*,GDIPCONST GpStringFormat*,RectF*,INT*,INT*);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
GpStatus WINGDIPAPI GdipMeasureCharacterRanges(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF&,GDIPCONST GpStringFormat*,INT,GpRegion**);
|
||||||
|
#endif
|
||||||
|
GpStatus WINGDIPAPI GdipDrawDriverString(GpGraphics*,GDIPCONST UINT16*,INT,GDIPCONST GpFont*,GDIPCONST GpBrush*,GDIPCONST PointF*,INT,GDIPCONST GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipMeasureDriverString(GpGraphics*,GDIPCONST UINT16*,INT,GDIPCONST GpFont*,GDIPCONST PointF*,INT,GDIPCONST GpMatrix*,RectF*);
|
||||||
|
|
||||||
|
/* TextureBrush functions */
|
||||||
|
GpStatus WINGDIPAPI GdipCreateTexture(GpImage*,GpWrapMode,GpTexture**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateTexture2(GpImage*,GpWrapMode,REAL,REAL,REAL,REAL,GpTexture**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateTexture2I(GpImage*,GpWrapMode,INT,INT,INT,INT,GpTexture**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateTextureIA(GpImage*,GDIPCONST GpImageAttributes*,REAL,REAL,REAL,REAL,GpTexture**);
|
||||||
|
GpStatus WINGDIPAPI GdipCreateTextureIAI(GpImage*,GDIPCONST GpImageAttributes*,INT,INT,INT,INT,GpTexture**);
|
||||||
|
GpStatus WINGDIPAPI GdipGetTextureTransform(GpTexture*,GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipSetTextureTransform(GpTexture*,GDIPCONST GpMatrix*);
|
||||||
|
GpStatus WINGDIPAPI GdipResetTextureTransform(GpTexture*);
|
||||||
|
GpStatus WINGDIPAPI GdipMultiplyTextureTransform(GpTexture*,GDIPCONST GpMatrix*,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipTranslateTextureTransform(GpTexture*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipScaleTextureTransform(GpTexture*,REAL,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipRotateTextureTransform(GpTexture*,REAL,GpMatrixOrder);
|
||||||
|
GpStatus WINGDIPAPI GdipSetTextureWrapMode(GpTexture*,GpWrapMode);
|
||||||
|
GpStatus WINGDIPAPI GdipGetTextureWrapMode(GpTexture*,GpWrapMode*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetTextureImage(GpTexture*,GpImage**);
|
||||||
|
|
||||||
|
/* uncategorized functions */
|
||||||
|
GpStatus WINGDIPAPI GdipTestControl(GpTestControlEnum,void*);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
} /* namespace DllExports */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_FLAT_H */
|
139
winsup/w32api/include/gdiplus/gdiplusgpstubs.h
Executable file
139
winsup/w32api/include/gdiplus/gdiplusgpstubs.h
Executable file
@ -0,0 +1,139 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusgpstubs.h
|
||||||
|
*
|
||||||
|
* GDI+ Gp* type declarations
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_GPSTUBS_H
|
||||||
|
#define __GDIPLUS_GPSTUBS_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef Point GpPoint;
|
||||||
|
typedef PointF GpPointF;
|
||||||
|
typedef Rect GpRect;
|
||||||
|
typedef RectF GpRectF;
|
||||||
|
typedef Size GpSize;
|
||||||
|
typedef SizeF GpSizeF;
|
||||||
|
|
||||||
|
typedef enum BrushType GpBrushType;
|
||||||
|
typedef enum CombineMode GpCombineMode;
|
||||||
|
typedef enum CompositingMode GpCompositingMode;
|
||||||
|
typedef enum CompositingQuality GpCompositingQuality;
|
||||||
|
typedef enum CoordinateSpace GpCoordinateSpace;
|
||||||
|
typedef enum CustomLineCapType GpCustomLineCapType;
|
||||||
|
typedef enum DashCap GpDashCap;
|
||||||
|
typedef enum DashStyle GpDashStyle;
|
||||||
|
typedef enum DitherType GpDitherType;
|
||||||
|
typedef enum DriverStringOptions GpDriverStringOptions;
|
||||||
|
typedef enum EmfPlusRecordType GpEmfPlusRecordType;
|
||||||
|
typedef enum EmfToWmfBitsFlags GpEmfToWmfBitsFlags;
|
||||||
|
typedef enum EmfType GpEmfType;
|
||||||
|
typedef enum EncoderParameterValueType GpEncoderParameterValueType;
|
||||||
|
typedef enum EncoderValue GpEncoderValue;
|
||||||
|
typedef enum FillMode GpFillMode;
|
||||||
|
typedef enum FlushIntention GpFlushIntention;
|
||||||
|
typedef enum FontStyle GpFontStyle;
|
||||||
|
typedef enum HatchStyle GpHatchStyle;
|
||||||
|
typedef enum HotkeyPrefix GpHotkeyPrefix;
|
||||||
|
typedef enum ImageType GpImageType;
|
||||||
|
typedef enum InterpolationMode GpInterpolationMode;
|
||||||
|
typedef enum LinearGradientMode GpLinearGradientMode;
|
||||||
|
typedef enum LineCap GpLineCap;
|
||||||
|
typedef enum LineJoin GpLineJoin;
|
||||||
|
typedef enum MatrixOrder GpMatrixOrder;
|
||||||
|
typedef enum MetafileFrameUnit GpMetafileFrameUnit;
|
||||||
|
typedef enum MetafileType GpMetafileType;
|
||||||
|
typedef enum ObjectType GpObjectType;
|
||||||
|
typedef enum PathPointType GpPathPointType;
|
||||||
|
typedef enum PenAlignment GpPenAlignment;
|
||||||
|
typedef enum PenType GpPenType;
|
||||||
|
typedef enum PixelOffsetMode GpPixelOffsetMode;
|
||||||
|
typedef enum QualityMode GpQualityMode;
|
||||||
|
typedef enum SmoothingMode GpSmoothingMode;
|
||||||
|
typedef enum StringAlignment GpStringAlignment;
|
||||||
|
typedef enum StringDigitSubstitute GpStringDigitSubstitute;
|
||||||
|
typedef enum StringFormatFlags GpStringFormatFlags;
|
||||||
|
typedef enum StringTrimming GpStringTrimming;
|
||||||
|
typedef enum TextRenderingHint GpTextRenderingHint;
|
||||||
|
typedef enum Unit GpUnit;
|
||||||
|
typedef enum WarpMode GpWarpMode;
|
||||||
|
typedef enum WrapMode GpWrapMode;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
class CGpEffect {};
|
||||||
|
class GpCustomLineCap {};
|
||||||
|
class GpImage {};
|
||||||
|
|
||||||
|
class GpAdjustableArrowCap: public GpCustomLineCap {};
|
||||||
|
class GpBitmap: public GpImage {};
|
||||||
|
class GpBrush {};
|
||||||
|
class GpCachedBitmap {};
|
||||||
|
class GpFont {};
|
||||||
|
class GpFontCollection {};
|
||||||
|
class GpFontFamily {};
|
||||||
|
class GpGraphics {};
|
||||||
|
class GpHatch: public GpBrush {}; /* HatchBrush */
|
||||||
|
class GpImageAttributes {};
|
||||||
|
class GpLineGradient: public GpBrush {}; /* LinearGradientBrush */
|
||||||
|
class GpMatrix {};
|
||||||
|
class GpMetafile: public GpImage {};
|
||||||
|
class GpPath {}; /* GraphicsPath */
|
||||||
|
class GpPathData {};
|
||||||
|
class GpPathGradient: public GpBrush {}; /* PathGradientBrush */
|
||||||
|
class GpPathIterator {}; /* GraphicsPathIterator */
|
||||||
|
class GpPen {};
|
||||||
|
class GpRegion {};
|
||||||
|
class GpSolidFill: public GpBrush {}; /* SolidBrush */
|
||||||
|
class GpStringFormat {};
|
||||||
|
class GpTexture: public GpBrush {}; /* TextureBrush */
|
||||||
|
|
||||||
|
#else /* !__cplusplus */
|
||||||
|
|
||||||
|
typedef void CGpEffect;
|
||||||
|
typedef void GpAdjustableArrowCap;
|
||||||
|
typedef void GpBitmap;
|
||||||
|
typedef void GpBrush;
|
||||||
|
typedef void GpCachedBitmap;
|
||||||
|
typedef void GpCustomLineCap;
|
||||||
|
typedef void GpFont;
|
||||||
|
typedef void GpFontFamily;
|
||||||
|
typedef void GpFontCollection;
|
||||||
|
typedef void GpGraphics;
|
||||||
|
typedef void GpHatch;
|
||||||
|
typedef void GpImage;
|
||||||
|
typedef void GpImageAttributes;
|
||||||
|
typedef void GpLineGradient;
|
||||||
|
typedef void GpMatrix;
|
||||||
|
typedef void GpMetafile;
|
||||||
|
typedef void GpPath;
|
||||||
|
typedef void GpPathData;
|
||||||
|
typedef void GpPathGradient;
|
||||||
|
typedef void GpPathIterator;
|
||||||
|
typedef void GpPen;
|
||||||
|
typedef void GpRegion;
|
||||||
|
typedef void GpSolidFill;
|
||||||
|
typedef void GpStringFormat;
|
||||||
|
typedef void GpTexture;
|
||||||
|
|
||||||
|
#endif /* !__cplusplus */
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_GPSTUBS_H */
|
1540
winsup/w32api/include/gdiplus/gdiplusgraphics.h
Executable file
1540
winsup/w32api/include/gdiplus/gdiplusgraphics.h
Executable file
File diff suppressed because it is too large
Load Diff
581
winsup/w32api/include/gdiplus/gdiplusheaders.h
Executable file
581
winsup/w32api/include/gdiplus/gdiplusheaders.h
Executable file
@ -0,0 +1,581 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusheaders.h
|
||||||
|
*
|
||||||
|
* GDI+ Bitmap, CachedBitmap, CustomLineCap, Font, FontCollection,
|
||||||
|
* FontFamily, Image, InstalledFontCollection, PrivateFontCollection,
|
||||||
|
* Region class definitions.
|
||||||
|
* Implementation of these classes is in gdiplusimpl.h.
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_HEADERS_H
|
||||||
|
#define __GDIPLUS_HEADERS_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#error "A C++ compiler is required to include gdiplusheaders.h."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note: Virtual inline functions (dtors, Clone()) are implemented here: If
|
||||||
|
* these were defined outside class scope, the compiler would always generate
|
||||||
|
* code for them (and the vtable), even if these classes were never used.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class Bitmap;
|
||||||
|
class Effect;
|
||||||
|
class FontCollection;
|
||||||
|
class FontFamily;
|
||||||
|
class Graphics;
|
||||||
|
class GraphicsPath;
|
||||||
|
class Matrix;
|
||||||
|
class Pen;
|
||||||
|
|
||||||
|
class Image: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class Bitmap;
|
||||||
|
friend class Metafile;
|
||||||
|
friend class CachedBitmap;
|
||||||
|
friend class Graphics;
|
||||||
|
friend class TextureBrush;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static Image* FromFile(const WCHAR *filename,
|
||||||
|
BOOL useEmbeddedColorManagement = FALSE);
|
||||||
|
static Image* FromStream(IStream *stream,
|
||||||
|
BOOL useEmbeddedColorManagement = FALSE);
|
||||||
|
|
||||||
|
Image(const WCHAR *filename, BOOL useEmbeddedColorManagement = FALSE);
|
||||||
|
Image(IStream *stream, BOOL useEmbeddedColorManagement = FALSE);
|
||||||
|
|
||||||
|
virtual ~Image()
|
||||||
|
{
|
||||||
|
DllExports::GdipDisposeImage(nativeImage);
|
||||||
|
}
|
||||||
|
virtual Image* Clone() const
|
||||||
|
{
|
||||||
|
GpImage *cloneImage = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneImage(
|
||||||
|
nativeImage, &cloneImage));
|
||||||
|
if (status == Ok) {
|
||||||
|
Image *result = new Image(cloneImage, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDisposeImage(cloneImage);
|
||||||
|
lastStatus = OutOfMemory;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Status FindFirstItem(ImageItemData *item);
|
||||||
|
Status FindNextItem(ImageItemData *item);
|
||||||
|
Status GetAllPropertyItems(UINT totalBufferSize,
|
||||||
|
UINT numProperties, PropertyItem *allItems);
|
||||||
|
Status GetBounds(RectF *srcRect, Unit *srcUnit);
|
||||||
|
Status GetEncoderParameterList(const CLSID *clsidEncoder,
|
||||||
|
UINT size, EncoderParameters *buffer);
|
||||||
|
UINT GetEncoderParameterListSize(const CLSID *clsidEncoder);
|
||||||
|
UINT GetFlags();
|
||||||
|
UINT GetFrameCount(const GUID *dimensionID);
|
||||||
|
UINT GetFrameDimensionsCount();
|
||||||
|
Status GetFrameDimensionsList(GUID *dimensionIDs, UINT count);
|
||||||
|
UINT GetHeight();
|
||||||
|
REAL GetHorizontalResolution();
|
||||||
|
Status GetItemData(ImageItemData *item);
|
||||||
|
Status GetPalette(ColorPalette *palette, INT size);
|
||||||
|
INT GetPaletteSize();
|
||||||
|
Status GetPhysicalDimension(SizeF *size);
|
||||||
|
PixelFormat GetPixelFormat();
|
||||||
|
UINT GetPropertyCount();
|
||||||
|
Status GetPropertyIdList(UINT numOfProperty, PROPID *list);
|
||||||
|
Status GetPropertyItem(PROPID propId, UINT propSize,
|
||||||
|
PropertyItem *buffer);
|
||||||
|
UINT GetPropertyItemSize(PROPID propId);
|
||||||
|
Status GetPropertySize(UINT *totalBufferSize, UINT *numProperties);
|
||||||
|
Status GetRawFormat(GUID *format);
|
||||||
|
Image* GetThumbnailImage(UINT thumbWidth, UINT thumbHeight,
|
||||||
|
GetThumbnailImageAbort callback, VOID *callbackData);
|
||||||
|
ImageType GetType() const;
|
||||||
|
REAL GetVerticalResolution();
|
||||||
|
UINT GetWidth();
|
||||||
|
Status RemovePropertyItem(PROPID propId);
|
||||||
|
Status RotateFlip(RotateFlipType rotateFlipType);
|
||||||
|
Status Save(IStream *stream, const CLSID *clsidEncoder,
|
||||||
|
const EncoderParameters *encoderParams);
|
||||||
|
Status Save(const WCHAR *filename, const CLSID *clsidEncoder,
|
||||||
|
const EncoderParameters *encoderParams);
|
||||||
|
Status SaveAdd(const EncoderParameters *encoderParams);
|
||||||
|
Status SaveAdd(Image *newImage, const EncoderParameters *encoderParams);
|
||||||
|
Status SelectActiveFrame(const GUID *dimensionID, UINT frameIndex);
|
||||||
|
Status SetAbort(GdiplusAbort *pIAbort);
|
||||||
|
Status SetPalette(const ColorPalette *palette);
|
||||||
|
Status SetPropertyItem(const PropertyItem *item);
|
||||||
|
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Image(GpImage *image, Status status):
|
||||||
|
nativeImage(image), lastStatus(status) {}
|
||||||
|
Image(const Image&);
|
||||||
|
Image& operator=(const Image&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpImage *nativeImage;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Bitmap: public Image
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static Bitmap* FromBITMAPINFO(const BITMAPINFO *gdiBitmapInfo,
|
||||||
|
VOID *gdiBitmapData);
|
||||||
|
static Bitmap* FromDirectDrawSurface7(IDirectDrawSurface7 *surface);
|
||||||
|
static Bitmap* FromFile(const WCHAR *filename,
|
||||||
|
BOOL useEmbeddedColorManagement = FALSE);
|
||||||
|
static Bitmap* FromHBITMAP(HBITMAP hbm, HPALETTE hpal);
|
||||||
|
static Bitmap* FromHICON(HICON icon);
|
||||||
|
static Bitmap* FromResource(HINSTANCE hInstance,
|
||||||
|
const WCHAR *bitmapName);
|
||||||
|
static Bitmap* FromStream(IStream *stream,
|
||||||
|
BOOL useEmbeddedColorManagement = FALSE);
|
||||||
|
static Status ApplyEffect(Bitmap **inputs, INT numInputs,
|
||||||
|
Effect *effect, RECT *ROI,
|
||||||
|
RECT *outputRect, Bitmap **output);
|
||||||
|
static Status InitializePalette(ColorPalette *palette,
|
||||||
|
PaletteType paletteType, INT optimalColors,
|
||||||
|
BOOL useTransparentColor, Bitmap *bitmap);
|
||||||
|
|
||||||
|
Bitmap(const BITMAPINFO *gdiBitmapInfo, VOID *gdiBitmapData);
|
||||||
|
Bitmap(IDirectDrawSurface7 *surface);
|
||||||
|
Bitmap(const WCHAR *filename, BOOL useEmbeddedColorManagement = FALSE);
|
||||||
|
Bitmap(HBITMAP hbm, HPALETTE hpal);
|
||||||
|
Bitmap(HICON hicon);
|
||||||
|
Bitmap(HINSTANCE hInstance, const WCHAR *bitmapName);
|
||||||
|
Bitmap(IStream *stream, BOOL useEmbeddedColorManagement = FALSE);
|
||||||
|
Bitmap(INT width, INT height, Graphics *target);
|
||||||
|
Bitmap(INT width, INT height, PixelFormat format = PixelFormat32bppARGB);
|
||||||
|
Bitmap(INT width, INT height, INT stride, PixelFormat format, BYTE *scan0);
|
||||||
|
|
||||||
|
virtual ~Bitmap()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
virtual Bitmap* Clone() const
|
||||||
|
{
|
||||||
|
GpImage *cloneImage = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneImage(
|
||||||
|
nativeImage, &cloneImage));
|
||||||
|
if (status == Ok) {
|
||||||
|
Bitmap *result = new Bitmap(cloneImage, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDisposeImage(cloneImage);
|
||||||
|
lastStatus = OutOfMemory;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Bitmap* Clone(const RectF& rect, PixelFormat format) const;
|
||||||
|
Bitmap* Clone(const Rect& rect, PixelFormat format) const;
|
||||||
|
Bitmap* Clone(REAL x, REAL y, REAL width, REAL height,
|
||||||
|
PixelFormat format) const;
|
||||||
|
Bitmap* Clone(INT x, INT y, INT width, INT height,
|
||||||
|
PixelFormat format) const;
|
||||||
|
|
||||||
|
Status ApplyEffect(Effect *effect, RECT *ROI);
|
||||||
|
Status ConvertFormat(PixelFormat format, DitherType ditherType,
|
||||||
|
PaletteType paletteType, ColorPalette *palette,
|
||||||
|
REAL alphaThresholdPercent);
|
||||||
|
Status GetHBITMAP(const Color& colorBackground, HBITMAP *hbmReturn) const;
|
||||||
|
Status GetHICON(HICON *icon) const;
|
||||||
|
Status GetHistogram(HistogramFormat format, UINT numberOfEntries,
|
||||||
|
UINT *channel0, UINT *channel1,
|
||||||
|
UINT *channel2, UINT *channel3) const;
|
||||||
|
Status GetHistogramSize(HistogramFormat format,
|
||||||
|
UINT *numberOfEntries) const;
|
||||||
|
Status GetPixel(INT x, INT y, Color *color) const;
|
||||||
|
Status LockBits(const Rect *rect, UINT flags, PixelFormat format,
|
||||||
|
BitmapData *lockedBitmapData);
|
||||||
|
Status SetPixel(INT x, INT y, const Color& color);
|
||||||
|
Status SetResolution(REAL xdpi, REAL ydpi);
|
||||||
|
Status UnlockBits(BitmapData *lcokedBitmapData);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Bitmap(GpImage *image, Status status): Image(image, status) {}
|
||||||
|
Bitmap(const Bitmap&);
|
||||||
|
Bitmap& operator=(const Bitmap&);
|
||||||
|
};
|
||||||
|
|
||||||
|
class CachedBitmap: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class Graphics;
|
||||||
|
|
||||||
|
public:
|
||||||
|
CachedBitmap(Bitmap *bitmap, Graphics *graphics);
|
||||||
|
~CachedBitmap();
|
||||||
|
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
return lastStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
CachedBitmap(const CachedBitmap&);
|
||||||
|
CachedBitmap& operator=(const CachedBitmap&);
|
||||||
|
|
||||||
|
GpCachedBitmap *nativeCachedBitmap;
|
||||||
|
Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
class CustomLineCap: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class AdjustableArrowCap;
|
||||||
|
friend class Pen;
|
||||||
|
|
||||||
|
public:
|
||||||
|
CustomLineCap(const GraphicsPath *fillPath,
|
||||||
|
const GraphicsPath *strokePath,
|
||||||
|
LineCap baseCap = LineCapFlat,
|
||||||
|
REAL baseInset = 0.0f);
|
||||||
|
|
||||||
|
virtual ~CustomLineCap()
|
||||||
|
{
|
||||||
|
DllExports::GdipDeleteCustomLineCap(nativeCustomLineCap);
|
||||||
|
}
|
||||||
|
virtual CustomLineCap* Clone() const
|
||||||
|
{
|
||||||
|
GpCustomLineCap *cloneCustomLineCap = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneCustomLineCap(
|
||||||
|
nativeCustomLineCap, &cloneCustomLineCap));
|
||||||
|
if (status == Ok) {
|
||||||
|
CustomLineCap *result = new CustomLineCap(
|
||||||
|
cloneCustomLineCap, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeleteCustomLineCap(cloneCustomLineCap);
|
||||||
|
lastStatus = OutOfMemory;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LineCap GetBaseCap() const;
|
||||||
|
REAL GetBaseInset() const;
|
||||||
|
Status GetStrokeCaps(LineCap *startCap, LineCap *endCap) const;
|
||||||
|
LineJoin GetStrokeJoin() const;
|
||||||
|
REAL GetWidthScale() const;
|
||||||
|
Status SetBaseCap(LineCap baseCap);
|
||||||
|
Status SetBaseInset(REAL inset);
|
||||||
|
Status SetStrokeCap(LineCap strokeCap);
|
||||||
|
Status SetStrokeCaps(LineCap startCap, LineCap endCap);
|
||||||
|
Status SetStrokeJoin(LineJoin lineJoin);
|
||||||
|
Status SetWidthScale(REAL widthScale);
|
||||||
|
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
CustomLineCap(GpCustomLineCap *customLineCap, Status status):
|
||||||
|
nativeCustomLineCap(customLineCap), lastStatus(status) {}
|
||||||
|
CustomLineCap(const CustomLineCap&);
|
||||||
|
CustomLineCap& operator=(const CustomLineCap&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpCustomLineCap *nativeCustomLineCap;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Font: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class Graphics;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Font(const FontFamily *family, REAL emSize,
|
||||||
|
INT style = FontStyleRegular,
|
||||||
|
Unit unit = UnitPoint);
|
||||||
|
Font(HDC hdc, HFONT hfont);
|
||||||
|
Font(HDC hdc, const LOGFONTA *logfont);
|
||||||
|
Font(HDC hdc, const LOGFONTW *logfont);
|
||||||
|
Font(HDC hdc);
|
||||||
|
Font(const WCHAR *familyName, REAL emSize,
|
||||||
|
INT style = FontStyleRegular,
|
||||||
|
Unit unit = UnitPoint,
|
||||||
|
const FontCollection *fontCollection = NULL);
|
||||||
|
~Font();
|
||||||
|
Font* Clone() const;
|
||||||
|
|
||||||
|
Status GetFamily(FontFamily *family) const;
|
||||||
|
REAL GetHeight(const Graphics *graphics) const;
|
||||||
|
REAL GetHeight(REAL dpi) const;
|
||||||
|
Status GetLogFontA(const Graphics *graphics, LOGFONTA *logfontA) const;
|
||||||
|
Status GetLogFontW(const Graphics *graphics, LOGFONTW *logfontW) const;
|
||||||
|
REAL GetSize() const;
|
||||||
|
INT GetStyle() const;
|
||||||
|
Unit GetUnit() const;
|
||||||
|
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
return lastStatus;
|
||||||
|
}
|
||||||
|
BOOL IsAvailable() const
|
||||||
|
{
|
||||||
|
return nativeFont != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Font(GpFont *font, Status status):
|
||||||
|
nativeFont(font), lastStatus(status) {}
|
||||||
|
Font(const Font&);
|
||||||
|
Font& operator=(const Font&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpFont *nativeFont;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
class FontCollection: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class InstalledFontCollection;
|
||||||
|
friend class PrivateFontCollection;
|
||||||
|
friend class Font;
|
||||||
|
friend class FontFamily;
|
||||||
|
|
||||||
|
public:
|
||||||
|
FontCollection();
|
||||||
|
virtual ~FontCollection() {}
|
||||||
|
|
||||||
|
Status GetFamilies(INT numSought, FontFamily *families,
|
||||||
|
INT *numFound) const;
|
||||||
|
INT GetFamilyCount() const;
|
||||||
|
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
return lastStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
FontCollection(const FontCollection&);
|
||||||
|
FontCollection& operator=(const FontCollection&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
return lastStatus = newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpFontCollection *nativeFontCollection;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
class FontFamily: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class Font;
|
||||||
|
friend class FontCollection;
|
||||||
|
friend class GraphicsPath;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static const FontFamily* GenericMonospace();
|
||||||
|
static const FontFamily* GenericSansSerif();
|
||||||
|
static const FontFamily* GenericSerif();
|
||||||
|
|
||||||
|
FontFamily();
|
||||||
|
FontFamily(const WCHAR *name,
|
||||||
|
const FontCollection *fontCollection = NULL);
|
||||||
|
~FontFamily();
|
||||||
|
FontFamily* Clone() const;
|
||||||
|
|
||||||
|
UINT16 GetCellAscent(INT style) const;
|
||||||
|
UINT16 GetCellDescent(INT style) const;
|
||||||
|
UINT16 GetEmHeight(INT style) const;
|
||||||
|
Status GetFamilyName(WCHAR name[LF_FACESIZE],
|
||||||
|
LANGID language = LANG_NEUTRAL) const;
|
||||||
|
UINT16 GetLineSpacing(INT style) const;
|
||||||
|
BOOL IsStyleAvailable(INT style) const;
|
||||||
|
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
BOOL IsAvailable() const
|
||||||
|
{
|
||||||
|
return nativeFontFamily != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
FontFamily(GpFontFamily *fontFamily, Status status):
|
||||||
|
nativeFontFamily(fontFamily), lastStatus(status) {}
|
||||||
|
FontFamily(const FontFamily&);
|
||||||
|
FontFamily& operator=(const FontFamily&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpFontFamily *nativeFontFamily;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
class InstalledFontCollection: public FontCollection
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
InstalledFontCollection();
|
||||||
|
virtual ~InstalledFontCollection() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class PrivateFontCollection: public FontCollection
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PrivateFontCollection();
|
||||||
|
|
||||||
|
virtual ~PrivateFontCollection()
|
||||||
|
{
|
||||||
|
DllExports::GdipDeletePrivateFontCollection(&nativeFontCollection);
|
||||||
|
}
|
||||||
|
|
||||||
|
Status AddFontFile(const WCHAR *filename);
|
||||||
|
Status AddMemoryFont(const VOID *memory, INT length);
|
||||||
|
};
|
||||||
|
|
||||||
|
class Region: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class Graphics;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static Region* FromHRGN(HRGN hrgn);
|
||||||
|
|
||||||
|
Region();
|
||||||
|
Region(const RectF& rect);
|
||||||
|
Region(const Rect& rect);
|
||||||
|
Region(const GraphicsPath *path);
|
||||||
|
Region(const BYTE *regionData, INT size);
|
||||||
|
Region(HRGN hrgn);
|
||||||
|
~Region();
|
||||||
|
Region* Clone() const;
|
||||||
|
|
||||||
|
Status Complement(const RectF& rect);
|
||||||
|
Status Complement(const Rect& rect);
|
||||||
|
Status Complement(const Region *region);
|
||||||
|
Status Complement(const GraphicsPath *path);
|
||||||
|
BOOL Equals(const Region *region, const Graphics *graphics) const;
|
||||||
|
Status Exclude(const RectF& rect);
|
||||||
|
Status Exclude(const Rect& rect);
|
||||||
|
Status Exclude(const Region *region);
|
||||||
|
Status Exclude(const GraphicsPath *path);
|
||||||
|
Status GetBounds(RectF *rect, const Graphics *graphics) const;
|
||||||
|
Status GetBounds(Rect *rect, const Graphics *graphics) const;
|
||||||
|
Status GetData(BYTE *buffer, UINT bufferSize, UINT *sizeFilled) const;
|
||||||
|
UINT GetDataSize() const;
|
||||||
|
HRGN GetHRGN(const Graphics *graphics) const;
|
||||||
|
Status GetRegionScans(const Matrix *matrix,
|
||||||
|
RectF *rects, INT *count) const;
|
||||||
|
Status GetRegionScans(const Matrix *matrix,
|
||||||
|
Rect *rects, INT *count) const;
|
||||||
|
UINT GetRegionScansCount(const Matrix *matrix) const;
|
||||||
|
Status Intersect(const RectF& rect);
|
||||||
|
Status Intersect(const Rect& rect);
|
||||||
|
Status Intersect(const Region *region);
|
||||||
|
Status Intersect(const GraphicsPath *path);
|
||||||
|
BOOL IsEmpty(const Graphics *graphics) const;
|
||||||
|
BOOL IsInfinite(const Graphics *graphics) const;
|
||||||
|
BOOL IsVisible(REAL x, REAL y,
|
||||||
|
const Graphics *graphics = NULL) const;
|
||||||
|
BOOL IsVisible(INT x, INT y,
|
||||||
|
const Graphics *graphics = NULL) const;
|
||||||
|
BOOL IsVisible(const PointF& point,
|
||||||
|
const Graphics *graphics = NULL) const;
|
||||||
|
BOOL IsVisible(const Point& point,
|
||||||
|
const Graphics *graphics = NULL) const;
|
||||||
|
BOOL IsVisible(REAL x, REAL y, REAL width, REAL height,
|
||||||
|
const Graphics *graphics = NULL) const;
|
||||||
|
BOOL IsVisible(INT x, INT y, INT width, INT height,
|
||||||
|
const Graphics *graphics = NULL) const;
|
||||||
|
BOOL IsVisible(const RectF& rect,
|
||||||
|
const Graphics *graphics = NULL) const;
|
||||||
|
BOOL IsVisible(const Rect& rect,
|
||||||
|
const Graphics *graphics = NULL) const;
|
||||||
|
Status MakeEmpty();
|
||||||
|
Status MakeInfinite();
|
||||||
|
Status Transform(const Matrix *matrix);
|
||||||
|
Status Translate(REAL dx, REAL dy);
|
||||||
|
Status Translate(INT dx, INT dy);
|
||||||
|
Status Union(const RectF& rect);
|
||||||
|
Status Union(const Rect& rect);
|
||||||
|
Status Union(const Region *region);
|
||||||
|
Status Union(const GraphicsPath *path);
|
||||||
|
Status Xor(const RectF& rect);
|
||||||
|
Status Xor(const Rect& rect);
|
||||||
|
Status Xor(const Region *region);
|
||||||
|
Status Xor(const GraphicsPath *path);
|
||||||
|
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Region(GpRegion *region, Status status):
|
||||||
|
nativeRegion(region), lastStatus(status) {}
|
||||||
|
Region(const Region&);
|
||||||
|
Region& operator=(const Region&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpRegion *nativeRegion;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_HEADERS_H */
|
236
winsup/w32api/include/gdiplus/gdiplusimageattributes.h
Executable file
236
winsup/w32api/include/gdiplus/gdiplusimageattributes.h
Executable file
@ -0,0 +1,236 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusimageattributes.h
|
||||||
|
*
|
||||||
|
* GDI+ ImageAttributes class
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_IMAGEATTRIBUTES_H
|
||||||
|
#define __GDIPLUS_IMAGEATTRIBUTES_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#error "A C++ compiler is required to include gdiplusimageattributes.h."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class ImageAttributes: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class Graphics;
|
||||||
|
friend class TextureBrush;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ImageAttributes(): nativeImageAttributes(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreateImageAttributes(
|
||||||
|
&nativeImageAttributes);
|
||||||
|
}
|
||||||
|
~ImageAttributes()
|
||||||
|
{
|
||||||
|
DllExports::GdipDisposeImageAttributes(nativeImageAttributes);
|
||||||
|
}
|
||||||
|
ImageAttributes* Clone() const
|
||||||
|
{
|
||||||
|
GpImageAttributes *cloneImageAttributes = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneImageAttributes(
|
||||||
|
nativeImageAttributes, &cloneImageAttributes));
|
||||||
|
if (status == Ok) {
|
||||||
|
ImageAttributes *result = new ImageAttributes(
|
||||||
|
cloneImageAttributes, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDisposeImageAttributes(cloneImageAttributes);
|
||||||
|
lastStatus = OutOfMemory;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Status ClearBrushRemapTable()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesRemapTable(
|
||||||
|
nativeImageAttributes, ColorAdjustTypeBrush,
|
||||||
|
FALSE, 0, NULL));
|
||||||
|
}
|
||||||
|
Status ClearColorKey(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesColorKeys(
|
||||||
|
nativeImageAttributes, type, FALSE, 0, 0));
|
||||||
|
}
|
||||||
|
Status ClearColorMatrices(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesColorMatrix(
|
||||||
|
nativeImageAttributes, type, FALSE,
|
||||||
|
NULL, NULL, ColorMatrixFlagsDefault));
|
||||||
|
}
|
||||||
|
Status ClearColorMatrix(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesColorMatrix(
|
||||||
|
nativeImageAttributes, type, FALSE,
|
||||||
|
NULL, NULL, ColorMatrixFlagsDefault));
|
||||||
|
}
|
||||||
|
Status ClearGamma(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesGamma(
|
||||||
|
nativeImageAttributes, type, FALSE, 1.0f));
|
||||||
|
}
|
||||||
|
Status ClearNoOp(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesNoOp(
|
||||||
|
nativeImageAttributes, type, FALSE));
|
||||||
|
}
|
||||||
|
Status ClearOutputChannel(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesOutputChannel(
|
||||||
|
nativeImageAttributes, type, FALSE,
|
||||||
|
ColorChannelFlagsC));
|
||||||
|
}
|
||||||
|
Status ClearOutputChannelColorProfile(
|
||||||
|
ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesOutputChannelColorProfile(
|
||||||
|
nativeImageAttributes, type, FALSE, NULL));
|
||||||
|
}
|
||||||
|
Status ClearRemapTable(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesRemapTable(
|
||||||
|
nativeImageAttributes, type, FALSE, 0, NULL));
|
||||||
|
}
|
||||||
|
Status ClearThreshold(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesThreshold(
|
||||||
|
nativeImageAttributes, type, FALSE, 0.0));
|
||||||
|
}
|
||||||
|
Status GetAdjustedPalette(ColorPalette *colorPalette,
|
||||||
|
ColorAdjustType type) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetImageAttributesAdjustedPalette(
|
||||||
|
nativeImageAttributes, colorPalette, type));
|
||||||
|
}
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status Reset(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipResetImageAttributes(
|
||||||
|
nativeImageAttributes, type));
|
||||||
|
}
|
||||||
|
Status SetBrushRemapTable(UINT mapSize, ColorMap *map)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesRemapTable(
|
||||||
|
nativeImageAttributes, ColorAdjustTypeBrush,
|
||||||
|
TRUE, mapSize, map));
|
||||||
|
}
|
||||||
|
Status SetColorKey(const Color& colorLow, const Color& colorHigh,
|
||||||
|
ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesColorKeys(
|
||||||
|
nativeImageAttributes, type, TRUE,
|
||||||
|
colorLow.GetValue(), colorHigh.GetValue()));
|
||||||
|
}
|
||||||
|
Status SetColorMatrices(const ColorMatrix *colorMatrix,
|
||||||
|
const ColorMatrix *grayMatrix,
|
||||||
|
ColorMatrixFlags mode = ColorMatrixFlagsDefault,
|
||||||
|
ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesColorMatrix(
|
||||||
|
nativeImageAttributes, type, TRUE,
|
||||||
|
colorMatrix, grayMatrix, mode));
|
||||||
|
}
|
||||||
|
Status SetColorMatrix(const ColorMatrix *colorMatrix,
|
||||||
|
ColorMatrixFlags mode = ColorMatrixFlagsDefault,
|
||||||
|
ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesColorMatrix(
|
||||||
|
nativeImageAttributes, type, TRUE,
|
||||||
|
colorMatrix, NULL, mode));
|
||||||
|
}
|
||||||
|
Status SetGamma(REAL gamma,
|
||||||
|
ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesGamma(
|
||||||
|
nativeImageAttributes, type, TRUE, gamma));
|
||||||
|
}
|
||||||
|
Status SetNoOp(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesNoOp(
|
||||||
|
nativeImageAttributes, type, TRUE));
|
||||||
|
}
|
||||||
|
Status SetOutputChannel(ColorChannelFlags channelFlags,
|
||||||
|
ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesOutputChannel(
|
||||||
|
nativeImageAttributes, type, TRUE,
|
||||||
|
channelFlags));
|
||||||
|
}
|
||||||
|
Status SetOutputChannelColorProfile(const WCHAR *colorProfileFilename,
|
||||||
|
ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesOutputChannelColorProfile(
|
||||||
|
nativeImageAttributes, type, TRUE,
|
||||||
|
colorProfileFilename));
|
||||||
|
}
|
||||||
|
Status SetRemapTable(UINT mapSize, const ColorMap *map,
|
||||||
|
ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesRemapTable(
|
||||||
|
nativeImageAttributes, type, TRUE,
|
||||||
|
mapSize, map));
|
||||||
|
}
|
||||||
|
Status SetThreshold(REAL threshold,
|
||||||
|
ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesThreshold(
|
||||||
|
nativeImageAttributes, type, TRUE, threshold));
|
||||||
|
}
|
||||||
|
Status SetToIdentity(ColorAdjustType type = ColorAdjustTypeDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesToIdentity(
|
||||||
|
nativeImageAttributes, type));
|
||||||
|
}
|
||||||
|
Status SetWrapMode(WrapMode wrap, const Color& color = Color(),
|
||||||
|
BOOL clamp = FALSE)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetImageAttributesWrapMode(
|
||||||
|
nativeImageAttributes, wrap,
|
||||||
|
color.GetValue(), clamp));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
ImageAttributes(GpImageAttributes *imageAttributes, Status status):
|
||||||
|
nativeImageAttributes(imageAttributes), lastStatus(status) {}
|
||||||
|
ImageAttributes(const ImageAttributes&);
|
||||||
|
ImageAttributes& operator=(const ImageAttributes&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpImageAttributes *nativeImageAttributes;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_IMAGEATTRIBUTES_H */
|
67
winsup/w32api/include/gdiplus/gdiplusimagecodec.h
Executable file
67
winsup/w32api/include/gdiplus/gdiplusimagecodec.h
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusimagecodec.h
|
||||||
|
*
|
||||||
|
* GDI+ image decoders and encoders
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_IMAGECODEC_H
|
||||||
|
#define __GDIPLUS_IMAGECODEC_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static __inline__ GpStatus GetImageDecoders(UINT numDecoders, UINT size,
|
||||||
|
ImageCodecInfo *decoders)
|
||||||
|
{
|
||||||
|
#ifdef __cplusplus
|
||||||
|
return DllExports::GdipGetImageDecoders(numDecoders, size, decoders);
|
||||||
|
#else
|
||||||
|
return GdipGetImageDecoders(numDecoders, size, decoders);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ GpStatus GetImageDecodersSize(UINT *numDecoders, UINT *size)
|
||||||
|
{
|
||||||
|
#ifdef __cplusplus
|
||||||
|
return DllExports::GdipGetImageDecodersSize(numDecoders, size);
|
||||||
|
#else
|
||||||
|
return GdipGetImageDecodersSize(numDecoders, size);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ GpStatus GetImageEncoders(UINT numEncoders, UINT size,
|
||||||
|
ImageCodecInfo *encoders)
|
||||||
|
{
|
||||||
|
#ifdef __cplusplus
|
||||||
|
return DllExports::GdipGetImageEncoders(numEncoders, size, encoders);
|
||||||
|
#else
|
||||||
|
return GdipGetImageEncoders(numEncoders, size, encoders);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ GpStatus GetImageEncodersSize(UINT *numEncoders, UINT *size)
|
||||||
|
{
|
||||||
|
#ifdef __cplusplus
|
||||||
|
return DllExports::GdipGetImageEncodersSize(numEncoders, size);
|
||||||
|
#else
|
||||||
|
return GdipGetImageEncodersSize(numEncoders, size);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_IMAGECODEC_H */
|
411
winsup/w32api/include/gdiplus/gdiplusimaging.h
Executable file
411
winsup/w32api/include/gdiplus/gdiplusimaging.h
Executable file
@ -0,0 +1,411 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusimaging.h
|
||||||
|
*
|
||||||
|
* GDI+ Imaging and image metadata
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_IMAGING_H
|
||||||
|
#define __GDIPLUS_IMAGING_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef enum ImageCodecFlags {
|
||||||
|
ImageCodecFlagsEncoder = 0x00000001,
|
||||||
|
ImageCodecFlagsDecoder = 0x00000002,
|
||||||
|
ImageCodecFlagsSupportBitmap = 0x00000004,
|
||||||
|
ImageCodecFlagsSupportVector = 0x00000008,
|
||||||
|
ImageCodecFlagsSeekableEncode = 0x00000010,
|
||||||
|
ImageCodecFlagsBlockingDecode = 0x00000020,
|
||||||
|
ImageCodecFlagsBuiltin = 0x00010000,
|
||||||
|
ImageCodecFlagsSystem = 0x00020000,
|
||||||
|
ImageCodecFlagsUser = 0x00040000
|
||||||
|
} ImageCodecFlags;
|
||||||
|
|
||||||
|
typedef enum ImageFlags {
|
||||||
|
ImageFlagsNone = 0,
|
||||||
|
ImageFlagsScalable = 0x00000001,
|
||||||
|
ImageFlagsHasAlpha = 0x00000002,
|
||||||
|
ImageFlagsHasTranslucent = 0x00000004,
|
||||||
|
ImageFlagsPartiallyScalable = 0x00000008,
|
||||||
|
ImageFlagsColorSpaceRGB = 0x00000010,
|
||||||
|
ImageFlagsColorSpaceCMYK = 0x00000020,
|
||||||
|
ImageFlagsColorSpaceGRAY = 0x00000040,
|
||||||
|
ImageFlagsColorSpaceYCBCR = 0x00000080,
|
||||||
|
ImageFlagsColorSpaceYCCK = 0x00000100,
|
||||||
|
ImageFlagsHasRealDPI = 0x00001000,
|
||||||
|
ImageFlagsHasRealPixelSize = 0x00002000,
|
||||||
|
ImageFlagsReadOnly = 0x00010000,
|
||||||
|
ImageFlagsCaching = 0x00020000
|
||||||
|
} ImageFlags;
|
||||||
|
|
||||||
|
typedef enum ImageLockMode {
|
||||||
|
ImageLockModeRead = 1,
|
||||||
|
ImageLockModeWrite = 2,
|
||||||
|
ImageLockModeUserInputBuf = 4
|
||||||
|
} ImageLockMode;
|
||||||
|
|
||||||
|
typedef enum ItemDataPosition {
|
||||||
|
ItemDataPositionAfterHeader = 0,
|
||||||
|
ItemDataPositionAfterPalette = 1,
|
||||||
|
ItemDataPositionAfterBits = 2
|
||||||
|
} ItemDataPosition;
|
||||||
|
|
||||||
|
typedef enum RotateFlipType {
|
||||||
|
RotateNoneFlipNone = 0,
|
||||||
|
Rotate90FlipNone = 1,
|
||||||
|
Rotate180FlipNone = 2,
|
||||||
|
Rotate270FlipNone = 3,
|
||||||
|
RotateNoneFlipX = 4,
|
||||||
|
Rotate90FlipX = 5,
|
||||||
|
Rotate180FlipX = 6,
|
||||||
|
Rotate270FlipX = 7,
|
||||||
|
Rotate180FlipXY = 0,
|
||||||
|
Rotate270FlipXY = 1,
|
||||||
|
RotateNoneFlipXY = 2,
|
||||||
|
Rotate90FlipXY = 3,
|
||||||
|
Rotate180FlipY = 4,
|
||||||
|
Rotate270FlipY = 5,
|
||||||
|
RotateNoneFlipY = 6,
|
||||||
|
Rotate90FlipY = 7
|
||||||
|
} RotateFlipType;
|
||||||
|
|
||||||
|
typedef struct BitmapData {
|
||||||
|
UINT Width;
|
||||||
|
UINT Height;
|
||||||
|
INT Stride;
|
||||||
|
INT PixelFormat; /* MSDN: "PixelFormat PixelFormat;" */
|
||||||
|
VOID *Scan0;
|
||||||
|
UINT_PTR Reserved;
|
||||||
|
} BitmapData;
|
||||||
|
|
||||||
|
typedef struct EncoderParameter {
|
||||||
|
GUID Guid;
|
||||||
|
ULONG NumberOfValues;
|
||||||
|
ULONG Type;
|
||||||
|
VOID *Value;
|
||||||
|
} EncoderParameter;
|
||||||
|
|
||||||
|
typedef struct EncoderParameters {
|
||||||
|
UINT Count;
|
||||||
|
EncoderParameter Parameter[1];
|
||||||
|
} EncoderParameters;
|
||||||
|
|
||||||
|
typedef struct ImageCodecInfo {
|
||||||
|
CLSID Clsid;
|
||||||
|
GUID FormatID;
|
||||||
|
WCHAR *CodecName;
|
||||||
|
WCHAR *DllName;
|
||||||
|
WCHAR *FormatDescription;
|
||||||
|
WCHAR *FilenameExtension;
|
||||||
|
WCHAR *MimeType;
|
||||||
|
DWORD Flags;
|
||||||
|
DWORD Version;
|
||||||
|
DWORD SigCount;
|
||||||
|
DWORD SigSize;
|
||||||
|
BYTE *SigPattern;
|
||||||
|
BYTE *SigMask;
|
||||||
|
} ImageCodecInfo;
|
||||||
|
|
||||||
|
/* FIXME: The order of fields is probably wrong. Please don't use this
|
||||||
|
* structure until this problem is resolved! Can't test because
|
||||||
|
* ImageItemData is not supported by the redistributable GDI+ 1.0 DLL. */
|
||||||
|
typedef struct ImageItemData {
|
||||||
|
UINT Size;
|
||||||
|
UINT Position;
|
||||||
|
VOID *Desc;
|
||||||
|
UINT DescSize;
|
||||||
|
UINT *Data;
|
||||||
|
UINT DataSize;
|
||||||
|
UINT Cookie;
|
||||||
|
} ImageItemData;
|
||||||
|
|
||||||
|
typedef struct PropertyItem {
|
||||||
|
PROPID id;
|
||||||
|
ULONG length;
|
||||||
|
WORD type;
|
||||||
|
VOID *value;
|
||||||
|
} PropertyItem;
|
||||||
|
|
||||||
|
#define PropertyTagGpsVer ((PROPID) 0x0000)
|
||||||
|
#define PropertyTagGpsLatitudeRef ((PROPID) 0x0001)
|
||||||
|
#define PropertyTagGpsLatitude ((PROPID) 0x0002)
|
||||||
|
#define PropertyTagGpsLongitudeRef ((PROPID) 0x0003)
|
||||||
|
#define PropertyTagGpsLongitude ((PROPID) 0x0004)
|
||||||
|
#define PropertyTagGpsAltitudeRef ((PROPID) 0x0005)
|
||||||
|
#define PropertyTagGpsAltitude ((PROPID) 0x0006)
|
||||||
|
#define PropertyTagGpsGpsTime ((PROPID) 0x0007)
|
||||||
|
#define PropertyTagGpsGpsSatellites ((PROPID) 0x0008)
|
||||||
|
#define PropertyTagGpsGpsStatus ((PROPID) 0x0009)
|
||||||
|
#define PropertyTagGpsGpsMeasureMode ((PROPID) 0x000A)
|
||||||
|
#define PropertyTagGpsGpsDop ((PROPID) 0x000B)
|
||||||
|
#define PropertyTagGpsSpeedRef ((PROPID) 0x000C)
|
||||||
|
#define PropertyTagGpsSpeed ((PROPID) 0x000D)
|
||||||
|
#define PropertyTagGpsTrackRef ((PROPID) 0x000E)
|
||||||
|
#define PropertyTagGpsTrack ((PROPID) 0x000F)
|
||||||
|
#define PropertyTagGpsImgDirRef ((PROPID) 0x0010)
|
||||||
|
#define PropertyTagGpsImgDir ((PROPID) 0x0011)
|
||||||
|
#define PropertyTagGpsMapDatum ((PROPID) 0x0012)
|
||||||
|
#define PropertyTagGpsDestLatRef ((PROPID) 0x0013)
|
||||||
|
#define PropertyTagGpsDestLat ((PROPID) 0x0014)
|
||||||
|
#define PropertyTagGpsDestLongRef ((PROPID) 0x0015)
|
||||||
|
#define PropertyTagGpsDestLong ((PROPID) 0x0016)
|
||||||
|
#define PropertyTagGpsDestBearRef ((PROPID) 0x0017)
|
||||||
|
#define PropertyTagGpsDestBear ((PROPID) 0x0018)
|
||||||
|
#define PropertyTagGpsDestDistRef ((PROPID) 0x0019)
|
||||||
|
#define PropertyTagGpsDestDist ((PROPID) 0x001A)
|
||||||
|
#define PropertyTagNewSubfileType ((PROPID) 0x00FE)
|
||||||
|
#define PropertyTagSubfileType ((PROPID) 0x00FF)
|
||||||
|
#define PropertyTagImageWidth ((PROPID) 0x0100)
|
||||||
|
#define PropertyTagImageHeight ((PROPID) 0x0101)
|
||||||
|
#define PropertyTagBitsPerSample ((PROPID) 0x0102)
|
||||||
|
#define PropertyTagCompression ((PROPID) 0x0103)
|
||||||
|
#define PropertyTagPhotometricInterp ((PROPID) 0x0106)
|
||||||
|
#define PropertyTagThreshHolding ((PROPID) 0x0107)
|
||||||
|
#define PropertyTagCellWidth ((PROPID) 0x0108)
|
||||||
|
#define PropertyTagCellHeight ((PROPID) 0x0109)
|
||||||
|
#define PropertyTagFillOrder ((PROPID) 0x010A)
|
||||||
|
#define PropertyTagDocumentName ((PROPID) 0x010D)
|
||||||
|
#define PropertyTagImageDescription ((PROPID) 0x010E)
|
||||||
|
#define PropertyTagEquipMake ((PROPID) 0x010F)
|
||||||
|
#define PropertyTagEquipModel ((PROPID) 0x0110)
|
||||||
|
#define PropertyTagStripOffsets ((PROPID) 0x0111)
|
||||||
|
#define PropertyTagOrientation ((PROPID) 0x0112)
|
||||||
|
#define PropertyTagSamplesPerPixel ((PROPID) 0x0115)
|
||||||
|
#define PropertyTagRowsPerStrip ((PROPID) 0x0116)
|
||||||
|
#define PropertyTagStripBytesCount ((PROPID) 0x0117)
|
||||||
|
#define PropertyTagMinSampleValue ((PROPID) 0x0118)
|
||||||
|
#define PropertyTagMaxSampleValue ((PROPID) 0x0119)
|
||||||
|
#define PropertyTagXResolution ((PROPID) 0x011A)
|
||||||
|
#define PropertyTagYResolution ((PROPID) 0x011B)
|
||||||
|
#define PropertyTagPlanarConfig ((PROPID) 0x011C)
|
||||||
|
#define PropertyTagPageName ((PROPID) 0x011D)
|
||||||
|
#define PropertyTagXPosition ((PROPID) 0x011E)
|
||||||
|
#define PropertyTagYPosition ((PROPID) 0x011F)
|
||||||
|
#define PropertyTagFreeOffset ((PROPID) 0x0120)
|
||||||
|
#define PropertyTagFreeByteCounts ((PROPID) 0x0121)
|
||||||
|
#define PropertyTagGrayResponseUnit ((PROPID) 0x0122)
|
||||||
|
#define PropertyTagGrayResponseCurve ((PROPID) 0x0123)
|
||||||
|
#define PropertyTagT4Option ((PROPID) 0x0124)
|
||||||
|
#define PropertyTagT6Option ((PROPID) 0x0125)
|
||||||
|
#define PropertyTagResolutionUnit ((PROPID) 0x0128)
|
||||||
|
#define PropertyTagPageNumber ((PROPID) 0x0129)
|
||||||
|
#define PropertyTagTransferFunction ((PROPID) 0x012D)
|
||||||
|
#define PropertyTagSoftwareUsed ((PROPID) 0x0131)
|
||||||
|
#define PropertyTagDateTime ((PROPID) 0x0132)
|
||||||
|
#define PropertyTagArtist ((PROPID) 0x013B)
|
||||||
|
#define PropertyTagHostComputer ((PROPID) 0x013C)
|
||||||
|
#define PropertyTagPredictor ((PROPID) 0x013D)
|
||||||
|
#define PropertyTagWhitePoint ((PROPID) 0x013E)
|
||||||
|
#define PropertyTagPrimaryChromaticities ((PROPID) 0x013F)
|
||||||
|
#define PropertyTagColorMap ((PROPID) 0x0140)
|
||||||
|
#define PropertyTagHalftoneHints ((PROPID) 0x0141)
|
||||||
|
#define PropertyTagTileWidth ((PROPID) 0x0142)
|
||||||
|
#define PropertyTagTileLength ((PROPID) 0x0143)
|
||||||
|
#define PropertyTagTileOffset ((PROPID) 0x0144)
|
||||||
|
#define PropertyTagTileByteCounts ((PROPID) 0x0145)
|
||||||
|
#define PropertyTagInkSet ((PROPID) 0x014C)
|
||||||
|
#define PropertyTagInkNames ((PROPID) 0x014D)
|
||||||
|
#define PropertyTagNumberOfInks ((PROPID) 0x014E)
|
||||||
|
#define PropertyTagDotRange ((PROPID) 0x0150)
|
||||||
|
#define PropertyTagTargetPrinter ((PROPID) 0x0151)
|
||||||
|
#define PropertyTagExtraSamples ((PROPID) 0x0152)
|
||||||
|
#define PropertyTagSampleFormat ((PROPID) 0x0153)
|
||||||
|
#define PropertyTagSMinSampleValue ((PROPID) 0x0154)
|
||||||
|
#define PropertyTagSMaxSampleValue ((PROPID) 0x0155)
|
||||||
|
#define PropertyTagTransferRange ((PROPID) 0x0156)
|
||||||
|
#define PropertyTagJPEGProc ((PROPID) 0x0200)
|
||||||
|
#define PropertyTagJPEGInterFormat ((PROPID) 0x0201)
|
||||||
|
#define PropertyTagJPEGInterLength ((PROPID) 0x0202)
|
||||||
|
#define PropertyTagJPEGRestartInterval ((PROPID) 0x0203)
|
||||||
|
#define PropertyTagJPEGLosslessPredictors ((PROPID) 0x0205)
|
||||||
|
#define PropertyTagJPEGPointTransforms ((PROPID) 0x0206)
|
||||||
|
#define PropertyTagJPEGQTables ((PROPID) 0x0207)
|
||||||
|
#define PropertyTagJPEGDCTables ((PROPID) 0x0208)
|
||||||
|
#define PropertyTagJPEGACTables ((PROPID) 0x0209)
|
||||||
|
#define PropertyTagYCbCrCoefficients ((PROPID) 0x0211)
|
||||||
|
#define PropertyTagYCbCrSubsampling ((PROPID) 0x0212)
|
||||||
|
#define PropertyTagYCbCrPositioning ((PROPID) 0x0213)
|
||||||
|
#define PropertyTagREFBlackWhite ((PROPID) 0x0214)
|
||||||
|
#define PropertyTagGamma ((PROPID) 0x0301)
|
||||||
|
#define PropertyTagICCProfileDescriptor ((PROPID) 0x0302)
|
||||||
|
#define PropertyTagSRGBRenderingIntent ((PROPID) 0x0303)
|
||||||
|
#define PropertyTagImageTitle ((PROPID) 0x0320)
|
||||||
|
#define PropertyTagResolutionXUnit ((PROPID) 0x5001)
|
||||||
|
#define PropertyTagResolutionYUnit ((PROPID) 0x5002)
|
||||||
|
#define PropertyTagResolutionXLengthUnit ((PROPID) 0x5003)
|
||||||
|
#define PropertyTagResolutionYLengthUnit ((PROPID) 0x5004)
|
||||||
|
#define PropertyTagPrintFlags ((PROPID) 0x5005)
|
||||||
|
#define PropertyTagPrintFlagsVersion ((PROPID) 0x5006)
|
||||||
|
#define PropertyTagPrintFlagsCrop ((PROPID) 0x5007)
|
||||||
|
#define PropertyTagPrintFlagsBleedWidth ((PROPID) 0x5008)
|
||||||
|
#define PropertyTagPrintFlagsBleedWidthScale ((PROPID) 0x5009)
|
||||||
|
#define PropertyTagHalftoneLPI ((PROPID) 0x500A)
|
||||||
|
#define PropertyTagHalftoneLPIUnit ((PROPID) 0x500B)
|
||||||
|
#define PropertyTagHalftoneDegree ((PROPID) 0x500C)
|
||||||
|
#define PropertyTagHalftoneShape ((PROPID) 0x500D)
|
||||||
|
#define PropertyTagHalftoneMisc ((PROPID) 0x500E)
|
||||||
|
#define PropertyTagHalftoneScreen ((PROPID) 0x500F)
|
||||||
|
#define PropertyTagJPEGQuality ((PROPID) 0x5010)
|
||||||
|
#define PropertyTagGridSize ((PROPID) 0x5011)
|
||||||
|
#define PropertyTagThumbnailFormat ((PROPID) 0x5012)
|
||||||
|
#define PropertyTagThumbnailWidth ((PROPID) 0x5013)
|
||||||
|
#define PropertyTagThumbnailHeight ((PROPID) 0x5014)
|
||||||
|
#define PropertyTagThumbnailColorDepth ((PROPID) 0x5015)
|
||||||
|
#define PropertyTagThumbnailPlanes ((PROPID) 0x5016)
|
||||||
|
#define PropertyTagThumbnailRawBytes ((PROPID) 0x5017)
|
||||||
|
#define PropertyTagThumbnailSize ((PROPID) 0x5018)
|
||||||
|
#define PropertyTagThumbnailCompressedSize ((PROPID) 0x5019)
|
||||||
|
#define PropertyTagColorTransferFunction ((PROPID) 0x501A)
|
||||||
|
#define PropertyTagThumbnailData ((PROPID) 0x501B)
|
||||||
|
#define PropertyTagThumbnailImageWidth ((PROPID) 0x5020)
|
||||||
|
#define PropertyTagThumbnailImageHeight ((PROPID) 0x5021)
|
||||||
|
#define PropertyTagThumbnailBitsPerSample ((PROPID) 0x5022)
|
||||||
|
#define PropertyTagThumbnailCompression ((PROPID) 0x5023)
|
||||||
|
#define PropertyTagThumbnailPhotometricInterp ((PROPID) 0x5024)
|
||||||
|
#define PropertyTagThumbnailImageDescription ((PROPID) 0x5025)
|
||||||
|
#define PropertyTagThumbnailEquipMake ((PROPID) 0x5026)
|
||||||
|
#define PropertyTagThumbnailEquipModel ((PROPID) 0x5027)
|
||||||
|
#define PropertyTagThumbnailStripOffsets ((PROPID) 0x5028)
|
||||||
|
#define PropertyTagThumbnailOrientation ((PROPID) 0x5029)
|
||||||
|
#define PropertyTagThumbnailSamplesPerPixel ((PROPID) 0x502A)
|
||||||
|
#define PropertyTagThumbnailRowsPerStrip ((PROPID) 0x502B)
|
||||||
|
#define PropertyTagThumbnailStripBytesCount ((PROPID) 0x502C)
|
||||||
|
#define PropertyTagThumbnailResolutionX ((PROPID) 0x502D)
|
||||||
|
#define PropertyTagThumbnailResolutionY ((PROPID) 0x502E)
|
||||||
|
#define PropertyTagThumbnailPlanarConfig ((PROPID) 0x502F)
|
||||||
|
#define PropertyTagThumbnailResolutionUnit ((PROPID) 0x5030)
|
||||||
|
#define PropertyTagThumbnailTransferFunction ((PROPID) 0x5031)
|
||||||
|
#define PropertyTagThumbnailSoftwareUsed ((PROPID) 0x5032)
|
||||||
|
#define PropertyTagThumbnailDateTime ((PROPID) 0x5033)
|
||||||
|
#define PropertyTagThumbnailArtist ((PROPID) 0x5034)
|
||||||
|
#define PropertyTagThumbnailWhitePoint ((PROPID) 0x5035)
|
||||||
|
#define PropertyTagThumbnailPrimaryChromaticities ((PROPID) 0x5036)
|
||||||
|
#define PropertyTagThumbnailYCbCrCoefficients ((PROPID) 0x5037)
|
||||||
|
#define PropertyTagThumbnailYCbCrSubsampling ((PROPID) 0x5038)
|
||||||
|
#define PropertyTagThumbnailYCbCrPositioning ((PROPID) 0x5039)
|
||||||
|
#define PropertyTagThumbnailRefBlackWhite ((PROPID) 0x503A)
|
||||||
|
#define PropertyTagThumbnailCopyRight ((PROPID) 0x503B)
|
||||||
|
#define PropertyTagLuminanceTable ((PROPID) 0x5090)
|
||||||
|
#define PropertyTagChrominanceTable ((PROPID) 0x5091)
|
||||||
|
#define PropertyTagFrameDelay ((PROPID) 0x5100)
|
||||||
|
#define PropertyTagLoopCount ((PROPID) 0x5101)
|
||||||
|
#define PropertyTagGlobalPalette ((PROPID) 0x5102)
|
||||||
|
#define PropertyTagIndexBackground ((PROPID) 0x5103)
|
||||||
|
#define PropertyTagIndexTransparent ((PROPID) 0x5104)
|
||||||
|
#define PropertyTagPixelUnit ((PROPID) 0x5110)
|
||||||
|
#define PropertyTagPixelPerUnitX ((PROPID) 0x5111)
|
||||||
|
#define PropertyTagPixelPerUnitY ((PROPID) 0x5112)
|
||||||
|
#define PropertyTagPaletteHistogram ((PROPID) 0x5113)
|
||||||
|
#define PropertyTagCopyright ((PROPID) 0x8298)
|
||||||
|
#define PropertyTagExifExposureTime ((PROPID) 0x829A)
|
||||||
|
#define PropertyTagExifFNumber ((PROPID) 0x829D)
|
||||||
|
#define PropertyTagExifIFD ((PROPID) 0x8769)
|
||||||
|
#define PropertyTagICCProfile ((PROPID) 0x8773)
|
||||||
|
#define PropertyTagExifExposureProg ((PROPID) 0x8822)
|
||||||
|
#define PropertyTagExifSpectralSense ((PROPID) 0x8824)
|
||||||
|
#define PropertyTagGpsIFD ((PROPID) 0x8825)
|
||||||
|
#define PropertyTagExifISOSpeed ((PROPID) 0x8827)
|
||||||
|
#define PropertyTagExifOECF ((PROPID) 0x8828)
|
||||||
|
#define PropertyTagExifVer ((PROPID) 0x9000)
|
||||||
|
#define PropertyTagExifDTOrig ((PROPID) 0x9003)
|
||||||
|
#define PropertyTagExifDTDigitized ((PROPID) 0x9004)
|
||||||
|
#define PropertyTagExifCompConfig ((PROPID) 0x9101)
|
||||||
|
#define PropertyTagExifCompBPP ((PROPID) 0x9102)
|
||||||
|
#define PropertyTagExifShutterSpeed ((PROPID) 0x9201)
|
||||||
|
#define PropertyTagExifAperture ((PROPID) 0x9202)
|
||||||
|
#define PropertyTagExifBrightness ((PROPID) 0x9203)
|
||||||
|
#define PropertyTagExifExposureBias ((PROPID) 0x9204)
|
||||||
|
#define PropertyTagExifMaxAperture ((PROPID) 0x9205)
|
||||||
|
#define PropertyTagExifSubjectDist ((PROPID) 0x9206)
|
||||||
|
#define PropertyTagExifMeteringMode ((PROPID) 0x9207)
|
||||||
|
#define PropertyTagExifLightSource ((PROPID) 0x9208)
|
||||||
|
#define PropertyTagExifFlash ((PROPID) 0x9209)
|
||||||
|
#define PropertyTagExifFocalLength ((PROPID) 0x920A)
|
||||||
|
#define PropertyTagExifMakerNote ((PROPID) 0x927C)
|
||||||
|
#define PropertyTagExifUserComment ((PROPID) 0x9286)
|
||||||
|
#define PropertyTagExifDTSubsec ((PROPID) 0x9290)
|
||||||
|
#define PropertyTagExifDTOrigSS ((PROPID) 0x9291)
|
||||||
|
#define PropertyTagExifDTDigSS ((PROPID) 0x9292)
|
||||||
|
#define PropertyTagExifFPXVer ((PROPID) 0xA000)
|
||||||
|
#define PropertyTagExifColorSpace ((PROPID) 0xA001)
|
||||||
|
#define PropertyTagExifPixXDim ((PROPID) 0xA002)
|
||||||
|
#define PropertyTagExifPixYDim ((PROPID) 0xA003)
|
||||||
|
#define PropertyTagExifRelatedWav ((PROPID) 0xA004)
|
||||||
|
#define PropertyTagExifInterop ((PROPID) 0xA005)
|
||||||
|
#define PropertyTagExifFlashEnergy ((PROPID) 0xA20B)
|
||||||
|
#define PropertyTagExifSpatialFR ((PROPID) 0xA20C)
|
||||||
|
#define PropertyTagExifFocalXRes ((PROPID) 0xA20E)
|
||||||
|
#define PropertyTagExifFocalYRes ((PROPID) 0xA20F)
|
||||||
|
#define PropertyTagExifFocalResUnit ((PROPID) 0xA210)
|
||||||
|
#define PropertyTagExifSubjectLoc ((PROPID) 0xA214)
|
||||||
|
#define PropertyTagExifExposureIndex ((PROPID) 0xA215)
|
||||||
|
#define PropertyTagExifSensingMethod ((PROPID) 0xA217)
|
||||||
|
#define PropertyTagExifFileSource ((PROPID) 0xA300)
|
||||||
|
#define PropertyTagExifSceneType ((PROPID) 0xA301)
|
||||||
|
#define PropertyTagExifCfaPattern ((PROPID) 0xA302)
|
||||||
|
|
||||||
|
#define PropertyTagTypeByte ((WORD) 1)
|
||||||
|
#define PropertyTagTypeASCII ((WORD) 2)
|
||||||
|
#define PropertyTagTypeShort ((WORD) 3)
|
||||||
|
#define PropertyTagTypeLong ((WORD) 4)
|
||||||
|
#define PropertyTagTypeRational ((WORD) 5)
|
||||||
|
#define PropertyTagTypeUndefined ((WORD) 7)
|
||||||
|
#define PropertyTagTypeSLONG ((WORD) 9)
|
||||||
|
#define PropertyTagTypeSRational ((WORD) 10)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern const GUID EncoderChrominanceTable; /* f2e455dc-09b3-4316-8260-676ada32481c */
|
||||||
|
extern const GUID EncoderColorDepth; /* 66087055-ad66-4c7c-9a18-38a2310b8337 */
|
||||||
|
extern const GUID EncoderColorSpace; /* ? */
|
||||||
|
extern const GUID EncoderCompression; /* e09d739d-ccd4-44ee-8eba-3fbf8be4fc58 */
|
||||||
|
extern const GUID EncoderImageItems; /* ? */
|
||||||
|
extern const GUID EncoderLuminanceTable; /* edb33bce-0266-4a77-b904-27216099e717 */
|
||||||
|
extern const GUID EncoderQuality; /* 1d5be4b5-fa4a-452d-9cdd-5db35105e7eb */
|
||||||
|
extern const GUID EncoderRenderMethod; /* 6d42c53a-229a-4825-8bb7-5c99e2b9a8b8 */
|
||||||
|
extern const GUID EncoderSaveAsCMYK; /* ? */
|
||||||
|
extern const GUID EncoderSaveFlag; /* 292266fc-ac40-47bf-8cfc-a85b89a655de */
|
||||||
|
extern const GUID EncoderScanMethod; /* 3a4e2661-3109-4e56-8536-42c156e7dcfa */
|
||||||
|
extern const GUID EncoderTransformation; /* 8d0eb2d1-a58e-4ea8-aa14-108074b7b6f9 */
|
||||||
|
extern const GUID EncoderVersion; /* 24d18c76-814a-41a4-bf53-1c219cccf797 */
|
||||||
|
|
||||||
|
extern const GUID ImageFormatBMP; /* b96b3cab-0728-11d3-9d7b-0000f81ef32e */
|
||||||
|
extern const GUID ImageFormatEMF; /* b96b3cac-0728-11d3-9d7b-0000f81ef32e */
|
||||||
|
extern const GUID ImageFormatEXIF; /* ? */
|
||||||
|
extern const GUID ImageFormatGIF; /* b96b3cb0-0728-11d3-9d7b-0000f81ef32e */
|
||||||
|
extern const GUID ImageFormatIcon; /* b96b3cb5-0728-11d3-9d7b-0000f81ef32e */
|
||||||
|
extern const GUID ImageFormatJPEG; /* b96b3cae-0728-11d3-9d7b-0000f81ef32e */
|
||||||
|
extern const GUID ImageFormatMemoryBMP; /* b96b3caa-0728-11d3-9d7b-0000f81ef32e */
|
||||||
|
extern const GUID ImageFormatPNG; /* b96b3caf-0728-11d3-9d7b-0000f81ef32e */
|
||||||
|
extern const GUID ImageFormatTIFF; /* b96b3cb1-0728-11d3-9d7b-0000f81ef32e */
|
||||||
|
extern const GUID ImageFormatUndefined; /* ? */
|
||||||
|
extern const GUID ImageFormatWMF; /* b96b3cad-0728-11d3-9d7b-0000f81ef32e */
|
||||||
|
|
||||||
|
extern const GUID FrameDimensionPage; /* 7462dc86-6180-4c7e-8e3f-ee7333a7a483 */
|
||||||
|
extern const GUID FrameDimensionResolution; /* ? */
|
||||||
|
extern const GUID FrameDimensionTime; /* 6aedbd6d-3fb5-418a-83a6-7f45229dc872 */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_IMAGING_H */
|
1613
winsup/w32api/include/gdiplus/gdiplusimpl.h
Executable file
1613
winsup/w32api/include/gdiplus/gdiplusimpl.h
Executable file
File diff suppressed because it is too large
Load Diff
74
winsup/w32api/include/gdiplus/gdiplusinit.h
Executable file
74
winsup/w32api/include/gdiplus/gdiplusinit.h
Executable file
@ -0,0 +1,74 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusinit.h
|
||||||
|
*
|
||||||
|
* GDI+ Initialization
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_INIT_H
|
||||||
|
#define __GDIPLUS_INIT_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct GdiplusStartupInput {
|
||||||
|
UINT32 GdiplusVersion;
|
||||||
|
DebugEventProc DebugEventCallback;
|
||||||
|
BOOL SuppressBackgroundThread;
|
||||||
|
BOOL SuppressExternalCodecs;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
GdiplusStartupInput(DebugEventProc debugEventCallback = NULL,
|
||||||
|
BOOL suppressBackgroundThread = FALSE,
|
||||||
|
BOOL suppressExternalCodecs = FALSE):
|
||||||
|
GdiplusVersion(1),
|
||||||
|
DebugEventCallback(debugEventCallback),
|
||||||
|
SuppressBackgroundThread(suppressBackgroundThread),
|
||||||
|
SuppressExternalCodecs(suppressExternalCodecs) {}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} GdiplusStartupInput;
|
||||||
|
|
||||||
|
typedef GpStatus WINGDIPAPI (*NotificationHookProc)(ULONG_PTR *token);
|
||||||
|
typedef VOID WINGDIPAPI (*NotificationUnhookProc)(ULONG_PTR token);
|
||||||
|
|
||||||
|
typedef struct GdiplusStartupOutput {
|
||||||
|
NotificationHookProc NotificationHook;
|
||||||
|
NotificationUnhookProc NotificationUnhook;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
GdiplusStartupOutput():
|
||||||
|
NotificationHook(NULL),
|
||||||
|
NotificationUnhook(NULL) {}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} GdiplusStartupOutput;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GpStatus WINGDIPAPI GdiplusStartup(ULONG_PTR*,GDIPCONST GdiplusStartupInput*,GdiplusStartupOutput*);
|
||||||
|
VOID WINGDIPAPI GdiplusShutdown(ULONG_PTR);
|
||||||
|
GpStatus WINGDIPAPI GdiplusNotificationHook(ULONG_PTR*);
|
||||||
|
VOID WINGDIPAPI GdiplusNotificationUnhook(ULONG_PTR);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_INIT_H */
|
131
winsup/w32api/include/gdiplus/gdipluslinecaps.h
Executable file
131
winsup/w32api/include/gdiplus/gdipluslinecaps.h
Executable file
@ -0,0 +1,131 @@
|
|||||||
|
/*
|
||||||
|
* gdipluslinecaps.h
|
||||||
|
*
|
||||||
|
* GDI+ AdjustableArrowCap class
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_LINECAPS_H
|
||||||
|
#define __GDIPLUS_LINECAPS_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#error "A C++ compiler is required to include gdipluslinecaps.h."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class AdjustableArrowCap: public CustomLineCap
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
AdjustableArrowCap(REAL height, REAL width, BOOL isFilled):
|
||||||
|
CustomLineCap(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpAdjustableArrowCap *nativeAdjustableArrowCap = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateAdjustableArrowCap(
|
||||||
|
height, width, isFilled,
|
||||||
|
&nativeAdjustableArrowCap);
|
||||||
|
nativeCustomLineCap = nativeAdjustableArrowCap;
|
||||||
|
}
|
||||||
|
virtual ~AdjustableArrowCap()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
virtual AdjustableArrowCap* Clone() const
|
||||||
|
{
|
||||||
|
GpCustomLineCap *cloneCustomLineCap = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneCustomLineCap(
|
||||||
|
nativeCustomLineCap, &cloneCustomLineCap));
|
||||||
|
if (status == Ok) {
|
||||||
|
AdjustableArrowCap *result = new AdjustableArrowCap(
|
||||||
|
cloneCustomLineCap, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeleteCustomLineCap(
|
||||||
|
cloneCustomLineCap);
|
||||||
|
lastStatus = OutOfMemory;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
REAL GetHeight() const
|
||||||
|
{
|
||||||
|
REAL result = 0.0f;
|
||||||
|
updateStatus(DllExports::GdipGetAdjustableArrowCapHeight(
|
||||||
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
||||||
|
&result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
REAL GetMiddleInset() const
|
||||||
|
{
|
||||||
|
REAL result = 0.0f;
|
||||||
|
updateStatus(DllExports::GdipGetAdjustableArrowCapMiddleInset(
|
||||||
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
||||||
|
&result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
REAL GetWidth() const
|
||||||
|
{
|
||||||
|
REAL result = 0.0f;
|
||||||
|
updateStatus(DllExports::GdipGetAdjustableArrowCapWidth(
|
||||||
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
||||||
|
&result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
BOOL IsFilled() const
|
||||||
|
{
|
||||||
|
BOOL result = FALSE;
|
||||||
|
updateStatus(DllExports::GdipGetAdjustableArrowCapFillState(
|
||||||
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
||||||
|
&result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status SetFillState(BOOL isFilled)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetAdjustableArrowCapFillState(
|
||||||
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
||||||
|
isFilled));
|
||||||
|
}
|
||||||
|
Status SetHeight(REAL height)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetAdjustableArrowCapHeight(
|
||||||
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
||||||
|
height));
|
||||||
|
}
|
||||||
|
Status SetMiddleInset(REAL middleInset)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetAdjustableArrowCapMiddleInset(
|
||||||
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
||||||
|
middleInset));
|
||||||
|
}
|
||||||
|
Status SetWidth(REAL width)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetAdjustableArrowCapWidth(
|
||||||
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
||||||
|
width));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
AdjustableArrowCap(GpCustomLineCap *customLineCap, Status status):
|
||||||
|
CustomLineCap(customLineCap, status) {}
|
||||||
|
AdjustableArrowCap(const AdjustableArrowCap&);
|
||||||
|
AdjustableArrowCap& operator=(const AdjustableArrowCap&);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_LINECAPS_H */
|
240
winsup/w32api/include/gdiplus/gdiplusmatrix.h
Executable file
240
winsup/w32api/include/gdiplus/gdiplusmatrix.h
Executable file
@ -0,0 +1,240 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusmatrix.h
|
||||||
|
*
|
||||||
|
* GDI+ Matrix class
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_MATRIX_H
|
||||||
|
#define __GDIPLUS_MATRIX_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#error "A C++ compiler is required to include gdiplusmatrix.h."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define GDIP_MATRIX_PI \
|
||||||
|
3.1415926535897932384626433832795028841971693993751058209749445923078164
|
||||||
|
|
||||||
|
class Matrix: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class Graphics;
|
||||||
|
friend class GraphicsPath;
|
||||||
|
friend class LinearGradientBrush;
|
||||||
|
friend class PathGradientBrush;
|
||||||
|
friend class Pen;
|
||||||
|
friend class Region;
|
||||||
|
friend class TextureBrush;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Matrix(): nativeMatrix(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreateMatrix(&nativeMatrix);
|
||||||
|
}
|
||||||
|
Matrix(REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy):
|
||||||
|
nativeMatrix(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreateMatrix2(
|
||||||
|
m11, m12, m21, m22, dx, dy,
|
||||||
|
&nativeMatrix);
|
||||||
|
}
|
||||||
|
Matrix(const RectF& rect, const PointF *dstplg):
|
||||||
|
nativeMatrix(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreateMatrix3(
|
||||||
|
&rect, dstplg, &nativeMatrix);
|
||||||
|
}
|
||||||
|
Matrix(const Rect& rect, const Point *dstplg):
|
||||||
|
nativeMatrix(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreateMatrix3I(
|
||||||
|
&rect, dstplg, &nativeMatrix);
|
||||||
|
}
|
||||||
|
~Matrix()
|
||||||
|
{
|
||||||
|
DllExports::GdipDeleteMatrix(nativeMatrix);
|
||||||
|
}
|
||||||
|
Matrix* Clone() const
|
||||||
|
{
|
||||||
|
GpMatrix *cloneMatrix = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneMatrix(
|
||||||
|
nativeMatrix, &cloneMatrix));
|
||||||
|
if (status == Ok) {
|
||||||
|
Matrix *result = new Matrix(cloneMatrix, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeleteMatrix(cloneMatrix);
|
||||||
|
lastStatus = OutOfMemory;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL Equals(const Matrix *matrix) const
|
||||||
|
{
|
||||||
|
BOOL result;
|
||||||
|
updateStatus(DllExports::GdipIsMatrixEqual(
|
||||||
|
nativeMatrix,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetElements(REAL *m) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetMatrixElements(
|
||||||
|
nativeMatrix, m));
|
||||||
|
}
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status Invert()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipInvertMatrix(nativeMatrix));
|
||||||
|
}
|
||||||
|
BOOL IsIdentity() const
|
||||||
|
{
|
||||||
|
BOOL result;
|
||||||
|
updateStatus(DllExports::GdipIsMatrixIdentity(
|
||||||
|
nativeMatrix, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
BOOL IsInvertible() const
|
||||||
|
{
|
||||||
|
BOOL result;
|
||||||
|
updateStatus(DllExports::GdipIsMatrixInvertible(
|
||||||
|
nativeMatrix, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status Multiply(const Matrix *matrix,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipMultiplyMatrix(
|
||||||
|
nativeMatrix,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL, order));
|
||||||
|
}
|
||||||
|
REAL OffsetX() const
|
||||||
|
{
|
||||||
|
REAL m[6];
|
||||||
|
updateStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m));
|
||||||
|
return m[4];
|
||||||
|
}
|
||||||
|
REAL OffsetY() const
|
||||||
|
{
|
||||||
|
REAL m[6];
|
||||||
|
updateStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m));
|
||||||
|
return m[5];
|
||||||
|
}
|
||||||
|
Status Reset()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetMatrixElements(
|
||||||
|
nativeMatrix,
|
||||||
|
1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
|
||||||
|
}
|
||||||
|
Status Rotate(REAL angle, MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipRotateMatrix(
|
||||||
|
nativeMatrix, angle, order));
|
||||||
|
}
|
||||||
|
Status RotateAt(REAL angle, const PointF& center,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
REAL angleRadian = angle * GDIP_MATRIX_PI / 180.0f;
|
||||||
|
REAL cosAngle = ::cos(angleRadian);
|
||||||
|
REAL sinAngle = ::sin(angleRadian);
|
||||||
|
REAL x = center.X;
|
||||||
|
REAL y = center.Y;
|
||||||
|
|
||||||
|
Matrix matrix2(cosAngle, sinAngle, -sinAngle, cosAngle,
|
||||||
|
x * (1.0f-cosAngle) + y * sinAngle,
|
||||||
|
-x * sinAngle + y * (1.0f-cosAngle));
|
||||||
|
Status status = matrix2.GetLastStatus();
|
||||||
|
if (status == Ok) {
|
||||||
|
return Multiply(&matrix2, order);
|
||||||
|
} else {
|
||||||
|
return lastStatus = status;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Status Scale(REAL scaleX, REAL scaleY,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipScaleMatrix(
|
||||||
|
nativeMatrix, scaleX, scaleY, order));
|
||||||
|
}
|
||||||
|
Status SetElements(REAL m11, REAL m12, REAL m21, REAL m22,
|
||||||
|
REAL dx, REAL dy)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetMatrixElements(
|
||||||
|
nativeMatrix, m11, m12, m21, m22, dx, dy));
|
||||||
|
}
|
||||||
|
Status Shear(REAL shearX, REAL shearY,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipShearMatrix(
|
||||||
|
nativeMatrix, shearX, shearY, order));
|
||||||
|
}
|
||||||
|
Status TransformPoints(PointF *pts, INT count = 1) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipTransformMatrixPoints(
|
||||||
|
nativeMatrix, pts, count));
|
||||||
|
}
|
||||||
|
Status TransformPoints(Point *pts, INT count = 1) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipTransformMatrixPointsI(
|
||||||
|
nativeMatrix, pts, count));
|
||||||
|
}
|
||||||
|
Status TransformVectors(PointF *pts, INT count = 1) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipVectorTransformMatrixPoints(
|
||||||
|
nativeMatrix, pts, count));
|
||||||
|
}
|
||||||
|
Status TransformVectors(Point *pts, INT count = 1) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipVectorTransformMatrixPointsI(
|
||||||
|
nativeMatrix, pts, count));
|
||||||
|
}
|
||||||
|
Status Translate(REAL offsetX, REAL offsetY,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipTranslateMatrix(
|
||||||
|
nativeMatrix, offsetX, offsetY, order));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Matrix(GpMatrix *matrix, Status status):
|
||||||
|
nativeMatrix(matrix), lastStatus(status) {}
|
||||||
|
Matrix(const Matrix&);
|
||||||
|
Matrix& operator=(const Matrix&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpMatrix *nativeMatrix;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
#undef GDIP_MATRIX_PI
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_MATRIX_H */
|
42
winsup/w32api/include/gdiplus/gdiplusmem.h
Executable file
42
winsup/w32api/include/gdiplus/gdiplusmem.h
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusmem.h
|
||||||
|
*
|
||||||
|
* GDI+ memory allocation
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_MEM_H
|
||||||
|
#define __GDIPLUS_MEM_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
namespace DllExports {
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
VOID* WINGDIPAPI GdipAlloc(size_t);
|
||||||
|
VOID WINGDIPAPI GdipFree(VOID*);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
} /* namespace DllExports */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_MEM_H */
|
305
winsup/w32api/include/gdiplus/gdiplusmetafile.h
Executable file
305
winsup/w32api/include/gdiplus/gdiplusmetafile.h
Executable file
@ -0,0 +1,305 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusmetafile.h
|
||||||
|
*
|
||||||
|
* GDI+ Metafile class
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_METAFILE_H
|
||||||
|
#define __GDIPLUS_METAFILE_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#error "A C++ compiler is required to include gdiplusmetafile.h."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class Metafile: public Image
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static UINT EmfToWmfBits(HENHMETAFILE hEmf,
|
||||||
|
UINT cbData16, LPBYTE pData16,
|
||||||
|
INT iMapMode = MM_ANISOTROPIC,
|
||||||
|
EmfToWmfBitsFlags eFlags = EmfToWmfBitsFlagsDefault)
|
||||||
|
{
|
||||||
|
return DllExports::GdipEmfToWmfBits(hEmf,
|
||||||
|
cbData16, pData16, iMapMode, eFlags);
|
||||||
|
}
|
||||||
|
static Status GetMetafileHeader(const WCHAR *filename,
|
||||||
|
MetafileHeader *header)
|
||||||
|
{
|
||||||
|
return DllExports::GdipGetMetafileHeaderFromFile(
|
||||||
|
filename, header);
|
||||||
|
}
|
||||||
|
static Status GetMetafileHeader(IStream *stream, MetafileHeader *header)
|
||||||
|
{
|
||||||
|
return DllExports::GdipGetMetafileHeaderFromStream(
|
||||||
|
stream, header);
|
||||||
|
}
|
||||||
|
////TODO: Metafile::GetMetafileHeader
|
||||||
|
//static Status GetMetafileHeader(HMETAFILE hWmf,
|
||||||
|
// const WmfPlaceableFileHeader *wmfPlaceableFileHeader,
|
||||||
|
// MetafileHeader *header)
|
||||||
|
//{
|
||||||
|
// // WTF: No flat API to do this.
|
||||||
|
// return NotImplemented;
|
||||||
|
//}
|
||||||
|
static Status GetMetafileHeader(HENHMETAFILE hEmf,
|
||||||
|
MetafileHeader *header)
|
||||||
|
{
|
||||||
|
return DllExports::GdipGetMetafileHeaderFromEmf(hEmf, header);
|
||||||
|
}
|
||||||
|
|
||||||
|
Metafile(HMETAFILE hWmf,
|
||||||
|
const WmfPlaceableFileHeader *wmfPlaceableFileHeader,
|
||||||
|
BOOL deleteWmf = FALSE): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateMetafileFromWmf(
|
||||||
|
hWmf, deleteWmf, wmfPlaceableFileHeader,
|
||||||
|
&nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(HENHMETAFILE hEmf, BOOL deleteEmf = FALSE): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateMetafileFromEmf(
|
||||||
|
hEmf, deleteEmf, &nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(const WCHAR *filename): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateMetafileFromFile(
|
||||||
|
filename, &nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(const WCHAR *filename,
|
||||||
|
const WmfPlaceableFileHeader *wmfPlaceableFileHeader):
|
||||||
|
Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateMetafileFromWmfFile(
|
||||||
|
filename, wmfPlaceableFileHeader,
|
||||||
|
&nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(IStream *stream): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreateMetafileFromStream(
|
||||||
|
stream, &nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(HDC referenceHdc, EmfType type = EmfTypeEmfPlusDual,
|
||||||
|
const WCHAR *description = NULL): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipRecordMetafile(
|
||||||
|
referenceHdc, type, NULL, MetafileFrameUnitGdi,
|
||||||
|
description, &nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(HDC referenceHdc, const RectF& frameRect,
|
||||||
|
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||||
|
EmfType type = EmfTypeEmfPlusDual,
|
||||||
|
const WCHAR *description = NULL): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipRecordMetafile(
|
||||||
|
referenceHdc, type, &frameRect, frameUnit,
|
||||||
|
description, &nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(HDC referenceHdc, const Rect& frameRect,
|
||||||
|
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||||
|
EmfType type = EmfTypeEmfPlusDual,
|
||||||
|
const WCHAR *description = NULL): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipRecordMetafileI(
|
||||||
|
referenceHdc, type, &frameRect, frameUnit,
|
||||||
|
description, &nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(const WCHAR *filename, HDC referenceHdc,
|
||||||
|
EmfType type = EmfTypeEmfPlusDual,
|
||||||
|
const WCHAR *description = NULL): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipRecordMetafileFileName(
|
||||||
|
filename, referenceHdc, type, NULL,
|
||||||
|
MetafileFrameUnitGdi, description,
|
||||||
|
&nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(const WCHAR *filename, HDC referenceHdc,
|
||||||
|
const RectF& frameRect,
|
||||||
|
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||||
|
EmfType type = EmfTypeEmfPlusDual,
|
||||||
|
const WCHAR *description = NULL): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipRecordMetafileFileName(
|
||||||
|
filename, referenceHdc, type, &frameRect,
|
||||||
|
frameUnit, description, &nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(const WCHAR *filename, HDC referenceHdc,
|
||||||
|
const Rect& frameRect,
|
||||||
|
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||||
|
EmfType type = EmfTypeEmfPlusDual,
|
||||||
|
const WCHAR *description = NULL): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipRecordMetafileFileNameI(
|
||||||
|
filename, referenceHdc, type, &frameRect,
|
||||||
|
frameUnit, description, &nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(IStream *stream, HDC referenceHdc,
|
||||||
|
EmfType type = EmfTypeEmfPlusDual,
|
||||||
|
const WCHAR *description = NULL): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipRecordMetafileStream(
|
||||||
|
stream, referenceHdc, type, NULL,
|
||||||
|
MetafileFrameUnitGdi, description,
|
||||||
|
&nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(IStream *stream, HDC referenceHdc, const RectF& frameRect,
|
||||||
|
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||||
|
EmfType type = EmfTypeEmfPlusDual,
|
||||||
|
const WCHAR *description = NULL): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipRecordMetafileStream(
|
||||||
|
stream, referenceHdc, type, &frameRect,
|
||||||
|
frameUnit, description, &nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
Metafile(IStream *stream, HDC referenceHdc, const Rect& frameRect,
|
||||||
|
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||||
|
EmfType type = EmfTypeEmfPlusDual,
|
||||||
|
const WCHAR *description = NULL): Image(NULL, Ok)
|
||||||
|
{
|
||||||
|
GpMetafile *nativeMetafile = NULL;
|
||||||
|
lastStatus = DllExports::GdipRecordMetafileStreamI(
|
||||||
|
stream, referenceHdc, type, &frameRect,
|
||||||
|
frameUnit, description, &nativeMetafile);
|
||||||
|
nativeImage = nativeMetafile;
|
||||||
|
}
|
||||||
|
virtual ~Metafile()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
virtual Metafile* Clone() const
|
||||||
|
{
|
||||||
|
GpImage *cloneImage = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneImage(
|
||||||
|
nativeImage, &cloneImage));
|
||||||
|
if (status == Ok) {
|
||||||
|
Metafile *result = new Metafile(cloneImage, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDisposeImage(cloneImage);
|
||||||
|
lastStatus = OutOfMemory;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus
|
||||||
|
//Status ConvertToEmfPlus(const Graphics *refGraphics,
|
||||||
|
// BOOL *conversionSuccess = NULL,
|
||||||
|
// EmfType emfType = EmfTypeEmfPlusOnly,
|
||||||
|
// const WCHAR *description = NULL)
|
||||||
|
//{
|
||||||
|
// // FIXME: can't test GdipConvertToEmfPlus because it isn't exported in 1.0
|
||||||
|
// return updateStatus(DllExports::GdipConvertToEmfPlus(
|
||||||
|
// refGraphics ? refGraphics->nativeGraphics : NULL,
|
||||||
|
// (GpMetafile*) nativeImage,
|
||||||
|
// conversionSuccess, emfType, description, ???));
|
||||||
|
//}
|
||||||
|
////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus
|
||||||
|
//Status ConvertToEmfPlus(const Graphics *refGraphics,
|
||||||
|
// const WCHAR *filename,
|
||||||
|
// BOOL *conversionSuccess = NULL,
|
||||||
|
// EmfType emfType = EmfTypeEmfPlusOnly,
|
||||||
|
// const WCHAR *description = NULL)
|
||||||
|
//{
|
||||||
|
// // FIXME: can't test GdipConvertToEmfPlusToFile because it isn't exported in 1.0
|
||||||
|
// return updateStatus(DllExports::GdipConvertToEmfPlusToFile(
|
||||||
|
// refGraphics ? refGraphics->nativeGraphics : NULL,
|
||||||
|
// (GpMetafile*) nativeImage, conversionSuccess,
|
||||||
|
// filename, emfType, description, ???));
|
||||||
|
//}
|
||||||
|
////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus
|
||||||
|
//Status ConvertToEmfPlus(const Graphics *refGraphics,
|
||||||
|
// IStream *stream,
|
||||||
|
// BOOL *conversionSuccess = NULL,
|
||||||
|
// EmfType emfType = EmfTypeEmfPlusOnly,
|
||||||
|
// const WCHAR *description = NULL)
|
||||||
|
//{
|
||||||
|
// // FIXME: can't test GdipConvertToEmfPlusToStream because it isn't exported in 1.0
|
||||||
|
// return updateStatus(DllExports::GdipConvertToEmfPlusToStream(
|
||||||
|
// refGraphics ? refGraphics->nativeGraphics : NULL,
|
||||||
|
// (GpMetafile*) nativeImage, conversionSuccess,
|
||||||
|
// stream, emfType, description, ???));
|
||||||
|
//}
|
||||||
|
UINT GetDownLevelRasterizationLimit() const
|
||||||
|
{
|
||||||
|
UINT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetMetafileDownLevelRasterizationLimit(
|
||||||
|
(GpMetafile*) nativeImage, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
HENHMETAFILE GetHENHMETAFILE()
|
||||||
|
{
|
||||||
|
HENHMETAFILE result = NULL;
|
||||||
|
updateStatus(DllExports::GdipGetHemfFromMetafile(
|
||||||
|
(GpMetafile*) nativeImage, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetMetafileHeader(MetafileHeader *header) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetMetafileHeaderFromMetafile(
|
||||||
|
(GpMetafile*) nativeImage, header));
|
||||||
|
}
|
||||||
|
Status PlayRecord(EmfPlusRecordType recordType, UINT flags,
|
||||||
|
UINT dataSize, const BYTE *data) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipPlayMetafileRecord(
|
||||||
|
(GpMetafile*) nativeImage,
|
||||||
|
recordType, flags, dataSize, data));
|
||||||
|
}
|
||||||
|
Status SetDownLevelRasterizationLimit(UINT limitDpi)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetMetafileDownLevelRasterizationLimit(
|
||||||
|
(GpMetafile*) nativeImage, limitDpi));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Metafile(GpImage *image, Status status): Image(image, status) {}
|
||||||
|
Metafile(const Metafile&);
|
||||||
|
Metafile& operator=(const Metafile&);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_METAFILE_H */
|
193
winsup/w32api/include/gdiplus/gdiplusmetaheader.h
Executable file
193
winsup/w32api/include/gdiplus/gdiplusmetaheader.h
Executable file
@ -0,0 +1,193 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusmetaheader.h
|
||||||
|
*
|
||||||
|
* GDI+ metafile header structure
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_METAHEADER_H
|
||||||
|
#define __GDIPLUS_METAHEADER_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIXME: is 1 the correct value for GDIP_EMFPLUSFLAGS_DISPLAY? This number
|
||||||
|
* has been determined by calling Metafile::GetMetafileHeader() on a EMF+
|
||||||
|
* metafile which was recorded on a display device context (SampleMetafile.emf).
|
||||||
|
*/
|
||||||
|
#ifdef __cplusplus
|
||||||
|
const UINT GDIP_EMFPLUSFLAGS_DISPLAY = 1;
|
||||||
|
#else
|
||||||
|
#define GDIP_EMFPLUSFLAGS_DISPLAY ((UINT) 1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct tagENHMETAHEADER3 {
|
||||||
|
DWORD iType;
|
||||||
|
DWORD nSize;
|
||||||
|
RECTL rclBounds;
|
||||||
|
RECTL rclFrame;
|
||||||
|
DWORD dSignature;
|
||||||
|
DWORD nVersion;
|
||||||
|
DWORD nBytes;
|
||||||
|
DWORD nRecords;
|
||||||
|
WORD nHandles;
|
||||||
|
WORD sReserved;
|
||||||
|
DWORD nDescription;
|
||||||
|
DWORD offDescription;
|
||||||
|
DWORD nPalEntries;
|
||||||
|
SIZEL szlDevice;
|
||||||
|
SIZEL szlMillimeters;
|
||||||
|
} ENHMETAHEADER3,*LPENHMETAHEADER3;
|
||||||
|
|
||||||
|
typedef struct PWMFRect16 {
|
||||||
|
INT16 Left;
|
||||||
|
INT16 Top;
|
||||||
|
INT16 Right;
|
||||||
|
INT16 Bottom;
|
||||||
|
} PWMFRect16;
|
||||||
|
|
||||||
|
typedef struct WmfPlaceableFileHeader {
|
||||||
|
UINT32 Key;
|
||||||
|
INT16 Hmf;
|
||||||
|
PWMFRect16 BoundingBox;
|
||||||
|
INT16 Inch;
|
||||||
|
UINT32 Reserved;
|
||||||
|
INT16 Checksum;
|
||||||
|
} WmfPlaceableFileHeader;
|
||||||
|
|
||||||
|
typedef struct MetafileHeader {
|
||||||
|
MetafileType Type;
|
||||||
|
UINT Size;
|
||||||
|
UINT Version;
|
||||||
|
UINT EmfPlusFlags;
|
||||||
|
REAL DpiX;
|
||||||
|
REAL DpiY;
|
||||||
|
INT X;
|
||||||
|
INT Y;
|
||||||
|
INT Width;
|
||||||
|
INT Height;
|
||||||
|
__extension__ union {
|
||||||
|
METAHEADER WmfHeader;
|
||||||
|
ENHMETAHEADER3 EmfHeader;
|
||||||
|
};
|
||||||
|
INT EmfPlusHeaderSize;
|
||||||
|
INT LogicalDpiX;
|
||||||
|
INT LogicalDpiY;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
public:
|
||||||
|
void GetBounds(Rect *rect) const
|
||||||
|
{
|
||||||
|
if (rect)
|
||||||
|
{
|
||||||
|
rect->X = X;
|
||||||
|
rect->Y = Y;
|
||||||
|
rect->Width = Width;
|
||||||
|
rect->Height = Height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
REAL GetDpiX() const
|
||||||
|
{
|
||||||
|
return DpiX;
|
||||||
|
}
|
||||||
|
REAL GetDpiY() const
|
||||||
|
{
|
||||||
|
return DpiY;
|
||||||
|
}
|
||||||
|
const ENHMETAHEADER3* GetEmfHeader() const
|
||||||
|
{
|
||||||
|
if (Type == MetafileTypeEmf
|
||||||
|
|| Type == MetafileTypeEmfPlusOnly
|
||||||
|
|| Type == MetafileTypeEmfPlusDual)
|
||||||
|
{
|
||||||
|
return &EmfHeader;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UINT GetEmfPlusFlags() const
|
||||||
|
{
|
||||||
|
return EmfPlusFlags;
|
||||||
|
}
|
||||||
|
UINT GetMetafileSize() const
|
||||||
|
{
|
||||||
|
return Size;
|
||||||
|
}
|
||||||
|
MetafileType GetType() const
|
||||||
|
{
|
||||||
|
return Type;
|
||||||
|
}
|
||||||
|
UINT GetVersion() const
|
||||||
|
{
|
||||||
|
return Version;
|
||||||
|
}
|
||||||
|
const METAHEADER* GetWmfHeader() const
|
||||||
|
{
|
||||||
|
if (Type == MetafileTypeWmf || Type == MetafileTypeWmfPlaceable)
|
||||||
|
{
|
||||||
|
return &WmfHeader;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BOOL IsDisplay() const
|
||||||
|
{
|
||||||
|
return EmfPlusFlags == GDIP_EMFPLUSFLAGS_DISPLAY;
|
||||||
|
}
|
||||||
|
BOOL IsEmf() const
|
||||||
|
{
|
||||||
|
return Type == MetafileTypeEmf;
|
||||||
|
}
|
||||||
|
BOOL IsEmfOrEmfPlus() const
|
||||||
|
{
|
||||||
|
return Type == MetafileTypeEmf
|
||||||
|
|| Type == MetafileTypeEmfPlusOnly
|
||||||
|
|| Type == MetafileTypeEmfPlusDual;
|
||||||
|
}
|
||||||
|
BOOL IsEmfPlus() const
|
||||||
|
{
|
||||||
|
return Type == MetafileTypeEmfPlusOnly
|
||||||
|
|| Type == MetafileTypeEmfPlusDual;
|
||||||
|
}
|
||||||
|
BOOL IsEmfPlusDual() const
|
||||||
|
{
|
||||||
|
return Type == MetafileTypeEmfPlusDual;
|
||||||
|
}
|
||||||
|
BOOL IsEmfPlusOnly() const
|
||||||
|
{
|
||||||
|
return Type == MetafileTypeEmfPlusOnly;
|
||||||
|
}
|
||||||
|
BOOL IsWmf() const
|
||||||
|
{
|
||||||
|
return Type == MetafileTypeWmf
|
||||||
|
|| Type == MetafileTypeWmfPlaceable;
|
||||||
|
}
|
||||||
|
BOOL IsWmfPlaceable() const
|
||||||
|
{
|
||||||
|
return Type == MetafileTypeWmfPlaceable;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
} MetafileHeader;
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_METAHEADER_H */
|
964
winsup/w32api/include/gdiplus/gdipluspath.h
Executable file
964
winsup/w32api/include/gdiplus/gdipluspath.h
Executable file
@ -0,0 +1,964 @@
|
|||||||
|
/*
|
||||||
|
* gdipluspath.h
|
||||||
|
*
|
||||||
|
* GDI+ GraphicsPath class
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_PATH_H
|
||||||
|
#define __GDIPLUS_PATH_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#error "A C++ compiler is required to include gdipluspath.h."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Note that some methods of GraphicsPath are implemented in gdiplusimpl.h.
|
||||||
|
// This avoids a cyclic dependency on Graphics and Pen.
|
||||||
|
|
||||||
|
class GraphicsPath: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class CustomLineCap;
|
||||||
|
friend class Graphics;
|
||||||
|
friend class GraphicsPathIterator;
|
||||||
|
friend class PathGradientBrush;
|
||||||
|
friend class Region;
|
||||||
|
|
||||||
|
public:
|
||||||
|
GraphicsPath(FillMode fillMode = FillModeAlternate):
|
||||||
|
nativePath(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreatePath(fillMode, &nativePath);
|
||||||
|
}
|
||||||
|
GraphicsPath(const PointF *points, const BYTE *types, INT count,
|
||||||
|
FillMode fillMode = FillModeAlternate):
|
||||||
|
nativePath(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreatePath2(
|
||||||
|
points, types, count, fillMode, &nativePath);
|
||||||
|
}
|
||||||
|
GraphicsPath(const Point *points, const BYTE *types, INT count,
|
||||||
|
FillMode fillMode = FillModeAlternate):
|
||||||
|
nativePath(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreatePath2I(
|
||||||
|
points, types, count, fillMode, &nativePath);
|
||||||
|
}
|
||||||
|
~GraphicsPath()
|
||||||
|
{
|
||||||
|
DllExports::GdipDeletePath(nativePath);
|
||||||
|
}
|
||||||
|
GraphicsPath* Clone() const
|
||||||
|
{
|
||||||
|
GpPath *clonePath = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipClonePath(
|
||||||
|
nativePath, &clonePath));
|
||||||
|
if (status == Ok) {
|
||||||
|
GraphicsPath *result = new GraphicsPath(clonePath, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeletePath(clonePath);
|
||||||
|
lastStatus = OutOfMemory;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Status AddArc(REAL x, REAL y, REAL width, REAL height,
|
||||||
|
REAL startAngle, REAL sweepAngle)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathArc(nativePath,
|
||||||
|
x, y, width, height, startAngle, sweepAngle));
|
||||||
|
}
|
||||||
|
Status AddArc(INT x, INT y, INT width, INT height,
|
||||||
|
REAL startAngle, REAL sweepAngle)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathArcI(nativePath,
|
||||||
|
x, y, width, height, startAngle, sweepAngle));
|
||||||
|
}
|
||||||
|
Status AddArc(const RectF& rect, REAL startAngle, REAL sweepAngle)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathArc(nativePath,
|
||||||
|
rect.X, rect.Y, rect.Width, rect.Height,
|
||||||
|
startAngle, sweepAngle));
|
||||||
|
}
|
||||||
|
Status AddArc(const Rect& rect, REAL startAngle, REAL sweepAngle)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathArcI(nativePath,
|
||||||
|
rect.X, rect.Y, rect.Width, rect.Height,
|
||||||
|
startAngle, sweepAngle));
|
||||||
|
}
|
||||||
|
Status AddBezier(REAL x1, REAL y1, REAL x2, REAL y2,
|
||||||
|
REAL x3, REAL y3, REAL x4, REAL y4)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathBezier(nativePath,
|
||||||
|
x1, y1, x2, y2, x3, y3, x4, y4));
|
||||||
|
}
|
||||||
|
Status AddBezier(INT x1, INT y1, INT x2, INT y2,
|
||||||
|
INT x3, INT y3, INT x4, INT y4)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathBezierI(nativePath,
|
||||||
|
x1, y1, x2, y2, x3, y3, x4, y4));
|
||||||
|
}
|
||||||
|
Status AddBezier(const PointF& pt1, const PointF& pt2,
|
||||||
|
const PointF& pt3, const PointF& pt4)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathBezier(nativePath,
|
||||||
|
pt1.X, pt1.Y, pt2.X, pt2.Y,
|
||||||
|
pt3.X, pt3.Y, pt4.X, pt4.Y));
|
||||||
|
}
|
||||||
|
Status AddBezier(const Point& pt1, const Point& pt2,
|
||||||
|
const Point& pt3, const Point& pt4)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathBezierI(nativePath,
|
||||||
|
pt1.X, pt1.Y, pt2.X, pt2.Y,
|
||||||
|
pt3.X, pt3.Y, pt4.X, pt4.Y));
|
||||||
|
}
|
||||||
|
Status AddBeziers(const PointF *points, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathBeziers(
|
||||||
|
nativePath, points, count));
|
||||||
|
}
|
||||||
|
Status AddBeziers(const Point *points, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathBeziersI(
|
||||||
|
nativePath, points, count));
|
||||||
|
}
|
||||||
|
Status AddClosedCurve(const PointF *points, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathClosedCurve(
|
||||||
|
nativePath, points, count));
|
||||||
|
}
|
||||||
|
Status AddClosedCurve(const Point *points, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathClosedCurveI(
|
||||||
|
nativePath, points, count));
|
||||||
|
}
|
||||||
|
Status AddClosedCurve(const PointF *points, INT count, REAL tension)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathClosedCurve2(
|
||||||
|
nativePath, points, count, tension));
|
||||||
|
}
|
||||||
|
Status AddClosedCurve(const Point *points, INT count, REAL tension)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathClosedCurve2I(
|
||||||
|
nativePath, points, count, tension));
|
||||||
|
}
|
||||||
|
Status AddCurve(const PointF *points, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathCurve(
|
||||||
|
nativePath, points, count));
|
||||||
|
}
|
||||||
|
Status AddCurve(const Point *points, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathCurveI(
|
||||||
|
nativePath, points, count));
|
||||||
|
}
|
||||||
|
Status AddCurve(const PointF *points, INT count, REAL tension)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathCurve2(
|
||||||
|
nativePath, points, count, tension));
|
||||||
|
}
|
||||||
|
Status AddCurve(const Point *points, INT count, REAL tension)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathCurve2I(
|
||||||
|
nativePath, points, count, tension));
|
||||||
|
}
|
||||||
|
Status AddCurve(const PointF *points, INT count, INT offset,
|
||||||
|
INT numberOfSegments, REAL tension)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathCurve3(
|
||||||
|
nativePath, points, count,
|
||||||
|
offset, numberOfSegments, tension));
|
||||||
|
}
|
||||||
|
Status AddCurve(const Point *points, INT count, INT offset,
|
||||||
|
INT numberOfSegments, REAL tension)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathCurve3I(
|
||||||
|
nativePath, points, count,
|
||||||
|
offset, numberOfSegments, tension));
|
||||||
|
}
|
||||||
|
Status AddEllipse(REAL x, REAL y, REAL width, REAL height)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathEllipse(nativePath,
|
||||||
|
x, y, width, height));
|
||||||
|
}
|
||||||
|
Status AddEllipse(INT x, INT y, INT width, INT height)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathEllipseI(nativePath,
|
||||||
|
x, y, width, height));
|
||||||
|
}
|
||||||
|
Status AddEllipse(const RectF& rect)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathEllipse(nativePath,
|
||||||
|
rect.X, rect.Y, rect.Width, rect.Height));
|
||||||
|
}
|
||||||
|
Status AddEllipse(const Rect& rect)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathEllipseI(nativePath,
|
||||||
|
rect.X, rect.Y, rect.Width, rect.Height));
|
||||||
|
}
|
||||||
|
Status AddLine(REAL x1, REAL y1, REAL x2, REAL y2)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathLine(nativePath,
|
||||||
|
x1, y1, x2, y2));
|
||||||
|
}
|
||||||
|
Status AddLine(INT x1, INT y1, INT x2, INT y2)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathLineI(nativePath,
|
||||||
|
x1, y1, x2, y2));
|
||||||
|
}
|
||||||
|
Status AddLine(const PointF& pt1, const PointF& pt2)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathLine(nativePath,
|
||||||
|
pt1.X, pt1.Y, pt2.X, pt2.Y));
|
||||||
|
}
|
||||||
|
Status AddLine(const Point& pt1, const Point& pt2)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathLineI(nativePath,
|
||||||
|
pt1.X, pt1.Y, pt2.X, pt2.Y));
|
||||||
|
}
|
||||||
|
Status AddLines(const PointF *points, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathLine2(nativePath,
|
||||||
|
points, count));
|
||||||
|
}
|
||||||
|
Status AddLines(const Point *points, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathLine2I(nativePath,
|
||||||
|
points, count));
|
||||||
|
}
|
||||||
|
Status AddPath(const GraphicsPath *addingPath, BOOL connect)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathPath(nativePath,
|
||||||
|
addingPath ? addingPath->nativePath : NULL,
|
||||||
|
connect));
|
||||||
|
}
|
||||||
|
Status AddPie(REAL x, REAL y, REAL width, REAL height,
|
||||||
|
REAL startAngle, REAL sweepAngle)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathPie(nativePath,
|
||||||
|
x, y, width, height, startAngle, sweepAngle));
|
||||||
|
}
|
||||||
|
Status AddPie(INT x, INT y, INT width, INT height,
|
||||||
|
REAL startAngle, REAL sweepAngle)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathPieI(nativePath,
|
||||||
|
x, y, width, height, startAngle, sweepAngle));
|
||||||
|
}
|
||||||
|
Status AddPie(const RectF& rect, REAL startAngle, REAL sweepAngle)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathPie(nativePath,
|
||||||
|
rect.X, rect.Y, rect.Width, rect.Height,
|
||||||
|
startAngle, sweepAngle));
|
||||||
|
}
|
||||||
|
Status AddPie(const Rect& rect, REAL startAngle, REAL sweepAngle)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathPieI(nativePath,
|
||||||
|
rect.X, rect.Y, rect.Width, rect.Height,
|
||||||
|
startAngle, sweepAngle));
|
||||||
|
}
|
||||||
|
Status AddPolygon(const PointF *points, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathPolygon(nativePath,
|
||||||
|
points, count));
|
||||||
|
}
|
||||||
|
Status AddPolygon(const Point *points, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathPolygonI(nativePath,
|
||||||
|
points, count));
|
||||||
|
}
|
||||||
|
Status AddRectangle(const RectF& rect)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathRectangle(nativePath,
|
||||||
|
rect.X, rect.Y, rect.Width, rect.Height));
|
||||||
|
}
|
||||||
|
Status AddRectangle(const Rect& rect)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathRectangleI(
|
||||||
|
nativePath,
|
||||||
|
rect.X, rect.Y, rect.Width, rect.Height));
|
||||||
|
}
|
||||||
|
Status AddRectangles(const RectF *rects, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathRectangles(
|
||||||
|
nativePath, rects, count));
|
||||||
|
}
|
||||||
|
Status AddRectangles(const Rect *rects, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathRectanglesI(
|
||||||
|
nativePath, rects, count));
|
||||||
|
}
|
||||||
|
Status AddString(const WCHAR *string, INT length,
|
||||||
|
const FontFamily *family, INT style, REAL emSize,
|
||||||
|
const PointF& origin, const StringFormat *format)
|
||||||
|
{
|
||||||
|
RectF layoutRect(origin, SizeF(0.0f, 0.0f));
|
||||||
|
return updateStatus(DllExports::GdipAddPathString(nativePath,
|
||||||
|
string, length,
|
||||||
|
family ? family->nativeFontFamily : NULL,
|
||||||
|
style, emSize, &layoutRect,
|
||||||
|
format ? format->nativeStringFormat : NULL));
|
||||||
|
}
|
||||||
|
Status AddString(const WCHAR *string, INT length,
|
||||||
|
const FontFamily *family, INT style, REAL emSize,
|
||||||
|
const Point& origin, const StringFormat *format)
|
||||||
|
{
|
||||||
|
Rect layoutRect(origin, Size(0, 0));
|
||||||
|
return updateStatus(DllExports::GdipAddPathStringI(nativePath,
|
||||||
|
string, length,
|
||||||
|
family ? family->nativeFontFamily : NULL,
|
||||||
|
style, emSize, &layoutRect,
|
||||||
|
format ? format->nativeStringFormat : NULL));
|
||||||
|
}
|
||||||
|
Status AddString(const WCHAR *string, INT length,
|
||||||
|
const FontFamily *family, INT style, REAL emSize,
|
||||||
|
const RectF& layoutRect, const StringFormat *format)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathString(nativePath,
|
||||||
|
string, length,
|
||||||
|
family ? family->nativeFontFamily : NULL,
|
||||||
|
style, emSize, &layoutRect,
|
||||||
|
format ? format->nativeStringFormat : NULL));
|
||||||
|
}
|
||||||
|
Status AddString(const WCHAR *string, INT length,
|
||||||
|
const FontFamily *family, INT style, REAL emSize,
|
||||||
|
const Rect& layoutRect, const StringFormat *format)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipAddPathStringI(nativePath,
|
||||||
|
string, length,
|
||||||
|
family ? family->nativeFontFamily : NULL,
|
||||||
|
style, emSize, &layoutRect,
|
||||||
|
format ? format->nativeStringFormat : NULL));
|
||||||
|
}
|
||||||
|
Status ClearMarkers()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipClearPathMarkers(
|
||||||
|
nativePath));
|
||||||
|
}
|
||||||
|
Status CloseAllFigures()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipClosePathFigures(
|
||||||
|
nativePath));
|
||||||
|
}
|
||||||
|
Status CloseFigure()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipClosePathFigure(
|
||||||
|
nativePath));
|
||||||
|
}
|
||||||
|
Status Flatten(const Matrix *matrix = NULL,
|
||||||
|
REAL flatness = FlatnessDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipFlattenPath(nativePath,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL,
|
||||||
|
flatness));
|
||||||
|
}
|
||||||
|
Status GetBounds(RectF *bounds, const Matrix *matrix = NULL,
|
||||||
|
const Pen *pen = NULL) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathWorldBounds(
|
||||||
|
nativePath, bounds,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL,
|
||||||
|
pen ? pen->nativePen : NULL));
|
||||||
|
}
|
||||||
|
Status GetBounds(Rect *bounds, const Matrix *matrix = NULL,
|
||||||
|
const Pen *pen = NULL) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathWorldBoundsI(
|
||||||
|
nativePath, bounds,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL,
|
||||||
|
pen ? pen->nativePen : NULL));
|
||||||
|
}
|
||||||
|
FillMode GetFillMode() const
|
||||||
|
{
|
||||||
|
FillMode result = FillModeAlternate;
|
||||||
|
updateStatus(DllExports::GdipGetPathFillMode(nativePath,
|
||||||
|
&result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetLastPoint(PointF *lastPoint) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathLastPoint(
|
||||||
|
nativePath, lastPoint));
|
||||||
|
}
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetPathData(PathData *pathData) const
|
||||||
|
{
|
||||||
|
if (!pathData) return lastStatus = InvalidParameter;
|
||||||
|
|
||||||
|
Status status;
|
||||||
|
INT count;
|
||||||
|
|
||||||
|
status = updateStatus(DllExports::GdipGetPointCount(
|
||||||
|
nativePath, &count));
|
||||||
|
if (status != Ok) return status;
|
||||||
|
|
||||||
|
status = updateStatus(pathData->AllocateArrays(count));
|
||||||
|
if (status != Ok) return status;
|
||||||
|
|
||||||
|
return updateStatus(DllExports::GdipGetPathData(
|
||||||
|
nativePath, (GpPathData*) pathData));
|
||||||
|
}
|
||||||
|
Status GetPathPoints(PointF *points, INT count) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathPoints(nativePath,
|
||||||
|
points, count));
|
||||||
|
}
|
||||||
|
Status GetPathPoints(Point *points, INT count) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathPointsI(nativePath,
|
||||||
|
points, count));
|
||||||
|
}
|
||||||
|
Status GetPathTypes(BYTE *types, INT count) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathTypes(nativePath,
|
||||||
|
types, count));
|
||||||
|
}
|
||||||
|
INT GetPointCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetPointCount(nativePath,
|
||||||
|
&result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
BOOL IsOutlineVisible(REAL x, REAL y, const Pen *pen,
|
||||||
|
const Graphics *g = NULL) const;
|
||||||
|
BOOL IsOutlineVisible(INT x, INT y, const Pen *pen,
|
||||||
|
const Graphics *g = NULL) const;
|
||||||
|
BOOL IsOutlineVisible(const PointF& point, const Pen *pen,
|
||||||
|
const Graphics *g = NULL) const;
|
||||||
|
BOOL IsOutlineVisible(const Point& point, const Pen *pen,
|
||||||
|
const Graphics *g = NULL) const;
|
||||||
|
BOOL IsVisible(REAL x, REAL y, const Graphics *g = NULL) const;
|
||||||
|
BOOL IsVisible(INT x, INT y, const Graphics *g = NULL) const;
|
||||||
|
BOOL IsVisible(const PointF& point, const Graphics *g = NULL) const;
|
||||||
|
BOOL IsVisible(const Point& point, const Graphics *g = NULL) const;
|
||||||
|
Status Outline(const Matrix *matrix = NULL,
|
||||||
|
REAL flatness = FlatnessDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipWindingModeOutline(
|
||||||
|
nativePath,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL,
|
||||||
|
flatness));
|
||||||
|
}
|
||||||
|
Status Reset()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipResetPath(nativePath));
|
||||||
|
}
|
||||||
|
Status Reverse()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipReversePath(nativePath));
|
||||||
|
}
|
||||||
|
Status SetFillMode(FillMode fillMode)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathFillMode(
|
||||||
|
nativePath, fillMode));
|
||||||
|
}
|
||||||
|
Status SetMarker()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathMarker(nativePath));
|
||||||
|
}
|
||||||
|
Status StartFigure()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipStartPathFigure(
|
||||||
|
nativePath));
|
||||||
|
}
|
||||||
|
Status Transform(const Matrix *matrix)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipTransformPath(
|
||||||
|
nativePath,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL));
|
||||||
|
}
|
||||||
|
Status Warp(const PointF *destPoints, INT count, const RectF& srcRect,
|
||||||
|
const Matrix *matrix = NULL,
|
||||||
|
WarpMode warpMode = WarpModePerspective,
|
||||||
|
REAL flatness = FlatnessDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipWarpPath(nativePath,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL,
|
||||||
|
destPoints, count,
|
||||||
|
srcRect.X, srcRect.Y,
|
||||||
|
srcRect.Width, srcRect.Height,
|
||||||
|
warpMode, flatness));
|
||||||
|
}
|
||||||
|
Status Widen(const Pen *pen, const Matrix *matrix = NULL,
|
||||||
|
REAL flatness = FlatnessDefault)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipWidenPath(nativePath,
|
||||||
|
pen ? pen->nativePen : NULL,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL,
|
||||||
|
flatness));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
GraphicsPath(GpPath *path, Status status):
|
||||||
|
nativePath(path), lastStatus(status) {}
|
||||||
|
GraphicsPath(const GraphicsPath&);
|
||||||
|
GraphicsPath& operator=(const GraphicsPath&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpPath *nativePath;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
class GraphicsPathIterator: public GdiplusBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
GraphicsPathIterator(GraphicsPath *path):
|
||||||
|
nativePathIterator(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreatePathIter(
|
||||||
|
&nativePathIterator,
|
||||||
|
path ? path->nativePath : NULL);
|
||||||
|
}
|
||||||
|
~GraphicsPathIterator()
|
||||||
|
{
|
||||||
|
DllExports::GdipDeletePathIter(nativePathIterator);
|
||||||
|
}
|
||||||
|
|
||||||
|
INT CopyData(PointF *points, BYTE *types, INT startIndex, INT endIndex)
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipPathIterCopyData(
|
||||||
|
nativePathIterator, &result,
|
||||||
|
points, types, startIndex, endIndex));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT Enumerate(PointF *points, BYTE *types, INT count)
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipPathIterEnumerate(
|
||||||
|
nativePathIterator, &result,
|
||||||
|
points, types, count));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT GetCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipPathIterGetCount(
|
||||||
|
nativePathIterator, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT GetSubpathCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipPathIterGetSubpathCount(
|
||||||
|
nativePathIterator, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
BOOL HasCurve() const
|
||||||
|
{
|
||||||
|
BOOL result = FALSE;
|
||||||
|
updateStatus(DllExports::GdipPathIterHasCurve(
|
||||||
|
nativePathIterator, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT NextMarker(INT *startIndex, INT *endIndex)
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipPathIterNextMarker(
|
||||||
|
nativePathIterator, &result,
|
||||||
|
startIndex, endIndex));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT NextMarker(GraphicsPath *path)
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipPathIterNextMarkerPath(
|
||||||
|
nativePathIterator, &result,
|
||||||
|
path ? path->nativePath : NULL));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT NextPathType(BYTE *pathType, INT *startIndex, INT *endIndex)
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipPathIterNextPathType(
|
||||||
|
nativePathIterator, &result,
|
||||||
|
pathType, startIndex, endIndex));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT NextSubpath(INT *startIndex, INT *endIndex, BOOL *isClosed)
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipPathIterNextSubpath(
|
||||||
|
nativePathIterator, &result,
|
||||||
|
startIndex, endIndex, isClosed));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT NextSubpath(GraphicsPath *path, BOOL *isClosed)
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipPathIterNextSubpathPath(
|
||||||
|
nativePathIterator, &result,
|
||||||
|
path ? path->nativePath : NULL, isClosed));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
VOID Rewind()
|
||||||
|
{
|
||||||
|
updateStatus(DllExports::GdipPathIterRewind(
|
||||||
|
nativePathIterator));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
GraphicsPathIterator(GpPathIterator *pathIterator, Status status):
|
||||||
|
nativePathIterator(pathIterator), lastStatus(status) {}
|
||||||
|
GraphicsPathIterator(const GraphicsPathIterator&);
|
||||||
|
GraphicsPathIterator& operator=(const GraphicsPathIterator&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpPathIterator *nativePathIterator;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
class PathGradientBrush: public Brush
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PathGradientBrush(const PointF *points, INT count,
|
||||||
|
WrapMode wrapMode = WrapModeClamp)
|
||||||
|
{
|
||||||
|
GpPathGradient *nativePathGradient = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreatePathGradient(
|
||||||
|
points, count, wrapMode, &nativePathGradient);
|
||||||
|
nativeBrush = nativePathGradient;
|
||||||
|
}
|
||||||
|
PathGradientBrush(const Point *points, INT count,
|
||||||
|
WrapMode wrapMode = WrapModeClamp)
|
||||||
|
{
|
||||||
|
GpPathGradient *nativePathGradient = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreatePathGradientI(
|
||||||
|
points, count, wrapMode, &nativePathGradient);
|
||||||
|
nativeBrush = nativePathGradient;
|
||||||
|
}
|
||||||
|
PathGradientBrush(const GraphicsPath *path)
|
||||||
|
{
|
||||||
|
GpPathGradient *nativePathGradient = NULL;
|
||||||
|
lastStatus = DllExports::GdipCreatePathGradientFromPath(
|
||||||
|
path ? path->nativePath : NULL,
|
||||||
|
&nativePathGradient);
|
||||||
|
nativeBrush = nativePathGradient;
|
||||||
|
}
|
||||||
|
virtual PathGradientBrush *Clone() const
|
||||||
|
{
|
||||||
|
GpBrush *cloneBrush = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneBrush(
|
||||||
|
nativeBrush, &cloneBrush));
|
||||||
|
if (status == Ok) {
|
||||||
|
PathGradientBrush *result =
|
||||||
|
new PathGradientBrush(cloneBrush, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeleteBrush(cloneBrush);
|
||||||
|
updateStatus(OutOfMemory);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Status GetBlend(REAL *blendFactors, REAL *blendPositions,
|
||||||
|
INT count) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathGradientBlend(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
blendFactors, blendPositions, count));
|
||||||
|
}
|
||||||
|
INT GetBlendCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetPathGradientBlendCount(
|
||||||
|
(GpPathGradient*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetCenterColor(Color *color) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathGradientCenterColor(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
color ? &color->Value : NULL));
|
||||||
|
}
|
||||||
|
Status GetCenterPoint(PointF *point) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathGradientCenterPoint(
|
||||||
|
(GpPathGradient*) nativeBrush, point));
|
||||||
|
}
|
||||||
|
Status GetCenterPoint(Point *point) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathGradientCenterPointI(
|
||||||
|
(GpPathGradient*) nativeBrush, point));
|
||||||
|
}
|
||||||
|
Status GetFocusScales(REAL *xScale, REAL *yScale) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathGradientFocusScales(
|
||||||
|
(GpPathGradient*) nativeBrush, xScale, yScale));
|
||||||
|
}
|
||||||
|
BOOL GetGammaCorrection() const
|
||||||
|
{
|
||||||
|
BOOL result = FALSE;
|
||||||
|
updateStatus(DllExports::GdipGetPathGradientGammaCorrection(
|
||||||
|
(GpPathGradient*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
//Status GetGraphicsPath(GraphicsPath *path) const
|
||||||
|
//{
|
||||||
|
// // TODO: implement PathGradientBrush::GetGraphicsPath
|
||||||
|
// return updateStatus(NotImplemented);
|
||||||
|
//}
|
||||||
|
INT GetInterpolationColorCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetPathGradientPresetBlendCount(
|
||||||
|
(GpPathGradient*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetInterpolationColors(Color *presetColors,
|
||||||
|
REAL *blendPositions, INT count) const
|
||||||
|
{
|
||||||
|
if (!presetColors || count <= 0)
|
||||||
|
return lastStatus = InvalidParameter;
|
||||||
|
|
||||||
|
ARGB *presetArgb =
|
||||||
|
(ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB));
|
||||||
|
if (!presetArgb)
|
||||||
|
return lastStatus = OutOfMemory;
|
||||||
|
|
||||||
|
Status status = updateStatus(DllExports::GdipGetPathGradientPresetBlend(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
presetArgb, blendPositions, count));
|
||||||
|
for (INT i = 0; i < count; ++i) {
|
||||||
|
presetColors[i].SetValue(presetArgb[i]);
|
||||||
|
}
|
||||||
|
DllExports::GdipFree((void*) presetArgb);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
INT GetPointCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetPathGradientPointCount(
|
||||||
|
(GpPathGradient*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetRectangle(RectF *rect) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathGradientRect(
|
||||||
|
(GpPathGradient*) nativeBrush, rect));
|
||||||
|
}
|
||||||
|
Status GetRectangle(Rect *rect) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathGradientRectI(
|
||||||
|
(GpPathGradient*) nativeBrush, rect));
|
||||||
|
}
|
||||||
|
INT GetSurroundColorCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetPathGradientSurroundColorCount(
|
||||||
|
(GpPathGradient*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetSurroundColors(Color *colors, INT *count)
|
||||||
|
{
|
||||||
|
if (!colors || !count || *count <= 0)
|
||||||
|
return lastStatus = InvalidParameter;
|
||||||
|
|
||||||
|
ARGB *colorsArgb =
|
||||||
|
(ARGB*) DllExports::GdipAlloc(*count * sizeof(ARGB));
|
||||||
|
if (!colorsArgb)
|
||||||
|
return lastStatus = OutOfMemory;
|
||||||
|
|
||||||
|
Status status = updateStatus(DllExports::GdipGetPathGradientSurroundColorsWithCount(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
colorsArgb, count));
|
||||||
|
for (INT i = 0; i < *count; ++i) {
|
||||||
|
colors[i].SetValue(colorsArgb[i]);
|
||||||
|
}
|
||||||
|
DllExports::GdipFree((void*) colorsArgb);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
Status GetTransform(Matrix *matrix) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPathGradientTransform(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL));
|
||||||
|
}
|
||||||
|
WrapMode GetWrapMode() const
|
||||||
|
{
|
||||||
|
WrapMode result = WrapModeTile;
|
||||||
|
updateStatus(DllExports::GdipGetPathGradientWrapMode(
|
||||||
|
(GpPathGradient*) nativeBrush, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status MultiplyTransform(const Matrix *matrix,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipMultiplyPathGradientTransform(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL, order));
|
||||||
|
}
|
||||||
|
Status ResetTransform()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipResetPathGradientTransform(
|
||||||
|
(GpPathGradient*) nativeBrush));
|
||||||
|
}
|
||||||
|
Status RotateTransform(REAL angle,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipRotatePathGradientTransform(
|
||||||
|
(GpPathGradient*) nativeBrush, angle, order));
|
||||||
|
}
|
||||||
|
Status ScaleTransform(REAL sx, REAL sy,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipScalePathGradientTransform(
|
||||||
|
(GpPathGradient*) nativeBrush, sx, sy, order));
|
||||||
|
}
|
||||||
|
Status SetBlend(REAL *blendFactors, REAL *blendPositions, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathGradientBlend(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
blendFactors, blendPositions, count));
|
||||||
|
}
|
||||||
|
Status SetBlendBellShape(REAL focus, REAL scale = 1.0f)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathGradientSigmaBlend(
|
||||||
|
(GpPathGradient*) nativeBrush, focus, scale));
|
||||||
|
}
|
||||||
|
Status SetBlendTriangularShape(REAL focus, REAL scale = 1.0f)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathGradientLinearBlend(
|
||||||
|
(GpPathGradient*) nativeBrush, focus, scale));
|
||||||
|
}
|
||||||
|
Status SetCenterColor(const Color& color)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathGradientCenterColor(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
color.GetValue()));
|
||||||
|
}
|
||||||
|
Status SetCenterPoint(const PointF& point)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathGradientCenterPoint(
|
||||||
|
(GpPathGradient*) nativeBrush, &point));
|
||||||
|
}
|
||||||
|
Status SetCenterPoint(const Point& point)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathGradientCenterPointI(
|
||||||
|
(GpPathGradient*) nativeBrush, &point));
|
||||||
|
}
|
||||||
|
Status SetFocusScales(REAL xScale, REAL yScale)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathGradientFocusScales(
|
||||||
|
(GpPathGradient*) nativeBrush, xScale, yScale));
|
||||||
|
}
|
||||||
|
Status SetGammaCorrection(BOOL useGammaCorrection)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathGradientGammaCorrection(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
useGammaCorrection));
|
||||||
|
}
|
||||||
|
//Status SetGraphicsPath(const GraphicsPath *path)
|
||||||
|
//{
|
||||||
|
// // TODO: implement PathGradientBrush::SetGraphicsPath
|
||||||
|
// return updateStatus(NotImplemented);
|
||||||
|
//}
|
||||||
|
Status SetInterpolationColors(const Color *presetColors,
|
||||||
|
REAL *blendPositions, INT count)
|
||||||
|
{
|
||||||
|
if (!presetColors || count <= 0)
|
||||||
|
return lastStatus = InvalidParameter;
|
||||||
|
|
||||||
|
ARGB *presetArgb =
|
||||||
|
(ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB));
|
||||||
|
if (!presetArgb)
|
||||||
|
return lastStatus = OutOfMemory;
|
||||||
|
for (INT i = 0; i < count; ++i) {
|
||||||
|
presetArgb[i] = presetColors[i].GetValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
Status status = updateStatus(DllExports::GdipSetPathGradientPresetBlend(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
presetArgb, blendPositions, count));
|
||||||
|
DllExports::GdipFree((void*) presetArgb);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
Status SetSurroundColors(const Color *colors, INT *count)
|
||||||
|
{
|
||||||
|
if (!colors || !count || *count <= 0)
|
||||||
|
return lastStatus = InvalidParameter;
|
||||||
|
|
||||||
|
ARGB *colorsArgb =
|
||||||
|
(ARGB*) DllExports::GdipAlloc(*count * sizeof(ARGB));
|
||||||
|
if (!colorsArgb)
|
||||||
|
return lastStatus = OutOfMemory;
|
||||||
|
for (INT i = 0; i < *count; ++i) {
|
||||||
|
colorsArgb[i] = colors[i].GetValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
Status status = updateStatus(DllExports::GdipSetPathGradientSurroundColorsWithCount(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
colorsArgb, count));
|
||||||
|
DllExports::GdipFree((void*) colorsArgb);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
Status SetTransform(const Matrix *matrix)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathGradientTransform(
|
||||||
|
(GpPathGradient*) nativeBrush,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL));
|
||||||
|
}
|
||||||
|
Status SetWrapMode(WrapMode wrapMode)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPathGradientWrapMode(
|
||||||
|
(GpPathGradient*) nativeBrush, wrapMode));
|
||||||
|
}
|
||||||
|
Status TranslateTransform(REAL dx, REAL dy,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipTranslatePathGradientTransform(
|
||||||
|
(GpPathGradient*) nativeBrush, dx, dy, order));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
PathGradientBrush(GpBrush *brush, Status status): Brush(brush, status) {}
|
||||||
|
PathGradientBrush(const PathGradientBrush&);
|
||||||
|
PathGradientBrush& operator=(const PathGradientBrush&);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_PATH_H */
|
338
winsup/w32api/include/gdiplus/gdipluspen.h
Executable file
338
winsup/w32api/include/gdiplus/gdipluspen.h
Executable file
@ -0,0 +1,338 @@
|
|||||||
|
/*
|
||||||
|
* gdipluspen.h
|
||||||
|
*
|
||||||
|
* GDI+ Pen class
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_PEN_H
|
||||||
|
#define __GDIPLUS_PEN_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#error "A C++ compiler is required to include gdipluspen.h."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class Pen: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class Graphics;
|
||||||
|
friend class GraphicsPath;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Pen(const Color& color, REAL width = 1.0f):
|
||||||
|
nativePen(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreatePen1(
|
||||||
|
color.GetValue(), width, UnitWorld,
|
||||||
|
&nativePen);
|
||||||
|
}
|
||||||
|
Pen(const Brush *brush, REAL width = 1.0f):
|
||||||
|
nativePen(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreatePen2(
|
||||||
|
brush ? brush->nativeBrush : NULL,
|
||||||
|
width, UnitWorld, &nativePen);
|
||||||
|
}
|
||||||
|
~Pen()
|
||||||
|
{
|
||||||
|
DllExports::GdipDeletePen(nativePen);
|
||||||
|
}
|
||||||
|
Pen* Clone() const
|
||||||
|
{
|
||||||
|
GpPen *clonePen = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipClonePen(
|
||||||
|
nativePen, &clonePen));
|
||||||
|
if (status == Ok) {
|
||||||
|
Pen *result = new Pen(clonePen, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeletePen(clonePen);
|
||||||
|
lastStatus = OutOfMemory;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PenAlignment GetAlignment() const
|
||||||
|
{
|
||||||
|
PenAlignment result = PenAlignmentCenter;
|
||||||
|
updateStatus(DllExports::GdipGetPenMode(nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// TODO: implement Pen::GetBrush()
|
||||||
|
//Brush *GetBrush() const
|
||||||
|
//{
|
||||||
|
// // where is the pen brush allocated (static,member,new,other)?
|
||||||
|
// // GdipGetPenBrushFill just returns a GpBrush*
|
||||||
|
// updateStatus(NotImplemented);
|
||||||
|
// return NULL;
|
||||||
|
//}
|
||||||
|
Status GetColor(Color *color) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPenColor(
|
||||||
|
nativePen, color ? &color->Value : NULL));
|
||||||
|
}
|
||||||
|
Status GetCompoundArray(REAL *compoundArray, INT count) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPenCompoundArray(
|
||||||
|
nativePen, compoundArray, count));
|
||||||
|
}
|
||||||
|
INT GetCompoundArrayCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetPenCompoundCount(
|
||||||
|
nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetCustomEndCap(CustomLineCap *customCap) const
|
||||||
|
{
|
||||||
|
if (!customCap) return lastStatus = InvalidParameter;
|
||||||
|
// FIXME: do we need to call GdipDeleteCustomLineCap first?
|
||||||
|
return updateStatus(DllExports::GdipGetPenCustomEndCap(
|
||||||
|
nativePen, &customCap->nativeCustomLineCap));
|
||||||
|
}
|
||||||
|
Status GetCustomStartCap(CustomLineCap *customCap) const
|
||||||
|
{
|
||||||
|
if (!customCap) return lastStatus = InvalidParameter;
|
||||||
|
// FIXME: do we need to call GdipDeleteCustomLineCap first?
|
||||||
|
return updateStatus(DllExports::GdipGetPenCustomStartCap(
|
||||||
|
nativePen, &customCap->nativeCustomLineCap));
|
||||||
|
}
|
||||||
|
DashCap GetDashCap() const
|
||||||
|
{
|
||||||
|
DashCap result = DashCapFlat;
|
||||||
|
updateStatus(DllExports::GdipGetPenDashCap197819(
|
||||||
|
nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
REAL GetDashOffset() const
|
||||||
|
{
|
||||||
|
REAL result = 0.0f;
|
||||||
|
updateStatus(DllExports::GdipGetPenDashOffset(
|
||||||
|
nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetDashPattern(REAL *dashArray, INT count) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPenDashArray(
|
||||||
|
nativePen, dashArray, count));
|
||||||
|
}
|
||||||
|
INT GetDashPatternCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetPenDashCount(
|
||||||
|
nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
DashStyle GetDashStyle() const
|
||||||
|
{
|
||||||
|
DashStyle result = DashStyleSolid;
|
||||||
|
updateStatus(DllExports::GdipGetPenDashStyle(
|
||||||
|
nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
LineCap GetEndCap() const
|
||||||
|
{
|
||||||
|
LineCap result = LineCapFlat;
|
||||||
|
updateStatus(DllExports::GdipGetPenEndCap(nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
LineJoin GetLineJoin() const
|
||||||
|
{
|
||||||
|
LineJoin result = LineJoinMiter;
|
||||||
|
updateStatus(DllExports::GdipGetPenLineJoin(
|
||||||
|
nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
REAL GetMiterLimit() const
|
||||||
|
{
|
||||||
|
REAL result = 10.0f;
|
||||||
|
updateStatus(DllExports::GdipGetPenMiterLimit(
|
||||||
|
nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
PenType GetPenType() const
|
||||||
|
{
|
||||||
|
PenType result = PenTypeUnknown;
|
||||||
|
updateStatus(DllExports::GdipGetPenFillType(
|
||||||
|
nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
LineCap GetStartCap() const
|
||||||
|
{
|
||||||
|
LineCap result = LineCapFlat;
|
||||||
|
updateStatus(DllExports::GdipGetPenStartCap(
|
||||||
|
nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetTransform(Matrix *matrix) const
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetPenTransform(
|
||||||
|
nativePen,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL));
|
||||||
|
}
|
||||||
|
REAL GetWidth() const
|
||||||
|
{
|
||||||
|
REAL result = 1.0f;
|
||||||
|
updateStatus(DllExports::GdipGetPenWidth(nativePen, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status MultiplyTransform(const Matrix *matrix,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipMultiplyPenTransform(
|
||||||
|
nativePen,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL, order));
|
||||||
|
}
|
||||||
|
Status ResetTransform()
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipResetPenTransform(
|
||||||
|
nativePen));
|
||||||
|
}
|
||||||
|
Status RotateTransform(REAL angle,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipRotatePenTransform(
|
||||||
|
nativePen, angle, order));
|
||||||
|
}
|
||||||
|
Status ScaleTransform(REAL sx, REAL sy,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipScalePenTransform(
|
||||||
|
nativePen, sx, sy, order));
|
||||||
|
}
|
||||||
|
Status SetAlignment(PenAlignment penAlignment)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenMode(
|
||||||
|
nativePen, penAlignment));
|
||||||
|
}
|
||||||
|
Status SetBrush(const Brush *brush)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenBrushFill(
|
||||||
|
nativePen, brush ? brush->nativeBrush : NULL));
|
||||||
|
}
|
||||||
|
Status SetColor(const Color& color)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenColor(
|
||||||
|
nativePen, color.GetValue()));
|
||||||
|
}
|
||||||
|
Status SetCompoundArray(const REAL *compoundArray, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenCompoundArray(
|
||||||
|
nativePen, compoundArray, count));
|
||||||
|
}
|
||||||
|
Status SetCustomEndCap(const CustomLineCap *customCap)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenCustomEndCap(
|
||||||
|
nativePen,
|
||||||
|
customCap ? customCap->nativeCustomLineCap : NULL));
|
||||||
|
}
|
||||||
|
Status SetCustomStartCap(const CustomLineCap *customCap)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenCustomStartCap(
|
||||||
|
nativePen,
|
||||||
|
customCap ? customCap->nativeCustomLineCap : NULL));
|
||||||
|
}
|
||||||
|
Status SetDashCap(DashCap dashCap)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenDashCap197819(
|
||||||
|
nativePen, dashCap));
|
||||||
|
}
|
||||||
|
Status SetDashOffset(REAL dashOffset)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenDashOffset(
|
||||||
|
nativePen, dashOffset));
|
||||||
|
}
|
||||||
|
Status SetDashPattern(const REAL *dashArray, INT count)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenDashArray(
|
||||||
|
nativePen, dashArray, count));
|
||||||
|
}
|
||||||
|
Status SetDashStyle(DashStyle dashStyle)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenDashStyle(
|
||||||
|
nativePen, dashStyle));
|
||||||
|
}
|
||||||
|
Status SetEndCap(LineCap endCap)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenEndCap(
|
||||||
|
nativePen, endCap));
|
||||||
|
}
|
||||||
|
Status SetLineCap(LineCap startCap, LineCap endCap, DashCap dashCap)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenLineCap197819(
|
||||||
|
nativePen, startCap, endCap, dashCap));
|
||||||
|
}
|
||||||
|
Status SetLineJoin(LineJoin lineJoin)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenLineJoin(
|
||||||
|
nativePen, lineJoin));
|
||||||
|
}
|
||||||
|
Status SetMiterLimit(REAL miterLimit)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenMiterLimit(
|
||||||
|
nativePen, miterLimit));
|
||||||
|
}
|
||||||
|
Status SetStartCap(LineCap startCap)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenStartCap(
|
||||||
|
nativePen, startCap));
|
||||||
|
}
|
||||||
|
Status SetTransform(const Matrix *matrix)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenTransform(
|
||||||
|
nativePen,
|
||||||
|
matrix ? matrix->nativeMatrix : NULL));
|
||||||
|
}
|
||||||
|
Status SetWidth(REAL width)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetPenWidth(
|
||||||
|
nativePen, width));
|
||||||
|
}
|
||||||
|
Status TranslateTransform(REAL dx, REAL dy,
|
||||||
|
MatrixOrder order = MatrixOrderPrepend)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipTranslatePenTransform(
|
||||||
|
nativePen, dx, dy, order));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Pen(GpPen *pen, Status status): nativePen(pen), lastStatus(status) {}
|
||||||
|
Pen(const Pen& pen);
|
||||||
|
Pen& operator=(const Pen&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpPen *nativePen;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_PEN_H */
|
120
winsup/w32api/include/gdiplus/gdipluspixelformats.h
Executable file
120
winsup/w32api/include/gdiplus/gdipluspixelformats.h
Executable file
@ -0,0 +1,120 @@
|
|||||||
|
/*
|
||||||
|
* gdipluspixelformats.h
|
||||||
|
*
|
||||||
|
* GDI+ pixel formats
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_PIXELFORMATS_H
|
||||||
|
#define __GDIPLUS_PIXELFORMATS_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef DWORD ARGB;
|
||||||
|
typedef INT PixelFormat;
|
||||||
|
|
||||||
|
#define PixelFormatIndexed ((PixelFormat) 0x00010000)
|
||||||
|
#define PixelFormatGDI ((PixelFormat) 0x00020000)
|
||||||
|
#define PixelFormatAlpha ((PixelFormat) 0x00040000)
|
||||||
|
#define PixelFormatPAlpha ((PixelFormat) 0x00080000)
|
||||||
|
#define PixelFormatExtended ((PixelFormat) 0x00100000)
|
||||||
|
#define PixelFormatCanonical ((PixelFormat) 0x00200000)
|
||||||
|
#define PixelFormatUndefined ((PixelFormat) 0)
|
||||||
|
#define PixelFormatDontCare ((PixelFormat) 0)
|
||||||
|
#define PixelFormat1bppIndexed ((PixelFormat) \
|
||||||
|
(1 | (1<<8) | PixelFormatIndexed | PixelFormatGDI))
|
||||||
|
#define PixelFormat4bppIndexed ((PixelFormat) \
|
||||||
|
(2 | (4<<8) | PixelFormatIndexed | PixelFormatGDI))
|
||||||
|
#define PixelFormat8bppIndexed ((PixelFormat) \
|
||||||
|
(3 | (8<<8) | PixelFormatIndexed | PixelFormatGDI))
|
||||||
|
#define PixelFormat16bppGrayScale ((PixelFormat) \
|
||||||
|
(4 | (16<<8) | PixelFormatExtended))
|
||||||
|
#define PixelFormat16bppRGB555 ((PixelFormat) \
|
||||||
|
(5 | (16<<8) | PixelFormatGDI))
|
||||||
|
#define PixelFormat16bppRGB565 ((PixelFormat) \
|
||||||
|
(6 | (16<<8) | PixelFormatGDI))
|
||||||
|
#define PixelFormat16bppARGB1555 ((PixelFormat) \
|
||||||
|
(7 | (16<<8) | PixelFormatAlpha | PixelFormatGDI))
|
||||||
|
#define PixelFormat24bppRGB ((PixelFormat) \
|
||||||
|
(8 | (24<<8) | PixelFormatGDI))
|
||||||
|
#define PixelFormat32bppRGB ((PixelFormat) \
|
||||||
|
(9 | (32<<8) | PixelFormatGDI))
|
||||||
|
#define PixelFormat32bppARGB ((PixelFormat) \
|
||||||
|
(10 | (32<<8) | PixelFormatAlpha | PixelFormatGDI | PixelFormatCanonical))
|
||||||
|
#define PixelFormat32bppPARGB ((PixelFormat) \
|
||||||
|
(11 | (32<<8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatGDI))
|
||||||
|
#define PixelFormat48bppRGB ((PixelFormat) \
|
||||||
|
(12 | (48<<8) | PixelFormatExtended))
|
||||||
|
#define PixelFormat64bppARGB ((PixelFormat) \
|
||||||
|
(13 | (64<<8) | PixelFormatAlpha | PixelFormatCanonical | PixelFormatExtended))
|
||||||
|
#define PixelFormat64bppPARGB ((PixelFormat) \
|
||||||
|
(14 | (64<<8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatExtended))
|
||||||
|
#define PixelFormatMax ((PixelFormat) 15)
|
||||||
|
|
||||||
|
typedef enum PaletteFlags {
|
||||||
|
PaletteFlagsHasAlpha = 1,
|
||||||
|
PaletteFlagsGrayScale = 2,
|
||||||
|
PaletteFlagsHalftone = 4
|
||||||
|
} PaletteFlags;
|
||||||
|
|
||||||
|
typedef enum PaletteType {
|
||||||
|
PaletteTypeCustom = 0,
|
||||||
|
PaletteTypeOptimal = 1,
|
||||||
|
PaletteTypeFixedBW = 2,
|
||||||
|
PaletteTypeFixedHalftone8 = 3,
|
||||||
|
PaletteTypeFixedHalftone27 = 4,
|
||||||
|
PaletteTypeFixedHalftone64 = 5,
|
||||||
|
PaletteTypeFixedHalftone125 = 6,
|
||||||
|
PaletteTypeFixedHalftone216 = 7,
|
||||||
|
PaletteTypeFixedHalftone252 = 8,
|
||||||
|
PaletteTypeFixedHalftone256 = 9
|
||||||
|
} PaletteType;
|
||||||
|
|
||||||
|
typedef struct ColorPalette {
|
||||||
|
UINT Flags;
|
||||||
|
UINT Count;
|
||||||
|
ARGB Entries[1];
|
||||||
|
} ColorPalette;
|
||||||
|
|
||||||
|
static __inline__ UINT GetPixelFormatSize(PixelFormat pixfmt)
|
||||||
|
{
|
||||||
|
return (((UINT) pixfmt) & 0xff00U) >> 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ BOOL IsAlphaPixelFormat(PixelFormat pixfmt)
|
||||||
|
{
|
||||||
|
return (pixfmt & PixelFormatAlpha) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ BOOL IsCanonicalPixelFormat(PixelFormat pixfmt)
|
||||||
|
{
|
||||||
|
return (pixfmt & PixelFormatCanonical) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ BOOL IsExtendedPixelFormat(PixelFormat pixfmt)
|
||||||
|
{
|
||||||
|
return (pixfmt & PixelFormatExtended) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline__ BOOL IsIndexedPixelFormat(PixelFormat pixfmt)
|
||||||
|
{
|
||||||
|
return (pixfmt & PixelFormatIndexed) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_PIXELFORMATS_H */
|
251
winsup/w32api/include/gdiplus/gdiplusstringformat.h
Executable file
251
winsup/w32api/include/gdiplus/gdiplusstringformat.h
Executable file
@ -0,0 +1,251 @@
|
|||||||
|
/*
|
||||||
|
* gdiplusstringformat.h
|
||||||
|
*
|
||||||
|
* GDI+ StringFormat class
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_STRINGFORMAT_H
|
||||||
|
#define __GDIPLUS_STRINGFORMAT_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#error "A C++ compiler is required to include gdiplusstringformat.h."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class StringFormat: public GdiplusBase
|
||||||
|
{
|
||||||
|
friend class Graphics;
|
||||||
|
friend class GraphicsPath;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static const StringFormat* GenericDefault();
|
||||||
|
static const StringFormat* GenericTypographic();
|
||||||
|
|
||||||
|
StringFormat(INT formatFlags = 0, LANGID language = LANG_NEUTRAL):
|
||||||
|
nativeStringFormat(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCreateStringFormat(
|
||||||
|
formatFlags, language, &nativeStringFormat);
|
||||||
|
}
|
||||||
|
StringFormat(const StringFormat *format):
|
||||||
|
nativeStringFormat(NULL), lastStatus(Ok)
|
||||||
|
{
|
||||||
|
lastStatus = DllExports::GdipCloneStringFormat(
|
||||||
|
format ? format->nativeStringFormat : NULL,
|
||||||
|
&nativeStringFormat);
|
||||||
|
}
|
||||||
|
~StringFormat()
|
||||||
|
{
|
||||||
|
DllExports::GdipDeleteStringFormat(nativeStringFormat);
|
||||||
|
}
|
||||||
|
StringFormat* Clone() const
|
||||||
|
{
|
||||||
|
GpStringFormat *cloneStringFormat = NULL;
|
||||||
|
Status status = updateStatus(DllExports::GdipCloneStringFormat(
|
||||||
|
nativeStringFormat, &cloneStringFormat));
|
||||||
|
if (status == Ok) {
|
||||||
|
StringFormat *result = new StringFormat(
|
||||||
|
cloneStringFormat, lastStatus);
|
||||||
|
if (!result) {
|
||||||
|
DllExports::GdipDeleteStringFormat(cloneStringFormat);
|
||||||
|
lastStatus = OutOfMemory;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
StringAlignment GetAlignment() const
|
||||||
|
{
|
||||||
|
StringAlignment result = StringAlignmentNear;
|
||||||
|
updateStatus(DllExports::GdipGetStringFormatAlign(
|
||||||
|
nativeStringFormat, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
LANGID GetDigitSubstitutionLanguage() const
|
||||||
|
{
|
||||||
|
LANGID result = 0;
|
||||||
|
StringDigitSubstitute method;
|
||||||
|
updateStatus(DllExports::GdipGetStringFormatDigitSubstitution(
|
||||||
|
nativeStringFormat, &result, &method));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
StringDigitSubstitute GetDigitSubstitutionMethod() const
|
||||||
|
{
|
||||||
|
LANGID language;
|
||||||
|
StringDigitSubstitute result = StringDigitSubstituteUser;
|
||||||
|
updateStatus(DllExports::GdipGetStringFormatDigitSubstitution(
|
||||||
|
nativeStringFormat, &language, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT GetFormatFlags() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetStringFormatFlags(
|
||||||
|
nativeStringFormat, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
HotkeyPrefix GetHotkeyPrefix() const
|
||||||
|
{
|
||||||
|
HotkeyPrefix result = HotkeyPrefixNone;
|
||||||
|
updateStatus(DllExports::GdipGetStringFormatHotkeyPrefix(
|
||||||
|
nativeStringFormat, (INT*) &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetLastStatus() const
|
||||||
|
{
|
||||||
|
Status result = lastStatus;
|
||||||
|
lastStatus = Ok;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
StringAlignment GetLineAlignment() const
|
||||||
|
{
|
||||||
|
StringAlignment result = StringAlignmentNear;
|
||||||
|
updateStatus(DllExports::GdipGetStringFormatLineAlign(
|
||||||
|
nativeStringFormat, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT GetMeasurableCharacterRangeCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetStringFormatMeasurableCharacterRangeCount(
|
||||||
|
nativeStringFormat, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
INT GetTabStopCount() const
|
||||||
|
{
|
||||||
|
INT result = 0;
|
||||||
|
updateStatus(DllExports::GdipGetStringFormatTabStopCount(
|
||||||
|
nativeStringFormat, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status GetTabStops(INT count, REAL *firstTabOffset, REAL *tabStops)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipGetStringFormatTabStops(
|
||||||
|
nativeStringFormat, count,
|
||||||
|
firstTabOffset, tabStops));
|
||||||
|
}
|
||||||
|
StringTrimming GetTrimming() const
|
||||||
|
{
|
||||||
|
StringTrimming result = StringTrimmingNone;
|
||||||
|
updateStatus(DllExports::GdipGetStringFormatTrimming(
|
||||||
|
nativeStringFormat, &result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Status SetAlignment(StringAlignment align)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetStringFormatAlign(
|
||||||
|
nativeStringFormat, align));
|
||||||
|
}
|
||||||
|
Status SetDigitSubstitution(LANGID language,
|
||||||
|
StringDigitSubstitute substitute)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetStringFormatDigitSubstitution(
|
||||||
|
nativeStringFormat, language, substitute));
|
||||||
|
}
|
||||||
|
Status SetFormatFlags(INT flags)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetStringFormatFlags(
|
||||||
|
nativeStringFormat, flags));
|
||||||
|
}
|
||||||
|
Status SetHotkeyPrefix(HotkeyPrefix hotkeyPrefix)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetStringFormatHotkeyPrefix(
|
||||||
|
nativeStringFormat, (INT) hotkeyPrefix));
|
||||||
|
}
|
||||||
|
Status SetLineAlignment(StringAlignment align)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetStringFormatLineAlign(
|
||||||
|
nativeStringFormat, align));
|
||||||
|
}
|
||||||
|
Status SetMeasurableCharacterRanges(INT rangeCount,
|
||||||
|
const CharacterRange *ranges)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetStringFormatMeasurableCharacterRanges(
|
||||||
|
nativeStringFormat, rangeCount, ranges));
|
||||||
|
}
|
||||||
|
Status SetTabStops(REAL firstTabOffset, INT count, const REAL *tabStops)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetStringFormatTabStops(
|
||||||
|
nativeStringFormat, firstTabOffset,
|
||||||
|
count, tabStops));
|
||||||
|
}
|
||||||
|
Status SetTrimming(StringTrimming trimming)
|
||||||
|
{
|
||||||
|
return updateStatus(DllExports::GdipSetStringFormatTrimming(
|
||||||
|
nativeStringFormat, trimming));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
StringFormat(GpStringFormat *stringFormat, Status status):
|
||||||
|
nativeStringFormat(stringFormat), lastStatus(status) {}
|
||||||
|
StringFormat(const StringFormat&);
|
||||||
|
StringFormat& operator=(const StringFormat&);
|
||||||
|
|
||||||
|
Status updateStatus(Status newStatus) const
|
||||||
|
{
|
||||||
|
if (newStatus != Ok) lastStatus = newStatus;
|
||||||
|
return newStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
GpStringFormat *nativeStringFormat;
|
||||||
|
mutable Status lastStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// FIXME: do StringFormat::GenericDefault() et al. need to be thread safe?
|
||||||
|
// FIXME: maybe put this in gdiplus.c?
|
||||||
|
|
||||||
|
extern "C" void *_GdipStringFormatCachedGenericDefault;
|
||||||
|
extern "C" void *_GdipStringFormatCachedGenericTypographic;
|
||||||
|
|
||||||
|
__inline__ const StringFormat* StringFormat::GenericDefault()
|
||||||
|
{
|
||||||
|
if (!_GdipStringFormatCachedGenericDefault) {
|
||||||
|
GpStringFormat *nativeStringFormat = 0;
|
||||||
|
Status status = DllExports::GdipStringFormatGetGenericDefault(
|
||||||
|
&nativeStringFormat);
|
||||||
|
if (status == Ok && nativeStringFormat) {
|
||||||
|
_GdipStringFormatCachedGenericDefault = (void*)
|
||||||
|
new StringFormat(nativeStringFormat, Ok);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (StringFormat*) _GdipStringFormatCachedGenericDefault;
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline__ const StringFormat* StringFormat::GenericTypographic()
|
||||||
|
{
|
||||||
|
if (!_GdipStringFormatCachedGenericTypographic) {
|
||||||
|
GpStringFormat *nativeStringFormat = 0;
|
||||||
|
Status status = DllExports::GdipStringFormatGetGenericTypographic(
|
||||||
|
&nativeStringFormat);
|
||||||
|
if (status == Ok && nativeStringFormat) {
|
||||||
|
_GdipStringFormatCachedGenericTypographic = (void*)
|
||||||
|
new StringFormat(nativeStringFormat, Ok);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (StringFormat*) _GdipStringFormatCachedGenericTypographic;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_STRINGFORMAT_H */
|
456
winsup/w32api/include/gdiplus/gdiplustypes.h
Executable file
456
winsup/w32api/include/gdiplus/gdiplustypes.h
Executable file
@ -0,0 +1,456 @@
|
|||||||
|
/*
|
||||||
|
* gdiplustypes.h
|
||||||
|
*
|
||||||
|
* GDI+ basic type declarations
|
||||||
|
*
|
||||||
|
* This file is part of the w32api package.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||||
|
*
|
||||||
|
* This source code is offered for use in the public domain. You may
|
||||||
|
* use, modify or distribute it freely.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful but
|
||||||
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||||
|
* DISCLAIMED. This includes but is not limited to warranties of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GDIPLUS_TYPES_H
|
||||||
|
#define __GDIPLUS_TYPES_H
|
||||||
|
#if __GNUC__ >=3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define WINGDIPAPI __stdcall
|
||||||
|
#define GDIPCONST const
|
||||||
|
|
||||||
|
typedef enum GpStatus {
|
||||||
|
Ok = 0,
|
||||||
|
GenericError = 1,
|
||||||
|
InvalidParameter = 2,
|
||||||
|
OutOfMemory = 3,
|
||||||
|
ObjectBusy = 4,
|
||||||
|
InsufficientBuffer = 5,
|
||||||
|
NotImplemented = 6,
|
||||||
|
Win32Error = 7,
|
||||||
|
WrongState = 8,
|
||||||
|
Aborted = 9,
|
||||||
|
FileNotFound = 10,
|
||||||
|
ValueOverflow = 11,
|
||||||
|
AccessDenied = 12,
|
||||||
|
UnknownImageFormat = 13,
|
||||||
|
FontFamilyNotFound = 14,
|
||||||
|
FontStyleNotFound = 15,
|
||||||
|
NotTrueTypeFont = 16,
|
||||||
|
UnsupportedGdiplusVersion = 17,
|
||||||
|
GdiplusNotInitialized = 18,
|
||||||
|
PropertyNotFound = 19,
|
||||||
|
PropertyNotSupported = 20,
|
||||||
|
ProfileNotFound = 21
|
||||||
|
} GpStatus;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
typedef GpStatus Status;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct Size {
|
||||||
|
INT Width;
|
||||||
|
INT Height;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
Size(): Width(0), Height(0) {}
|
||||||
|
Size(INT width, INT height): Width(width), Height(height) {}
|
||||||
|
Size(const Size& size): Width(size.Width), Height(size.Height) {}
|
||||||
|
|
||||||
|
BOOL Empty() const {
|
||||||
|
return Width == 0 && Height == 0;
|
||||||
|
}
|
||||||
|
BOOL Equals(const Size& size) const {
|
||||||
|
return Width == size.Width && Height == size.Height;
|
||||||
|
}
|
||||||
|
Size operator+(const Size& size) const {
|
||||||
|
return Size(Width + size.Width, Height + size.Height);
|
||||||
|
}
|
||||||
|
Size operator-(const Size& size) const {
|
||||||
|
return Size(Width - size.Width, Height - size.Height);
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} Size;
|
||||||
|
|
||||||
|
typedef struct SizeF {
|
||||||
|
REAL Width;
|
||||||
|
REAL Height;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
SizeF(): Width(0.0f), Height(0.0f) {}
|
||||||
|
SizeF(REAL width, REAL height): Width(width), Height(height) {}
|
||||||
|
SizeF(const SizeF& size): Width(size.Width), Height(size.Height) {}
|
||||||
|
|
||||||
|
BOOL Empty() const {
|
||||||
|
return Width == 0.0f && Height == 0.0f;
|
||||||
|
}
|
||||||
|
BOOL Equals(const SizeF& size) const {
|
||||||
|
return Width == size.Width && Height == size.Height;
|
||||||
|
}
|
||||||
|
SizeF operator+(const SizeF& size) const {
|
||||||
|
return SizeF(Width + size.Width, Height + size.Height);
|
||||||
|
}
|
||||||
|
SizeF operator-(const SizeF& size) const {
|
||||||
|
return SizeF(Width - size.Width, Height - size.Height);
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} SizeF;
|
||||||
|
|
||||||
|
typedef struct Point {
|
||||||
|
INT X;
|
||||||
|
INT Y;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
Point(): X(0), Y(0) {}
|
||||||
|
Point(INT x, INT y): X(x), Y(y) {}
|
||||||
|
Point(const Point& point): X(point.X), Y(point.Y) {}
|
||||||
|
Point(const Size& size): X(size.Width), Y(size.Height) {}
|
||||||
|
|
||||||
|
BOOL Equals(const Point& point) const {
|
||||||
|
return X == point.X && Y == point.Y;
|
||||||
|
}
|
||||||
|
Point operator+(const Point& point) const {
|
||||||
|
return Point(X + point.X, Y + point.Y);
|
||||||
|
}
|
||||||
|
Point operator-(const Point& point) const {
|
||||||
|
return Point(X - point.X, Y - point.Y);
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} Point;
|
||||||
|
|
||||||
|
typedef struct PointF {
|
||||||
|
REAL X;
|
||||||
|
REAL Y;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
PointF(): X(0.0f), Y(0.0f) {}
|
||||||
|
PointF(REAL x, REAL y): X(x), Y(y) {}
|
||||||
|
PointF(const PointF& point): X(point.X), Y(point.Y) {}
|
||||||
|
PointF(const SizeF& size): X(size.Width), Y(size.Height) {}
|
||||||
|
|
||||||
|
BOOL Equals(const PointF& point) const {
|
||||||
|
return X == point.X && Y == point.Y;
|
||||||
|
}
|
||||||
|
PointF operator+(const PointF& point) const {
|
||||||
|
return PointF(X + point.X, Y + point.Y);
|
||||||
|
}
|
||||||
|
PointF operator-(const PointF& point) const {
|
||||||
|
return PointF(X - point.X, Y - point.Y);
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} PointF;
|
||||||
|
|
||||||
|
typedef struct Rect {
|
||||||
|
INT X;
|
||||||
|
INT Y;
|
||||||
|
INT Width;
|
||||||
|
INT Height;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
Rect(): X(0), Y(0), Width(0), Height(0) {}
|
||||||
|
Rect(const Point& location, const Size& size):
|
||||||
|
X(location.X), Y(location.Y),
|
||||||
|
Width(size.Width), Height(size.Height) {}
|
||||||
|
Rect(INT x, INT y, INT width, INT height):
|
||||||
|
X(x), Y(y), Width(width), Height(height) {}
|
||||||
|
|
||||||
|
Rect* Clone() const {
|
||||||
|
return new Rect(X, Y, Width, Height);
|
||||||
|
}
|
||||||
|
BOOL Contains(INT x, INT y) const {
|
||||||
|
return X <= x && Y <= y && x < X+Width && y < Y+Height;
|
||||||
|
}
|
||||||
|
BOOL Contains(const Point& point) const {
|
||||||
|
return Contains(point.X, point.Y);
|
||||||
|
}
|
||||||
|
BOOL Contains(const Rect& rect) const {
|
||||||
|
return X <= rect.X && Y <= rect.Y
|
||||||
|
&& rect.X+rect.Width <= X+Width
|
||||||
|
&& rect.Y+rect.Height <= Y+Height;
|
||||||
|
}
|
||||||
|
BOOL Equals(const Rect& rect) const {
|
||||||
|
return X == rect.X && Y == rect.Y
|
||||||
|
&& Width == rect.Width && Height == rect.Height;
|
||||||
|
}
|
||||||
|
INT GetBottom() const {
|
||||||
|
return Y+Height;
|
||||||
|
}
|
||||||
|
VOID GetBounds(Rect *rect) const {
|
||||||
|
if (rect != NULL) {
|
||||||
|
rect->X = X;
|
||||||
|
rect->Y = Y;
|
||||||
|
rect->Width = Width;
|
||||||
|
rect->Height = Height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
INT GetLeft() const {
|
||||||
|
return X;
|
||||||
|
}
|
||||||
|
VOID GetLocation(Point *point) const {
|
||||||
|
if (point != NULL) {
|
||||||
|
point->X = X;
|
||||||
|
point->Y = Y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
INT GetRight() const {
|
||||||
|
return X+Width;
|
||||||
|
}
|
||||||
|
VOID GetSize(Size *size) const {
|
||||||
|
if (size != NULL) {
|
||||||
|
size->Width = Width;
|
||||||
|
size->Height = Height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
INT GetTop() const {
|
||||||
|
return Y;
|
||||||
|
}
|
||||||
|
BOOL IsEmptyArea() const {
|
||||||
|
return Width <= 0 || Height <= 0;
|
||||||
|
}
|
||||||
|
VOID Inflate(INT dx, INT dy) {
|
||||||
|
X -= dx;
|
||||||
|
Y -= dy;
|
||||||
|
Width += 2*dx;
|
||||||
|
Height += 2*dy;
|
||||||
|
}
|
||||||
|
VOID Inflate(const Point& point) {
|
||||||
|
Inflate(point.X, point.Y);
|
||||||
|
}
|
||||||
|
static BOOL Intersect(Rect& c, const Rect& a, const Rect& b) {
|
||||||
|
INT intersectLeft = (a.X < b.X) ? b.X : a.X;
|
||||||
|
INT intersectTop = (a.Y < b.Y) ? b.Y : a.Y;
|
||||||
|
INT intersectRight = (a.GetRight() < b.GetRight())
|
||||||
|
? a.GetRight() : b.GetRight();
|
||||||
|
INT intersectBottom = (a.GetBottom() < b.GetBottom())
|
||||||
|
? a.GetBottom() : b.GetBottom();
|
||||||
|
c.X = intersectLeft;
|
||||||
|
c.Y = intersectTop;
|
||||||
|
c.Width = intersectRight - intersectLeft;
|
||||||
|
c.Height = intersectBottom - intersectTop;
|
||||||
|
return !c.IsEmptyArea();
|
||||||
|
}
|
||||||
|
BOOL Intersect(const Rect& rect) {
|
||||||
|
return Intersect(*this, *this, rect);
|
||||||
|
}
|
||||||
|
BOOL IntersectsWith(const Rect& rc) const {
|
||||||
|
INT intersectLeft = (X < rc.X) ? rc.X : X;
|
||||||
|
INT intersectTop = (Y < rc.Y) ? rc.Y : Y;
|
||||||
|
INT intersectRight = (GetRight() < rc.GetRight())
|
||||||
|
? GetRight() : rc.GetRight();
|
||||||
|
INT intersectBottom = (GetBottom() < rc.GetBottom())
|
||||||
|
? GetBottom() : rc.GetBottom();
|
||||||
|
return intersectLeft < intersectRight
|
||||||
|
&& intersectTop < intersectBottom;
|
||||||
|
}
|
||||||
|
VOID Offset(INT dx, INT dy) {
|
||||||
|
X += dx;
|
||||||
|
Y += dy;
|
||||||
|
}
|
||||||
|
VOID Offset(const Point& point) {
|
||||||
|
Offset(point.X, point.Y);
|
||||||
|
}
|
||||||
|
static BOOL Union(Rect& c, const Rect& a, const Rect& b) {
|
||||||
|
INT unionLeft = (a.X < b.X) ? a.X : b.X;
|
||||||
|
INT unionTop = (a.Y < b.Y) ? a.Y : b.Y;
|
||||||
|
INT unionRight = (a.GetRight() < b.GetRight())
|
||||||
|
? b.GetRight() : a.GetRight();
|
||||||
|
INT unionBottom = (a.GetBottom() < b.GetBottom())
|
||||||
|
? b.GetBottom() : a.GetBottom();
|
||||||
|
c.X = unionLeft;
|
||||||
|
c.Y = unionTop;
|
||||||
|
c.Width = unionRight - unionLeft;
|
||||||
|
c.Height = unionBottom - unionTop;
|
||||||
|
return !c.IsEmptyArea();
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} Rect;
|
||||||
|
|
||||||
|
typedef struct RectF {
|
||||||
|
REAL X;
|
||||||
|
REAL Y;
|
||||||
|
REAL Width;
|
||||||
|
REAL Height;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
RectF(): X(0.0f), Y(0.0f), Width(0.0f), Height(0.0f) {}
|
||||||
|
RectF(const PointF& location, const SizeF& size):
|
||||||
|
X(location.X), Y(location.Y),
|
||||||
|
Width(size.Width), Height(size.Height) {}
|
||||||
|
RectF(REAL x, REAL y, REAL width, REAL height):
|
||||||
|
X(x), Y(y), Width(width), Height(height) {}
|
||||||
|
|
||||||
|
RectF* Clone() const {
|
||||||
|
return new RectF(X, Y, Width, Height);
|
||||||
|
}
|
||||||
|
BOOL Contains(REAL x, REAL y) const {
|
||||||
|
return X <= x && Y <= y && x < X+Width && y < Y+Height;
|
||||||
|
}
|
||||||
|
BOOL Contains(const PointF& point) const {
|
||||||
|
return Contains(point.X, point.Y);
|
||||||
|
}
|
||||||
|
BOOL Contains(const RectF& rect) const {
|
||||||
|
return X <= rect.X && Y <= rect.Y
|
||||||
|
&& rect.X+rect.Width <= X+Width
|
||||||
|
&& rect.Y+rect.Height <= Y+Height;
|
||||||
|
}
|
||||||
|
BOOL Equals(const RectF& rect) const {
|
||||||
|
return X == rect.X && Y == rect.Y
|
||||||
|
&& Width == rect.Width && Height == rect.Height;
|
||||||
|
}
|
||||||
|
REAL GetBottom() const {
|
||||||
|
return Y+Height;
|
||||||
|
}
|
||||||
|
VOID GetBounds(RectF *rect) const {
|
||||||
|
if (rect != NULL) {
|
||||||
|
rect->X = X;
|
||||||
|
rect->Y = Y;
|
||||||
|
rect->Width = Width;
|
||||||
|
rect->Height = Height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
REAL GetLeft() const {
|
||||||
|
return X;
|
||||||
|
}
|
||||||
|
VOID GetLocation(PointF *point) const {
|
||||||
|
if (point != NULL) {
|
||||||
|
point->X = X;
|
||||||
|
point->Y = Y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
REAL GetRight() const {
|
||||||
|
return X+Width;
|
||||||
|
}
|
||||||
|
VOID GetSize(SizeF *size) const {
|
||||||
|
if (size != NULL) {
|
||||||
|
size->Width = Width;
|
||||||
|
size->Height = Height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
REAL GetTop() const {
|
||||||
|
return Y;
|
||||||
|
}
|
||||||
|
BOOL IsEmptyArea() const {
|
||||||
|
return Width <= 0.0f || Height <= 0.0f;
|
||||||
|
}
|
||||||
|
VOID Inflate(REAL dx, REAL dy) {
|
||||||
|
X -= dx;
|
||||||
|
Y -= dy;
|
||||||
|
Width += 2*dx;
|
||||||
|
Height += 2*dy;
|
||||||
|
}
|
||||||
|
VOID Inflate(const PointF& point) {
|
||||||
|
Inflate(point.X, point.Y);
|
||||||
|
}
|
||||||
|
static BOOL Intersect(RectF& c, const RectF& a, const RectF& b) {
|
||||||
|
INT intersectLeft = (a.X < b.X) ? b.X : a.X;
|
||||||
|
INT intersectTop = (a.Y < b.Y) ? b.Y : a.Y;
|
||||||
|
INT intersectRight = (a.GetRight() < b.GetRight())
|
||||||
|
? a.GetRight() : b.GetRight();
|
||||||
|
INT intersectBottom = (a.GetBottom() < b.GetBottom())
|
||||||
|
? a.GetBottom() : b.GetBottom();
|
||||||
|
c.X = intersectLeft;
|
||||||
|
c.Y = intersectTop;
|
||||||
|
c.Width = intersectRight - intersectLeft;
|
||||||
|
c.Height = intersectBottom - intersectTop;
|
||||||
|
return !c.IsEmptyArea();
|
||||||
|
}
|
||||||
|
BOOL Intersect(const RectF& rect) {
|
||||||
|
return Intersect(*this, *this, rect);
|
||||||
|
}
|
||||||
|
BOOL IntersectsWith(const RectF& rc) const {
|
||||||
|
INT intersectLeft = (X < rc.X) ? rc.X : X;
|
||||||
|
INT intersectTop = (Y < rc.Y) ? rc.Y : Y;
|
||||||
|
INT intersectRight = (GetRight() < rc.GetRight())
|
||||||
|
? GetRight() : rc.GetRight();
|
||||||
|
INT intersectBottom = (GetBottom() < rc.GetBottom())
|
||||||
|
? GetBottom() : rc.GetBottom();
|
||||||
|
return intersectLeft < intersectRight
|
||||||
|
&& intersectTop < intersectBottom;
|
||||||
|
}
|
||||||
|
VOID Offset(REAL dx, REAL dy) {
|
||||||
|
X += dx;
|
||||||
|
Y += dy;
|
||||||
|
}
|
||||||
|
VOID Offset(const PointF& point) {
|
||||||
|
Offset(point.X, point.Y);
|
||||||
|
}
|
||||||
|
static BOOL Union(RectF& c, const RectF& a, const RectF& b) {
|
||||||
|
INT unionLeft = (a.X < b.X) ? a.X : b.X;
|
||||||
|
INT unionTop = (a.Y < b.Y) ? a.Y : b.Y;
|
||||||
|
INT unionRight = (a.GetRight() < b.GetRight())
|
||||||
|
? b.GetRight() : a.GetRight();
|
||||||
|
INT unionBottom = (a.GetBottom() < b.GetBottom())
|
||||||
|
? b.GetBottom() : a.GetBottom();
|
||||||
|
c.X = unionLeft;
|
||||||
|
c.Y = unionTop;
|
||||||
|
c.Width = unionRight - unionLeft;
|
||||||
|
c.Height = unionBottom - unionTop;
|
||||||
|
return !c.IsEmptyArea();
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} RectF;
|
||||||
|
|
||||||
|
/* FIXME: Are descendants of this class, when compiled with g++,
|
||||||
|
binary compatible with MSVC++ code (especially GDIPLUS.DLL of course)? */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
struct GdiplusAbort {
|
||||||
|
virtual HRESULT __stdcall Abort(void) {}
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
typedef struct GdiplusAbort GdiplusAbort; /* incomplete type */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct CharacterRange {
|
||||||
|
INT First;
|
||||||
|
INT Length;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
CharacterRange(): First(0), Length(0) {}
|
||||||
|
CharacterRange(INT first, INT length): First(first), Length(length) {}
|
||||||
|
CharacterRange& operator=(const CharacterRange& rhs) {
|
||||||
|
/* This gracefully handles self-assignment */
|
||||||
|
First = rhs.First;
|
||||||
|
Length = rhs.Length;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} CharacterRange;
|
||||||
|
|
||||||
|
typedef struct PathData {
|
||||||
|
INT Count;
|
||||||
|
PointF *Points;
|
||||||
|
BYTE *Types;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
friend class GraphicsPath;
|
||||||
|
|
||||||
|
PathData(): Count(0), Points(NULL), Types(NULL) {}
|
||||||
|
~PathData() {
|
||||||
|
FreeArrays();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
/* used by GraphicsPath::GetPathData, defined in gdipluspath.h */
|
||||||
|
Status AllocateArrays(INT capacity);
|
||||||
|
VOID FreeArrays();
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
} PathData;
|
||||||
|
|
||||||
|
/* Callback function types */
|
||||||
|
/* FIXME: need a correct definition for these function pointer types */
|
||||||
|
typedef void *DebugEventProc;
|
||||||
|
typedef BOOL CALLBACK (*EnumerateMetafileProc)(EmfPlusRecordType,UINT,UINT,const BYTE*,VOID*);
|
||||||
|
typedef void *DrawImageAbort;
|
||||||
|
typedef void *GetThumbnailImageAbort;
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __GDIPLUS_TYPES_H */
|
@ -112,6 +112,7 @@ FLAGS_TO_PASS = \
|
|||||||
|
|
||||||
HEADERS = $(notdir $(wildcard $(srcdir)/../include/*.h))
|
HEADERS = $(notdir $(wildcard $(srcdir)/../include/*.h))
|
||||||
GL_HEADERS = $(notdir $(wildcard $(srcdir)/../include/GL/*.h))
|
GL_HEADERS = $(notdir $(wildcard $(srcdir)/../include/GL/*.h))
|
||||||
|
GDIPLUS_HEADERS = $(notdir $(wildcard $(srcdir)/../include/gdiplus/*.h))
|
||||||
|
|
||||||
# libraries
|
# libraries
|
||||||
|
|
||||||
@ -127,7 +128,7 @@ UUID_OBJS = mshtml-uuid.o msxml-uuid.o unknwn-uuid.o \
|
|||||||
exdisp-uuid.o mlang-uuid.o objidl-uuid.o cguid-uuid.o \
|
exdisp-uuid.o mlang-uuid.o objidl-uuid.o cguid-uuid.o \
|
||||||
olectlid-uuid.o ativscp-uuid.o urlmon-uuid.o hlink-uuid.o \
|
olectlid-uuid.o ativscp-uuid.o urlmon-uuid.o hlink-uuid.o \
|
||||||
hlguids-uuid.o extras-uuid.o devguid.o power-uuid.o
|
hlguids-uuid.o extras-uuid.o devguid.o power-uuid.o
|
||||||
EXTRA_OBJS = shell32.o scrnsave.o scrnsavw.o largeint.o \
|
EXTRA_OBJS = shell32.o scrnsave.o scrnsavw.o largeint.o gdiplus.o \
|
||||||
$(UUID_OBJS) ws2_32.o
|
$(UUID_OBJS) ws2_32.o
|
||||||
UUID_SOURCES = mshtml-uuid.c msxml-uuid.c unknwn-uuid.c \
|
UUID_SOURCES = mshtml-uuid.c msxml-uuid.c unknwn-uuid.c \
|
||||||
servprov-uuid.c oleidl-uuid.c oleacc-uuid.c ocidl-uuid.c \
|
servprov-uuid.c oleidl-uuid.c oleacc-uuid.c ocidl-uuid.c \
|
||||||
@ -135,7 +136,7 @@ UUID_SOURCES = mshtml-uuid.c msxml-uuid.c unknwn-uuid.c \
|
|||||||
exdisp-uuid.c mlang-uuid.c objidl-uuid.c cguid-uuid.c \
|
exdisp-uuid.c mlang-uuid.c objidl-uuid.c cguid-uuid.c \
|
||||||
olectlid-uuid.c ativscp-uuid.c urlmon-uuid.c hlink-uuid.c \
|
olectlid-uuid.c ativscp-uuid.c urlmon-uuid.c hlink-uuid.c \
|
||||||
hlguids-uuid.c extras-uuid.c devguid.c power-uuid.c
|
hlguids-uuid.c extras-uuid.c devguid.c power-uuid.c
|
||||||
SOURCES = scrnsave.c shell32.c largeint.c $(UUID_SOURCES)\
|
SOURCES = scrnsave.c shell32.c largeint.c gdiplus.c $(UUID_SOURCES) \
|
||||||
res.rc test.c ws2_32.c
|
res.rc test.c ws2_32.c
|
||||||
|
|
||||||
DISTFILES = Makefile.in $(DEF_FILES) $(MRI_FILES) $(SOURCES)
|
DISTFILES = Makefile.in $(DEF_FILES) $(MRI_FILES) $(SOURCES)
|
||||||
@ -239,6 +240,10 @@ install-headers: $(need-DESTDIR-compatibility)
|
|||||||
for i in $(GL_HEADERS); do \
|
for i in $(GL_HEADERS); do \
|
||||||
$(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(DESTDIR)$(inst_includedir)/GL/$$i ; \
|
$(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(DESTDIR)$(inst_includedir)/GL/$$i ; \
|
||||||
done
|
done
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(inst_includedir)/gdiplus
|
||||||
|
for i in $(GDIPLUS_HEADERS); do \
|
||||||
|
$(INSTALL_DATA) $(srcdir)/../include/gdiplus/$$i $(DESTDIR)$(inst_includedir)/gdiplus/$$i ; \
|
||||||
|
done
|
||||||
|
|
||||||
install-ddk: install-libraries install-headers
|
install-ddk: install-libraries install-headers
|
||||||
cd ddk && $(MAKE) install $(FLAGS_TO_PASS)
|
cd ddk && $(MAKE) install $(FLAGS_TO_PASS)
|
||||||
|
67
winsup/w32api/lib/gdiplus.c
Executable file
67
winsup/w32api/lib/gdiplus.c
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
* Generate GUIDs for GDI+
|
||||||
|
*
|
||||||
|
* The Image Format GUIDs were generated by loading example images of
|
||||||
|
* various types with GdipLoadImageFromFile and then extracting the
|
||||||
|
* image format with GdipGetImageRawFormat.
|
||||||
|
*
|
||||||
|
* The Encoder Parameter GUIDs were taken from this .NET MSDN page:
|
||||||
|
* http://msdn.microsoft.com/en-us/library/system.drawing.imaging.encoder.quality.aspx
|
||||||
|
*
|
||||||
|
* The Frame Dimension GUIDs were generated by loading example multi-frame
|
||||||
|
* images (multi-page TIFF; animated GIF) and querying the frame dimension list
|
||||||
|
* using GdipImageGetFrameDimensionsList.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* TODO: find the remaining GUIDs */
|
||||||
|
|
||||||
|
#define INITGUID
|
||||||
|
#include <basetyps.h>
|
||||||
|
|
||||||
|
void *_GdipFontFamilyCachedGenericMonospace = 0;
|
||||||
|
void *_GdipFontFamilyCachedGenericSansSerif = 0;
|
||||||
|
void *_GdipFontFamilyCachedGenericSerif = 0;
|
||||||
|
void *_GdipStringFormatCachedGenericDefault = 0;
|
||||||
|
void *_GdipStringFormatCachedGenericTypographic = 0;
|
||||||
|
|
||||||
|
DEFINE_GUID(EncoderChrominanceTable,0xF2E455DC,0x09B3,0x4316,0x82,0x60,0x67,0x6A,0xDA,0x32,0x48,0x1C);
|
||||||
|
DEFINE_GUID(EncoderColorDepth,0x66087055,0xAD66,0x4C7C,0x9A,0x18,0x38,0xA2,0x31,0x0B,0x83,0x37);
|
||||||
|
/* EncoderColorSpace missing */
|
||||||
|
DEFINE_GUID(EncoderCompression,0xE09D739D,0xCCD4,0x44EE,0x8E,0xBA,0x3F,0xBF,0x8B,0xE4,0xFC,0x58);
|
||||||
|
/* EncoderImageItems missing */
|
||||||
|
DEFINE_GUID(EncoderLuminanceTable,0xEDB33BCE,0x0266,0x4A77,0xB9,0x04,0x27,0x21,0x60,0x99,0xE7,0x17);
|
||||||
|
DEFINE_GUID(EncoderQuality,0x1D5BE4B5,0xFA4A,0x452D,0x9C,0xDD,0x5D,0xB3,0x51,0x05,0xE7,0xEB);
|
||||||
|
DEFINE_GUID(EncoderRenderMethod,0x6D42C53A,0x229A,0x4825,0x8B,0xB7,0x5C,0x99,0xE2,0xB9,0xA8,0xB8);
|
||||||
|
/* EncoderSaveAsCMYK missing */
|
||||||
|
DEFINE_GUID(EncoderSaveFlag,0x292266FC,0xAC40,0x47BF,0x8C,0xFC,0xA8,0x5B,0x89,0xA6,0x55,0xDE);
|
||||||
|
DEFINE_GUID(EncoderScanMethod,0x3A4E2661,0x3109,0x4E56,0x85,0x36,0x42,0xC1,0x56,0xE7,0xDC,0xFA);
|
||||||
|
DEFINE_GUID(EncoderTransformation,0x8D0EB2D1,0xA58E,0x4EA8,0xAA,0x14,0x10,0x80,0x74,0xB7,0xB6,0xF9);
|
||||||
|
DEFINE_GUID(EncoderVersion,0x24D18C76,0x814A,0x41A4,0xBF,0x53,0x1C,0x21,0x9C,0xCC,0xF7,0x97);
|
||||||
|
|
||||||
|
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);
|
||||||
|
/* ImageFormatEXIF missing */
|
||||||
|
DEFINE_GUID(ImageFormatGIF,0xB96B3CB0,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
|
||||||
|
DEFINE_GUID(ImageFormatIcon,0xB96B3CB5,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(ImageFormatMemoryBMP,0xB96B3CAA,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(ImageFormatTIFF,0xB96B3CB1,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
|
||||||
|
/* ImageFormatUndefined missing */
|
||||||
|
DEFINE_GUID(ImageFormatWMF,0xB96B3CAD,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E);
|
||||||
|
|
||||||
|
DEFINE_GUID(FrameDimensionPage,0x7462DC86,0x6180,0x4C7E,0x8E,0x3F,0xEE,0x73,0x33,0xA7,0xA4,0x83);
|
||||||
|
/* FrameDimensionResolution missing */
|
||||||
|
DEFINE_GUID(FrameDimensionTime,0x6AEDBD6D,0x3FB5,0x418A,0x83,0xA6,0x7F,0x45,0x22,0x9D,0xC8,0x72);
|
||||||
|
|
||||||
|
/* BlurEffectGuid missing */
|
||||||
|
/* BrightnessContrastEffectGuid missing */
|
||||||
|
/* ColorBalanceEffectGuid missing */
|
||||||
|
/* ColorCurveEffectGuid missing */
|
||||||
|
/* ColorLUTEffectGuid missing */
|
||||||
|
/* ColorMatrixEffectGuid missing */
|
||||||
|
/* HueSaturationLightnessEffectGuid missing */
|
||||||
|
/* LevelsEffectGuid missing */
|
||||||
|
/* RedEyeCorrectionEffectGuid missing */
|
||||||
|
/* SharpenEffectGuid missing */
|
||||||
|
/* TintEffectGuid missing */
|
633
winsup/w32api/lib/gdiplus.def
Executable file
633
winsup/w32api/lib/gdiplus.def
Executable file
@ -0,0 +1,633 @@
|
|||||||
|
LIBRARY GDIPLUS.DLL
|
||||||
|
EXPORTS
|
||||||
|
GdipAddPathArc@28
|
||||||
|
GdipAddPathArcI@28
|
||||||
|
GdipAddPathBezier@36
|
||||||
|
GdipAddPathBezierI@36
|
||||||
|
GdipAddPathBeziers@12
|
||||||
|
GdipAddPathBeziersI@12
|
||||||
|
GdipAddPathClosedCurve@12
|
||||||
|
GdipAddPathClosedCurve2@16
|
||||||
|
GdipAddPathClosedCurve2I@16
|
||||||
|
GdipAddPathClosedCurveI@12
|
||||||
|
GdipAddPathCurve@12
|
||||||
|
GdipAddPathCurve2@16
|
||||||
|
GdipAddPathCurve2I@16
|
||||||
|
GdipAddPathCurve3@24
|
||||||
|
GdipAddPathCurve3I@24
|
||||||
|
GdipAddPathCurveI@12
|
||||||
|
GdipAddPathEllipse@20
|
||||||
|
GdipAddPathEllipseI@20
|
||||||
|
GdipAddPathLine@20
|
||||||
|
GdipAddPathLine2@12
|
||||||
|
GdipAddPathLine2I@12
|
||||||
|
GdipAddPathLineI@20
|
||||||
|
GdipAddPathPath@12
|
||||||
|
GdipAddPathPie@28
|
||||||
|
GdipAddPathPieI@28
|
||||||
|
GdipAddPathPolygon@12
|
||||||
|
GdipAddPathPolygonI@12
|
||||||
|
GdipAddPathRectangle@20
|
||||||
|
GdipAddPathRectangleI@20
|
||||||
|
GdipAddPathRectangles@12
|
||||||
|
GdipAddPathRectanglesI@12
|
||||||
|
GdipAddPathString@32
|
||||||
|
GdipAddPathStringI@32
|
||||||
|
GdipAlloc@4
|
||||||
|
GdipBeginContainer@20
|
||||||
|
GdipBeginContainer2@8
|
||||||
|
GdipBeginContainerI@20
|
||||||
|
GdipBitmapApplyEffect@24
|
||||||
|
GdipBitmapConvertFormat@24
|
||||||
|
GdipBitmapCreateApplyEffect@36
|
||||||
|
GdipBitmapGetHistogram@28
|
||||||
|
GdipBitmapGetHistogramSize@8
|
||||||
|
GdipBitmapGetPixel@16
|
||||||
|
GdipBitmapLockBits@20
|
||||||
|
GdipBitmapSetPixel@16
|
||||||
|
GdipBitmapSetResolution@12
|
||||||
|
GdipBitmapUnlockBits@8
|
||||||
|
GdipClearPathMarkers@4
|
||||||
|
GdipCloneBitmapArea@28
|
||||||
|
GdipCloneBitmapAreaI@28
|
||||||
|
GdipCloneBrush@8
|
||||||
|
GdipCloneCustomLineCap@8
|
||||||
|
GdipCloneFont@8
|
||||||
|
GdipCloneFontFamily@8
|
||||||
|
GdipCloneImage@8
|
||||||
|
GdipCloneImageAttributes@8
|
||||||
|
GdipCloneMatrix@8
|
||||||
|
GdipClonePath@8
|
||||||
|
GdipClonePen@8
|
||||||
|
GdipCloneRegion@8
|
||||||
|
GdipCloneStringFormat@8
|
||||||
|
GdipClosePathFigure@4
|
||||||
|
GdipClosePathFigures@4
|
||||||
|
GdipCombineRegionPath@12
|
||||||
|
GdipCombineRegionRect@12
|
||||||
|
GdipCombineRegionRectI@12
|
||||||
|
GdipCombineRegionRegion@12
|
||||||
|
GdipComment@12
|
||||||
|
GdipConvertToEmfPlus@24
|
||||||
|
GdipConvertToEmfPlusToFile@28
|
||||||
|
GdipConvertToEmfPlusToStream@28
|
||||||
|
GdipCreateAdjustableArrowCap@16
|
||||||
|
GdipCreateBitmapFromDirectDrawSurface@8
|
||||||
|
GdipCreateBitmapFromFile@8
|
||||||
|
GdipCreateBitmapFromFileICM@8
|
||||||
|
GdipCreateBitmapFromGdiDib@12
|
||||||
|
GdipCreateBitmapFromGraphics@16
|
||||||
|
GdipCreateBitmapFromHBITMAP@12
|
||||||
|
GdipCreateBitmapFromHICON@8
|
||||||
|
GdipCreateBitmapFromResource@12
|
||||||
|
GdipCreateBitmapFromScan0@24
|
||||||
|
GdipCreateBitmapFromStream@8
|
||||||
|
GdipCreateBitmapFromStreamICM@8
|
||||||
|
GdipCreateCachedBitmap@12
|
||||||
|
GdipCreateCustomLineCap@20
|
||||||
|
GdipCreateEffect@20
|
||||||
|
GdipCreateFont@20
|
||||||
|
GdipCreateFontFamilyFromName@12
|
||||||
|
GdipCreateFontFromDC@8
|
||||||
|
GdipCreateFontFromLogfontA@12
|
||||||
|
GdipCreateFontFromLogfontW@12
|
||||||
|
GdipCreateFromHDC@8
|
||||||
|
GdipCreateFromHDC2@12
|
||||||
|
GdipCreateFromHWND@8
|
||||||
|
GdipCreateFromHWNDICM@8
|
||||||
|
GdipCreateHBITMAPFromBitmap@12
|
||||||
|
GdipCreateHICONFromBitmap@8
|
||||||
|
GdipCreateHalftonePalette@
|
||||||
|
GdipCreateHatchBrush@16
|
||||||
|
GdipCreateImageAttributes@4
|
||||||
|
GdipCreateLineBrush@24
|
||||||
|
GdipCreateLineBrushFromRect@24
|
||||||
|
GdipCreateLineBrushFromRectI@24
|
||||||
|
GdipCreateLineBrushFromRectWithAngle@28
|
||||||
|
GdipCreateLineBrushFromRectWithAngleI@28
|
||||||
|
GdipCreateLineBrushI@24
|
||||||
|
GdipCreateMatrix@4
|
||||||
|
GdipCreateMatrix2@28
|
||||||
|
GdipCreateMatrix3@12
|
||||||
|
GdipCreateMatrix3I@12
|
||||||
|
GdipCreateMetafileFromEmf@12
|
||||||
|
GdipCreateMetafileFromFile@8
|
||||||
|
GdipCreateMetafileFromStream@8
|
||||||
|
GdipCreateMetafileFromWmf@16
|
||||||
|
GdipCreateMetafileFromWmfFile@12
|
||||||
|
GdipCreatePath@8
|
||||||
|
GdipCreatePath2@20
|
||||||
|
GdipCreatePath2I@20
|
||||||
|
GdipCreatePathGradient@16
|
||||||
|
GdipCreatePathGradientFromPath@8
|
||||||
|
GdipCreatePathGradientI@16
|
||||||
|
GdipCreatePathIter@8
|
||||||
|
GdipCreatePen1@16
|
||||||
|
GdipCreatePen2@16
|
||||||
|
GdipCreateRegion@4
|
||||||
|
GdipCreateRegionHrgn@8
|
||||||
|
GdipCreateRegionPath@8
|
||||||
|
GdipCreateRegionRect@8
|
||||||
|
GdipCreateRegionRectI@8
|
||||||
|
GdipCreateRegionRgnData@12
|
||||||
|
GdipCreateSolidFill@8
|
||||||
|
GdipCreateStreamOnFile@12
|
||||||
|
GdipCreateStringFormat@12
|
||||||
|
GdipCreateTexture@12
|
||||||
|
GdipCreateTexture2@28
|
||||||
|
GdipCreateTexture2I@28
|
||||||
|
GdipCreateTextureIA@28
|
||||||
|
GdipCreateTextureIAI@28
|
||||||
|
GdipDeleteBrush@4
|
||||||
|
GdipDeleteCachedBitmap@4
|
||||||
|
GdipDeleteCustomLineCap@4
|
||||||
|
GdipDeleteEffect@4
|
||||||
|
GdipDeleteFont@4
|
||||||
|
GdipDeleteFontFamily@4
|
||||||
|
GdipDeleteGraphics@4
|
||||||
|
GdipDeleteMatrix@4
|
||||||
|
GdipDeletePath@4
|
||||||
|
GdipDeletePathIter@4
|
||||||
|
GdipDeletePen@4
|
||||||
|
GdipDeletePrivateFontCollection@4
|
||||||
|
GdipDeleteRegion@4
|
||||||
|
GdipDeleteStringFormat@4
|
||||||
|
GdipDisposeImage@4
|
||||||
|
GdipDisposeImageAttributes@4
|
||||||
|
GdipDrawArc@32
|
||||||
|
GdipDrawArcI@32
|
||||||
|
GdipDrawBezier@40
|
||||||
|
GdipDrawBezierI@40
|
||||||
|
GdipDrawBeziers@16
|
||||||
|
GdipDrawBeziersI@16
|
||||||
|
GdipDrawCachedBitmap@16
|
||||||
|
GdipDrawClosedCurve@16
|
||||||
|
GdipDrawClosedCurve2@20
|
||||||
|
GdipDrawClosedCurve2I@20
|
||||||
|
GdipDrawClosedCurveI@16
|
||||||
|
GdipDrawCurve@16
|
||||||
|
GdipDrawCurve2@20
|
||||||
|
GdipDrawCurve2I@20
|
||||||
|
GdipDrawCurve3@28
|
||||||
|
GdipDrawCurve3I@28
|
||||||
|
GdipDrawCurveI@16
|
||||||
|
GdipDrawDriverString@32
|
||||||
|
GdipDrawEllipse@24
|
||||||
|
GdipDrawEllipseI@24
|
||||||
|
GdipDrawImage@16
|
||||||
|
GdipDrawImageFX@28
|
||||||
|
GdipDrawImageI@16
|
||||||
|
GdipDrawImagePointRect@36
|
||||||
|
GdipDrawImagePointRectI@36
|
||||||
|
GdipDrawImagePoints@16
|
||||||
|
GdipDrawImagePointsI@16
|
||||||
|
GdipDrawImagePointsRect@48
|
||||||
|
GdipDrawImagePointsRectI@48
|
||||||
|
GdipDrawImageRect@24
|
||||||
|
GdipDrawImageRectI@24
|
||||||
|
GdipDrawImageRectRect@56
|
||||||
|
GdipDrawImageRectRectI@56
|
||||||
|
GdipDrawLine@24
|
||||||
|
GdipDrawLineI@24
|
||||||
|
GdipDrawLines@16
|
||||||
|
GdipDrawLinesI@16
|
||||||
|
GdipDrawPath@12
|
||||||
|
GdipDrawPie@32
|
||||||
|
GdipDrawPieI@32
|
||||||
|
GdipDrawPolygon@16
|
||||||
|
GdipDrawPolygonI@16
|
||||||
|
GdipDrawRectangle@24
|
||||||
|
GdipDrawRectangleI@24
|
||||||
|
GdipDrawRectangles@16
|
||||||
|
GdipDrawRectanglesI@16
|
||||||
|
GdipDrawString@28
|
||||||
|
GdipEmfToWmfBits@20
|
||||||
|
GdipEndContainer@8
|
||||||
|
GdipEnumerateMetafileDestPoint@24
|
||||||
|
GdipEnumerateMetafileDestPointI@24
|
||||||
|
GdipEnumerateMetafileDestPoints@28
|
||||||
|
GdipEnumerateMetafileDestPointsI@28
|
||||||
|
GdipEnumerateMetafileDestRect@24
|
||||||
|
GdipEnumerateMetafileDestRectI@24
|
||||||
|
GdipEnumerateMetafileSrcRectDestPoint@32
|
||||||
|
GdipEnumerateMetafileSrcRectDestPointI@32
|
||||||
|
GdipEnumerateMetafileSrcRectDestPoints@36
|
||||||
|
GdipEnumerateMetafileSrcRectDestPointsI@36
|
||||||
|
GdipEnumerateMetafileSrcRectDestRect@32
|
||||||
|
GdipEnumerateMetafileSrcRectDestRectI@32
|
||||||
|
GdipFillClosedCurve@16
|
||||||
|
GdipFillClosedCurve2@24
|
||||||
|
GdipFillClosedCurve2I@24
|
||||||
|
GdipFillClosedCurveI@16
|
||||||
|
GdipFillEllipse@24
|
||||||
|
GdipFillEllipseI@24
|
||||||
|
GdipFillPath@12
|
||||||
|
GdipFillPie@32
|
||||||
|
GdipFillPieI@32
|
||||||
|
GdipFillPolygon@20
|
||||||
|
GdipFillPolygon2@16
|
||||||
|
GdipFillPolygon2I@16
|
||||||
|
GdipFillPolygonI@20
|
||||||
|
GdipFillRectangle@24
|
||||||
|
GdipFillRectangleI@24
|
||||||
|
GdipFillRectangles@16
|
||||||
|
GdipFillRectanglesI@16
|
||||||
|
GdipFillRegion@12
|
||||||
|
GdipFindFirstImageItem@8
|
||||||
|
GdipFindNextImageItem@8
|
||||||
|
GdipFlattenPath@12
|
||||||
|
GdipFlush@8
|
||||||
|
GdipFontCollectionEnumerable@12
|
||||||
|
GdipFontCollectionEnumerate@20
|
||||||
|
GdipFree@4
|
||||||
|
GdipGetAdjustableArrowCapFillState@8
|
||||||
|
GdipGetAdjustableArrowCapHeight@8
|
||||||
|
GdipGetAdjustableArrowCapMiddleInset@8
|
||||||
|
GdipGetAdjustableArrowCapWidth@8
|
||||||
|
GdipGetAllPropertyItems@16
|
||||||
|
GdipGetBrushType@8
|
||||||
|
GdipGetCellAscent@12
|
||||||
|
GdipGetCellDescent@12
|
||||||
|
GdipGetClip@8
|
||||||
|
GdipGetClipBounds@8
|
||||||
|
GdipGetClipBoundsI@8
|
||||||
|
GdipGetCompositingMode@8
|
||||||
|
GdipGetCompositingQuality@8
|
||||||
|
GdipGetCustomLineCapBaseCap@8
|
||||||
|
GdipGetCustomLineCapBaseInset@8
|
||||||
|
GdipGetCustomLineCapStrokeCaps@12
|
||||||
|
GdipGetCustomLineCapStrokeJoin@8
|
||||||
|
GdipGetCustomLineCapType@8
|
||||||
|
GdipGetCustomLineCapWidthScale@8
|
||||||
|
GdipGetDC@8
|
||||||
|
GdipGetDpiX@8
|
||||||
|
GdipGetDpiY@8
|
||||||
|
GdipGetEffectParameterSize@8
|
||||||
|
GdipGetEffectParameters@12
|
||||||
|
GdipGetEmHeight@12
|
||||||
|
GdipGetEncoderParameterList@16
|
||||||
|
GdipGetEncoderParameterListSize@12
|
||||||
|
GdipGetFamily@8
|
||||||
|
GdipGetFamilyName@12
|
||||||
|
GdipGetFontCollectionFamilyCount@8
|
||||||
|
GdipGetFontCollectionFamilyList@16
|
||||||
|
GdipGetFontHeight@12
|
||||||
|
GdipGetFontHeightGivenDPI@12
|
||||||
|
GdipGetFontSize@8
|
||||||
|
GdipGetFontStyle@8
|
||||||
|
GdipGetFontUnit@8
|
||||||
|
GdipGetGenericFontFamilyMonospace@4
|
||||||
|
GdipGetGenericFontFamilySansSerif@4
|
||||||
|
GdipGetGenericFontFamilySerif@4
|
||||||
|
GdipGetHatchBackgroundColor@8
|
||||||
|
GdipGetHatchForegroundColor@8
|
||||||
|
GdipGetHatchStyle@8
|
||||||
|
GdipGetHemfFromMetafile@8
|
||||||
|
GdipGetImageAttributesAdjustedPalette@12
|
||||||
|
GdipGetImageBounds@12
|
||||||
|
GdipGetImageDecoders@12
|
||||||
|
GdipGetImageDecodersSize@8
|
||||||
|
GdipGetImageDimension@12
|
||||||
|
GdipGetImageEncoders@12
|
||||||
|
GdipGetImageEncodersSize@8
|
||||||
|
GdipGetImageFlags@8
|
||||||
|
GdipGetImageGraphicsContext@8
|
||||||
|
GdipGetImageHeight@8
|
||||||
|
GdipGetImageHorizontalResolution@8
|
||||||
|
GdipGetImageItemData@8
|
||||||
|
GdipGetImagePalette@12
|
||||||
|
GdipGetImagePaletteSize@8
|
||||||
|
GdipGetImagePixelFormat@8
|
||||||
|
GdipGetImageRawFormat@8
|
||||||
|
GdipGetImageThumbnail@24
|
||||||
|
GdipGetImageType@8
|
||||||
|
GdipGetImageVerticalResolution@8
|
||||||
|
GdipGetImageWidth@8
|
||||||
|
GdipGetInterpolationMode@8
|
||||||
|
GdipGetLineBlend@16
|
||||||
|
GdipGetLineBlendCount@8
|
||||||
|
GdipGetLineColors@8
|
||||||
|
GdipGetLineGammaCorrection@8
|
||||||
|
GdipGetLinePresetBlend@16
|
||||||
|
GdipGetLinePresetBlendCount@8
|
||||||
|
GdipGetLineRect@8
|
||||||
|
GdipGetLineRectI@8
|
||||||
|
GdipGetLineSpacing@12
|
||||||
|
GdipGetLineTransform@8
|
||||||
|
GdipGetLineWrapMode@8
|
||||||
|
GdipGetLogFontA@12
|
||||||
|
GdipGetLogFontW@12
|
||||||
|
GdipGetMatrixElements@8
|
||||||
|
GdipGetMetafileDownLevelRasterizationLimit@8
|
||||||
|
GdipGetMetafileHeaderFromEmf@8
|
||||||
|
GdipGetMetafileHeaderFromFile@8
|
||||||
|
GdipGetMetafileHeaderFromMetafile@8
|
||||||
|
GdipGetMetafileHeaderFromStream@8
|
||||||
|
GdipGetNearestColor@8
|
||||||
|
GdipGetPageScale@8
|
||||||
|
GdipGetPageUnit@8
|
||||||
|
GdipGetPathData@8
|
||||||
|
GdipGetPathFillMode@8
|
||||||
|
GdipGetPathGradientBlend@16
|
||||||
|
GdipGetPathGradientBlendCount@8
|
||||||
|
GdipGetPathGradientCenterColor@8
|
||||||
|
GdipGetPathGradientCenterPoint@8
|
||||||
|
GdipGetPathGradientCenterPointI@8
|
||||||
|
GdipGetPathGradientFocusScales@12
|
||||||
|
GdipGetPathGradientGammaCorrection@8
|
||||||
|
GdipGetPathGradientPath@8
|
||||||
|
GdipGetPathGradientPointCount@8
|
||||||
|
GdipGetPathGradientPresetBlend@16
|
||||||
|
GdipGetPathGradientPresetBlendCount@8
|
||||||
|
GdipGetPathGradientRect@8
|
||||||
|
GdipGetPathGradientRectI@8
|
||||||
|
GdipGetPathGradientSurroundColorCount@8
|
||||||
|
GdipGetPathGradientSurroundColorsWithCount@12
|
||||||
|
GdipGetPathGradientTransform@8
|
||||||
|
GdipGetPathGradientWrapMode@8
|
||||||
|
GdipGetPathLastPoint@8
|
||||||
|
GdipGetPathPoints@12
|
||||||
|
GdipGetPathPointsI@12
|
||||||
|
GdipGetPathTypes@12
|
||||||
|
GdipGetPathWorldBounds@16
|
||||||
|
GdipGetPathWorldBoundsI@16
|
||||||
|
GdipGetPenBrushFill@8
|
||||||
|
GdipGetPenColor@8
|
||||||
|
GdipGetPenCompoundArray@12
|
||||||
|
GdipGetPenCompoundCount@8
|
||||||
|
GdipGetPenCustomEndCap@8
|
||||||
|
GdipGetPenCustomStartCap@8
|
||||||
|
GdipGetPenDashArray@12
|
||||||
|
GdipGetPenDashCap197819@8
|
||||||
|
GdipGetPenDashCount@8
|
||||||
|
GdipGetPenDashOffset@8
|
||||||
|
GdipGetPenDashStyle@8
|
||||||
|
GdipGetPenEndCap@8
|
||||||
|
GdipGetPenFillType@8
|
||||||
|
GdipGetPenLineJoin@8
|
||||||
|
GdipGetPenMiterLimit@8
|
||||||
|
GdipGetPenMode@8
|
||||||
|
GdipGetPenStartCap@8
|
||||||
|
GdipGetPenTransform@8
|
||||||
|
GdipGetPenUnit@8
|
||||||
|
GdipGetPenWidth@8
|
||||||
|
GdipGetPixelOffsetMode@8
|
||||||
|
GdipGetPointCount@8
|
||||||
|
GdipGetPropertyCount@8
|
||||||
|
GdipGetPropertyIdList@12
|
||||||
|
GdipGetPropertyItem@16
|
||||||
|
GdipGetPropertyItemSize@12
|
||||||
|
GdipGetPropertySize@12
|
||||||
|
GdipGetRegionBounds@12
|
||||||
|
GdipGetRegionBoundsI@12
|
||||||
|
GdipGetRegionData@16
|
||||||
|
GdipGetRegionDataSize@8
|
||||||
|
GdipGetRegionHRgn@12
|
||||||
|
GdipGetRegionScans@16
|
||||||
|
GdipGetRegionScansCount@12
|
||||||
|
GdipGetRegionScansI@16
|
||||||
|
GdipGetRenderingOrigin@12
|
||||||
|
GdipGetSmoothingMode@8
|
||||||
|
GdipGetSolidFillColor@8
|
||||||
|
GdipGetStringFormatAlign@8
|
||||||
|
GdipGetStringFormatDigitSubstitution@12
|
||||||
|
GdipGetStringFormatFlags@8
|
||||||
|
GdipGetStringFormatHotkeyPrefix@8
|
||||||
|
GdipGetStringFormatLineAlign@8
|
||||||
|
GdipGetStringFormatMeasurableCharacterRangeCount@8
|
||||||
|
GdipGetStringFormatTabStopCount@8
|
||||||
|
GdipGetStringFormatTabStops@16
|
||||||
|
GdipGetStringFormatTrimming@8
|
||||||
|
GdipGetTextContrast@8
|
||||||
|
GdipGetTextRenderingHint@8
|
||||||
|
GdipGetTextureImage@8
|
||||||
|
GdipGetTextureTransform@8
|
||||||
|
GdipGetTextureWrapMode@8
|
||||||
|
GdipGetVisibleClipBounds@8
|
||||||
|
GdipGetVisibleClipBoundsI@8
|
||||||
|
GdipGetWorldTransform@8
|
||||||
|
GdipGraphicsClear@8
|
||||||
|
GdipGraphicsSetAbort@8
|
||||||
|
GdipImageForceValidation@4
|
||||||
|
GdipImageGetFrameCount@12
|
||||||
|
GdipImageGetFrameDimensionsCount@8
|
||||||
|
GdipImageGetFrameDimensionsList@12
|
||||||
|
GdipImageRotateFlip@8
|
||||||
|
GdipImageSelectActiveFrame@12
|
||||||
|
GdipImageSetAbort@8
|
||||||
|
GdipInitializePalette@20
|
||||||
|
GdipInvertMatrix@4
|
||||||
|
GdipIsClipEmpty@8
|
||||||
|
GdipIsEmptyRegion@12
|
||||||
|
GdipIsEqualRegion@16
|
||||||
|
GdipIsInfiniteRegion@12
|
||||||
|
GdipIsMatrixEqual@12
|
||||||
|
GdipIsMatrixIdentity@8
|
||||||
|
GdipIsMatrixInvertible@8
|
||||||
|
GdipIsOutlineVisiblePathPoint@24
|
||||||
|
GdipIsOutlineVisiblePathPointI@24
|
||||||
|
GdipIsStyleAvailable@12
|
||||||
|
GdipIsVisibleClipEmpty@8
|
||||||
|
GdipIsVisiblePathPoint@20
|
||||||
|
GdipIsVisiblePathPointI@20
|
||||||
|
GdipIsVisiblePoint@16
|
||||||
|
GdipIsVisiblePointI@16
|
||||||
|
GdipIsVisibleRect@24
|
||||||
|
GdipIsVisibleRectI@24
|
||||||
|
GdipIsVisibleRegionPoint@20
|
||||||
|
GdipIsVisibleRegionPointI@20
|
||||||
|
GdipIsVisibleRegionRect@28
|
||||||
|
GdipIsVisibleRegionRectI@28
|
||||||
|
GdipLoadImageFromFile@8
|
||||||
|
GdipLoadImageFromFileICM@8
|
||||||
|
GdipLoadImageFromStream@8
|
||||||
|
GdipLoadImageFromStreamICM@8
|
||||||
|
GdipMeasureCharacterRanges@32
|
||||||
|
GdipMeasureDriverString@32
|
||||||
|
GdipMeasureString@36
|
||||||
|
GdipMultiplyLineTransform@12
|
||||||
|
GdipMultiplyMatrix@12
|
||||||
|
GdipMultiplyPathGradientTransform@12
|
||||||
|
GdipMultiplyPenTransform@12
|
||||||
|
GdipMultiplyTextureTransform@12
|
||||||
|
GdipMultiplyWorldTransform@12
|
||||||
|
GdipNewInstalledFontCollection@4
|
||||||
|
GdipNewPrivateFontCollection@4
|
||||||
|
GdipPathIterCopyData@24
|
||||||
|
GdipPathIterEnumerate@20
|
||||||
|
GdipPathIterGetCount@8
|
||||||
|
GdipPathIterGetSubpathCount@8
|
||||||
|
GdipPathIterHasCurve@8
|
||||||
|
GdipPathIterIsValid@8
|
||||||
|
GdipPathIterNextMarker@16
|
||||||
|
GdipPathIterNextMarkerPath@12
|
||||||
|
GdipPathIterNextPathType@20
|
||||||
|
GdipPathIterNextSubpath@20
|
||||||
|
GdipPathIterNextSubpathPath@16
|
||||||
|
GdipPathIterRewind@4
|
||||||
|
GdipPlayMetafileRecord@20
|
||||||
|
GdipPrivateAddFontFile@8
|
||||||
|
GdipPrivateAddMemoryFont@12
|
||||||
|
GdipRecordMetafile@24
|
||||||
|
GdipRecordMetafileFileName@28
|
||||||
|
GdipRecordMetafileFileNameI@28
|
||||||
|
GdipRecordMetafileI@24
|
||||||
|
GdipRecordMetafileStream@28
|
||||||
|
GdipRecordMetafileStreamI@28
|
||||||
|
GdipReleaseDC@8
|
||||||
|
GdipRemovePropertyItem@8
|
||||||
|
GdipResetClip@4
|
||||||
|
GdipResetImageAttributes@8
|
||||||
|
GdipResetLineTransform@4
|
||||||
|
GdipResetPageTransform@4
|
||||||
|
GdipResetPath@4
|
||||||
|
GdipResetPathGradientTransform@4
|
||||||
|
GdipResetPenTransform@4
|
||||||
|
GdipResetTextureTransform@4
|
||||||
|
GdipResetWorldTransform@4
|
||||||
|
GdipRestoreGraphics@8
|
||||||
|
GdipReversePath@4
|
||||||
|
GdipRotateLineTransform@12
|
||||||
|
GdipRotateMatrix@12
|
||||||
|
GdipRotatePathGradientTransform@12
|
||||||
|
GdipRotatePenTransform@12
|
||||||
|
GdipRotateTextureTransform@12
|
||||||
|
GdipRotateWorldTransform@12
|
||||||
|
GdipSaveAdd@8
|
||||||
|
GdipSaveAddImage@12
|
||||||
|
GdipSaveGraphics@8
|
||||||
|
GdipSaveImageToFile@16
|
||||||
|
GdipSaveImageToStream@16
|
||||||
|
GdipScaleLineTransform@16
|
||||||
|
GdipScaleMatrix@16
|
||||||
|
GdipScalePathGradientTransform@16
|
||||||
|
GdipScalePenTransform@16
|
||||||
|
GdipScaleTextureTransform@16
|
||||||
|
GdipScaleWorldTransform@16
|
||||||
|
GdipSetAdjustableArrowCapFillState@8
|
||||||
|
GdipSetAdjustableArrowCapHeight@8
|
||||||
|
GdipSetAdjustableArrowCapMiddleInset@8
|
||||||
|
GdipSetAdjustableArrowCapWidth@8
|
||||||
|
GdipSetClipGraphics@12
|
||||||
|
GdipSetClipHrgn@12
|
||||||
|
GdipSetClipPath@12
|
||||||
|
GdipSetClipRect@24
|
||||||
|
GdipSetClipRectI@24
|
||||||
|
GdipSetClipRegion@12
|
||||||
|
GdipSetCompositingMode@8
|
||||||
|
GdipSetCompositingQuality@8
|
||||||
|
GdipSetCustomLineCapBaseCap@8
|
||||||
|
GdipSetCustomLineCapBaseInset@8
|
||||||
|
GdipSetCustomLineCapStrokeCaps@12
|
||||||
|
GdipSetCustomLineCapStrokeJoin@8
|
||||||
|
GdipSetCustomLineCapWidthScale@8
|
||||||
|
GdipSetEffectParameters@12
|
||||||
|
GdipSetEmpty@4
|
||||||
|
GdipSetImageAttributesCachedBackground@8
|
||||||
|
GdipSetImageAttributesColorKeys@20
|
||||||
|
GdipSetImageAttributesColorMatrix@24
|
||||||
|
GdipSetImageAttributesGamma@16
|
||||||
|
GdipSetImageAttributesICMMode@8
|
||||||
|
GdipSetImageAttributesNoOp@12
|
||||||
|
GdipSetImageAttributesOutputChannel@16
|
||||||
|
GdipSetImageAttributesOutputChannelColorProfile@16
|
||||||
|
GdipSetImageAttributesRemapTable@20
|
||||||
|
GdipSetImageAttributesThreshold@16
|
||||||
|
GdipSetImageAttributesToIdentity@8
|
||||||
|
GdipSetImageAttributesWrapMode@16
|
||||||
|
GdipSetImagePalette@8
|
||||||
|
GdipSetInfinite@4
|
||||||
|
GdipSetInterpolationMode@8
|
||||||
|
GdipSetLineBlend@16
|
||||||
|
GdipSetLineColors@12
|
||||||
|
GdipSetLineGammaCorrection@8
|
||||||
|
GdipSetLineLinearBlend@12
|
||||||
|
GdipSetLinePresetBlend@16
|
||||||
|
GdipSetLineSigmaBlend@12
|
||||||
|
GdipSetLineTransform@8
|
||||||
|
GdipSetLineWrapMode@8
|
||||||
|
GdipSetMatrixElements@28
|
||||||
|
GdipSetMetafileDownLevelRasterizationLimit@8
|
||||||
|
GdipSetPageScale@8
|
||||||
|
GdipSetPageUnit@8
|
||||||
|
GdipSetPathFillMode@8
|
||||||
|
GdipSetPathGradientBlend@16
|
||||||
|
GdipSetPathGradientCenterColor@8
|
||||||
|
GdipSetPathGradientCenterPoint@8
|
||||||
|
GdipSetPathGradientCenterPointI@8
|
||||||
|
GdipSetPathGradientFocusScales@12
|
||||||
|
GdipSetPathGradientGammaCorrection@8
|
||||||
|
GdipSetPathGradientLinearBlend@12
|
||||||
|
GdipSetPathGradientPath@8
|
||||||
|
GdipSetPathGradientPresetBlend@16
|
||||||
|
GdipSetPathGradientSigmaBlend@12
|
||||||
|
GdipSetPathGradientSurroundColorsWithCount@12
|
||||||
|
GdipSetPathGradientTransform@8
|
||||||
|
GdipSetPathGradientWrapMode@8
|
||||||
|
GdipSetPathMarker@4
|
||||||
|
GdipSetPenBrushFill@8
|
||||||
|
GdipSetPenColor@8
|
||||||
|
GdipSetPenCompoundArray@12
|
||||||
|
GdipSetPenCustomEndCap@8
|
||||||
|
GdipSetPenCustomStartCap@8
|
||||||
|
GdipSetPenDashArray@12
|
||||||
|
GdipSetPenDashCap197819@8
|
||||||
|
GdipSetPenDashOffset@8
|
||||||
|
GdipSetPenDashStyle@8
|
||||||
|
GdipSetPenEndCap@8
|
||||||
|
GdipSetPenLineCap197819@16
|
||||||
|
GdipSetPenLineJoin@8
|
||||||
|
GdipSetPenMiterLimit@8
|
||||||
|
GdipSetPenMode@8
|
||||||
|
GdipSetPenStartCap@8
|
||||||
|
GdipSetPenTransform@8
|
||||||
|
GdipSetPenUnit@8
|
||||||
|
GdipSetPenWidth@8
|
||||||
|
GdipSetPixelOffsetMode@8
|
||||||
|
GdipSetPropertyItem@8
|
||||||
|
GdipSetRenderingOrigin@12
|
||||||
|
GdipSetSmoothingMode@8
|
||||||
|
GdipSetSolidFillColor@8
|
||||||
|
GdipSetStringFormatAlign@8
|
||||||
|
GdipSetStringFormatDigitSubstitution@12
|
||||||
|
GdipSetStringFormatFlags@8
|
||||||
|
GdipSetStringFormatHotkeyPrefix@8
|
||||||
|
GdipSetStringFormatLineAlign@8
|
||||||
|
GdipSetStringFormatMeasurableCharacterRanges@12
|
||||||
|
GdipSetStringFormatTabStops@16
|
||||||
|
GdipSetStringFormatTrimming@8
|
||||||
|
GdipSetTextContrast@8
|
||||||
|
GdipSetTextRenderingHint@8
|
||||||
|
GdipSetTextureTransform@8
|
||||||
|
GdipSetTextureWrapMode@8
|
||||||
|
GdipSetWorldTransform@8
|
||||||
|
GdipShearMatrix@16
|
||||||
|
GdipStartPathFigure@4
|
||||||
|
GdipStringFormatGetGenericDefault@4
|
||||||
|
GdipStringFormatGetGenericTypographic@4
|
||||||
|
GdipTestControl@8
|
||||||
|
GdipTransformMatrixPoints@12
|
||||||
|
GdipTransformMatrixPointsI@12
|
||||||
|
GdipTransformPath@8
|
||||||
|
GdipTransformPoints@20
|
||||||
|
GdipTransformPointsI@20
|
||||||
|
GdipTransformRegion@8
|
||||||
|
GdipTranslateClip@12
|
||||||
|
GdipTranslateClipI@12
|
||||||
|
GdipTranslateLineTransform@16
|
||||||
|
GdipTranslateMatrix@16
|
||||||
|
GdipTranslatePathGradientTransform@16
|
||||||
|
GdipTranslatePenTransform@16
|
||||||
|
GdipTranslateRegion@12
|
||||||
|
GdipTranslateRegionI@12
|
||||||
|
GdipTranslateTextureTransform@16
|
||||||
|
GdipTranslateWorldTransform@16
|
||||||
|
GdipVectorTransformMatrixPoints@12
|
||||||
|
GdipVectorTransformMatrixPointsI@12
|
||||||
|
GdipWarpPath@40
|
||||||
|
GdipWidenPath@16
|
||||||
|
GdipWindingModeOutline@12
|
||||||
|
GdiplusNotificationHook@4
|
||||||
|
GdiplusNotificationUnhook@4
|
||||||
|
GdiplusShutdown@4
|
||||||
|
GdiplusStartup@12
|
@ -28,6 +28,7 @@
|
|||||||
#include <mapi.h>
|
#include <mapi.h>
|
||||||
|
|
||||||
#include <dbt.h>
|
#include <dbt.h>
|
||||||
|
#include <gdiplus.h>
|
||||||
#include <httpext.h>
|
#include <httpext.h>
|
||||||
#include <icm.h>
|
#include <icm.h>
|
||||||
#include <imagehlp.h>
|
#include <imagehlp.h>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user