21#ifndef __WINE_WINE_GDI_DRIVER_H
22#define __WINE_WINE_GDI_DRIVER_H
166 INT (*
pSetDIBitsToDevice)(
PHYSDEV,
INT,
INT,
DWORD,
DWORD,
INT,
INT,
UINT,
UINT,
LPCVOID,
BITMAPINFO*,
UINT);
189 INT (*
pStretchDIBits)(
PHYSDEV,
INT,
INT,
INT,
INT,
INT,
INT,
INT,
INT,
const void*,
BITMAPINFO*,
UINT,
DWORD);
201#define WINE_GDI_DRIVER_VERSION 49
203#define GDI_PRIORITY_NULL_DRV 0
204#define GDI_PRIORITY_FONT_DRV 100
205#define GDI_PRIORITY_GRAPHICS_DRV 200
206#define GDI_PRIORITY_DIB_DRV 300
207#define GDI_PRIORITY_PATH_DRV 400
211 while (!((
void **)
dev->funcs)[
offset /
sizeof(
void *)])
dev =
dev->next;
215#define GET_NEXT_PHYSDEV(dev,func) \
216 get_physdev_entry_point( (dev)->next, FIELD_OFFSET(struct gdi_dc_funcs,func))
259 if (!
ret) surface->
funcs->destroy( surface );
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
#define InterlockedIncrement
#define InterlockedDecrement
static const WCHAR version[]
void CDECL __wine_make_gdi_object_system(HGDIOBJ handle, BOOL set)
static ULONG window_surface_release(struct window_surface *surface)
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)
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)
WINGDIAPI BOOL WINAPI SetDCHook(HDC, DCHOOKPROC, DWORD_PTR)
static ULONG window_surface_add_ref(struct window_surface *surface)
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
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
COLORREF(* pSetDCPenColor)(PHYSDEV, COLORREF)
BOOL(* pPolyBezier)(PHYSDEV, const POINT *, DWORD)
BOOL(* pGetDeviceGammaRamp)(PHYSDEV, LPVOID)
BOOL(* pGetICMProfile)(PHYSDEV, LPDWORD, LPWSTR)
BOOL(* pRoundRect)(PHYSDEV, INT, INT, INT, INT, INT, INT)
UINT(* pSetTextAlign)(PHYSDEV, UINT)
BOOL(* pPie)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
BOOL(* pGdiComment)(PHYSDEV, UINT, const BYTE *)
BOOL(* pPolyPolygon)(PHYSDEV, const POINT *, const INT *, UINT)
INT(* pStartPage)(PHYSDEV)
HFONT(* pSelectFont)(PHYSDEV, HFONT, UINT *)
COLORREF(* pGetNearestColor)(PHYSDEV, COLORREF)
DWORD(* pBlendImage)(PHYSDEV, BITMAPINFO *, const struct gdi_image_bits *, struct bitblt_coords *, struct bitblt_coords *, BLENDFUNCTION)
BOOL(* pMoveTo)(PHYSDEV, INT, INT)
INT(* pAbortDoc)(PHYSDEV)
BOOL(* pChord)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
BOOL(* pDeleteObject)(PHYSDEV, HGDIOBJ)
UINT(* pGetSystemPaletteEntries)(PHYSDEV, UINT, UINT, LPPALETTEENTRY)
BOOL(* pStrokePath)(PHYSDEV)
BOOL(* pGetTextMetrics)(PHYSDEV, TEXTMETRICW *)
UINT(* pGetOutlineTextMetrics)(PHYSDEV, UINT, LPOUTLINETEXTMETRICW)
BOOL(* pModifyWorldTransform)(PHYSDEV, const XFORM *, DWORD)
BOOL(* pStretchBlt)(PHYSDEV, struct bitblt_coords *, PHYSDEV, struct bitblt_coords *, DWORD)
BOOL(* pFlattenPath)(PHYSDEV)
BOOL(* pGdiFontRealizationInfo)(PHYSDEV, void *)
HPEN(* pSelectPen)(PHYSDEV, HPEN, const struct brush_pattern *)
BOOL(* pFrameRgn)(PHYSDEV, HRGN, HBRUSH, INT, INT)
INT(* pExtDeviceMode)(LPSTR, HWND, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, DWORD)
BOOL(* pGetCharWidth)(PHYSDEV, UINT, UINT, LPINT)
BOOL(* pScaleWindowExtEx)(PHYSDEV, INT, INT, INT, INT, SIZE *)
BOOL(* pRestoreDC)(PHYSDEV, INT)
BOOL(* pPolyPolyline)(PHYSDEV, const POINT *, const DWORD *, DWORD)
BOOL(* pFontIsLinked)(PHYSDEV)
BOOL(* pGetCharABCWidthsI)(PHYSDEV, UINT, UINT, WORD *, LPABC)
BOOL(* pEllipse)(PHYSDEV, INT, INT, INT, INT)
BOOL(* pSetDeviceGammaRamp)(PHYSDEV, LPVOID)
UINT(* pRealizeDefaultPalette)(PHYSDEV)
BOOL(* pPaintRgn)(PHYSDEV, HRGN)
BOOL(* pGetCharWidthInfo)(PHYSDEV, PVOID)
DWORD(* pSetMapperFlags)(PHYSDEV, DWORD)
BOOL(* pUnrealizePalette)(HPALETTE)
UINT(* pGetTextCharsetInfo)(PHYSDEV, LPFONTSIGNATURE, DWORD)
BOOL(* pSetWorldTransform)(PHYSDEV, const XFORM *)
INT(* pExcludeClipRect)(PHYSDEV, INT, INT, INT, INT)
BOOL(* pAngleArc)(PHYSDEV, INT, INT, DWORD, FLOAT, FLOAT)
BOOL(* pSetTextJustification)(PHYSDEV, INT, INT)
INT(* pIntersectClipRect)(PHYSDEV, INT, INT, INT, INT)
DWORD(* pGetGlyphIndices)(PHYSDEV, LPCWSTR, INT, LPWORD, DWORD)
BOOL(* pPolyline)(PHYSDEV, const POINT *, INT)
BOOL(* pOffsetViewportOrgEx)(PHYSDEV, INT, INT, POINT *)
INT(* pEnumICMProfiles)(PHYSDEV, ICMENUMPROCW, LPARAM)
DWORD(* pGetImage)(PHYSDEV, BITMAPINFO *, struct gdi_image_bits *, struct bitblt_coords *)
BOOL(* pArc)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
BOOL(* pSelectClipPath)(PHYSDEV, INT)
BOOL(* pGetTextExtentExPoint)(PHYSDEV, LPCWSTR, INT, LPINT)
DWORD(* pSetLayout)(PHYSDEV, DWORD)
BOOL(* pSetWindowExtEx)(PHYSDEV, INT, INT, SIZE *)
BOOL(* pSetWindowOrgEx)(PHYSDEV, INT, INT, POINT *)
INT(* pSetDIBitsToDevice)(PHYSDEV, INT, INT, DWORD, DWORD, INT, INT, UINT, UINT, LPCVOID, BITMAPINFO *, UINT)
COLORREF(* pSetDCBrushColor)(PHYSDEV, COLORREF)
BOOL(* pExtTextOut)(PHYSDEV, INT, INT, UINT, const RECT *, LPCWSTR, UINT, const INT *)
BOOL(* pGetCharABCWidths)(PHYSDEV, UINT, UINT, LPABC)
BOOL(* pEndPath)(PHYSDEV)
COLORREF(* pSetBkColor)(PHYSDEV, COLORREF)
INT(* pGetDeviceCaps)(PHYSDEV, INT)
DWORD(* pGetGlyphOutline)(PHYSDEV, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, const MAT2 *)
INT(* pStartDoc)(PHYSDEV, const DOCINFOW *)
INT(* pSetMapMode)(PHYSDEV, INT)
VOID(* pSetDeviceClipping)(PHYSDEV, HRGN)
BOOL(* pPatBlt)(PHYSDEV, struct bitblt_coords *, DWORD)
DWORD(* pGetFontUnicodeRanges)(PHYSDEV, LPGLYPHSET)
BOOL(* pStrokeAndFillPath)(PHYSDEV)
INT(* pStretchDIBits)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT, const void *, BITMAPINFO *, UINT, DWORD)
INT(* pSetROP2)(PHYSDEV, INT)
BOOL(* pFillPath)(PHYSDEV)
COLORREF(* pSetTextColor)(PHYSDEV, COLORREF)
INT(* pSetTextCharacterExtra)(PHYSDEV, INT)
COLORREF(* pSetPixel)(PHYSDEV, INT, INT, COLORREF)
BOOL(* pLineTo)(PHYSDEV, INT, INT)
DWORD(* pGetFontData)(PHYSDEV, DWORD, DWORD, LPVOID, DWORD)
HBRUSH(* pSelectBrush)(PHYSDEV, HBRUSH, const struct brush_pattern *)
INT(* pSetRelAbs)(PHYSDEV, INT)
UINT(* pSetBoundsRect)(PHYSDEV, RECT *, UINT)
BOOL(* pExtFloodFill)(PHYSDEV, INT, INT, COLORREF, UINT)
INT(* pSetPolyFillMode)(PHYSDEV, INT)
UINT(* pRealizePalette)(PHYSDEV, HPALETTE, BOOL)
DWORD(* pDeviceCapabilities)(LPSTR, LPCSTR, LPCSTR, WORD, LPSTR, LPDEVMODEA)
BOOL(* pSetViewportOrgEx)(PHYSDEV, INT, INT, POINT *)
BOOL(* pAbortPath)(PHYSDEV)
BOOL(* pGradientFill)(PHYSDEV, TRIVERTEX *, ULONG, void *, ULONG, ULONG)
BOOL(* pAlphaBlend)(PHYSDEV, struct bitblt_coords *, PHYSDEV, struct bitblt_coords *, BLENDFUNCTION)
DWORD(* pPutImage)(PHYSDEV, HRGN, BITMAPINFO *, const struct gdi_image_bits *, struct bitblt_coords *, struct bitblt_coords *, DWORD)
BOOL(* pInvertRgn)(PHYSDEV, HRGN)
INT(* pSetBkMode)(PHYSDEV, INT)
COLORREF(* pGetPixel)(PHYSDEV, INT, INT)
BOOL(* pPolylineTo)(PHYSDEV, const POINT *, INT)
BOOL(* pOffsetWindowOrgEx)(PHYSDEV, INT, INT, POINT *)
INT(* pExtEscape)(PHYSDEV, INT, INT, LPCVOID, INT, LPVOID)
INT(* pExtSelectClipRgn)(PHYSDEV, HRGN, INT)
BOOL(* pPolygon)(PHYSDEV, const POINT *, INT)
HDC(* pResetDC)(PHYSDEV, const DEVMODEW *)
INT(* pSetArcDirection)(PHYSDEV, INT)
BOOL(* pDeleteDC)(PHYSDEV)
BOOL(* pBeginPath)(PHYSDEV)
BOOL(* pEnumFonts)(PHYSDEV, LPLOGFONTW, FONTENUMPROCW, LPARAM)
BOOL(* pRectangle)(PHYSDEV, INT, INT, INT, INT)
INT(* pSetStretchBltMode)(PHYSDEV, INT)
BOOL(* pFillRgn)(PHYSDEV, HRGN, HBRUSH)
INT(* pOffsetClipRgn)(PHYSDEV, INT, INT)
INT(* pGetTextFace)(PHYSDEV, INT, LPWSTR)
DWORD(* pGetKerningPairs)(PHYSDEV, DWORD, LPKERNINGPAIR)
BOOL(* pGetTextExtentExPointI)(PHYSDEV, const WORD *, INT, LPINT)
BOOL(* pArcTo)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
BOOL(* pCloseFigure)(PHYSDEV)
BOOL(* pPolyDraw)(PHYSDEV, const POINT *, const BYTE *, DWORD)
BOOL(* pWidenPath)(PHYSDEV)
BOOL(* pPolyBezierTo)(PHYSDEV, const POINT *, DWORD)
UINT(* pGetBoundsRect)(PHYSDEV, RECT *, UINT)
BOOL(* pCreateCompatibleDC)(PHYSDEV, PHYSDEV *)
BOOL(* pSetViewportExtEx)(PHYSDEV, INT, INT, SIZE *)
HPALETTE(* pSelectPalette)(PHYSDEV, HPALETTE, BOOL)
BOOL(* pCreateDC)(PHYSDEV *, LPCWSTR, LPCWSTR, LPCWSTR, const DEVMODEW *)
HBITMAP(* pSelectBitmap)(PHYSDEV, HBITMAP)
BOOL(* pScaleViewportExtEx)(PHYSDEV, INT, INT, INT, INT, SIZE *)
void(* free)(struct gdi_image_bits *)
const struct gdi_dc_funcs * funcs
struct gdi_physdev * next
void(* destroy)(struct window_surface *surface)
void(* lock)(struct window_surface *surface)
void(* flush)(struct window_surface *surface)
void(* set_region)(struct window_surface *surface, HRGN region)
void(* unlock)(struct window_surface *surface)
const struct window_surface_funcs * funcs
struct _OUTLINETEXTMETRICW * LPOUTLINETEXTMETRICW
struct tagLOGFONTW * LPLOGFONTW
struct _GLYPHMETRICS * LPGLYPHMETRICS
int(CALLBACK * ICMENUMPROCW)(LPWSTR, LPARAM)
struct tagFONTSIGNATURE * LPFONTSIGNATURE
struct _devicemodeA * LPDEVMODEA
struct tagKERNINGPAIR * LPKERNINGPAIR
struct _BLENDFUNCTION BLENDFUNCTION
struct tagPALETTEENTRY * LPPALETTEENTRY