ReactOS 0.4.15-dev-8102-g108db8f
enhmetafiledrv.h
Go to the documentation of this file.
1/*
2 * Enhanced MetaFile driver definitions
3 *
4 * Copyright 1999 Huw D M Davies
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#ifndef __WINE_ENHMETAFILEDRV_H
22#define __WINE_ENHMETAFILEDRV_H
23
24#include <stdarg.h>
25
26#include "windef.h"
27#include "winbase.h"
28#include "wingdi.h"
29#include "gdi_private.h"
30
31/* Enhanced Metafile driver physical DC */
32
33typedef struct
34{
36 struct gdi_physdev pathdev;
37 ENHMETAHEADER *emh; /* Pointer to enhanced metafile header */
38 UINT handles_size, cur_handles;
40 HANDLE hFile; /* Handle for disk based MetaFile */
41 HBRUSH dc_brush;
42 HPEN dc_pen;
43 HDC ref_dc; /* Reference device */
44 HDC screen_dc; /* Screen DC if no reference device specified */
45 INT restoring; /* RestoreDC counter */
48
50{
52}
53
57
58#define HANDLE_LIST_INC 20
59
60/* Metafile driver functions */
64 INT bottom, INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN;
66 INT bottom, INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN;
68extern BOOL EMFDRV_BitBlt( PHYSDEV devDst, INT xDst, INT yDst, INT width, INT height,
69 PHYSDEV devSrc, INT xSrc, INT ySrc, DWORD rop ) DECLSPEC_HIDDEN;
71 INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN;
79extern BOOL EMFDRV_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, const RECT *lprect, LPCWSTR str,
80 UINT count, const INT *lpDx ) DECLSPEC_HIDDEN;
87extern BOOL EMFDRV_GradientFill( PHYSDEV dev, TRIVERTEX *vert_array, ULONG nvert,
88 void *grad_array, ULONG ngrad, ULONG mode ) DECLSPEC_HIDDEN;
100 INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN;
104extern BOOL EMFDRV_PolyPolygon( PHYSDEV dev, const POINT* pt, const INT* counts, UINT polys) DECLSPEC_HIDDEN;
105extern BOOL EMFDRV_PolyPolyline( PHYSDEV dev, const POINT* pt, const DWORD* counts, DWORD polys) DECLSPEC_HIDDEN;
112 INT ell_width, INT ell_height ) DECLSPEC_HIDDEN;
114extern BOOL EMFDRV_ScaleViewportExtEx( PHYSDEV dev, INT xNum, INT xDenom,
115 INT yNum, INT yDenom, SIZE *size ) DECLSPEC_HIDDEN;
116extern BOOL EMFDRV_ScaleWindowExtEx( PHYSDEV dev, INT xNum, INT xDenom,
117 INT yNum, INT yDenom, SIZE *size ) DECLSPEC_HIDDEN;
119extern HBRUSH EMFDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush, const struct brush_pattern *pattern ) DECLSPEC_HIDDEN;
122extern HPEN EMFDRV_SelectPen( PHYSDEV dev, HPEN handle, const struct brush_pattern *pattern ) DECLSPEC_HIDDEN;
123extern HPALETTE EMFDRV_SelectPalette( PHYSDEV dev, HPALETTE hPal, BOOL force ) DECLSPEC_HIDDEN;
129extern INT EMFDRV_SetDIBitsToDevice( PHYSDEV dev, INT xDest, INT yDest, DWORD cx, DWORD cy, INT xSrc,
130 INT ySrc, UINT startscan, UINT lines, LPCVOID bits,
131 BITMAPINFO *info, UINT coloruse ) DECLSPEC_HIDDEN;
141extern BOOL EMFDRV_SetTextJustification( PHYSDEV dev, INT nBreakExtra, INT nBreakCount ) DECLSPEC_HIDDEN;
147extern BOOL EMFDRV_StretchBlt( PHYSDEV devDst, struct bitblt_coords *dst,
149extern INT EMFDRV_StretchDIBits( PHYSDEV dev, INT xDst, INT yDst, INT widthDst, INT heightDst,
150 INT xSrc, INT ySrc, INT widthSrc, INT heightSrc,
151 const void *bits, BITMAPINFO *info, UINT wUsage, DWORD dwRop ) DECLSPEC_HIDDEN;
155
156
157#endif /* __WINE_METAFILEDRV_H */
static HRGN hrgn
static HBRUSH hbrush
static unsigned char bytes[4]
Definition: adnsresfilter.c:74
#define DECLSPEC_HIDDEN
Definition: precomp.h:8
#define pt(x, y)
Definition: drawing.c:79
int align(int length, int align)
Definition: dsound8.c:36
BOOL EMFDRV_EndPath(PHYSDEV dev) DECLSPEC_HIDDEN
Definition: dc.c:457
BOOL EMFDRV_ScaleWindowExtEx(PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom, SIZE *size) DECLSPEC_HIDDEN
Definition: dc.c:319
BOOL EMFDRV_SelectClipPath(PHYSDEV dev, INT iMode) DECLSPEC_HIDDEN
Definition: dc.c:478
BOOL EMFDRV_MoveTo(PHYSDEV dev, INT x, INT y) DECLSPEC_HIDDEN
Definition: graphics.c:173
BOOL EMFDRV_PolyBezierTo(PHYSDEV dev, const POINT *pts, DWORD count) DECLSPEC_HIDDEN
Definition: graphics.c:625
BOOL EMFDRV_OffsetWindowOrgEx(PHYSDEV dev, INT x, INT y, POINT *pt) DECLSPEC_HIDDEN
Definition: dc.c:389
BOOL EMFDRV_SetWorldTransform(PHYSDEV dev, const XFORM *xform) DECLSPEC_HIDDEN
Definition: dc.c:345
BOOL EMFDRV_Polyline(PHYSDEV dev, const POINT *pt, INT count) DECLSPEC_HIDDEN
Definition: graphics.c:592
UINT EMFDRV_SetTextAlign(PHYSDEV dev, UINT align) DECLSPEC_HIDDEN
Definition: dc.c:72
static EMFDRV_PDEVICE * get_emf_physdev(PHYSDEV dev)
BOOL EMFDRV_BeginPath(PHYSDEV dev) DECLSPEC_HIDDEN
Definition: dc.c:427
BOOL EMFDRV_ArcTo(PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend) DECLSPEC_HIDDEN
Definition: graphics.c:359
BOOL EMFDRV_FillPath(PHYSDEV dev) DECLSPEC_HIDDEN
Definition: graphics.c:1087
BOOL EMFDRV_SetViewportExtEx(PHYSDEV dev, INT x, INT y, SIZE *size) DECLSPEC_HIDDEN
Definition: dc.c:247
INT EMFDRV_SetROP2(PHYSDEV dev, INT rop) DECLSPEC_HIDDEN
Definition: dc.c:127
BOOL EMFDRV_SetWindowExtEx(PHYSDEV dev, INT x, INT y, SIZE *size) DECLSPEC_HIDDEN
Definition: dc.c:261
INT EMFDRV_GetDeviceCaps(PHYSDEV dev, INT cap) DECLSPEC_HIDDEN
Definition: dc.c:510
BOOL EMFDRV_ExtTextOut(PHYSDEV dev, INT x, INT y, UINT flags, const RECT *lprect, LPCWSTR str, UINT count, const INT *lpDx) DECLSPEC_HIDDEN
Definition: graphics.c:883
BOOL EMFDRV_BitBlt(PHYSDEV devDst, INT xDst, INT yDst, INT width, INT height, PHYSDEV devSrc, INT xSrc, INT ySrc, DWORD rop) DECLSPEC_HIDDEN
BOOL EMFDRV_DeleteObject(PHYSDEV dev, HGDIOBJ obj) DECLSPEC_HIDDEN
Definition: objects.c:77
BOOL EMFDRV_PolyPolygon(PHYSDEV dev, const POINT *pt, const INT *counts, UINT polys) DECLSPEC_HIDDEN
Definition: graphics.c:701
BOOL EMFDRV_SetViewportOrgEx(PHYSDEV dev, INT x, INT y, POINT *pt) DECLSPEC_HIDDEN
Definition: dc.c:275
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
DWORD EMFDRV_SetMapperFlags(PHYSDEV dev, DWORD flags) DECLSPEC_HIDDEN
Definition: dc.c:406
BOOL EMFDRV_PolyDraw(PHYSDEV dev, const POINT *pts, const BYTE *types, DWORD count) DECLSPEC_HIDDEN
Definition: graphics.c:710
HBRUSH EMFDRV_SelectBrush(PHYSDEV dev, HBRUSH hbrush, const struct brush_pattern *pattern) DECLSPEC_HIDDEN
Definition: objects.c:205
COLORREF EMFDRV_SetDCPenColor(PHYSDEV dev, COLORREF color) DECLSPEC_HIDDEN
Definition: objects.c:493
COLORREF EMFDRV_SetBkColor(PHYSDEV dev, COLORREF color) DECLSPEC_HIDDEN
Definition: dc.c:100
BOOL EMFDRV_RestoreDC(PHYSDEV dev, INT level) DECLSPEC_HIDDEN
Definition: dc.c:48
BOOL EMFDRV_SetTextJustification(PHYSDEV dev, INT nBreakExtra, INT nBreakCount) DECLSPEC_HIDDEN
Definition: dc.c:81
DWORD EMFDRV_SetLayout(PHYSDEV dev, DWORD layout) DECLSPEC_HIDDEN
Definition: dc.c:335
BOOL EMFDRV_PaintRgn(PHYSDEV dev, HRGN hrgn) DECLSPEC_HIDDEN
Definition: graphics.c:867
BOOL EMFDRV_Ellipse(PHYSDEV dev, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
Definition: graphics.c:408
BOOL EMFDRV_PolyBezier(PHYSDEV dev, const POINT *pts, DWORD count) DECLSPEC_HIDDEN
Definition: graphics.c:617
INT EMFDRV_SetArcDirection(PHYSDEV dev, INT arcDirection) DECLSPEC_HIDDEN
Definition: dc.c:154
INT EMFDRV_IntersectClipRect(PHYSDEV dev, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
Definition: dc.c:179
BOOL EMFDRV_RoundRect(PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT ell_width, INT ell_height) DECLSPEC_HIDDEN
Definition: graphics.c:486
HBITMAP EMFDRV_SelectBitmap(PHYSDEV dev, HBITMAP handle) DECLSPEC_HIDDEN
Definition: objects.c:102
BOOL EMFDRV_StretchBlt(PHYSDEV devDst, struct bitblt_coords *dst, PHYSDEV devSrc, struct bitblt_coords *src, DWORD rop) DECLSPEC_HIDDEN
Definition: bitblt.c:67
BOOL EMFDRV_FillRgn(PHYSDEV dev, HRGN hrgn, HBRUSH hbrush) DECLSPEC_HIDDEN
Definition: graphics.c:765
INT EMFDRV_SetBkMode(PHYSDEV dev, INT mode) DECLSPEC_HIDDEN
Definition: dc.c:91
INT EMFDRV_SetMapMode(PHYSDEV dev, INT mode) DECLSPEC_HIDDEN
Definition: dc.c:235
COLORREF EMFDRV_SetPixel(PHYSDEV dev, INT x, INT y, COLORREF color) DECLSPEC_HIDDEN
Definition: graphics.c:526
DWORD EMFDRV_CreateBrushIndirect(PHYSDEV dev, HBRUSH hBrush) DECLSPEC_HIDDEN
Definition: objects.c:111
BOOL EMFDRV_Arc(PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend) DECLSPEC_HIDDEN
Definition: graphics.c:349
BOOL EMFDRV_WidenPath(PHYSDEV dev) DECLSPEC_HIDDEN
Definition: dc.c:500
BOOL EMFDRV_PolyPolyline(PHYSDEV dev, const POINT *pt, const DWORD *counts, DWORD polys) DECLSPEC_HIDDEN
Definition: graphics.c:692
BOOL EMFDRV_PatBlt(PHYSDEV dev, struct bitblt_coords *dst, DWORD rop) DECLSPEC_HIDDEN
Definition: bitblt.c:30
INT EMFDRV_OffsetClipRgn(PHYSDEV dev, INT x, INT y) DECLSPEC_HIDDEN
Definition: dc.c:194
BOOL EMFDRV_Chord(PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend) DECLSPEC_HIDDEN
Definition: graphics.c:380
BOOL EMFDRV_ScaleViewportExtEx(PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom, SIZE *size) DECLSPEC_HIDDEN
Definition: dc.c:303
BOOL EMFDRV_LineTo(PHYSDEV dev, INT x, INT y) DECLSPEC_HIDDEN
Definition: graphics.c:188
INT EMFDRV_StretchDIBits(PHYSDEV dev, INT xDst, INT yDst, INT widthDst, INT heightDst, INT xSrc, INT ySrc, INT widthSrc, INT heightSrc, const void *bits, BITMAPINFO *info, UINT wUsage, DWORD dwRop) DECLSPEC_HIDDEN
Definition: bitblt.c:176
HPALETTE EMFDRV_SelectPalette(PHYSDEV dev, HPALETTE hPal, BOOL force) DECLSPEC_HIDDEN
Definition: objects.c:437
BOOL EMFDRV_CloseFigure(PHYSDEV dev) DECLSPEC_HIDDEN
Definition: dc.c:446
HPEN EMFDRV_SelectPen(PHYSDEV dev, HPEN handle, const struct brush_pattern *pattern) DECLSPEC_HIDDEN
Definition: objects.c:369
void EMFDRV_UpdateBBox(PHYSDEV dev, RECTL *rect) DECLSPEC_HIDDEN
Definition: init.c:231
BOOL EMFDRV_Pie(PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend) DECLSPEC_HIDDEN
Definition: graphics.c:369
BOOL EMFDRV_FrameRgn(PHYSDEV dev, HRGN hrgn, HBRUSH hbrush, INT width, INT height) DECLSPEC_HIDDEN
Definition: graphics.c:798
BOOL EMFDRV_Polygon(PHYSDEV dev, const POINT *pt, INT count) DECLSPEC_HIDDEN
Definition: graphics.c:608
BOOL EMFDRV_StrokePath(PHYSDEV dev) DECLSPEC_HIDDEN
Definition: graphics.c:1103
BOOL EMFDRV_AngleArc(PHYSDEV dev, INT x, INT y, DWORD radius, FLOAT start, FLOAT sweep) DECLSPEC_HIDDEN
Definition: graphics.c:390
BOOL EMFDRV_AbortPath(PHYSDEV dev) DECLSPEC_HIDDEN
Definition: dc.c:417
BOOL EMFDRV_SetWindowOrgEx(PHYSDEV dev, INT x, INT y, POINT *pt) DECLSPEC_HIDDEN
Definition: dc.c:289
BOOL EMFDRV_GdiComment(PHYSDEV dev, UINT bytes, const BYTE *buffer) DECLSPEC_HIDDEN
Definition: objects.c:520
BOOL EMFDRV_ExtFloodFill(PHYSDEV dev, INT x, INT y, COLORREF color, UINT fillType) DECLSPEC_HIDDEN
Definition: graphics.c:747
BOOL EMFDRV_StrokeAndFillPath(PHYSDEV dev) DECLSPEC_HIDDEN
Definition: graphics.c:1095
INT EMFDRV_SaveDC(PHYSDEV dev) DECLSPEC_HIDDEN
Definition: dc.c:33
INT EMFDRV_ExcludeClipRect(PHYSDEV dev, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
Definition: dc.c:164
BOOL EMFDRV_GradientFill(PHYSDEV dev, TRIVERTEX *vert_array, ULONG nvert, void *grad_array, ULONG ngrad, ULONG mode) DECLSPEC_HIDDEN
Definition: graphics.c:1033
BOOL EMFDRV_PolylineTo(PHYSDEV dev, const POINT *pt, INT count) DECLSPEC_HIDDEN
Definition: graphics.c:600
INT EMFDRV_SetPolyFillMode(PHYSDEV dev, INT mode) DECLSPEC_HIDDEN
Definition: dc.c:136
BOOL EMFDRV_Rectangle(PHYSDEV dev, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
Definition: graphics.c:447
HFONT EMFDRV_SelectFont(PHYSDEV dev, HFONT handle, UINT *aa_flags) DECLSPEC_HIDDEN
Definition: objects.c:284
INT EMFDRV_SetDIBitsToDevice(PHYSDEV dev, INT xDest, INT yDest, DWORD cx, DWORD cy, INT xSrc, INT ySrc, UINT startscan, UINT lines, LPCVOID bits, BITMAPINFO *info, UINT coloruse) DECLSPEC_HIDDEN
Definition: bitblt.c:233
BOOL EMFDRV_InvertRgn(PHYSDEV dev, HRGN hrgn) DECLSPEC_HIDDEN
Definition: graphics.c:875
BOOL EMFDRV_ModifyWorldTransform(PHYSDEV dev, const XFORM *xform, DWORD mode) DECLSPEC_HIDDEN
Definition: dc.c:358
INT EMFDRV_SetStretchBltMode(PHYSDEV dev, INT mode) DECLSPEC_HIDDEN
Definition: dc.c:145
BOOL EMFDRV_OffsetViewportOrgEx(PHYSDEV dev, INT x, INT y, POINT *pt) DECLSPEC_HIDDEN
Definition: dc.c:372
BOOL EMFDRV_FlattenPath(PHYSDEV dev) DECLSPEC_HIDDEN
Definition: dc.c:468
COLORREF EMFDRV_SetTextColor(PHYSDEV dev, COLORREF color) DECLSPEC_HIDDEN
Definition: dc.c:114
INT EMFDRV_ExtSelectClipRgn(PHYSDEV dev, HRGN hrgn, INT mode) DECLSPEC_HIDDEN
Definition: dc.c:207
COLORREF EMFDRV_SetDCBrushColor(PHYSDEV dev, COLORREF color) DECLSPEC_HIDDEN
Definition: objects.c:467
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint start
Definition: gl.h:1545
GLint level
Definition: gl.h:1546
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLsizeiptr size
Definition: glext.h:5919
GLenum src
Definition: glext.h:6340
GLuint buffer
Definition: glext.h:5915
GLuint color
Definition: glext.h:6243
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
GLdouble GLdouble right
Definition: glext.h:10859
GLubyte * pattern
Definition: glext.h:7787
GLenum mode
Definition: glext.h:6217
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
Definition: glext.h:10929
GLint left
Definition: glext.h:7726
GLenum GLenum dst
Definition: glext.h:6340
GLbitfield flags
Definition: glext.h:7161
GLint GLint bottom
Definition: glext.h:7726
GLenum cap
Definition: glext.h:9639
static HBITMAP
Definition: button.c:44
static HDC
Definition: imagelist.c:92
static DWORD layout
Definition: bitmap.c:46
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static int rop(int rop, int src, int dst)
Definition: nanoxwin.c:124
unsigned int UINT
Definition: ndis.h:50
_Out_opt_ int _Out_opt_ int * cy
Definition: commctrl.h:586
_Out_opt_ int * cx
Definition: commctrl.h:585
const WCHAR * str
& rect
Definition: startmenu.cpp:1413
HGDIOBJ * handles
ENHMETAHEADER * emh
Definition: cmds.c:130
eMaj lines
Definition: tritemp.h:206
float FLOAT
Definition: typedefs.h:69
int32_t INT
Definition: typedefs.h:58
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
uint32_t ULONG
Definition: typedefs.h:59
_In_ ULONG iMode
Definition: winddi.h:3520
DWORD COLORREF
Definition: windef.h:300
CONST void * LPCVOID
Definition: windef.h:191
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
unsigned char BYTE
Definition: xxhash.c:193