2472 if (recordType >= 1 && recordType <= 0x7a)
2489 FIXME(
"not implemented for record type %x\n", recordType);
2526 record->iType = recordType;
2532 ERR(
"PlayEnhMetaFileRecord failed\n");
2609 rects = temp_rects = heap_alloc_zero(
sizeof(
GpRectF) *
record->Count);
2614 rects[
i].
X = int_rects[
i].
X;
2615 rects[
i].
Y = int_rects[
i].
Y;
2784 REAL scale_x, scale_y;
2788 cont = heap_alloc_zero(
sizeof(*cont));
2820 scaled_srcrect.
X = scale_x *
record->SrcRect.X;
2821 scaled_srcrect.
Y = scale_y *
record->SrcRect.Y;
2822 scaled_srcrect.
Width = scale_x *
record->SrcRect.Width;
2823 scaled_srcrect.
Height = scale_y *
record->SrcRect.Height;
2842 cont = heap_alloc_zero(
sizeof(*cont));
3017 if (draw->
count != 3)
3020 if ((
flags >> 13) & 1)
3021 FIXME(
"image effects are not supported.\n");
3023 if ((
flags >> 11) & 1)
3033 if ((
flags >> 11) & 1)
3037 for (
i = 1;
i < 3;
i++)
3043 else if ((
flags >> 14) & 1)
3045 for (
i = 0;
i < 3;
i++)
3084 brush = real_metafile->
objtable[
fill->data.BrushId].u.brush;
3104 if (
fill->Count == 0)
3109 else if (
flags & 0x4000)
3132 brush = real_metafile->
objtable[
fill->BrushId].u.brush;
3135 if (
flags & (0x800 | 0x4000))
3142 for (
i = 1;
i <
fill->Count;
i++)
3150 for (
i = 0;
i <
fill->Count;
i++)
3197 brush = real_metafile->
objtable[
fill->BrushId].u.brush;
3202 fill->RectData.rect.Y,
fill->RectData.rect.Width,
fill->RectData.rect.Height);
3205 fill->RectData.rectF.Y,
fill->RectData.rectF.Width,
fill->RectData.rectF.Height);
3236 brush = real_metafile->
objtable[
fill->BrushId].u.brush;
3241 fill->RectData.rect.Y,
fill->RectData.rect.Width,
fill->RectData.rect.Height,
3242 fill->StartAngle,
fill->SweepAngle);
3245 fill->RectData.rectF.Y,
fill->RectData.rectF.Width,
fill->RectData.rectF.Height,
3246 fill->StartAngle,
fill->SweepAngle);
3370 FIXME(
"Not implemented for record type %x\n", recordType);
GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode mode)
GpStatus WINGDIPAPI GdipSetMatrixElements(GpMatrix *matrix, REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy)
GLuint GLdouble GLdouble GLint GLint order
GpStatus WINGDIPAPI GdipDrawEllipse(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, REAL width, REAL height)
union EmfPlusDrawImage::@408 RectData
GpStatus WINGDIPAPI GdipFillEllipse(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y, REAL width, REAL height)
GpStatus WINGDIPAPI GdipFillPath(GpGraphics *graphics, GpBrush *brush, GpPath *path)
GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image, GDIPCONST GpPointF *points, INT count, REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight, GpUnit srcUnit, GDIPCONST GpImageAttributes *imageAttributes, DrawImageAbort callback, VOID *callbackData)
GpStatus WINGDIPAPI GdipDrawPath(GpGraphics *graphics, GpPen *pen, GpPath *path)
GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics *graphics, GpPen *pen, GDIPCONST GpRectF *rects, INT count)
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
void WINGDIPAPI GdipFree(void *ptr)
GpStatus WINGDIPAPI GdipFillClosedCurve2(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPointF *points, INT count, REAL tension, GpFillMode fill)
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
union EmfPlusDrawImagePoints::@409 PointData
union EmfPlusDrawEllipse::@411 RectData
GpStatus WINGDIPAPI GdipFillEllipseI(GpGraphics *graphics, GpBrush *brush, INT x, INT y, INT width, INT height)
static const unsigned char metafile[]
GpStatus WINGDIPAPI GdipCloneRegion(GpRegion *region, GpRegion **clone)
#define EMR_SETVIEWPORTORGEX
__WINE_SERVER_LIST_INLINE struct list * list_head(const struct list *list)
int WINAPI ExtSelectClipRgn(_In_ HDC, _In_opt_ HRGN, _In_ int)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics *graphics, SmoothingMode mode)
GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics *graphics, CompositingMode mode)
png_const_structrp png_const_inforp int * unit
BOOL WINAPI PlayEnhMetaFileRecord(_In_ HDC hdc, _In_reads_(cht) LPHANDLETABLE pht, _In_ CONST ENHMETARECORD *pmr, _In_ UINT cht)
EmfPlusPointR7 pointsR[3]
GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush *brush)
#define EMR_MODIFYWORLDTRANSFORM
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
GpStatus WINGDIPAPI GdipEndContainer(GpGraphics *graphics, GraphicsContainer state)
#define EmfPlusObjectTableSize
GpStatus WINGDIPAPI GdipFillPieI(GpGraphics *graphics, GpBrush *brush, INT x, INT y, INT width, INT height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics *graphics, InterpolationMode mode)
_STLP_MOVE_TO_STD_NAMESPACE void fill(_ForwardIter __first, _ForwardIter __last, const _Tp &__val)
GpStatus WINGDIPAPI GdipBeginContainer2(GpGraphics *graphics, GraphicsContainer *state)
GpStatus WINGDIPAPI GdipRestoreGraphics(GpGraphics *graphics, GraphicsState state)
#define EMR_SCALEWINDOWEXTEX
GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix *matrix, REAL angle, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipSetTextRenderingHint(GpGraphics *graphics, TextRenderingHint hint)
GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics *graphics, CompositingQuality quality)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei const GLfloat * points
GpStatus WINGDIPAPI GdipDrawPieI(GpGraphics *graphics, GpPen *pen, INT x, INT y, INT width, INT height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix *matrix, REAL scaleX, REAL scaleY, GpMatrixOrder order)
#define memcpy(s1, s2, n)
GpStatus WINGDIPAPI GdipDrawArcI(GpGraphics *graphics, GpPen *pen, INT x, INT y, INT width, INT height, REAL startAngle, REAL sweepAngle)
#define EMR_SCALEVIEWPORTEXTEX
#define EMR_SETWINDOWEXTEX
GpStatus WINGDIPAPI GdipTranslateMatrix(GpMatrix *matrix, REAL offsetX, REAL offsetY, GpMatrixOrder order)
HRGN WINAPI ExtCreateRegion(_In_opt_ const XFORM *lpx, _In_ DWORD nCount, _In_reads_bytes_(nCount) const RGNDATA *lpData)
_CRTIMP int __cdecl stat(const char *_Filename, struct stat *_Stat)
GpStatus WINGDIPAPI GdipDrawEllipseI(GpGraphics *graphics, GpPen *pen, INT x, INT y, INT width, INT height)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GpStatus WINGDIPAPI GdipGraphicsClear(GpGraphics *graphics, ARGB color)
GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath *path, GpRegion **region)
GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics *graphics, GraphicsState *state)
#define FIELD_OFFSET(t, f)
GpStatus WINGDIPAPI GdipDrawArc(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, REAL width, REAL height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpRectF *rects, INT count)
union EmfPlusDrawArc::@410 RectData
GpStatus WINGDIPAPI GdipDrawPie(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, REAL width, REAL height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion *region1, GpRegion *region2, CombineMode mode)
#define EMR_SETWORLDTRANSFORM
GLuint GLenum GLenum transform
#define EMR_SETVIEWPORTEXTEX
void *WINGDIPAPI GdipAlloc(SIZE_T size)
REAL units_to_pixels(REAL units, GpUnit unit, REAL dpi)
GLuint GLuint GLsizei GLenum type
#define EMR_SETWINDOWORGEX
union EmfPlusDrawPie::@412 RectData
GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB color, GpSolidFill **sf)
GpStatus WINGDIPAPI GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y, REAL width, REAL height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion *region)
#define EMR_EXTSELECTCLIPRGN
union EmfPlusDrawRects::@413 RectData
GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF *rect, GpRegion **region)
static BOOL heap_free(void *mem)
GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix *matrix, GDIPCONST GpMatrix *matrix2, GpMatrixOrder order)