From bb884beb4a923f2604527b4afafd142e1ee0b848 Mon Sep 17 00:00:00 2001 From: James Tabor Date: Wed, 31 Oct 2007 01:47:54 +0000 Subject: [PATCH] - Add gdi batching command structures. - Add additional region clipping data types to Dc_Attr. svn path=/trunk/; revision=29992 --- reactos/include/reactos/win32k/ntgdihdl.h | 5 ++ reactos/include/reactos/win32k/ntgdityp.h | 105 ++++++++++++++++++++++ 2 files changed, 110 insertions(+) diff --git a/reactos/include/reactos/win32k/ntgdihdl.h b/reactos/include/reactos/win32k/ntgdihdl.h index cb19536af0c..20853eb40d7 100644 --- a/reactos/include/reactos/win32k/ntgdihdl.h +++ b/reactos/include/reactos/win32k/ntgdihdl.h @@ -281,6 +281,11 @@ typedef struct _DC_ATTR SIZEL szlVirtualDeviceSize; POINTL ptlBrushOrigin; RGNATTR VisRectRegion; + FLONG RgnFlags; + COLORREF crRgnBgndClr; + ULONG ulRgnBgndClr; + HANDLE hRgnbrush; + HANDLE hRgnpen; } DC_ATTR, *PDC_ATTR; #endif diff --git a/reactos/include/reactos/win32k/ntgdityp.h b/reactos/include/reactos/win32k/ntgdityp.h index eccb0b5e608..a850411bf1c 100644 --- a/reactos/include/reactos/win32k/ntgdityp.h +++ b/reactos/include/reactos/win32k/ntgdityp.h @@ -176,5 +176,110 @@ typedef union ULONG l; } gxf_long; +// +// GDI Batch structures. +// +typedef struct _GDIBATCHHDR +{ + SHORT Size; + SHORT Cmd; +} GDIBATCHHDR, *PGDIBATCHHDR; + +typedef struct _GDIBSPATBLT +{ + GDIBATCHHDR gbHdr; + int nXLeft; + int nYLeft; + int nWidth; + int nHeight; + HANDLE hbrush; + DWORD dwRop; + COLORREF crForegroundClr; + COLORREF crBackgroundClr; + COLORREF crBrushClr; + INT IcmBrushColor; + POINTL ptlViewportOrg; + ULONG ulForegroundClr; + ULONG ulBackgroundClr; + ULONG ulBrushClr; +} GDIBSPATBLT, *PGDIBSPATBLT; + +#ifndef _NTUSRTYP_ +typedef struct _PATRECT +{ + RECT r; + HBRUSH hBrush; +} PATRECT, * PPATRECT; +#endif + +typedef struct _GDIBSPPATBLT +{ + GDIBATCHHDR gbHdr; + DWORD rop4; + DWORD Mode; + DWORD Count; + COLORREF crForegroundClr; + COLORREF crBackgroundClr; + COLORREF crBrushClr; + ULONG ulForegroundClr; + ULONG ulBackgroundClr; + ULONG ulBrushClr; + POINTL ptlViewportOrg; + PATRECT pRect; // POLYPATBLT +} GDIBSPPATBLT, *PGDIBSPPATBLT; + +typedef struct _GDIBSTEXTOUT +{ + GDIBATCHHDR gbHdr; + COLORREF crForegroundClr; + COLORREF crBackgroundClr; + LONG lmBkMode; + ULONG ulForegroundClr; + ULONG ulBackgroundClr; + int x; + int y; + UINT Options; + RECT Rect; + DWORD iCS_CP; + UINT cbCount; + UINT Size; + HANDLE hlfntNew; + FLONG flTextAlign; + POINTL ptlViewportOrg; + CHAR String[1]; +} GDIBSTEXTOUT, *PGDIBSTEXTOUT; + +typedef struct _GDIBSEXTTEXTOUT +{ + GDIBATCHHDR gbHdr; + UINT Count; + UINT Options; + RECT Rect; + POINTL ptlViewportOrg; + ULONG ulBackgroundClr; +} GDIBSEXTTEXTOUT, *PGDIBSEXTTEXTOUT; + +typedef struct _GDIBSSETBRHORG +{ + GDIBATCHHDR gbHdr; + POINTL ptlBrushOrigin; +} GDIBSSETBRHORG, *PGDIBSSETBRHORG; + +typedef struct _GDIBSEXTSELCLPRGN +{ + GDIBATCHHDR gbHdr; + int fnMode; + HANDLE hbrush; + HANDLE hpen; + COLORREF crBackgroundClr; + ULONG ulBackgroundClr; +} GDIBSEXTSELCLPRGN, *PGDIBSEXTSELCLPRGN; +// +// Use with GdiBCSelObj, GdiBCDelObj and GdiBCDelRgn. +typedef struct _GDIBSOBJECT +{ + GDIBATCHHDR gbHdr; + HGDIOBJ hgdiobj; +} GDIBSOBJJECT, *PGDIBSOBJECT; #endif