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 170 #include <pshpack2.h> 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() 268 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 );
270 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 );
271 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 );
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
BOOL EMFDRV_GradientFill(WINEDC *dc, TRIVERTEX *vert_array, ULONG nvert, void *grad_array, ULONG ngrad, ULONG mode)
BOOL EMFDRV_RoundRect(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT ell_width, INT ell_height)
struct EMRSETTEXTJUSTIFICATION * PEMRSETTEXTJUSTIFICATION
GLint GLint GLsizei width
struct tagEMRESCAPE EMRESCAPE
enum GDILoObjType GDILOOBJTYPE
BOOL EMFDRV_FillPath(WINEDC *dc)
BOOL EMFDRV_PolyBezier(WINEDC *dc, const POINT *pts, DWORD count)
HGDIOBJ alloc_gdi_handle(void *obj, WORD type, const struct gdi_obj_funcs *funcs) DECLSPEC_HIDDEN
struct tagBITMAPINFOHEADER BITMAPINFOHEADER
GLuint GLuint GLsizei count
BOOL EMFDRV_Pie(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
BOOL EMFDRV_Chord(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
enum GDILoObjType * PGDILOOBJTYPE
GLint GLint GLint GLint GLint x
HBITMAP EMFDRV_SelectBitmap(WINEDC *dc, HBITMAP hbitmap)
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)
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
void release_dc_ptr(DC *dc) DECLSPEC_HIDDEN
BOOL WINAPI GetBoundsRectAlt(HDC hdc, LPRECT prc, UINT flags)
BOOL EMFDRV_Rectangle(WINEDC *dc, INT left, INT top, INT right, INT bottom)
DWORD WINAPI GetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwError)
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)
HDC APIENTRY NtGdiCreateMetafileDC(_In_ HDC hdc)
_In_ DWORD _Out_ LPXFORM pxf
BOOL EMFDRV_PatBlt(WINEDC *dc, INT left, INT top, INT width, INT height, DWORD rop)
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
int bitmap_info_size(const BITMAPINFO *info, WORD coloruse) DECLSPEC_HIDDEN
BOOL EMFDRV_PolylineTo(WINEDC *dc, const POINT *pt, INT count)
COLORREF EMFDRV_SetPixel(WINEDC *dc, INT x, INT y, COLORREF color)
INT(* pGetObjectA)(HGDIOBJ handle, INT count, LPVOID buffer)
BOOL APIENTRY NtGdiGetTransform(_In_ HDC hdc, _In_ DWORD iXform, _Out_ LPXFORM pxf)
static int rop(int rop, int src, int dst)
BOOL WINAPI SetBoundsRectAlt(HDC hdc, LPRECT prc, UINT flags)
#define GDIRealizePalette
struct tagEMRESCAPE * PEMRNAMEDESCAPE
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)
DC * alloc_dc_ptr(WORD magic) DECLSPEC_HIDDEN
INT WINAPI NamedEscape(HDC, PWCHAR, INT, INT, LPSTR, INT, LPSTR)
BOOL EMFDRV_PolyPolygon(WINEDC *dc, const POINT *pt, const INT *counts, UINT polys)
HENHMETAFILE EMF_Create_HENHMETAFILE(ENHMETAHEADER *emh, DWORD filesize, BOOL on_disk) DECLSPEC_HIDDEN
BOOL(* pDeleteObject)(HGDIOBJ handle)
BOOL EMFDRV_Ellipse(WINEDC *dc, INT left, INT top, INT right, INT bottom)
BOOL(CALLBACK * ABORTPROC)(HDC, int)
HMETAFILE MF_Create_HMETAFILE(METAHEADER *mh) DECLSPEC_HIDDEN
BOOL EMFDRV_ExtTextOut(WINEDC *dc, INT x, INT y, UINT flags, const RECT *lprect, LPCWSTR str, UINT count, const INT *lpDx)
static struct __wine_debug_functions funcs
PVOID WINAPI GdiGetClientObjLink(_In_ HGDIOBJ hobj)
static int get_dib_stride(int width, int bpp)
BOOL EMFDRV_Arc(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
BOOL get_brush_bitmap_info(HBRUSH handle, BITMAPINFO *info, void *bits, UINT *usage) DECLSPEC_HIDDEN
void free_dc_ptr(DC *dc) DECLSPEC_HIDDEN
HGDIOBJ(* pSelectObject)(HGDIOBJ handle, HDC hdc)
HGDIOBJ WINAPI GdiCreateClientObj(_In_ PVOID pvObject, _In_ GDILOOBJTYPE eObjType)
GLsizeiptr const GLvoid GLenum usage
BOOL WINAPI SetVirtualResolution(HDC hdc, DWORD horz_res, DWORD vert_res, DWORD horz_size, DWORD vert_size)
BOOL(* pUnrealizeObject)(HGDIOBJ handle)
BOOL EMFDRV_FrameRgn(WINEDC *dc, HRGN hrgn, HBRUSH hbrush, INT width, INT height)
GLint GLint GLsizei GLsizei height
static int get_dib_image_size(const BITMAPINFO *info)
BOOL EMFDRV_ArcTo(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
BOOL EMFDRV_StrokePath(WINEDC *dc)
BOOL EMFDRV_PolyPolyline(WINEDC *dc, const POINT *pt, const DWORD *counts, UINT polys)
BOOL EMFDRV_PolyDraw(WINEDC *dc, const POINT *pts, const BYTE *types, DWORD count)
static BOOL is_meta_dc(HDC hdc)
#define FIELD_OFFSET(t, f)
BOOL EMFDRV_StrokeAndFillPath(WINEDC *dc)
DC * get_dc_ptr(HDC hdc) DECLSPEC_HIDDEN
GLint GLint GLint GLint GLint GLint y
PVOID WINAPI GdiDeleteClientObj(_In_ HGDIOBJ hobj)
HGDIOBJ WINAPI GdiFixUpHandle(HGDIOBJ hGdiObj)
void GDI_hdc_using_object(HGDIOBJ obj, HDC hdc) DECLSPEC_HIDDEN
BOOL EMFDRV_FillRgn(WINEDC *dc, HRGN hrgn, HBRUSH hbrush)
METAHEADER * MF_CreateMetaHeaderDisk(METAHEADER *mr, LPCVOID filename, BOOL unicode) DECLSPEC_HIDDEN
void GDI_hdc_not_using_object(HGDIOBJ obj, HDC hdc) DECLSPEC_HIDDEN
static int get_dib_info_size(const BITMAPINFO *info, UINT coloruse)
void * free_gdi_handle(HGDIOBJ handle) DECLSPEC_HIDDEN
void * GDI_GetObjPtr(HGDIOBJ, WORD) DECLSPEC_HIDDEN
#define get_full_gdi_handle
BOOL EMFDRV_InvertRgn(WINEDC *dc, HRGN hrgn)
GLdouble GLdouble GLdouble GLdouble top
GLuint GLuint GLsizei GLenum 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)
HRGN APIENTRY NtGdiPathToRegion(_In_ HDC hdc)
BOOL EMFDRV_LineTo(WINEDC *dc, INT x, INT y)
struct tagEMRESCAPE * PEMRESCAPE
BOOL EMFDRV_PolyBezierTo(WINEDC *dc, const POINT *pts, DWORD count)
INT(* pGetObjectW)(HGDIOBJ handle, INT count, LPVOID buffer)
struct tagEMRESCAPE EMRNAMEDESCAPE
#define GDI_HANDLE_GET_TYPE(h)