gdi/eng/surface.c
gdi/eng/transblt.c
gdi/eng/engwindow.c
- gdi/eng/xlate.c
+ gdi/eng/xlateobj.c
user/ntuser/main.c
user/ntuser/misc/file.c
user/ntuser/misc/math.c
//
// Flags for the fFlags field of ENG_EVENT
//
-#define ENG_EVENT_USERMAPPED 0x01
+enum _EVENTFLAGS
+{
+ ENG_EVENT_USERMAPPED = 0x01
+};
/* EOF */
typedef ULONG HCLIP;
-#define ENUM_RECT_LIMIT 50
+#define ENUM_RECT_LIMIT 50
typedef struct _RECT_ENUM
{
ULONG Width;
} SPAN, *PSPAN;
-#define R3_OPINDEX_NOOP 0xAA
-
-#define R3_OPINDEX_BLACKNESS 0x00
-#define R3_OPINDEX_NOTSRCERASE 0x11
-#define R3_OPINDEX_NOTSRCCOPY 0x33
-#define R3_OPINDEX_SRCERASE 0x44
-#define R3_OPINDEX_DSTINVERT 0x55
-#define R3_OPINDEX_PATINVERT 0x5A
-#define R3_OPINDEX_SRCINVERT 0x66
-#define R3_OPINDEX_SRCAND 0x88
-#define R3_OPINDEX_MERGEPAINT 0xBB
-#define R3_OPINDEX_MERGECOPY 0xC0
-#define R3_OPINDEX_SRCCOPY 0xCC
-#define R3_OPINDEX_SRCPAINT 0xEE
-#define R3_OPINDEX_PATCOPY 0xF0
-#define R3_OPINDEX_PATPAINT 0xFB
-#define R3_OPINDEX_WHITENESS 0xFF
+enum _R3_ROPCODES
+{
+ R3_OPINDEX_NOOP = 0xAA,
+ R3_OPINDEX_BLACKNESS = 0x00,
+ R3_OPINDEX_NOTSRCERASE = 0x11,
+ R3_OPINDEX_NOTSRCCOPY = 0x33,
+ R3_OPINDEX_SRCERASE = 0x44,
+ R3_OPINDEX_DSTINVERT = 0x55,
+ R3_OPINDEX_PATINVERT = 0x5A,
+ R3_OPINDEX_SRCINVERT = 0x66,
+ R3_OPINDEX_SRCAND = 0x88,
+ R3_OPINDEX_MERGEPAINT = 0xBB,
+ R3_OPINDEX_MERGECOPY = 0xC0,
+ R3_OPINDEX_SRCCOPY = 0xCC,
+ R3_OPINDEX_SRCPAINT = 0xEE,
+ R3_OPINDEX_PATCOPY = 0xF0,
+ R3_OPINDEX_PATPAINT = 0xFB,
+ R3_OPINDEX_WHITENESS = 0xFF
+};
#define ROP2_TO_MIX(Rop2) (((Rop2) << 8) | (Rop2))
-#ifdef __GNUC__
-/* HACK, for bug in ld. Will be removed soon. */
-#define __ImageBase _image_base__
-#endif
extern IMAGE_DOS_HEADER __ImageBase;
-#define GDI_ENGINE_VERSION DDI_DRIVER_VERSION_NT5_01
+static const unsigned GDI_ENGINE_VERSION = DDI_DRIVER_VERSION_NT5_01;
typedef enum
{
#define __WIN32K_PDEVOBJ_H
/* PDEVOBJ flags */
-#define PDEV_DISPLAY 0x00000001 /* Display device */
-#define PDEV_HARDWARE_POINTER 0x00000002 /* Supports hardware cursor */
-#define PDEV_SOFTWARE_POINTER 0x00000004
-#define PDEV_GOTFONTS 0x00000040 /* Has font driver */
-#define PDEV_PRINTER 0x00000080
-#define PDEV_ALLOCATEDBRUSHES 0x00000100
-#define PDEV_HTPAL_IS_DEVPAL 0x00000200
-#define PDEV_DISABLED 0x00000400
-#define PDEV_SYNCHRONIZE_ENABLED 0x00000800
-#define PDEV_FONTDRIVER 0x00002000 /* Font device */
-#define PDEV_GAMMARAMP_TABLE 0x00004000
-#define PDEV_UMPD 0x00008000
-#define PDEV_SHARED_DEVLOCK 0x00010000
-#define PDEV_META_DEVICE 0x00020000
-#define PDEV_DRIVER_PUNTED_CALL 0x00040000 /* Driver calls back to GDI engine */
-#define PDEV_CLONE_DEVICE 0x00080000
+enum _PDEVFLAGS
+{
+ PDEV_DISPLAY = 0x00000001, /* Display device */
+ PDEV_HARDWARE_POINTER = 0x00000002, /* Supports hardware cursor */
+ PDEV_SOFTWARE_POINTER = 0x00000004,
+ PDEV_GOTFONTS = 0x00000040, /* Has font driver */
+ PDEV_PRINTER = 0x00000080,
+ PDEV_ALLOCATEDBRUSHES = 0x00000100,
+ PDEV_HTPAL_IS_DEVPAL = 0x00000200,
+ PDEV_DISABLED = 0x00000400,
+ PDEV_SYNCHRONIZE_ENABLED = 0x00000800,
+ PDEV_FONTDRIVER = 0x00002000, /* Font device */
+ PDEV_GAMMARAMP_TABLE = 0x00004000,
+ PDEV_UMPD = 0x00008000,
+ PDEV_SHARED_DEVLOCK = 0x00010000,
+ PDEV_META_DEVICE = 0x00020000,
+ PDEV_DRIVER_PUNTED_CALL = 0x00040000, /* Driver calls back to GDI engine */
+ PDEV_CLONE_DEVICE = 0x00080000
+};
/* Type definitions ***********************************************************/
/* Globals ********************************************************************/
extern PPDEVOBJ gppdevPrimary;
-#define pPrimarySurface gppdevPrimary
/* Function prototypes ********************************************************/
#pragma once
-#define PDEV_SURFACE 0x80000000
-
/* GDI surface object */
typedef struct _SURFACE
{
DWORD biClrImportant;
} SURFACE, *PSURFACE;
-// flags field:
+/* flags field */
+enum _SURFACEFLAGS
+{
//#define HOOK_BITBLT 0x00000001
//#define HOOK_STRETCHBLT 0x00000002
//#define HOOK_PLGBLT 0x00000004
//#else
// #define HOOK_FLAGS 0x0003B5EF
//#endif
-#define UMPD_SURFACE 0x00040000
-#define MIRROR_SURFACE 0x00080000
-#define DIRECTDRAW_SURFACE 0x00100000
-#define DRIVER_CREATED_SURFACE 0x00200000
-#define ENG_CREATE_DEVICE_SURFACE 0x00400000
-#define DDB_SURFACE 0x00800000
-#define LAZY_DELETE_SURFACE 0x01000000
-#define BANDING_SURFACE 0x02000000
-#define API_BITMAP 0x04000000
-#define PALETTE_SELECT_SET 0x08000000
-#define UNREADABLE_SURFACE 0x10000000
-#define DYNAMIC_MODE_PALETTE 0x20000000
-#define ABORT_SURFACE 0x40000000
-#define PDEV_SURFACE 0x80000000
+ UMPD_SURFACE = 0x00040000,
+ MIRROR_SURFACE = 0x00080000,
+ DIRECTDRAW_SURFACE = 0x00100000,
+ DRIVER_CREATED_SURFACE = 0x00200000,
+ ENG_CREATE_DEVICE_SURFACE = 0x00400000,
+ DDB_SURFACE = 0x00800000,
+ LAZY_DELETE_SURFACE = 0x01000000,
+ BANDING_SURFACE = 0x02000000,
+ API_BITMAP = 0x04000000,
+ PALETTE_SELECT_SET = 0x08000000,
+ UNREADABLE_SURFACE = 0x10000000,
+ DYNAMIC_MODE_PALETTE = 0x20000000,
+ ABORT_SURFACE = 0x40000000,
+ PDEV_SURFACE = 0x80000000
+};
#define BMF_POOLALLOC 0x100
+#define PDEV_SURFACE 0x80000000
/* Internal interface */
XFORMOBJ_bApplyXform(&xo, XF_LTOL, cNumPoints, pptlDest, pptlSource);
}
-int APIENTRY IntGdiSetMapMode(PDC, int);
-
-BOOL NTAPI
-IntGdiCombineTransform(
- XFORML *pxformDest,
- XFORML *pxform1,
- XFORML *pxform2);
-
BOOL
NTAPI
GreModifyWorldTransform(
DWORD dwMode);
VOID FASTCALL IntMirrorWindowOrg(PDC);
-void FASTCALL IntFixIsotropicMapping(PDC);
-LONG FASTCALL IntCalcFillOrigin(PDC);
+int APIENTRY IntGdiSetMapMode(PDC, int);
#define DCB_WINDOWMGR 0x8000 /* Queries the Windows bounding rectangle instead of the application's */
/* flFontState */
-#define DC_DIRTYFONT_XFORM 1
-#define DC_DIRTYFONT_LFONT 2
-#define DC_UFI_MAPPING 4
+enum _FONT_STATE
+{
+ DC_DIRTYFONT_XFORM = 1,
+ DC_DIRTYFONT_LFONT = 2,
+ DC_UFI_MAPPING = 4
+};
/* fl */
#define DC_FL_PAL_BACK 1
-#define DC_DISPLAY 1
-#define DC_DIRECT 2
-#define DC_CANCELED 4
-#define DC_PERMANANT 0x08
-#define DC_DIRTY_RAO 0x10
-#define DC_ACCUM_WMGR 0x20
-#define DC_ACCUM_APP 0x40
-#define DC_RESET 0x80
-#define DC_SYNCHRONIZEACCESS 0x100
-#define DC_EPSPRINTINGESCAPE 0x200
-#define DC_TEMPINFODC 0x400
-#define DC_FULLSCREEN 0x800
-#define DC_IN_CLONEPDEV 0x1000
-#define DC_REDIRECTION 0x2000
-#define DC_SHAREACCESS 0x4000
-
-typedef enum
+enum _DCFLAGS
+{
+ DC_DISPLAY = 0x0001,
+ DC_DIRECT = 0x0002,
+ DC_CANCELED = 0x0004,
+ DC_PERMANANT = 0x0008,
+ DC_DIRTY_RAO = 0x0010,
+ DC_ACCUM_WMGR = 0x0020,
+ DC_ACCUM_APP = 0x0040,
+ DC_RESET = 0x0080,
+ DC_SYNCHRONIZEACCESS = 0x0100,
+ DC_EPSPRINTINGESCAPE = 0x0200,
+ DC_TEMPINFODC = 0x0400,
+ DC_FULLSCREEN = 0x0800,
+ DC_IN_CLONEPDEV = 0x1000,
+ DC_REDIRECTION = 0x2000,
+ DC_SHAREACCESS = 0x4000
+};
+
+typedef enum _DCTYPE
{
- DCTYPE_DIRECT = 0,
- DCTYPE_MEMORY = 1,
- DCTYPE_INFO = 2,
+ DCTYPE_DIRECT = 0,
+ DCTYPE_MEMORY = 1,
+ DCTYPE_INFO = 2,
} DCTYPE;
/* Attach monitor */
UserAttachMonitor((HDEV)gppdevPrimary);
- DPRINT("IntCreatePrimarySurface, pPrimarySurface=%p, pPrimarySurface->pSurface = %p\n",
- pPrimarySurface, pPrimarySurface->pSurface);
+ DPRINT("IntCreatePrimarySurface, gppdevPrimary=%p, gppdevPrimary->pSurface = %p\n",
+ gppdevPrimary, gppdevPrimary->pSurface);
/* Create surface */
- pso = &PDEVOBJ_pSurface(pPrimarySurface)->SurfObj;
+ pso = &PDEVOBJ_pSurface(gppdevPrimary)->SurfObj;
SurfSize = pso->sizlBitmap;
/* Put the pointer in the center of the screen */
co_IntShowDesktop(IntGetActiveDesktop(), SurfSize.cx, SurfSize.cy);
// Init Primary Displays Device Capabilities.
- PDEVOBJ_vGetDeviceCaps(pPrimarySurface, &GdiHandleTable->DevCaps);
+ PDEVOBJ_vGetDeviceCaps(gppdevPrimary, &GdiHandleTable->DevCaps);
return TRUE;
}
{
// I guess we will soon have more than one primary surface.
// This will do for now.
- return pPrimarySurface;
+ return gppdevPrimary;
}
#pragma once
/* The first 10 entries are never used in windows, they are empty */
-#define RESERVE_ENTRIES_COUNT 10
+static const unsigned RESERVE_ENTRIES_COUNT = 10;
typedef struct _GDI_HANDLE_TABLE
{
typedef struct _CLIENTOBJ
{
- BASEOBJECT BaseObject;
+ BASEOBJECT BaseObject;
} CLIENTOBJ, *PCLIENTOBJ;
-#define GDIOBJFLAG_DEFAULT (0x0)
-#define GDIOBJFLAG_IGNOREPID (0x1)
-#define GDIOBJFLAG_IGNORELOCK (0x2)
+enum _GDIOBJLAGS
+{
+ GDIOBJFLAG_DEFAULT = 0x00,
+ GDIOBJFLAG_IGNOREPID = 0x01,
+ GDIOBJFLAG_IGNORELOCK = 0x02
+};
INIT_FUNCTION
NTSTATUS
#pragma once
// Palette mode flags
-#ifndef __WINDDI_H // Defined in ddk/winddi.h
-#define PAL_INDEXED 0x00000001 // Indexed palette
-#define PAL_BITFIELDS 0x00000002 // Bit fields used for DIB, DIB section
-#define PAL_RGB 0x00000004 // Red, green, blue
-#define PAL_BGR 0x00000008 // Blue, green, red
-#define PAL_CMYK 0x00000010 // Cyan, magenta, yellow, black
+enum _PALFLAGS
+{
+#ifndef _WINDDI_ // Defined in ddk/winddi.h
+ PAL_INDEXED = 0x00000001, // Indexed palette
+ PAL_BITFIELDS = 0x00000002, // Bit fields used for DIB, DIB section
+ PAL_RGB = 0x00000004, // Red, green, blue
+ PAL_BGR = 0x00000008, // Blue, green, red
+ PAL_CMYK = 0x00000010, // Cyan, magenta, yellow, black
#endif
-#define PAL_DC 0x00000100
-#define PAL_FIXED 0x00000200 // Can't be changed
-#define PAL_FREE 0x00000400
-#define PAL_MANAGED 0x00000800
-#define PAL_NOSTATIC 0x00001000
-#define PAL_MONOCHROME 0x00002000 // Two colors only
-#define PAL_BRUSHHACK 0x00004000
-#define PAL_DIBSECTION 0x00008000 // Used for a DIB section
-#define PAL_NOSTATIC256 0x00010000
-#define PAL_HT 0x00100000 // Halftone palette
-#define PAL_RGB16_555 0x00200000 // 16-bit RGB in 555 format
-#define PAL_RGB16_565 0x00400000 // 16-bit RGB in 565 format
-#define PAL_GAMMACORRECTION 0x00800000 // Correct colors
+ PAL_DC = 0x00000100,
+ PAL_FIXED = 0x00000200, // Can't be changed
+ PAL_FREE = 0x00000400,
+ PAL_MANAGED = 0x00000800,
+ PAL_NOSTATIC = 0x00001000,
+ PAL_MONOCHROME = 0x00002000, // Two colors only
+ PAL_BRUSHHACK = 0x00004000,
+ PAL_DIBSECTION = 0x00008000, // Used for a DIB section
+ PAL_NOSTATIC256 = 0x00010000,
+ PAL_HT = 0x00100000, // Halftone palette
+ PAL_RGB16_555 = 0x00200000, // 16-bit RGB in 555 format
+ PAL_RGB16_565 = 0x00400000, // 16-bit RGB in 565 format
+ PAL_GAMMACORRECTION = 0x00800000, // Correct colors
+};
typedef struct _PALETTE
{
#pragma once
- /* DCPATH flPath */
-#define DCPATH_ACTIVE 0x0001
-#define DCPATH_SAVE 0x0002
-#define DCPATH_CLOCKWISE 0x0004
-// ReactOS only
-#define DCPATH_SAVESTATE 0x80000000
+/* DCPATH flPath */
+enum _DCPATHFLAGS
+{
+ DCPATH_ACTIVE = 0x0001,
+ DCPATH_SAVE = 0x0002,
+ DCPATH_CLOCKWISE = 0x0004,
+
+ /* ReactOS only */
+ DCPATH_SAVESTATE = 0x80000000
+};
typedef HGDIOBJ HPATH, *PHPATH;
}
/* FIXME: HACK, due to missing PDEV on first init */
- if (!pPrimarySurface)
+ if (!gppdevPrimary)
{
Width = 640;
Height = 480;
}
else
{
- Width = pPrimarySurface->gdiinfo.ulHorzRes;
- Height = pPrimarySurface->gdiinfo.ulVertRes;
+ Width = gppdevPrimary->gdiinfo.ulHorzRes;
+ Height = gppdevPrimary->gdiinfo.ulVertRes;
}
/* Screen sizes */