ReactOS 0.4.15-dev-7958-gcd0bb1a
gdi_driver.h
Go to the documentation of this file.
1/*
2 * Definitions for Wine GDI drivers
3 *
4 * Copyright 2011 Alexandre Julliard
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_WINE_GDI_DRIVER_H
22#define __WINE_WINE_GDI_DRIVER_H
23
24//#include "wine/list.h"
25
26struct gdi_dc_funcs;
27struct opengl_funcs;
28
29typedef struct gdi_physdev
30{
31 const struct gdi_dc_funcs *funcs;
35
37{
38 int log_x; /* original position and size, in logical coords */
39 int log_y;
42 int x; /* mapped position and size, in device coords */
43 int y;
44 int width;
45 int height;
46 RECT visrect; /* rectangle clipped to the visible part, in device coords */
47 DWORD layout; /* DC layout */
48};
49
51{
52 void *ptr; /* pointer to the bits */
53 BOOL is_copy; /* whether this is a copy of the bits that can be modified */
54 void (*free)(struct gdi_image_bits *); /* callback for freeing the bits */
55 void *param; /* extra parameter for callback private use */
56};
57
59{
60 BITMAPINFO *info; /* DIB info */
61 struct gdi_image_bits bits; /* DIB bits */
62 UINT usage; /* color usage for DIB info */
63};
64
66{
95 BOOL (*pFillRgn)(PHYSDEV,HRGN,HBRUSH);
98 BOOL (*pFrameRgn)(PHYSDEV,HRGN,HBRUSH,INT,INT);
138 BOOL (*pPolyDraw)(PHYSDEV,const POINT*,const BYTE *,DWORD);
155 HBRUSH (*pSelectBrush)(PHYSDEV,HBRUSH,const struct brush_pattern*);
158 HPALETTE (*pSelectPalette)(PHYSDEV,HPALETTE,BOOL);
159 HPEN (*pSelectPen)(PHYSDEV,HPEN,const struct brush_pattern*);
194 struct opengl_funcs * (*wine_get_wgl_driver)(PHYSDEV,UINT);
195
196 /* priority order for the driver on the stack */
198};
199
200/* increment this when you change the DC function table */
201#define WINE_GDI_DRIVER_VERSION 49
202
203#define GDI_PRIORITY_NULL_DRV 0 /* null driver */
204#define GDI_PRIORITY_FONT_DRV 100 /* any font driver */
205#define GDI_PRIORITY_GRAPHICS_DRV 200 /* any graphics driver */
206#define GDI_PRIORITY_DIB_DRV 300 /* the DIB driver */
207#define GDI_PRIORITY_PATH_DRV 400 /* the path driver */
208
210{
211 while (!((void **)dev->funcs)[offset / sizeof(void *)]) dev = dev->next;
212 return dev;
213}
214
215#define GET_NEXT_PHYSDEV(dev,func) \
216 get_physdev_entry_point( (dev)->next, FIELD_OFFSET(struct gdi_dc_funcs,func))
217/*
218static inline void push_dc_driver( PHYSDEV *dev, PHYSDEV physdev, const struct gdi_dc_funcs *funcs )
219{
220 while ((*dev)->funcs->priority > funcs->priority) dev = &(*dev)->next;
221 physdev->funcs = funcs;
222 physdev->next = *dev;
223 physdev->hdc = (*dev)->hdc;
224 *dev = physdev;
225}
226*/
227/* support for window surfaces */
228
229struct window_surface;
230
232{
233 void (*lock)( struct window_surface *surface );
234 void (*unlock)( struct window_surface *surface );
235 void* (*get_info)( struct window_surface *surface, BITMAPINFO *info );
236 RECT* (*get_bounds)( struct window_surface *surface );
237 void (*set_region)( struct window_surface *surface, HRGN region );
238 void (*flush)( struct window_surface *surface );
239 void (*destroy)( struct window_surface *surface );
240};
241
243{
244 const struct window_surface_funcs *funcs; /* driver-specific implementations */
245// struct list entry; /* entry in global list managed by user32 */
246 LONG ref; /* reference count */
247 RECT rect; /* constant, no locking needed */
248 /* driver-specific fields here */
249};
250
251static inline ULONG window_surface_add_ref( struct window_surface *surface )
252{
253 return InterlockedIncrement( &surface->ref );
254}
255
256static inline ULONG window_surface_release( struct window_surface *surface )
257{
258 ULONG ret = InterlockedDecrement( &surface->ref );
259 if (!ret) surface->funcs->destroy( surface );
260 return ret;
261}
262
263/* the DC hook support is only exported on Win16, the 32-bit version is a Wine extension */
264
265#define DCHC_INVALIDVISRGN 0x0001
266#define DCHC_DELETEDC 0x0002
267#define DCHF_INVALIDATEVISRGN 0x0001
268#define DCHF_VALIDATEVISRGN 0x0002
269#define DCHF_RESETDC 0x0004 /* Wine extension */
270
272
276
278extern void CDECL __wine_set_visible_region( HDC hdc, HRGN hrgn, const RECT *vis_rect,
279 const RECT *device_rect, struct window_surface *surface );
282
283#endif /* __WINE_WINE_GDI_DRIVER_H */
static HRGN hrgn
#define VOID
Definition: acefi.h:82
#define InterlockedIncrement
Definition: armddk.h:53
#define InterlockedDecrement
Definition: armddk.h:52
Definition: _set.h:50
#define CDECL
Definition: compat.h:29
HANDLE HWND
Definition: compat.h:19
#define CALLBACK
Definition: compat.h:35
static const WCHAR version[]
Definition: asmname.c:66
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
void CDECL __wine_make_gdi_object_system(HGDIOBJ handle, BOOL set)
static ULONG window_surface_release(struct window_surface *surface)
Definition: gdi_driver.h:256
void CDECL __wine_set_display_driver(HMODULE module)
struct gdi_physdev * PHYSDEV
WINGDIAPI DWORD_PTR WINAPI GetDCHook(HDC, DCHOOKPROC *)
static PHYSDEV get_physdev_entry_point(PHYSDEV dev, size_t offset)
Definition: gdi_driver.h:209
void CDECL __wine_set_visible_region(HDC hdc, HRGN hrgn, const RECT *vis_rect, const RECT *device_rect, struct window_surface *surface)
BOOL(CALLBACK * DCHOOKPROC)(HDC, WORD, DWORD_PTR, LPARAM)
Definition: gdi_driver.h:271
WINGDIAPI BOOL WINAPI SetDCHook(HDC, DCHOOKPROC, DWORD_PTR)
static ULONG window_surface_add_ref(struct window_surface *surface)
Definition: gdi_driver.h:251
WINGDIAPI WORD WINAPI SetHookFlags(HDC, WORD)
struct opengl_funcs *CDECL __wine_get_wgl_driver(HDC hdc, UINT version)
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
Definition: glext.h:10929
GLintptr offset
Definition: glext.h:5920
#define WINGDIAPI
Definition: gluos.h:86
#define FLOAT
Definition: i386-dis.c:525
HDC hdc
Definition: main.c:9
static HBITMAP
Definition: button.c:44
static HDC
Definition: imagelist.c:92
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
unsigned int UINT
Definition: ndis.h:50
#define BOOL
Definition: nt_native.h:43
#define LPDWORD
Definition: nt_native.h:46
#define DWORD
Definition: nt_native.h:44
#define LPVOID
Definition: nt_native.h:45
long LONG
Definition: pedump.c:60
#define INT
Definition: polytest.cpp:20
Definition: wingdi.h:2472
DWORD layout
Definition: gdi_driver.h:47
BITMAPINFO * info
Definition: gdi_driver.h:60
COLORREF(* pSetDCPenColor)(PHYSDEV, COLORREF)
Definition: gdi_driver.h:165
BOOL(* pPolyBezier)(PHYSDEV, const POINT *, DWORD)
Definition: gdi_driver.h:136
BOOL(* pGetDeviceGammaRamp)(PHYSDEV, LPVOID)
Definition: gdi_driver.h:106
BOOL(* pGetICMProfile)(PHYSDEV, LPDWORD, LPWSTR)
Definition: gdi_driver.h:112
BOOL(* pRoundRect)(PHYSDEV, INT, INT, INT, INT, INT, INT)
Definition: gdi_driver.h:150
INT(* pSaveDC)(PHYSDEV)
Definition: gdi_driver.h:151
UINT(* pSetTextAlign)(PHYSDEV, UINT)
Definition: gdi_driver.h:177
BOOL(* pPie)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
Definition: gdi_driver.h:135
BOOL(* pGdiComment)(PHYSDEV, UINT, const BYTE *)
Definition: gdi_driver.h:99
BOOL(* pPolyPolygon)(PHYSDEV, const POINT *, const INT *, UINT)
Definition: gdi_driver.h:139
INT(* pStartPage)(PHYSDEV)
Definition: gdi_driver.h:187
HFONT(* pSelectFont)(PHYSDEV, HFONT, UINT *)
Definition: gdi_driver.h:157
COLORREF(* pGetNearestColor)(PHYSDEV, COLORREF)
Definition: gdi_driver.h:115
DWORD(* pBlendImage)(PHYSDEV, BITMAPINFO *, const struct gdi_image_bits *, struct bitblt_coords *, struct bitblt_coords *, BLENDFUNCTION)
Definition: gdi_driver.h:74
BOOL(* pMoveTo)(PHYSDEV, INT, INT)
Definition: gdi_driver.h:129
INT(* pAbortDoc)(PHYSDEV)
Definition: gdi_driver.h:67
BOOL(* pChord)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
Definition: gdi_driver.h:75
BOOL(* pDeleteObject)(PHYSDEV, HGDIOBJ)
Definition: gdi_driver.h:80
UINT(* pGetSystemPaletteEntries)(PHYSDEV, UINT, UINT, LPPALETTEENTRY)
Definition: gdi_driver.h:118
BOOL(* pStrokePath)(PHYSDEV)
Definition: gdi_driver.h:191
BOOL(* pGetTextMetrics)(PHYSDEV, TEXTMETRICW *)
Definition: gdi_driver.h:123
UINT(* pGetOutlineTextMetrics)(PHYSDEV, UINT, LPOUTLINETEXTMETRICW)
Definition: gdi_driver.h:116
BOOL(* pModifyWorldTransform)(PHYSDEV, const XFORM *, DWORD)
Definition: gdi_driver.h:128
BOOL(* pStretchBlt)(PHYSDEV, struct bitblt_coords *, PHYSDEV, struct bitblt_coords *, DWORD)
Definition: gdi_driver.h:188
BOOL(* pFlattenPath)(PHYSDEV)
Definition: gdi_driver.h:96
BOOL(* pGdiFontRealizationInfo)(PHYSDEV, void *)
Definition: gdi_driver.h:108
HPEN(* pSelectPen)(PHYSDEV, HPEN, const struct brush_pattern *)
Definition: gdi_driver.h:159
BOOL(* pFrameRgn)(PHYSDEV, HRGN, HBRUSH, INT, INT)
Definition: gdi_driver.h:98
INT(* pExtDeviceMode)(LPSTR, HWND, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, DWORD)
Definition: gdi_driver.h:89
BOOL(* pGetCharWidth)(PHYSDEV, UINT, UINT, LPINT)
Definition: gdi_driver.h:103
BOOL(* pScaleWindowExtEx)(PHYSDEV, INT, INT, INT, INT, SIZE *)
Definition: gdi_driver.h:153
BOOL(* pRestoreDC)(PHYSDEV, INT)
Definition: gdi_driver.h:149
BOOL(* pPolyPolyline)(PHYSDEV, const POINT *, const DWORD *, DWORD)
Definition: gdi_driver.h:140
BOOL(* pFontIsLinked)(PHYSDEV)
Definition: gdi_driver.h:97
BOOL(* pGetCharABCWidthsI)(PHYSDEV, UINT, UINT, WORD *, LPABC)
Definition: gdi_driver.h:102
BOOL(* pEllipse)(PHYSDEV, INT, INT, INT, INT)
Definition: gdi_driver.h:82
BOOL(* pSetDeviceGammaRamp)(PHYSDEV, LPVOID)
Definition: gdi_driver.h:168
UINT(* pRealizeDefaultPalette)(PHYSDEV)
Definition: gdi_driver.h:145
BOOL(* pPaintRgn)(PHYSDEV, HRGN)
Definition: gdi_driver.h:133
BOOL(* pGetCharWidthInfo)(PHYSDEV, PVOID)
Definition: gdi_driver.h:104
DWORD(* pSetMapperFlags)(PHYSDEV, DWORD)
Definition: gdi_driver.h:171
BOOL(* pUnrealizePalette)(HPALETTE)
Definition: gdi_driver.h:192
UINT(* pGetTextCharsetInfo)(PHYSDEV, LPFONTSIGNATURE, DWORD)
Definition: gdi_driver.h:119
BOOL(* pSetWorldTransform)(PHYSDEV, const XFORM *)
Definition: gdi_driver.h:185
INT(* pExcludeClipRect)(PHYSDEV, INT, INT, INT, INT)
Definition: gdi_driver.h:88
BOOL(* pAngleArc)(PHYSDEV, INT, INT, DWORD, FLOAT, FLOAT)
Definition: gdi_driver.h:70
BOOL(* pSetTextJustification)(PHYSDEV, INT, INT)
Definition: gdi_driver.h:180
INT(* pIntersectClipRect)(PHYSDEV, INT, INT, INT, INT)
Definition: gdi_driver.h:125
DWORD(* pGetGlyphIndices)(PHYSDEV, LPCWSTR, INT, LPWORD, DWORD)
Definition: gdi_driver.h:110
BOOL(* pPolyline)(PHYSDEV, const POINT *, INT)
Definition: gdi_driver.h:142
BOOL(* pOffsetViewportOrgEx)(PHYSDEV, INT, INT, POINT *)
Definition: gdi_driver.h:131
INT(* pEnumICMProfiles)(PHYSDEV, ICMENUMPROCW, LPARAM)
Definition: gdi_driver.h:87
DWORD(* pGetImage)(PHYSDEV, BITMAPINFO *, struct gdi_image_bits *, struct bitblt_coords *)
Definition: gdi_driver.h:113
BOOL(* pArc)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
Definition: gdi_driver.h:71
BOOL(* pSelectClipPath)(PHYSDEV, INT)
Definition: gdi_driver.h:156
BOOL(* pGetTextExtentExPoint)(PHYSDEV, LPCWSTR, INT, LPINT)
Definition: gdi_driver.h:120
DWORD(* pSetLayout)(PHYSDEV, DWORD)
Definition: gdi_driver.h:169
BOOL(* pSetWindowExtEx)(PHYSDEV, INT, INT, SIZE *)
Definition: gdi_driver.h:183
INT(* pEndPage)(PHYSDEV)
Definition: gdi_driver.h:84
BOOL(* pSetWindowOrgEx)(PHYSDEV, INT, INT, POINT *)
Definition: gdi_driver.h:184
INT(* pSetDIBitsToDevice)(PHYSDEV, INT, INT, DWORD, DWORD, INT, INT, UINT, UINT, LPCVOID, BITMAPINFO *, UINT)
Definition: gdi_driver.h:166
COLORREF(* pSetDCBrushColor)(PHYSDEV, COLORREF)
Definition: gdi_driver.h:164
BOOL(* pExtTextOut)(PHYSDEV, INT, INT, UINT, const RECT *, LPCWSTR, UINT, const INT *)
Definition: gdi_driver.h:93
BOOL(* pGetCharABCWidths)(PHYSDEV, UINT, UINT, LPABC)
Definition: gdi_driver.h:101
BOOL(* pEndPath)(PHYSDEV)
Definition: gdi_driver.h:85
COLORREF(* pSetBkColor)(PHYSDEV, COLORREF)
Definition: gdi_driver.h:161
INT(* pGetDeviceCaps)(PHYSDEV, INT)
Definition: gdi_driver.h:105
DWORD(* pGetGlyphOutline)(PHYSDEV, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, const MAT2 *)
Definition: gdi_driver.h:111
INT(* pStartDoc)(PHYSDEV, const DOCINFOW *)
Definition: gdi_driver.h:186
INT(* pSetMapMode)(PHYSDEV, INT)
Definition: gdi_driver.h:170
VOID(* pSetDeviceClipping)(PHYSDEV, HRGN)
Definition: gdi_driver.h:167
BOOL(* pPatBlt)(PHYSDEV, struct bitblt_coords *, DWORD)
Definition: gdi_driver.h:134
DWORD(* pGetFontUnicodeRanges)(PHYSDEV, LPGLYPHSET)
Definition: gdi_driver.h:109
BOOL(* pStrokeAndFillPath)(PHYSDEV)
Definition: gdi_driver.h:190
INT(* pStretchDIBits)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT, const void *, BITMAPINFO *, UINT, DWORD)
Definition: gdi_driver.h:189
INT(* pSetROP2)(PHYSDEV, INT)
Definition: gdi_driver.h:174
BOOL(* pFillPath)(PHYSDEV)
Definition: gdi_driver.h:94
COLORREF(* pSetTextColor)(PHYSDEV, COLORREF)
Definition: gdi_driver.h:179
INT(* pSetTextCharacterExtra)(PHYSDEV, INT)
Definition: gdi_driver.h:178
COLORREF(* pSetPixel)(PHYSDEV, INT, INT, COLORREF)
Definition: gdi_driver.h:172
BOOL(* pLineTo)(PHYSDEV, INT, INT)
Definition: gdi_driver.h:127
DWORD(* pGetFontData)(PHYSDEV, DWORD, DWORD, LPVOID, DWORD)
Definition: gdi_driver.h:107
HBRUSH(* pSelectBrush)(PHYSDEV, HBRUSH, const struct brush_pattern *)
Definition: gdi_driver.h:155
INT(* pSetRelAbs)(PHYSDEV, INT)
Definition: gdi_driver.h:175
UINT(* pSetBoundsRect)(PHYSDEV, RECT *, UINT)
Definition: gdi_driver.h:163
INT(* pEndDoc)(PHYSDEV)
Definition: gdi_driver.h:83
BOOL(* pExtFloodFill)(PHYSDEV, INT, INT, COLORREF, UINT)
Definition: gdi_driver.h:91
INT(* pSetPolyFillMode)(PHYSDEV, INT)
Definition: gdi_driver.h:173
UINT(* pRealizePalette)(PHYSDEV, HPALETTE, BOOL)
Definition: gdi_driver.h:146
DWORD(* pDeviceCapabilities)(LPSTR, LPCSTR, LPCSTR, WORD, LPSTR, LPDEVMODEA)
Definition: gdi_driver.h:81
BOOL(* pSetViewportOrgEx)(PHYSDEV, INT, INT, POINT *)
Definition: gdi_driver.h:182
BOOL(* pAbortPath)(PHYSDEV)
Definition: gdi_driver.h:68
BOOL(* pGradientFill)(PHYSDEV, TRIVERTEX *, ULONG, void *, ULONG, ULONG)
Definition: gdi_driver.h:124
BOOL(* pAlphaBlend)(PHYSDEV, struct bitblt_coords *, PHYSDEV, struct bitblt_coords *, BLENDFUNCTION)
Definition: gdi_driver.h:69
DWORD(* pPutImage)(PHYSDEV, HRGN, BITMAPINFO *, const struct gdi_image_bits *, struct bitblt_coords *, struct bitblt_coords *, DWORD)
Definition: gdi_driver.h:144
BOOL(* pInvertRgn)(PHYSDEV, HRGN)
Definition: gdi_driver.h:126
INT(* pSetBkMode)(PHYSDEV, INT)
Definition: gdi_driver.h:162
COLORREF(* pGetPixel)(PHYSDEV, INT, INT)
Definition: gdi_driver.h:117
BOOL(* pPolylineTo)(PHYSDEV, const POINT *, INT)
Definition: gdi_driver.h:143
BOOL(* pOffsetWindowOrgEx)(PHYSDEV, INT, INT, POINT *)
Definition: gdi_driver.h:132
INT(* pExtEscape)(PHYSDEV, INT, INT, LPCVOID, INT, LPVOID)
Definition: gdi_driver.h:90
INT(* pExtSelectClipRgn)(PHYSDEV, HRGN, INT)
Definition: gdi_driver.h:92
BOOL(* pPolygon)(PHYSDEV, const POINT *, INT)
Definition: gdi_driver.h:141
HDC(* pResetDC)(PHYSDEV, const DEVMODEW *)
Definition: gdi_driver.h:148
INT(* pSetArcDirection)(PHYSDEV, INT)
Definition: gdi_driver.h:160
BOOL(* pDeleteDC)(PHYSDEV)
Definition: gdi_driver.h:79
BOOL(* pBeginPath)(PHYSDEV)
Definition: gdi_driver.h:73
BOOL(* pEnumFonts)(PHYSDEV, LPLOGFONTW, FONTENUMPROCW, LPARAM)
Definition: gdi_driver.h:86
BOOL(* pRectangle)(PHYSDEV, INT, INT, INT, INT)
Definition: gdi_driver.h:147
INT(* pSetStretchBltMode)(PHYSDEV, INT)
Definition: gdi_driver.h:176
BOOL(* pFillRgn)(PHYSDEV, HRGN, HBRUSH)
Definition: gdi_driver.h:95
INT(* pOffsetClipRgn)(PHYSDEV, INT, INT)
Definition: gdi_driver.h:130
INT(* pGetTextFace)(PHYSDEV, INT, LPWSTR)
Definition: gdi_driver.h:122
DWORD(* pGetKerningPairs)(PHYSDEV, DWORD, LPKERNINGPAIR)
Definition: gdi_driver.h:114
BOOL(* pGetTextExtentExPointI)(PHYSDEV, const WORD *, INT, LPINT)
Definition: gdi_driver.h:121
BOOL(* pArcTo)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
Definition: gdi_driver.h:72
BOOL(* pCloseFigure)(PHYSDEV)
Definition: gdi_driver.h:76
BOOL(* pPolyDraw)(PHYSDEV, const POINT *, const BYTE *, DWORD)
Definition: gdi_driver.h:138
BOOL(* pWidenPath)(PHYSDEV)
Definition: gdi_driver.h:193
BOOL(* pPolyBezierTo)(PHYSDEV, const POINT *, DWORD)
Definition: gdi_driver.h:137
UINT(* pGetBoundsRect)(PHYSDEV, RECT *, UINT)
Definition: gdi_driver.h:100
BOOL(* pCreateCompatibleDC)(PHYSDEV, PHYSDEV *)
Definition: gdi_driver.h:77
BOOL(* pSetViewportExtEx)(PHYSDEV, INT, INT, SIZE *)
Definition: gdi_driver.h:181
HPALETTE(* pSelectPalette)(PHYSDEV, HPALETTE, BOOL)
Definition: gdi_driver.h:158
BOOL(* pCreateDC)(PHYSDEV *, LPCWSTR, LPCWSTR, LPCWSTR, const DEVMODEW *)
Definition: gdi_driver.h:78
HBITMAP(* pSelectBitmap)(PHYSDEV, HBITMAP)
Definition: gdi_driver.h:154
BOOL(* pScaleViewportExtEx)(PHYSDEV, INT, INT, INT, INT, SIZE *)
Definition: gdi_driver.h:152
void * param
Definition: gdi_driver.h:55
void(* free)(struct gdi_image_bits *)
Definition: gdi_driver.h:54
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31
struct gdi_physdev * next
Definition: gdi_driver.h:32
void(* destroy)(struct window_surface *surface)
Definition: gdi_driver.h:239
void(* lock)(struct window_surface *surface)
Definition: gdi_driver.h:233
void(* flush)(struct window_surface *surface)
Definition: gdi_driver.h:238
void(* set_region)(struct window_surface *surface, HRGN region)
Definition: gdi_driver.h:237
void(* unlock)(struct window_surface *surface)
Definition: gdi_driver.h:234
const struct window_surface_funcs * funcs
Definition: gdi_driver.h:244
#define DWORD_PTR
Definition: treelist.c:76
uint32_t DWORD_PTR
Definition: typedefs.h:65
uint16_t * LPWORD
Definition: typedefs.h:56
void * PVOID
Definition: typedefs.h:50
int32_t INT
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
int ret
LONG_PTR LPARAM
Definition: windef.h:208
int * LPINT
Definition: windef.h:178
void * HGDIOBJ
Definition: windef.h:252
DWORD COLORREF
Definition: windef.h:300
CONST void * LPCVOID
Definition: windef.h:191
#define WINAPI
Definition: msvc.h:6
struct _OUTLINETEXTMETRICW * LPOUTLINETEXTMETRICW
struct tagLOGFONTW * LPLOGFONTW
FARPROC FONTENUMPROCW
Definition: wingdi.h:2897
struct _GLYPHMETRICS * LPGLYPHMETRICS
struct _ABC * LPABC
int(CALLBACK * ICMENUMPROCW)(LPWSTR, LPARAM)
Definition: wingdi.h:2930
struct tagFONTSIGNATURE * LPFONTSIGNATURE
struct _devicemodeA * LPDEVMODEA
struct tagKERNINGPAIR * LPKERNINGPAIR
struct _BLENDFUNCTION BLENDFUNCTION
struct tagPALETTEENTRY * LPPALETTEENTRY
const char * LPCSTR
Definition: xmlstorage.h:183
char * LPSTR
Definition: xmlstorage.h:182
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
unsigned char BYTE
Definition: xxhash.c:193