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
;
26 /* Header for all gdi objects in the handle table.
27 Do not (re)move this. */
28 BASEOBJECT BaseObject
;
36 BRUSHATTR
*pBrushAttr
;
51 } GDIBRUSHOBJ
, *PGDIBRUSHOBJ
;
56 PGDIBRUSHOBJ GdiBrushObject
;
57 XLATEOBJ
*XlateObject
;
58 } GDIBRUSHINST
, *PGDIBRUSHINST
;
60 /* GDI Brush Attributes */
62 #define GDIBRUSH_NEED_BK_CLR 0x0002 /* Background color is needed */
63 #define GDIBRUSH_DITHER_OK 0x0004 /* Allow color dithering */
64 #define GDIBRUSH_IS_SOLID 0x0010 /* Solid brush */
65 #define GDIBRUSH_IS_HATCH 0x0020 /* Hatch brush */
66 #define GDIBRUSH_IS_BITMAP 0x0040 /* DDB pattern brush */
67 #define GDIBRUSH_IS_DIB 0x0080 /* DIB pattern brush */
68 #define GDIBRUSH_IS_NULL 0x0100 /* Null/hollow brush */
69 #define GDIBRUSH_IS_GLOBAL 0x0200 /* Stock objects */
70 #define GDIBRUSH_IS_PEN 0x0400 /* Pen */
71 #define GDIBRUSH_IS_OLDSTYLEPEN 0x0800 /* Geometric pen */
72 #define GDIBRUSH_IS_MASKING 0x8000 /* Pattern bitmap is used as transparent mask (?) */
73 #define GDIBRUSH_CACHED_IS_SOLID 0x80000000
75 #define BRUSHOBJ_AllocBrush() ((PGDIBRUSHOBJ) GDIOBJ_AllocObj(GDIObjType_BRUSH_TYPE))
76 #define BRUSHOBJ_AllocBrushWithHandle() ((PGDIBRUSHOBJ) GDIOBJ_AllocObjWithHandle (GDI_OBJECT_TYPE_BRUSH))
77 #define BRUSHOBJ_FreeBrush(pBrush) GDIOBJ_FreeObj((POBJ)pBrush, GDIObjType_BRUSH_TYPE)
78 #define BRUSHOBJ_FreeBrushByHandle(hBrush) GDIOBJ_FreeObjByHandle((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH)
79 #define BRUSHOBJ_LockBrush(hBrush) ((PGDIBRUSHOBJ)GDIOBJ_LockObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH))
80 #define BRUSHOBJ_UnlockBrush(pBrush) GDIOBJ_UnlockObjByPtr((POBJ)pBrush)
82 INT FASTCALL
BRUSH_GetObject (PGDIBRUSHOBJ GdiObject
, INT Count
, LPLOGBRUSH Buffer
);
83 BOOL INTERNAL_CALL
BRUSH_Cleanup(PVOID ObjectBody
);