21#ifndef __WINE_GDI_PRIVATE_H
22#define __WINE_GDI_PRIVATE_H
53#define GDI_HANDLE_TYPE_MASK 0x007f0000
54#define GDI_HANDLE_GET_TYPE(h) \
55 (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK)
59#define GdiWorldSpaceToDeviceSpace 0x204
62#define DCB_WINDOWMGR 0x8000
71#define META_EOF 0x0000
74#define METAFILE_MEMORY 1
75#define METAFILE_DISK 2
76#define MFHEADERSIZE (sizeof(METAHEADER))
77#define MFVERSION 0x300
104#define LDC_LDC 0x00000001
105#define LDC_EMFLDC 0x00000002
186#define WMFC_MAGIC 0x43464d57
193#define EMR_SETLINKEDUFI 119
196#define DIB_PAL_MONO 2
202 return ((
width *
bpp + 31) >> 3) & ~3;
208 *
abs(
info->bmiHeader.biHeight );
221#define GdiWorldSpaceToDeviceSpace 0x204
225#define GDIRealizePalette RealizePalette
226#define GDISelectPalette SelectPalette
229#define get_full_gdi_handle GdiFixUpHandle
233#define SetWorldTransform SetWorldTransformForMetafile
236#define DbgRaiseAssertionFailure() __emit(0xdefc)
238#define DbgRaiseAssertionFailure() __int2c()
242#define ASSERT(x) if (!(x)) DbgRaiseAssertionFailure()
268BOOL EMFDRV_AlphaBlend(
WINEDC *dc_dst,
INT x_dst,
INT y_dst,
INT width_dst,
INT height_dst,
HDC dc_src,
INT x_src,
INT y_src,
INT width_src,
INT height_src,
BLENDFUNCTION func );
270INT EMFDRV_StretchDIBits(
WINEDC *
dc,
INT x_dst,
INT y_dst,
INT width_dst,
INT height_dst,
INT x_src,
INT y_src,
INT width_src,
INT height_src,
const void *
bits,
BITMAPINFO *
info,
UINT wUsage,
DWORD dwRop );
271INT EMFDRV_SetDIBitsToDevice(
WINEDC *
dc,
INT x_dst,
INT y_dst,
DWORD width,
DWORD height,
INT x_src,
INT y_src,
UINT startscan,
UINT lines,
const void *
bits,
BITMAPINFO *
info,
UINT usage );
BOOL WINAPI SetVirtualResolution(HDC hdc, DWORD horz_res, DWORD vert_res, DWORD horz_size, DWORD vert_size)
HENHMETAFILE EMF_Create_HENHMETAFILE(ENHMETAHEADER *emh, DWORD filesize, BOOL on_disk) DECLSPEC_HIDDEN
struct tagEMRESCAPE * PEMRESCAPE
struct tagEMRESCAPE * PEMRNAMEDESCAPE
HBITMAP EMFDRV_SelectBitmap(WINEDC *dc, HBITMAP hbitmap)
struct tagEMRESCAPE EMRNAMEDESCAPE
static int get_dib_stride(int width, int bpp)
HRGN APIENTRY NtGdiPathToRegion(_In_ HDC hdc)
BOOL EMFDRV_PatBlt(WINEDC *dc, INT left, INT top, INT width, INT height, DWORD rop)
HGDIOBJ WINAPI GdiCreateClientObj(_In_ PVOID pvObject, _In_ GDILOOBJTYPE eObjType)
BOOL EMFDRV_FrameRgn(WINEDC *dc, HRGN hrgn, HBRUSH hbrush, INT width, INT height)
BOOL EMFDRV_PolyBezier(WINEDC *dc, const POINT *pts, DWORD count)
BOOL EMFDRV_InvertRgn(WINEDC *dc, HRGN hrgn)
METAHEADER * MF_CreateMetaHeaderDisk(METAHEADER *mr, LPCVOID filename, BOOL unicode) DECLSPEC_HIDDEN
BOOL EMFDRV_Ellipse(WINEDC *dc, INT left, INT top, INT right, INT bottom)
HGDIOBJ WINAPI GdiFixUpHandle(HGDIOBJ hGdiObj)
BOOL EMFDRV_StrokeAndFillPath(WINEDC *dc)
#define GDIRealizePalette
BOOL WINAPI GetBoundsRectAlt(HDC hdc, LPRECT prc, UINT flags)
#define GDI_HANDLE_GET_TYPE(h)
BOOL EMFDRV_AlphaBlend(WINEDC *dc_dst, INT x_dst, INT y_dst, INT width_dst, INT height_dst, HDC dc_src, INT x_src, INT y_src, INT width_src, INT height_src, BLENDFUNCTION func)
BOOL EMFDRV_Pie(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
BOOL EMFDRV_Arc(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
BOOL EMFDRV_ArcTo(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
BOOL EMFDRV_Rectangle(WINEDC *dc, INT left, INT top, INT right, INT bottom)
BOOL EMFDRV_FillRgn(WINEDC *dc, HRGN hrgn, HBRUSH hbrush)
#define get_full_gdi_handle
void GDI_hdc_using_object(HGDIOBJ obj, HDC hdc) DECLSPEC_HIDDEN
BOOL EMFDRV_LineTo(WINEDC *dc, INT x, INT y)
struct tagEMRESCAPE EMRESCAPE
COLORREF EMFDRV_SetPixel(WINEDC *dc, INT x, INT y, COLORREF color)
void GDI_hdc_not_using_object(HGDIOBJ obj, HDC hdc) DECLSPEC_HIDDEN
BOOL WINAPI SetBoundsRectAlt(HDC hdc, LPRECT prc, UINT flags)
DWORD WINAPI GetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwError)
PVOID WINAPI GdiGetClientObjLink(_In_ HGDIOBJ hobj)
void release_dc_ptr(DC *dc) DECLSPEC_HIDDEN
DC * alloc_dc_ptr(WORD magic) DECLSPEC_HIDDEN
enum GDILoObjType * PGDILOOBJTYPE
struct EMRSETTEXTJUSTIFICATION * PEMRSETTEXTJUSTIFICATION
BOOL EMFDRV_GradientFill(WINEDC *dc, TRIVERTEX *vert_array, ULONG nvert, void *grad_array, ULONG ngrad, ULONG mode)
void * free_gdi_handle(HGDIOBJ handle) DECLSPEC_HIDDEN
BOOL EMFDRV_PolylineTo(WINEDC *dc, const POINT *pt, INT count)
BOOL APIENTRY NtGdiGetTransform(_In_ HDC hdc, _In_ DWORD iXform, _Out_ LPXFORM pxf)
static int get_dib_info_size(const BITMAPINFO *info, UINT coloruse)
int bitmap_info_size(const BITMAPINFO *info, WORD coloruse) DECLSPEC_HIDDEN
HMETAFILE MF_Create_HMETAFILE(METAHEADER *mh) DECLSPEC_HIDDEN
@ GDILoObjType_LO_FONT_TYPE
@ GDILoObjType_LO_PALETTE_TYPE
@ GDILoObjType_LO_UMPD_TYPE
@ GDILoObjType_LO_CLIENTOBJ_TYPE
@ GDILoObjType_LO_BRUSH_TYPE
@ GDILoObjType_LO_BITMAP_TYPE
@ GDILoObjType_LO_METAFILE_TYPE
@ GDILoObjType_LO_METADC16_TYPE
@ GDILoObjType_LO_REGION_TYPE
@ GDILoObjType_LO_EXTPEN_TYPE
@ GDILoObjType_LO_METAFILE16_TYPE
@ GDILoObjType_LO_ICMLCS_TYPE
@ GDILoObjType_LO_DC_TYPE
@ GDILoObjType_LO_PEN_TYPE
@ GDILoObjType_LO_META_TYPE
@ GDILoObjType_LO_ALTDC_TYPE
@ GDILoObjType_LO_DIBSECTION_TYPE
BOOL EMFDRV_StrokePath(WINEDC *dc)
BOOL EMFDRV_PolyPolygon(WINEDC *dc, const POINT *pt, const INT *counts, UINT polys)
INT EMFDRV_StretchDIBits(WINEDC *dc, INT x_dst, INT y_dst, INT width_dst, INT height_dst, INT x_src, INT y_src, INT width_src, INT height_src, const void *bits, BITMAPINFO *info, UINT wUsage, DWORD dwRop)
static BOOL is_meta_dc(HDC hdc)
BOOL EMFDRV_PolyBezierTo(WINEDC *dc, const POINT *pts, DWORD count)
void GDI_ReleaseObj(HGDIOBJ) DECLSPEC_HIDDEN
BOOL EMFDRV_ArcChordPie(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend, DWORD type)
INT EMFDRV_SetDIBitsToDevice(WINEDC *dc, INT x_dst, INT y_dst, DWORD width, DWORD height, INT x_src, INT y_src, UINT startscan, UINT lines, const void *bits, BITMAPINFO *info, UINT usage)
void free_dc_ptr(DC *dc) DECLSPEC_HIDDEN
PVOID WINAPI GdiDeleteClientObj(_In_ HGDIOBJ hobj)
BOOL EMFDRV_Chord(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
HGDIOBJ alloc_gdi_handle(void *obj, WORD type, const struct gdi_obj_funcs *funcs) DECLSPEC_HIDDEN
INT WINAPI NamedEscape(HDC, PWCHAR, INT, INT, LPSTR, INT, LPSTR)
enum GDILoObjType GDILOOBJTYPE
BOOL get_brush_bitmap_info(HBRUSH handle, BITMAPINFO *info, void *bits, UINT *usage) DECLSPEC_HIDDEN
void * GDI_GetObjPtr(HGDIOBJ, WORD) DECLSPEC_HIDDEN
HDC APIENTRY NtGdiCreateMetafileDC(_In_ HDC hdc)
BOOL EMFDRV_PolyDraw(WINEDC *dc, const POINT *pts, const BYTE *types, DWORD count)
DC * get_dc_ptr(HDC hdc) DECLSPEC_HIDDEN
BOOL EMFDRV_ExtTextOut(WINEDC *dc, INT x, INT y, UINT flags, const RECT *lprect, LPCWSTR str, UINT count, const INT *lpDx)
static int get_dib_image_size(const BITMAPINFO *info)
BOOL EMFDRV_FillPath(WINEDC *dc)
BOOL EMFDRV_RoundRect(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT ell_width, INT ell_height)
BOOL EMFDRV_PolyPolyline(WINEDC *dc, const POINT *pt, const DWORD *counts, UINT polys)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLdouble GLdouble GLdouble GLdouble top
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
GLsizeiptr const GLvoid GLenum usage
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 * u
static int rop(int rop, int src, int dst)
_In_ DWORD _Out_ LPXFORM pxf
static struct __wine_debug_functions funcs
BOOL(* pDeleteObject)(HGDIOBJ handle)
BOOL(* pUnrealizeObject)(HGDIOBJ handle)
INT(* pGetObjectA)(HGDIOBJ handle, INT count, LPVOID buffer)
HGDIOBJ(* pSelectObject)(HGDIOBJ handle, HDC hdc)
INT(* pGetObjectW)(HGDIOBJ handle, INT count, LPVOID buffer)
#define FIELD_OFFSET(t, f)
BOOL(CALLBACK * ABORTPROC)(HDC, int)