1 #ifndef __WIN32K_BRUSH_H
2 #define __WIN32K_BRUSH_H
6 /* Internal interface */
8 #define NB_HATCH_STYLES 6
11 * The layout of this structure is taken from "Windows Graphics Programming"
12 * book written by Feng Yuan.
14 * DON'T MODIFY THIS STRUCTURE UNLESS REALLY NEEDED AND EVEN THEN ASK ON
15 * A MAILING LIST FIRST.
22 } BRUSHATTR
, *PBRUSHATTR
;
37 BRUSHATTR
*pBrushAttr
;
52 } GDIBRUSHOBJ
, *PGDIBRUSHOBJ
;
57 PGDIBRUSHOBJ GdiBrushObject
;
58 XLATEOBJ
*XlateObject
;
59 } GDIBRUSHINST
, *PGDIBRUSHINST
;
61 /* GDI Brush Attributes */
63 #define GDIBRUSH_NEED_BK_CLR 0x0002 /* Background color is needed */
64 #define GDIBRUSH_DITHER_OK 0x0004 /* Allow color dithering */
65 #define GDIBRUSH_IS_SOLID 0x0010 /* Solid brush */
66 #define GDIBRUSH_IS_HATCH 0x0020 /* Hatch brush */
67 #define GDIBRUSH_IS_BITMAP 0x0040 /* DDB pattern brush */
68 #define GDIBRUSH_IS_DIB 0x0080 /* DIB pattern brush */
69 #define GDIBRUSH_IS_NULL 0x0100 /* Null/hollow brush */
70 #define GDIBRUSH_IS_GLOBAL 0x0200 /* Stock objects */
71 #define GDIBRUSH_IS_PEN 0x0400 /* Pen */
72 #define GDIBRUSH_IS_OLDSTYLEPEN 0x0800 /* Geometric pen */
73 #define GDIBRUSH_IS_MASKING 0x8000 /* Pattern bitmap is used as transparent mask (?) */
74 #define GDIBRUSH_CACHED_IS_SOLID 0x80000000
76 #define BRUSHOBJ_AllocBrush() ((HBRUSH) GDIOBJ_AllocObj (GdiHandleTable, GDI_OBJECT_TYPE_BRUSH))
77 #define BRUSHOBJ_FreeBrush(hBrush) GDIOBJ_FreeObj(GdiHandleTable, (HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH)
78 #define BRUSHOBJ_LockBrush(hBrush) ((PGDIBRUSHOBJ)GDIOBJ_LockObj(GdiHandleTable, (HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH))
79 #define BRUSHOBJ_UnlockBrush(pBrush) GDIOBJ_UnlockObjByPtr(GdiHandleTable, pBrush)
81 INT FASTCALL
BRUSH_GetObject (PGDIBRUSHOBJ GdiObject
, INT Count
, LPLOGBRUSH Buffer
);
82 BOOL INTERNAL_CALL
BRUSH_Cleanup(PVOID ObjectBody
);