ReactOS  0.4.15-dev-2996-gf777e6b
path.h
Go to the documentation of this file.
1 #pragma once
2 
3 /* DCPATH flPath */
5 {
6  DCPATH_ACTIVE = 0x0001,
7  DCPATH_SAVE = 0x0002,
8  DCPATH_CLOCKWISE = 0x0004,
9 
10  /* ReactOS only */
11  DCPATH_SAVESTATE = 0x80000000
12 };
13 
14 typedef HGDIOBJ HPATH, *PHPATH;
15 
16 typedef enum tagGdiPathState
17 {
21 } GdiPathState;
22 
23 // Path type flags
24 #define PATHTYPE_KEEPME 1
25 #define PATHTYPE_STACK 2
26 
27 /* extended PATHDATA */
28 typedef struct _EXTPATHDATA
29 {
33 
34 typedef struct _PATH
35 {
37  //PVOID ppachain;
43  FLONG flags; // PATHDATA flags.
45  // PATHOBJ;
46  FLONG fl; // Saved flags.
47  ULONG cCurves; // Saved number of lines and Bezier.
48 
49  struct _EPATHOBJ *epo;
50 
51  // Wine/ReactOS Things to convert from:
59 } PATH, *PPATH;
60 
61 typedef struct _EPATHOBJ
62 {
67 
68 #define PATH_AllocPath() ((PPATH) GDIOBJ_AllocObj(GDIObjType_PATH_TYPE))
69 #define PATH_AllocPathWithHandle() ((PPATH) GDIOBJ_AllocObjWithHandle (GDI_OBJECT_TYPE_PATH, sizeof(PATH)))
70 #define PATH_LockPath(hPath) ((PPATH)GDIOBJ_ShareLockObj((HGDIOBJ)hPath, GDI_OBJECT_TYPE_PATH))
71 #define PATH_UnlockPath(pPath) GDIOBJ_vDereferenceObject((POBJ)pPath)
72 
73 
74 #define PATH_IsPathOpen(dclevel) ( ((dclevel).hPath) && ((dclevel).flPath & DCPATH_ACTIVE) )
75 
76 BOOL FASTCALL PATH_Arc (PDC dc, INT x1, INT y1, INT x2, INT y2, INT xStart, INT yStart, INT xEnd, INT yEnd, INT direction, INT lines);
80 BOOL FASTCALL PATH_PolyBezier (PDC dc, const POINT *pts, DWORD cbPoints);
81 BOOL FASTCALL PATH_PolyBezierTo (PDC dc, const POINT *pts, DWORD cbPoints);
82 BOOL FASTCALL PATH_PolyDraw(PDC dc, const POINT *pts, const BYTE *types, DWORD cbPoints);
83 BOOL FASTCALL PATH_PolylineTo (PDC dc, const POINT *pts, DWORD cbPoints);
84 BOOL FASTCALL PATH_PolyPolygon ( PDC dc, const POINT* pts, const INT* counts, UINT polygons);
85 BOOL FASTCALL PATH_PolyPolyline( PDC dc, const POINT* pts, const DWORD* counts, DWORD polylines);
87 BOOL PATH_RoundRect(DC *dc, INT x1, INT y1, INT x2, INT y2, INT ell_width, INT ell_height);
88 BOOL FASTCALL PATH_PathToRegion (PPATH pPath, INT nPolyFillMode, PREGION Rgn);
90 
91 BOOL FASTCALL PATH_AddEntry (PPATH pPath, const POINT *pPoint, BYTE flags);
94 BOOL FASTCALL PATH_FillPathEx(PDC dc, PPATH pPath, PBRUSH pbrFill);
96 
97 BOOL FASTCALL PATH_ReserveEntries (PPATH pPath, INT numEntries);
99 
102 
104 
105 BOOL PATH_RestorePath( DC *, DC *);
106 BOOL PATH_SavePath( DC *, DC *);
107 BOOL IntGdiFillRgn(PDC pdc, PREGION prgn, PBRUSH pbrFill);
109 IntGdiWidenPath(PPATH pPath, UINT penWidth, UINT penStyle, FLOAT eMiterLimit);
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
int numEntriesAllocated
Definition: path.h:56
BOOL FASTCALL PATH_PolyPolygon(PDC dc, const POINT *pts, const INT *counts, UINT polygons)
Definition: path.c:1288
PEXTPATHDATA ppdLast
Definition: path.h:42
PEXTPATHDATA ppdCurrent
Definition: path.h:44
_In_ int _Inout_ LPRECT lprc
Definition: winuser.h:4440
CLIPOBJ * pco
Definition: path.h:65
BOOL FASTCALL PATH_ReserveEntries(PPATH pPath, INT numEntries)
Definition: path.c:296
BOOL FASTCALL PATH_PolyPolyline(PDC dc, const POINT *pts, const DWORD *counts, DWORD polylines)
Definition: path.c:1338
BOOL FASTCALL PATH_AddFlatBezier(PPATH pPath, POINT *pt, BOOL closed)
Definition: path.c:1378
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
tagGdiPathState
Definition: path.h:16
PPATH FASTCALL IntGdiWidenPath(PPATH pPath, UINT penWidth, UINT penStyle, FLOAT eMiterLimit)
Definition: path.c:1772
BOOL FASTCALL PATH_Delete(HPATH hPath)
Definition: path.c:90
#define pt(x, y)
Definition: drawing.c:79
FLONG flags
Definition: path.h:43
Definition: path.h:61
GLuint GLuint GLsizei count
Definition: gl.h:1545
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
BOOL IntGdiFillRgn(PDC pdc, PREGION prgn, PBRUSH pbrFill)
Definition: path.h:34
FLONG flType
Definition: path.h:40
ULONG cCurves
Definition: path.h:47
BOOL FASTCALL PATH_Rectangle(PDC dc, INT x1, INT y1, INT x2, INT y2)
Definition: path.c:627
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
BOOL PATH_RoundRect(DC *dc, INT x1, INT y1, INT x2, INT y2, INT ell_width, INT ell_height)
Definition: path.c:675
BOOL PATH_SavePath(DC *, DC *)
Definition: path.c:187
struct _EXTPATHDATA EXTPATHDATA
struct _PATH * PPATH
BOOL FASTCALL PATH_PathToRegion(PPATH pPath, INT nPolyFillMode, PREGION Rgn)
Definition: path.c:1451
#define FASTCALL
Definition: nt_native.h:50
int32_t INT
Definition: typedefs.h:58
VOID FASTCALL IntGetCurrentPositionEx(PDC dc, LPPOINT pt)
Definition: line.c:128
BOOL FASTCALL PATH_LineTo(PDC dc, INT x, INT y)
Definition: path.c:583
PPATH FASTCALL PATH_FlattenPath(PPATH pPath)
Definition: path.c:1407
BOOL FASTCALL PATH_PolyDraw(PDC dc, const POINT *pts, const BYTE *types, DWORD cbPoints)
Definition: path.c:1180
PATHOBJ po
Definition: path.h:63
_DCPATHFLAGS
Definition: path.h:4
unsigned int BOOL
Definition: ntddk_ex.h:94
Definition: path.h:18
struct _EXTPATHDATA * PEXTPATHDATA
const WCHAR * str
POINT * pPoints
Definition: path.h:53
BOOL FASTCALL PATH_FillPath(PDC dc, PPATH pPath)
Definition: path.c:1506
PPATH pPath
Definition: path.h:64
Definition: region.h:7
int numEntriesUsed
Definition: path.h:55
unsigned long FLONG
Definition: ntbasedef.h:366
BYTE * pFlags
Definition: path.h:54
Definition: types.h:100
FLONG fl
Definition: path.h:46
eMaj lines
Definition: tritemp.h:206
VOID FASTCALL PATH_EmptyPath(PPATH pPath)
Definition: path.c:246
RECTFX rcfxBoundBox
Definition: path.h:38
POINT pos
Definition: path.h:58
BOOL PATH_RestorePath(DC *, DC *)
Definition: path.c:209
Definition: polytest.cpp:40
Definition: cmds.c:130
BOOL FASTCALL PATH_PolyBezier(PDC dc, const POINT *pts, DWORD cbPoints)
Definition: path.c:1154
struct _EXTPATHDATA * ppdNext
Definition: path.h:31
BOOL FASTCALL PATH_FillPathEx(PDC dc, PPATH pPath, PBRUSH pbrFill)
Definition: path.c:1515
unsigned long DWORD
Definition: ntddk_ex.h:95
HGDIOBJ HPATH
Definition: path.h:14
GLbitfield flags
Definition: glext.h:7161
BOOL FASTCALL PATH_StrokePath(DC *dc, PPATH pPath)
Definition: path.c:1598
PATHDATA pd
Definition: path.h:30
struct _EPATHOBJ EPATHOBJ
PEXTPATHDATA ppdFirst
Definition: path.h:41
struct _EPATHOBJ * epo
Definition: path.h:49
struct _PATH PATH
BOOL FASTCALL PATH_Arc(PDC dc, INT x1, INT y1, INT x2, INT y2, INT xStart, INT yStart, INT xEnd, INT yEnd, INT direction, INT lines)
Definition: path.c:955
BOOL FASTCALL PATH_ExtTextOut(PDC dc, INT x, INT y, UINT flags, const RECTL *lprc, LPCWSTR str, UINT count, const INT *dx)
Definition: path.c:2335
POINTFX ptfxSubPathStart
Definition: path.h:39
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3706
HGDIOBJ * PHPATH
Definition: path.h:14
unsigned char BYTE
Definition: xxhash.c:193
BOOL FASTCALL PATH_PolyBezierTo(PDC dc, const POINT *pts, DWORD cbPoints)
Definition: path.c:1131
struct _EPATHOBJ * PEPATHOBJ
enum tagGdiPathState GdiPathState
Definition: path.h:19
BOOL FASTCALL PATH_PolylineTo(PDC dc, const POINT *pts, DWORD cbPoints)
Definition: path.c:1264
BOOL newStroke
Definition: path.h:57
BOOL PATH_Ellipse(PDC dc, INT x1, INT y1, INT x2, INT y2)
Definition: path.c:782
unsigned int UINT
Definition: ndis.h:50
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLint dx
Definition: linetemp.h:97
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3706
VOID FASTCALL IntGdiCloseFigure(PPATH pPath)
Definition: path.c:108
float FLOAT
Definition: typedefs.h:69
unsigned int ULONG
Definition: retypes.h:1
BOOL FASTCALL PATH_AddEntry(PPATH pPath, const POINT *pPoint, BYTE flags)
Definition: path.c:262
BASEOBJECT BaseObject
Definition: path.h:36
static const WCHAR dc[]
FLONG state
Definition: path.h:52