From 85a3397af9439a956d2c600a3da3892e57105ec7 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sun, 29 Jul 2012 11:20:05 +0000 Subject: [PATCH] [WIN32K] - Change some #defines to enums - Cleanup some obsolete stuff svn path=/trunk/; revision=56979 --- reactos/win32ss/CMakeLists.txt | 2 +- reactos/win32ss/gdi/eng/engevent.h | 5 +- reactos/win32ss/gdi/eng/inteng.h | 38 +++++++------- reactos/win32ss/gdi/eng/ldevobj.h | 6 +-- reactos/win32ss/gdi/eng/pdevobj.h | 36 +++++++------ reactos/win32ss/gdi/eng/surface.h | 36 +++++++------ .../win32ss/gdi/eng/{xlate.c => xlateobj.c} | 0 reactos/win32ss/gdi/ntgdi/coord.h | 11 +--- reactos/win32ss/gdi/ntgdi/dc.h | 52 +++++++++++-------- reactos/win32ss/gdi/ntgdi/device.c | 10 ++-- reactos/win32ss/gdi/ntgdi/gdiobj.h | 13 +++-- reactos/win32ss/gdi/ntgdi/palette.h | 41 ++++++++------- reactos/win32ss/gdi/ntgdi/path.h | 16 +++--- reactos/win32ss/user/ntuser/metric.c | 6 +-- 14 files changed, 142 insertions(+), 130 deletions(-) rename reactos/win32ss/gdi/eng/{xlate.c => xlateobj.c} (100%) diff --git a/reactos/win32ss/CMakeLists.txt b/reactos/win32ss/CMakeLists.txt index 93da4fe6fb4..f66ef5b98c6 100644 --- a/reactos/win32ss/CMakeLists.txt +++ b/reactos/win32ss/CMakeLists.txt @@ -79,7 +79,7 @@ list(APPEND SOURCE 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 diff --git a/reactos/win32ss/gdi/eng/engevent.h b/reactos/win32ss/gdi/eng/engevent.h index be864990d2e..74c76651a14 100644 --- a/reactos/win32ss/gdi/eng/engevent.h +++ b/reactos/win32ss/gdi/eng/engevent.h @@ -3,6 +3,9 @@ // // Flags for the fFlags field of ENG_EVENT // -#define ENG_EVENT_USERMAPPED 0x01 +enum _EVENTFLAGS +{ + ENG_EVENT_USERMAPPED = 0x01 +}; /* EOF */ diff --git a/reactos/win32ss/gdi/eng/inteng.h b/reactos/win32ss/gdi/eng/inteng.h index 2e183428e00..d4a0ec473e2 100644 --- a/reactos/win32ss/gdi/eng/inteng.h +++ b/reactos/win32ss/gdi/eng/inteng.h @@ -2,7 +2,7 @@ typedef ULONG HCLIP; -#define ENUM_RECT_LIMIT 50 +#define ENUM_RECT_LIMIT 50 typedef struct _RECT_ENUM { @@ -17,23 +17,25 @@ typedef struct tagSPAN 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)) diff --git a/reactos/win32ss/gdi/eng/ldevobj.h b/reactos/win32ss/gdi/eng/ldevobj.h index 45fe5ee23a7..82918f32ab1 100644 --- a/reactos/win32ss/gdi/eng/ldevobj.h +++ b/reactos/win32ss/gdi/eng/ldevobj.h @@ -1,11 +1,7 @@ -#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 { diff --git a/reactos/win32ss/gdi/eng/pdevobj.h b/reactos/win32ss/gdi/eng/pdevobj.h index 028b4111438..77f315b65ab 100644 --- a/reactos/win32ss/gdi/eng/pdevobj.h +++ b/reactos/win32ss/gdi/eng/pdevobj.h @@ -2,22 +2,25 @@ #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 ***********************************************************/ @@ -150,7 +153,6 @@ typedef struct _PDEVOBJ /* Globals ********************************************************************/ extern PPDEVOBJ gppdevPrimary; -#define pPrimarySurface gppdevPrimary /* Function prototypes ********************************************************/ diff --git a/reactos/win32ss/gdi/eng/surface.h b/reactos/win32ss/gdi/eng/surface.h index 86d054ed789..cbfeac99484 100644 --- a/reactos/win32ss/gdi/eng/surface.h +++ b/reactos/win32ss/gdi/eng/surface.h @@ -1,7 +1,5 @@ #pragma once -#define PDEV_SURFACE 0x80000000 - /* GDI surface object */ typedef struct _SURFACE { @@ -39,7 +37,9 @@ 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 @@ -65,22 +65,24 @@ typedef struct _SURFACE //#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 */ diff --git a/reactos/win32ss/gdi/eng/xlate.c b/reactos/win32ss/gdi/eng/xlateobj.c similarity index 100% rename from reactos/win32ss/gdi/eng/xlate.c rename to reactos/win32ss/gdi/eng/xlateobj.c diff --git a/reactos/win32ss/gdi/ntgdi/coord.h b/reactos/win32ss/gdi/ntgdi/coord.h index adf8626bb18..2f3386b2410 100644 --- a/reactos/win32ss/gdi/ntgdi/coord.h +++ b/reactos/win32ss/gdi/ntgdi/coord.h @@ -141,14 +141,6 @@ DC_vXformWorldToDevice( 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( @@ -157,6 +149,5 @@ GreModifyWorldTransform( DWORD dwMode); VOID FASTCALL IntMirrorWindowOrg(PDC); -void FASTCALL IntFixIsotropicMapping(PDC); -LONG FASTCALL IntCalcFillOrigin(PDC); +int APIENTRY IntGdiSetMapMode(PDC, int); diff --git a/reactos/win32ss/gdi/ntgdi/dc.h b/reactos/win32ss/gdi/ntgdi/dc.h index 5ba26b629c0..15583b29204 100644 --- a/reactos/win32ss/gdi/ntgdi/dc.h +++ b/reactos/win32ss/gdi/ntgdi/dc.h @@ -7,34 +7,40 @@ #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 { - DCTYPE_DIRECT = 0, - DCTYPE_MEMORY = 1, - DCTYPE_INFO = 2, + 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; diff --git a/reactos/win32ss/gdi/ntgdi/device.c b/reactos/win32ss/gdi/ntgdi/device.c index 42e2b6efa5a..cb17ac8c472 100644 --- a/reactos/win32ss/gdi/ntgdi/device.c +++ b/reactos/win32ss/gdi/ntgdi/device.c @@ -34,11 +34,11 @@ IntCreatePrimarySurface() /* 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 */ @@ -48,7 +48,7 @@ IntCreatePrimarySurface() co_IntShowDesktop(IntGetActiveDesktop(), SurfSize.cx, SurfSize.cy); // Init Primary Displays Device Capabilities. - PDEVOBJ_vGetDeviceCaps(pPrimarySurface, &GdiHandleTable->DevCaps); + PDEVOBJ_vGetDeviceCaps(gppdevPrimary, &GdiHandleTable->DevCaps); return TRUE; } @@ -64,7 +64,7 @@ IntEnumHDev(VOID) { // I guess we will soon have more than one primary surface. // This will do for now. - return pPrimarySurface; + return gppdevPrimary; } diff --git a/reactos/win32ss/gdi/ntgdi/gdiobj.h b/reactos/win32ss/gdi/ntgdi/gdiobj.h index a474f67d536..0d47a4834a3 100644 --- a/reactos/win32ss/gdi/ntgdi/gdiobj.h +++ b/reactos/win32ss/gdi/ntgdi/gdiobj.h @@ -6,7 +6,7 @@ #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 { @@ -57,12 +57,15 @@ enum BASEFLAGS 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 diff --git a/reactos/win32ss/gdi/ntgdi/palette.h b/reactos/win32ss/gdi/ntgdi/palette.h index e137bd77698..4eae7c893a8 100644 --- a/reactos/win32ss/gdi/ntgdi/palette.h +++ b/reactos/win32ss/gdi/ntgdi/palette.h @@ -1,26 +1,29 @@ #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 { diff --git a/reactos/win32ss/gdi/ntgdi/path.h b/reactos/win32ss/gdi/ntgdi/path.h index bb4a9d3074b..86eccd07dc3 100644 --- a/reactos/win32ss/gdi/ntgdi/path.h +++ b/reactos/win32ss/gdi/ntgdi/path.h @@ -1,11 +1,15 @@ #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; diff --git a/reactos/win32ss/user/ntuser/metric.c b/reactos/win32ss/user/ntuser/metric.c index 3ad70906844..15c8a0b4747 100644 --- a/reactos/win32ss/user/ntuser/metric.c +++ b/reactos/win32ss/user/ntuser/metric.c @@ -34,15 +34,15 @@ InitMetrics(VOID) } /* 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 */