Revert r20367 and r20368 since they crash the GUI in second boot by hitting a assert...
[reactos.git] / reactos / include / win32k / brush.h
similarity index 78%
rename from reactos/subsys/win32k/include/brush.h
rename to reactos/include/win32k/brush.h
index 65c40ca..116f410 100644 (file)
-#ifndef __WIN32K_BRUSH_H\r
-#define __WIN32K_BRUSH_H\r
-\r
-#include "gdiobj.h"\r
-\r
-/* Internal interface */\r
-\r
-#define NB_HATCH_STYLES  6\r
-\r
-/*\r
- * The layout of this structure is taken from "Windows Graphics Programming"\r
- * book written by Feng Yuan.\r
- *\r
- * DON'T MODIFY THIS STRUCTURE UNLESS REALLY NEEDED AND EVEN THEN ASK ON\r
- * A MAILING LIST FIRST.\r
- */\r
-\r
-typedef struct\r
-{\r
-   ULONG AttrFlags;\r
-   COLORREF lbColor;\r
-} BRUSHATTR, *PBRUSHATTR;\r
-\r
-typedef struct\r
-{\r
-   ULONG ulStyle;\r
-   HBITMAP hbmPattern;\r
-   HANDLE hbmClient;\r
-   ULONG flAttrs;\r
-\r
-   ULONG ulBrushUnique;\r
-   BRUSHATTR *pBrushAttr;\r
-   BRUSHATTR BrushAttr;\r
-   POINT ptOrigin;\r
-   ULONG bCacheGrabbed;\r
-   COLORREF crBack;\r
-   COLORREF crFore;\r
-   ULONG ulPalTime;\r
-   ULONG ulSurfTime;\r
-   PVOID ulRealization;\r
-   ULONG Unknown4C[3];\r
-   POINT ptPenWidth;\r
-   ULONG ulPenStyle;\r
-   DWORD *pStyle;\r
-   ULONG dwStyleCount;\r
-   ULONG Unknown6C;\r
-} GDIBRUSHOBJ, *PGDIBRUSHOBJ;\r
-\r
-typedef struct\r
-{\r
-   BRUSHOBJ BrushObject;\r
-   PGDIBRUSHOBJ GdiBrushObject;\r
-   XLATEOBJ *XlateObject;\r
-} GDIBRUSHINST, *PGDIBRUSHINST;\r
-\r
-/* GDI Brush Attributes */\r
-\r
-#define GDIBRUSH_NEED_BK_CLR           0x0002 /* Background color is needed */\r
-#define GDIBRUSH_DITHER_OK             0x0004 /* Allow color dithering */\r
-#define GDIBRUSH_IS_SOLID              0x0010 /* Solid brush */\r
-#define GDIBRUSH_IS_HATCH              0x0020 /* Hatch brush */\r
-#define GDIBRUSH_IS_BITMAP             0x0040 /* DDB pattern brush */\r
-#define GDIBRUSH_IS_DIB                        0x0080 /* DIB pattern brush */ \r
-#define GDIBRUSH_IS_NULL               0x0100 /* Null/hollow brush */\r
-#define GDIBRUSH_IS_GLOBAL             0x0200 /* Stock objects */\r
-#define GDIBRUSH_IS_PEN                        0x0400 /* Pen */\r
-#define GDIBRUSH_IS_OLDSTYLEPEN                0x0800 /* Geometric pen */\r
-#define GDIBRUSH_IS_MASKING            0x8000 /* Pattern bitmap is used as transparent mask (?) */\r
-#define GDIBRUSH_CACHED_IS_SOLID       0x80000000 \r
-\r
-#define  BRUSHOBJ_AllocBrush() ((HBRUSH) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_BRUSH))\r
-#define  BRUSHOBJ_FreeBrush(hBrush) GDIOBJ_FreeObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH)\r
-#define  BRUSHOBJ_LockBrush(hBrush) ((PGDIBRUSHOBJ)GDIOBJ_LockObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH))\r
-#define  BRUSHOBJ_UnlockBrush(pBrush) GDIOBJ_UnlockObjByPtr(pBrush)\r
-BOOL INTERNAL_CALL BRUSH_Cleanup(PVOID ObjectBody);\r
-\r
-#endif\r
+#ifndef __WIN32K_BRUSH_H
+#define __WIN32K_BRUSH_H
+
+#include <win32k/gdiobj.h>
+
+/* Internal interface */
+
+#define NB_HATCH_STYLES  6
+
+/*
+ * The layout of this structure is taken from "Windows Graphics Programming"
+ * book written by Feng Yuan.
+ *
+ * DON'T MODIFY THIS STRUCTURE UNLESS REALLY NEEDED AND EVEN THEN ASK ON
+ * A MAILING LIST FIRST.
+ */
+
+typedef struct
+{
+   ULONG AttrFlags;
+   COLORREF lbColor;
+} BRUSHATTR, *PBRUSHATTR;
+
+typedef struct
+{
+   ULONG ulStyle;
+   HBITMAP hbmPattern;
+   HANDLE hbmClient;
+   ULONG flAttrs;
+
+   ULONG ulBrushUnique;
+   BRUSHATTR *pBrushAttr;
+   BRUSHATTR BrushAttr;
+   POINT ptOrigin;
+   ULONG bCacheGrabbed;
+   COLORREF crBack;
+   COLORREF crFore;
+   ULONG ulPalTime;
+   ULONG ulSurfTime;
+   PVOID ulRealization;
+   ULONG Unknown4C[3];
+   POINT ptPenWidth;
+   ULONG ulPenStyle;
+   DWORD *pStyle;
+   ULONG dwStyleCount;
+   ULONG Unknown6C;
+} GDIBRUSHOBJ, *PGDIBRUSHOBJ;
+
+typedef struct
+{
+   BRUSHOBJ BrushObject;
+   PGDIBRUSHOBJ GdiBrushObject;
+   XLATEOBJ *XlateObject;
+} GDIBRUSHINST, *PGDIBRUSHINST;
+
+/* GDI Brush Attributes */
+
+#define GDIBRUSH_NEED_BK_CLR           0x0002 /* Background color is needed */
+#define GDIBRUSH_DITHER_OK             0x0004 /* Allow color dithering */
+#define GDIBRUSH_IS_SOLID              0x0010 /* Solid brush */
+#define GDIBRUSH_IS_HATCH              0x0020 /* Hatch brush */
+#define GDIBRUSH_IS_BITMAP             0x0040 /* DDB pattern brush */
+#define GDIBRUSH_IS_DIB                        0x0080 /* DIB pattern brush */ 
+#define GDIBRUSH_IS_NULL               0x0100 /* Null/hollow brush */
+#define GDIBRUSH_IS_GLOBAL             0x0200 /* Stock objects */
+#define GDIBRUSH_IS_PEN                        0x0400 /* Pen */
+#define GDIBRUSH_IS_OLDSTYLEPEN                0x0800 /* Geometric pen */
+#define GDIBRUSH_IS_MASKING            0x8000 /* Pattern bitmap is used as transparent mask (?) */
+#define GDIBRUSH_CACHED_IS_SOLID       0x80000000 
+
+#define  BRUSHOBJ_AllocBrush() ((HBRUSH) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_BRUSH))
+#define  BRUSHOBJ_FreeBrush(hBrush) GDIOBJ_FreeObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH)
+#define  BRUSHOBJ_LockBrush(hBrush) ((PGDIBRUSHOBJ)GDIOBJ_LockObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH))
+#define  BRUSHOBJ_UnlockBrush(pBrush) GDIOBJ_UnlockObjByPtr(pBrush)
+BOOL INTERNAL_CALL BRUSH_Cleanup(PVOID ObjectBody);
+
+HBRUSH STDCALL
+NtGdiCreateBrushIndirect(
+   CONST LOGBRUSH *LogBrush);
+
+HBRUSH STDCALL
+NtGdiCreateDIBBrush(
+   CONST BITMAPINFO *BitmapInfoAndData,
+   UINT ColorSpec,
+   UINT BitmapInfoSize,
+   CONST VOID *PackedDIB);
+
+HBRUSH STDCALL
+NtGdiCreateHatchBrush(
+   INT Style,
+   COLORREF Color);
+
+HBRUSH STDCALL
+NtGdiCreatePatternBrush(
+   HBITMAP hBitmap);
+
+HBRUSH STDCALL
+NtGdiCreateSolidBrush(
+   COLORREF Color);
+
+BOOL STDCALL
+NtGdiFixBrushOrgEx(
+   VOID);
+
+BOOL STDCALL
+NtGdiSetBrushOrgEx(
+   HDC hDC,
+   INT XOrg,
+   INT YOrg,
+   LPPOINT Point);
+
+#endif