diff --git a/reactos/subsystems/win32/win32k/include/path.h b/reactos/subsystems/win32/win32k/include/path.h index a5c20eff8bd..62761d615ae 100644 --- a/reactos/subsystems/win32/win32k/include/path.h +++ b/reactos/subsystems/win32/win32k/include/path.h @@ -1,6 +1,36 @@ #ifndef _WIN32K_PATH_H #define _WIN32K_PATH_H +typedef struct _PATH +{ + BASEOBJECT BaseObject; + + RECTFX rcfxBoundBox; + POINTFX ptfxSubPathStart; + + // Things to convert from: + DWORD state; + POINT *pPoints; + BYTE *pFlags; + int numEntriesUsed; + int numEntriesAllocated; + BOOL newStroke; +} PATH, *PPATH; + +typedef struct _EPATHOBJ +{ + PATHOBJ po; + PPATH pPath; +} EPATHOBJ, *PEPATHOBJ; + +#define PATH_AllocPath() ((PPATH) GDIOBJ_AllocObj(GDIObjType_PATH_TYPE)) +#define PATH_AllocPathWithHandle() ((PPATH) GDIOBJ_AllocObjWithHandle (GDI_OBJECT_TYPE_PATH)) +#define PATH_FreePath(pPath) GDIOBJ_FreeObj((POBJ)pPath, GDIObjType_PATH_TYPE) +#define PATH_FreePathByHandle(hPath) GDIOBJ_FreeObjbyHandle((HGDIOBJ)hPath, GDI_OBJECT_TYPE_PATH) +#define PATH_LockPath(hPath) ((PROSRGNDATA)GDIOBJ_LockObj((HGDIOBJ)hPath, GDI_OBJECT_TYPE_PATH)) +#define PATH_UnlockPath(pPath) GDIOBJ_UnlockObjByPtr((POBJ)pPath) + + #define PATH_IsPathOpen(path) ((path).state==PATH_Open) BOOL FASTCALL PATH_Arc (PDC dc, INT x1, INT y1, INT x2, INT y2, INT xStart, INT yStart, INT xEnd, INT yEnd, INT lines); diff --git a/reactos/subsystems/win32/win32k/objects/gdiobj.c b/reactos/subsystems/win32/win32k/objects/gdiobj.c index 343167fc443..4fdc4060871 100644 --- a/reactos/subsystems/win32/win32k/objects/gdiobj.c +++ b/reactos/subsystems/win32/win32k/objects/gdiobj.c @@ -46,7 +46,7 @@ OBJ_TYPE_INFO ObjTypeInfo[] = {1, sizeof(ROSRGNDATA), TAG_REGION, REGION_Cleanup}, /* 04 RGN */ {1, sizeof(BITMAPOBJ), TAG_SURFACE, BITMAP_Cleanup}, /* 05 SURFACE */ {1, sizeof(CLIENTOBJ), TAG_CLIENTOBJ, GDI_CleanupDummy}, /* 06 CLIENTOBJ: METADC,... */ - {0, 0, TAG_PATH, NULL}, /* 07 PATH, unused */ + {1, sizeof(PATH), TAG_PATH, GDI_CleanupDummy}, /* 07 PATH */ {1, sizeof(PALGDI), TAG_PALETTE, PALETTE_Cleanup}, /* 08 PAL */ {1, sizeof(COLORSPACE), TAG_ICMLCS, GDI_CleanupDummy}, /* 09 ICMLCS, */ {1, sizeof(TEXTOBJ), TAG_LFONT, GDI_CleanupDummy}, /* 0a LFONT */