2 * GDI structures - grabbed from dlls/gdi32/gdi_private.h
3 * Those are needed to access some opaque gdi32 pointers
5 * Copyright 2009 Massimo Del Fedele
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #ifndef __WINE_DIBDRV_GDI32_H
23 #define __WINE_DIBDRV_GDI32_H
26 /* driver function pointers - used here to forward calls to X11 driver when needed */
27 typedef struct { int opaque
; } *PHYSDEV
; /* PHYSDEV is an opaque pointer */
28 typedef struct tagDC_FUNCS
30 INT (CDECL
*pAbortDoc
)(PHYSDEV
);
31 BOOL (CDECL
*pAbortPath
)(PHYSDEV
);
32 BOOL (CDECL
*pAlphaBlend
)(PHYSDEV
,INT
,INT
,INT
,INT
,PHYSDEV
,INT
,INT
,INT
,INT
,BLENDFUNCTION
);
33 BOOL (CDECL
*pAngleArc
)(PHYSDEV
,INT
,INT
,DWORD
,FLOAT
,FLOAT
);
34 BOOL (CDECL
*pArc
)(PHYSDEV
,INT
,INT
,INT
,INT
,INT
,INT
,INT
,INT
);
35 BOOL (CDECL
*pArcTo
)(PHYSDEV
,INT
,INT
,INT
,INT
,INT
,INT
,INT
,INT
);
36 BOOL (CDECL
*pBeginPath
)(PHYSDEV
);
37 BOOL (CDECL
*pBitBlt
)(PHYSDEV
,INT
,INT
,INT
,INT
,PHYSDEV
,INT
,INT
,DWORD
);
38 INT (CDECL
*pChoosePixelFormat
)(PHYSDEV
,const PIXELFORMATDESCRIPTOR
*);
39 BOOL (CDECL
*pChord
)(PHYSDEV
,INT
,INT
,INT
,INT
,INT
,INT
,INT
,INT
);
40 BOOL (CDECL
*pCloseFigure
)(PHYSDEV
);
41 BOOL (CDECL
*pCreateBitmap
)(PHYSDEV
,HBITMAP
,LPVOID
);
42 BOOL (CDECL
*pCreateDC
)(HDC
,PHYSDEV
*,LPCWSTR
,LPCWSTR
,LPCWSTR
,const DEVMODEW
*);
43 HBITMAP (CDECL
*pCreateDIBSection
)(PHYSDEV
,HBITMAP
,const BITMAPINFO
*,UINT
);
44 BOOL (CDECL
*pDeleteBitmap
)(HBITMAP
);
45 BOOL (CDECL
*pDeleteDC
)(PHYSDEV
);
46 BOOL (CDECL
*pDeleteObject
)(PHYSDEV
,HGDIOBJ
);
47 INT (CDECL
*pDescribePixelFormat
)(PHYSDEV
,INT
,UINT
,PIXELFORMATDESCRIPTOR
*);
48 DWORD (CDECL
*pDeviceCapabilities
)(LPSTR
,LPCSTR
,LPCSTR
,WORD
,LPSTR
,LPDEVMODEA
);
49 BOOL (CDECL
*pEllipse
)(PHYSDEV
,INT
,INT
,INT
,INT
);
50 INT (CDECL
*pEndDoc
)(PHYSDEV
);
51 INT (CDECL
*pEndPage
)(PHYSDEV
);
52 BOOL (CDECL
*pEndPath
)(PHYSDEV
);
53 BOOL (CDECL
*pEnumDeviceFonts
)(PHYSDEV
,LPLOGFONTW
,FONTENUMPROCW
,LPARAM
);
54 INT (CDECL
*pExcludeClipRect
)(PHYSDEV
,INT
,INT
,INT
,INT
);
55 INT (CDECL
*pExtDeviceMode
)(LPSTR
,HWND
,LPDEVMODEA
,LPSTR
,LPSTR
,LPDEVMODEA
,LPSTR
,DWORD
);
56 INT (CDECL
*pExtEscape
)(PHYSDEV
,INT
,INT
,LPCVOID
,INT
,LPVOID
);
57 BOOL (CDECL
*pExtFloodFill
)(PHYSDEV
,INT
,INT
,COLORREF
,UINT
);
58 INT (CDECL
*pExtSelectClipRgn
)(PHYSDEV
,HRGN
,INT
);
59 BOOL (CDECL
*pExtTextOut
)(PHYSDEV
,INT
,INT
,UINT
,const RECT
*,LPCWSTR
,UINT
,const INT
*);
60 BOOL (CDECL
*pFillPath
)(PHYSDEV
);
61 BOOL (CDECL
*pFillRgn
)(PHYSDEV
,HRGN
,HBRUSH
);
62 BOOL (CDECL
*pFlattenPath
)(PHYSDEV
);
63 BOOL (CDECL
*pFrameRgn
)(PHYSDEV
,HRGN
,HBRUSH
,INT
,INT
);
64 BOOL (CDECL
*pGdiComment
)(PHYSDEV
,UINT
,CONST BYTE
*);
65 LONG (CDECL
*pGetBitmapBits
)(HBITMAP
,void*,LONG
);
66 BOOL (CDECL
*pGetCharWidth
)(PHYSDEV
,UINT
,UINT
,LPINT
);
67 BOOL (CDECL
*pGetDCOrgEx
)(PHYSDEV
,LPPOINT
);
68 UINT (CDECL
*pGetDIBColorTable
)(PHYSDEV
,UINT
,UINT
,RGBQUAD
*);
69 INT (CDECL
*pGetDIBits
)(PHYSDEV
,HBITMAP
,UINT
,UINT
,LPVOID
,BITMAPINFO
*,UINT
);
70 INT (CDECL
*pGetDeviceCaps
)(PHYSDEV
,INT
);
71 BOOL (CDECL
*pGetDeviceGammaRamp
)(PHYSDEV
,LPVOID
);
72 BOOL (CDECL
*pGetICMProfile
)(PHYSDEV
,LPDWORD
,LPWSTR
);
73 COLORREF (CDECL
*pGetNearestColor
)(PHYSDEV
,COLORREF
);
74 COLORREF (CDECL
*pGetPixel
)(PHYSDEV
,INT
,INT
);
75 INT (CDECL
*pGetPixelFormat
)(PHYSDEV
);
76 UINT (CDECL
*pGetSystemPaletteEntries
)(PHYSDEV
,UINT
,UINT
,LPPALETTEENTRY
);
77 BOOL (CDECL
*pGetTextExtentExPoint
)(PHYSDEV
,LPCWSTR
,INT
,INT
,LPINT
,LPINT
,LPSIZE
);
78 BOOL (CDECL
*CDECL pGetTextMetrics
)(PHYSDEV
,TEXTMETRICW
*);
79 INT (CDECL
*pIntersectClipRect
)(PHYSDEV
,INT
,INT
,INT
,INT
);
80 BOOL (CDECL
*pInvertRgn
)(PHYSDEV
,HRGN
);
81 BOOL (CDECL
*pLineTo
)(PHYSDEV
,INT
,INT
);
82 BOOL (CDECL
*pModifyWorldTransform
)(PHYSDEV
,const XFORM
*,INT
);
83 BOOL (CDECL
*pMoveTo
)(PHYSDEV
,INT
,INT
);
84 INT (CDECL
*pOffsetClipRgn
)(PHYSDEV
,INT
,INT
);
85 INT (CDECL
*pOffsetViewportOrg
)(PHYSDEV
,INT
,INT
);
86 INT (CDECL
*pOffsetWindowOrg
)(PHYSDEV
,INT
,INT
);
87 BOOL (CDECL
*pPaintRgn
)(PHYSDEV
,HRGN
);
88 BOOL (CDECL
*pPatBlt
)(PHYSDEV
,INT
,INT
,INT
,INT
,DWORD
);
89 BOOL (CDECL
*pPie
)(PHYSDEV
,INT
,INT
,INT
,INT
,INT
,INT
,INT
,INT
);
90 BOOL (CDECL
*pPolyBezier
)(PHYSDEV
,const POINT
*,DWORD
);
91 BOOL (CDECL
*pPolyBezierTo
)(PHYSDEV
,const POINT
*,DWORD
);
92 BOOL (CDECL
*pPolyDraw
)(PHYSDEV
,const POINT
*,const BYTE
*,DWORD
);
93 BOOL (CDECL
*pPolyPolygon
)(PHYSDEV
,const POINT
*,const INT
*,UINT
);
94 BOOL (CDECL
*pPolyPolyline
)(PHYSDEV
,const POINT
*,const DWORD
*,DWORD
);
95 BOOL (CDECL
*pPolygon
)(PHYSDEV
,const POINT
*,INT
);
96 BOOL (CDECL
*pPolyline
)(PHYSDEV
,const POINT
*,INT
);
97 BOOL (CDECL
*pPolylineTo
)(PHYSDEV
,const POINT
*,INT
);
98 UINT (CDECL
*pRealizeDefaultPalette
)(PHYSDEV
);
99 UINT (CDECL
*pRealizePalette
)(PHYSDEV
,HPALETTE
,BOOL
);
100 BOOL (CDECL
*pRectangle
)(PHYSDEV
,INT
,INT
,INT
,INT
);
101 HDC (CDECL
*pResetDC
)(PHYSDEV
,const DEVMODEW
*);
102 BOOL (CDECL
*pRestoreDC
)(PHYSDEV
,INT
);
103 BOOL (CDECL
*pRoundRect
)(PHYSDEV
,INT
,INT
,INT
,INT
,INT
,INT
);
104 INT (CDECL
*pSaveDC
)(PHYSDEV
);
105 INT (CDECL
*pScaleViewportExt
)(PHYSDEV
,INT
,INT
,INT
,INT
);
106 INT (CDECL
*pScaleWindowExt
)(PHYSDEV
,INT
,INT
,INT
,INT
);
107 HBITMAP (CDECL
*pSelectBitmap
)(PHYSDEV
,HBITMAP
);
108 HBRUSH (CDECL
*pSelectBrush
)(PHYSDEV
,HBRUSH
);
109 BOOL (CDECL
*pSelectClipPath
)(PHYSDEV
,INT
);
110 HFONT (CDECL
*pSelectFont
)(PHYSDEV
,HFONT
,HANDLE
);
111 HPALETTE (CDECL
*pSelectPalette
)(PHYSDEV
,HPALETTE
,BOOL
);
112 HPEN (CDECL
*pSelectPen
)(PHYSDEV
,HPEN
);
113 INT (CDECL
*pSetArcDirection
)(PHYSDEV
,INT
);
114 LONG (CDECL
*pSetBitmapBits
)(HBITMAP
,const void*,LONG
);
115 COLORREF (CDECL
*pSetBkColor
)(PHYSDEV
,COLORREF
);
116 INT (CDECL
*pSetBkMode
)(PHYSDEV
,INT
);
117 COLORREF (CDECL
*pSetDCBrushColor
)(PHYSDEV
, COLORREF
);
118 DWORD (CDECL
*pSetDCOrg
)(PHYSDEV
,INT
,INT
);
119 COLORREF (CDECL
*pSetDCPenColor
)(PHYSDEV
, COLORREF
);
120 UINT (CDECL
*pSetDIBColorTable
)(PHYSDEV
,UINT
,UINT
,const RGBQUAD
*);
121 INT (CDECL
*pSetDIBits
)(PHYSDEV
,HBITMAP
,UINT
,UINT
,LPCVOID
,const BITMAPINFO
*,UINT
);
122 INT (CDECL
*pSetDIBitsToDevice
)(PHYSDEV
,INT
,INT
,DWORD
,DWORD
,INT
,INT
,UINT
,UINT
,LPCVOID
,
123 const BITMAPINFO
*,UINT
);
124 VOID (CDECL
*pSetDeviceClipping
)(PHYSDEV
,HRGN
,HRGN
);
125 BOOL (CDECL
*pSetDeviceGammaRamp
)(PHYSDEV
,LPVOID
);
126 INT (CDECL
*pSetMapMode
)(PHYSDEV
,INT
);
127 DWORD (CDECL
*pSetMapperFlags
)(PHYSDEV
,DWORD
);
128 COLORREF (CDECL
*pSetPixel
)(PHYSDEV
,INT
,INT
,COLORREF
);
129 BOOL (CDECL
*pSetPixelFormat
)(PHYSDEV
,INT
,const PIXELFORMATDESCRIPTOR
*);
130 INT (CDECL
*pSetPolyFillMode
)(PHYSDEV
,INT
);
131 INT (CDECL
*pSetROP2
)(PHYSDEV
,INT
);
132 INT (CDECL
*pSetRelAbs
)(PHYSDEV
,INT
);
133 INT (CDECL
*pSetStretchBltMode
)(PHYSDEV
,INT
);
134 UINT (CDECL
*pSetTextAlign
)(PHYSDEV
,UINT
);
135 INT (CDECL
*pSetTextCharacterExtra
)(PHYSDEV
,INT
);
136 DWORD (CDECL
*pSetTextColor
)(PHYSDEV
,DWORD
);
137 INT (CDECL
*pSetTextJustification
)(PHYSDEV
,INT
,INT
);
138 INT (CDECL
*pSetViewportExt
)(PHYSDEV
,INT
,INT
);
139 INT (CDECL
*pSetViewportOrg
)(PHYSDEV
,INT
,INT
);
140 INT (CDECL
*pSetWindowExt
)(PHYSDEV
,INT
,INT
);
141 INT (CDECL
*pSetWindowOrg
)(PHYSDEV
,INT
,INT
);
142 BOOL (CDECL
*pSetWorldTransform
)(PHYSDEV
,const XFORM
*);
143 INT (CDECL
*pStartDoc
)(PHYSDEV
,const DOCINFOW
*);
144 INT (CDECL
*pStartPage
)(PHYSDEV
);
145 BOOL (CDECL
*pStretchBlt
)(PHYSDEV
,INT
,INT
,INT
,INT
,PHYSDEV
,INT
,INT
,INT
,INT
,DWORD
);
146 INT (CDECL
*pStretchDIBits
)(PHYSDEV
,INT
,INT
,INT
,INT
,INT
,INT
,INT
,INT
,const void *,
147 const BITMAPINFO
*,UINT
,DWORD
);
148 BOOL (CDECL
*pStrokeAndFillPath
)(PHYSDEV
);
149 BOOL (CDECL
*pStrokePath
)(PHYSDEV
);
150 BOOL (CDECL
*pSwapBuffers
)(PHYSDEV
);
151 BOOL (CDECL
*pUnrealizePalette
)(HPALETTE
);
152 BOOL (CDECL
*pWidenPath
)(PHYSDEV
);
155 BOOL (CDECL
*pwglCopyContext
)(HGLRC
, HGLRC
, UINT
);
156 HGLRC (CDECL
*pwglCreateContext
)(PHYSDEV
);
157 BOOL (CDECL
*pwglDeleteContext
)(HGLRC
);
158 PROC (CDECL
*pwglGetProcAddress
)(LPCSTR
);
159 HDC (CDECL
*pwglGetPbufferDCARB
)(PHYSDEV
, void*);
160 BOOL (CDECL
*pwglMakeCurrent
)(PHYSDEV
, HGLRC
);
161 BOOL (CDECL
*pwglMakeContextCurrentARB
)(PHYSDEV
, PHYSDEV
, HGLRC
);
162 BOOL (CDECL
*pwglSetPixelFormatWINE
)(PHYSDEV
,INT
,const PIXELFORMATDESCRIPTOR
*);
163 BOOL (CDECL
*pwglShareLists
)(HGLRC hglrc1
, HGLRC hglrc2
);
164 BOOL (CDECL
*pwglUseFontBitmapsA
)(PHYSDEV
, DWORD
, DWORD
, DWORD
);
165 BOOL (CDECL
*pwglUseFontBitmapsW
)(PHYSDEV
, DWORD
, DWORD
, DWORD
);