--- /dev/null
+typedef struct _BRUSHINST
+{
+ // We need to removed ajC0-3 when color pattern code is complete!!!
+ //
+ BYTE ajC0[8]; // Color bits for plane 0
+ BYTE ajC1[8]; // Color bits for plane 1
+ BYTE ajC2[8]; // Color bits for plane 2
+ BYTE ajC3[8]; // Color bits for plane 3
+
+ BYTE ajPattern[32]; // Color bits for the mask
+ USHORT usStyle; // Brush style
+ BYTE fjAccel; // Accelerator flags
+ BYTE jFgColor; // Current foreground color
+ BYTE jBkColor; // Current background color
+ BYTE RealWidth;//
+ BYTE YShiftValue; //
+ BYTE jOldBrushRealized; //
+ DWORD Width; // Width of brush
+ DWORD Height;
+ BYTE *pPattern; //Pointer to realized mono pattern
+} BRUSHINST;
+
+#define BRI_SOLID 0
+#define BRI_HOLLOW 1
+#define BRI_HATCHED 2
+#define BRI_PATTERN 3
+#define BRI_MONO_PATTERN 4
+#define BRI_COLOR_PATTERN 5
+
+// Definitions for the pcol_C3 byte of the physical color
+//
+// Some of these definitions have limitations as to when they
+// are valid. They are as follows:
+//
+// C0_BIT color device, phys color, solid brushes if SOLID_COLOR
+// C1_BIT color device, phys color, solid brushes if SOLID_COLOR
+// C2_BIT color device, phys color, solid brushes if SOLID_COLOR
+// C3_BIT color device, phys color, solid brushes if SOLID_COLOR
+// MONO_BIT mono device, phys color
+// ONES_OR_ZEROS color device, phys color, solid brushes if SOLID_COLOR
+// GREY_SCALE color device, dithered solid and hatched brushes
+// SOLID_BRUSH color device, solid brush qualifier
+//
+// There may be brushes where the accelerators could have been set,
+// but wasn't. That's life.
+
+#define C0_BIT 0x01 // C0 color
+#define C1_BIT 0x02 // C1 color
+#define C2_BIT 0x04 // C2 color
+#define C3_BIT 0x08 // C3 color
+#define COLOR_BITS 0x0f // All the color bits
+#define MONO_BIT 0x10 // Monochrome bit
+#define ONES_OR_ZEROS 0x20 // Color is really all 1's or all 0's
+#define GREY_SCALE 0x40 // Indicates a real grey scale brush
+#define SOLID_BRUSH 0x80 // Indicates a solid color brush
+
+#define PTRI_INVERT 0x0001
+#define PTRI_ANIMATE 0x0002
--- /dev/null
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS kernel
+ * PURPOSE: GDI Internal Objects
+ * FILE: subsys/win32k/eng/objects.h
+ * PROGRAMER: Jason Filby
+ * REVISION HISTORY:
+ * 21/8/1999: Created
+ */
+
+typedef struct _BRUSHGDI {
+
+} BRUSHGDI;
+
+typedef struct _CLIPGDI {
+ ULONG NumRegionRects;
+ ULONG NumIntersectRects;
+ RECTL *RegionRects;
+ RECTL *IntersectRects;
+
+ ULONG EnumPos;
+ ENUMRECTS EnumRects;
+} CLIPGDI;
+
+typedef struct _DRVFUNCTIONSGDI {
+ HDEV hdev;
+ DRVFN Functions[INDEX_LAST];
+} DRVFUNCTIONSGDI;
+
+typedef struct _FLOATGDI {
+
+} FLOATGDI;
+
+typedef struct _FONTGDI {
+
+} FONTGDI;
+
+typedef struct _PALGDI {
+ ULONG Mode; // PAL_INDEXED, PAL_BITFIELDS, PAL_RGB, PAL_BGR
+ ULONG NumColors;
+ ULONG *IndexedColors;
+ ULONG RedMask;
+ ULONG GreenMask;
+ ULONG BlueMask;
+} PALGDI;
+
+typedef struct _PATHGDI {
+
+} PATHGDI;
+
+typedef struct _STRGDI {
+
+} STRGDI;
+
+typedef BOOL (*PFN_BitBlt)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PCLIPOBJ,
+ PXLATEOBJ, PRECTL, PPOINTL, PPOINTL,
+ PBRUSHOBJ, PPOINTL, ROP4);
+
+typedef BOOL (*PFN_StretchBlt)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PCLIPOBJ,
+ PXLATEOBJ, PCOLORADJUSTMENT, PPOINTL,
+ PRECTL, PRECTL, PPOINT, ULONG);
+
+typedef BOOL (*PFN_TextOut)(PSURFOBJ, PSTROBJ, PFONTOBJ, PCLIPOBJ,
+ PRECTL, PRECTL, PBRUSHOBJ, PBRUSHOBJ,
+ PPOINTL, MIX);
+
+typedef BOOL (*PFN_Paint)(PSURFOBJ, PCLIPOBJ, PBRUSHOBJ, PPOINTL, MIX);
+
+typedef BOOL (*PFN_StrokePath)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PXFORMOBJ,
+ PBRUSHOBJ, PPOINTL, PLINEATTRS, MIX);
+
+typedef BOOL (*PFN_FillPath)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PBRUSHOBJ,
+ PPOINTL, MIX, ULONG);
+
+typedef BOOL (*PFN_StrokeAndFillPath)(PSURFOBJ, PPATHOBJ, PCLIPOBJ,
+ PXFORMOBJ, PBRUSHOBJ, PLINEATTRS, PBRUSHOBJ,
+ PPOINTL, MIX, ULONG);
+
+typedef BOOL (*PFN_LineTo)(PSURFOBJ, PCLIPOBJ, PBRUSHOBJ,
+ LONG, LONG, LONG, LONG, PRECTL, MIX);
+
+typedef BOOL (*PFN_CopyBits)(PSURFOBJ, PSURFOBJ, PCLIPOBJ,
+ PXLATEOBJ, PRECTL, PPOINTL);
+
+typedef VOID (*PFN_Synchronize)(DHPDEV, PRECTL);
+
+typedef struct _SURFGDI {
+ BYTE BytesPerPixel;
+
+ PFN_BitBlt BitBlt;
+ PFN_StretchBlt StretchBlt;
+ PFN_TextOut TextOut;
+ PFN_Paint Paint;
+ PFN_StrokePath StrokePath;
+ PFN_FillPath FillPath;
+ PFN_StrokeAndFillPath StrokeAndFillPath;
+ PFN_LineTo LineTo;
+ PFN_CopyBits CopyBits;
+ PFN_Synchronize Synchronize;
+ BOOL SynchronizeAccess;
+} SURFGDI;
+
+typedef struct _XFORMGDI {
+
+} XFORMGDI;
+
+typedef struct _XLATEGDI {
+ HPALETTE DestPal;
+ HPALETTE SourcePal;
+
+ ULONG *translationTable;
+} XLATEGDI;
+
+// List of GDI objects
+// FIXME: Make more dynamic
+
+#define MAX_GDI_BRUSHES 255
+#define MAX_GDI_CLIPS 255
+#define MAX_GDI_DRVFUNCTIONS 16
+#define MAX_GDI_FLOATS 255
+#define MAX_GDI_FONTS 255
+#define MAX_GDI_PALS 255
+#define MAX_GDI_PATHS 255
+#define MAX_GDI_STRS 255
+#define MAX_GDI_SURFS 255
+#define MAX_GDI_XFORMS 255
+#define MAX_GDI_XLATES 255