ReactOS 0.4.15-dev-8236-g99f0937
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,
9
10 /* ReactOS only */
11 DCPATH_SAVESTATE = 0x80000000
12};
13
15
16typedef enum tagGdiPathState
17{
22
23// Path type flags
24#define PATHTYPE_KEEPME 1
25#define PATHTYPE_STACK 2
26
27/* extended PATHDATA */
28typedef struct _EXTPATHDATA
29{
33
34typedef 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:
60
61typedef 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#define PATH_IsPathOpen(dclevel) ( ((dclevel).hPath) && ((dclevel).flPath & DCPATH_ACTIVE) )
73
74BOOL 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);
80BOOL FASTCALL PATH_PolyBezier (PDC dc, const POINT *pts, DWORD cbPoints);
81BOOL FASTCALL PATH_PolyBezierTo (PDC dc, const POINT *pts, DWORD cbPoints);
82BOOL FASTCALL PATH_PolyDraw(PDC dc, const POINT *pts, const BYTE *types, DWORD cbPoints);
83BOOL FASTCALL PATH_PolylineTo (PDC dc, const POINT *pts, DWORD cbPoints);
84BOOL FASTCALL PATH_PolyPolygon ( PDC dc, const POINT* pts, const INT* counts, UINT polygons);
85BOOL FASTCALL PATH_PolyPolyline( PDC dc, const POINT* pts, const DWORD* counts, DWORD polylines);
87BOOL PATH_RoundRect(DC *dc, INT x1, INT y1, INT x2, INT y2, INT ell_width, INT ell_height);
88BOOL FASTCALL PATH_PathToRegion (PPATH pPath, INT nPolyFillMode, PREGION Rgn);
90
91BOOL FASTCALL PATH_AddEntry (PPATH pPath, const POINT *pPoint, BYTE flags);
97
98BOOL FASTCALL PATH_ReserveEntries (PPATH pPath, INT numEntries);
100
103
105
107BOOL PATH_SavePath( DC *, DC *);
108BOOL IntGdiFillRgn(PDC pdc, PREGION prgn, PBRUSH pbrFill);
110IntGdiWidenPath(PPATH pPath, UINT penWidth, UINT penStyle, FLOAT eMiterLimit);
#define pt(x, y)
Definition: drawing.c:79
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLbitfield flags
Definition: glext.h:7161
GLint dx
Definition: linetemp.h:97
static const WCHAR dc[]
unsigned int UINT
Definition: ndis.h:50
#define FASTCALL
Definition: nt_native.h:50
unsigned long FLONG
Definition: ntbasedef.h:366
struct _EPATHOBJ * PEPATHOBJ
BOOL FASTCALL PATH_PolyBezierTo(PDC dc, const POINT *pts, DWORD cbPoints)
Definition: path.c:1131
HGDIOBJ HPATH
Definition: path.h:14
BOOL PATH_SavePath(DC *, DC *)
Definition: path.c:187
BOOL IntGdiFillRgn(PDC pdc, PREGION prgn, PBRUSH pbrFill)
BOOL FASTCALL PATH_PolyPolygon(PDC dc, const POINT *pts, const INT *counts, UINT polygons)
Definition: path.c:1288
BOOL FASTCALL PATH_PolyBezier(PDC dc, const POINT *pts, DWORD cbPoints)
Definition: path.c:1154
struct _PATH PATH
BOOL PATH_RoundRect(DC *dc, INT x1, INT y1, INT x2, INT y2, INT ell_width, INT ell_height)
Definition: path.c:675
PPATH FASTCALL IntGdiWidenPath(PPATH pPath, UINT penWidth, UINT penStyle, FLOAT eMiterLimit)
Definition: path.c:1789
BOOL FASTCALL PATH_Rectangle(PDC dc, INT x1, INT y1, INT x2, INT y2)
Definition: path.c:627
BOOL PATH_RestorePath(DC *, DC *)
Definition: path.c:209
BOOL FASTCALL PATH_Delete(HPATH hPath)
Definition: path.c:90
BOOL FASTCALL PATH_FillPathEx(PDC dc, PPATH pPath, PBRUSH pbrFill)
Definition: path.c:1514
BOOL FASTCALL PATH_ReserveEntries(PPATH pPath, INT numEntries)
Definition: path.c:296
VOID FASTCALL IntGdiCloseFigure(PPATH pPath)
Definition: path.c:108
BOOL PATH_Ellipse(PDC dc, INT x1, INT y1, INT x2, INT y2)
Definition: path.c:782
VOID FASTCALL IntGetCurrentPositionEx(PDC dc, LPPOINT pt)
Definition: line.c:128
HGDIOBJ * PHPATH
Definition: path.h:14
tagGdiPathState
Definition: path.h:17
@ PATH_Null
Definition: path.h:18
@ PATH_Open
Definition: path.h:19
@ PATH_Closed
Definition: path.h:20
struct _EXTPATHDATA * PEXTPATHDATA
BOOL FASTCALL PATH_PolylineTo(PDC dc, const POINT *pts, DWORD cbPoints)
Definition: path.c:1264
BOOL FASTCALL PATH_LineTo(PDC dc, INT x, INT y)
Definition: path.c:583
struct _EPATHOBJ EPATHOBJ
BOOL FASTCALL PATH_FillPath(PDC dc, PPATH pPath)
Definition: path.c:1505
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:2355
PPATH FASTCALL PATH_FlattenPath(PPATH pPath)
Definition: path.c:1407
BOOL FASTCALL PATH_StrokePath(DC *dc, PPATH pPath)
Definition: path.c:1597
BOOL FASTCALL PATH_AddEntry(PPATH pPath, const POINT *pPoint, BYTE flags)
Definition: path.c:262
VOID FASTCALL PATH_EmptyPath(PPATH pPath)
Definition: path.c:246
BOOL FASTCALL PATH_PolyPolyline(PDC dc, const POINT *pts, const DWORD *counts, DWORD polylines)
Definition: path.c:1338
BOOL FASTCALL PATH_PathToRegion(PPATH pPath, INT nPolyFillMode, PREGION Rgn)
Definition: path.c:1450
struct _PATH * PPATH
PPATH FASTCALL PATH_CreatePath(int count)
Definition: path.c:35
BOOL FASTCALL PATH_PolyDraw(PDC dc, const POINT *pts, const BYTE *types, DWORD cbPoints)
Definition: path.c:1180
BOOL FASTCALL PATH_AddFlatBezier(PPATH pPath, POINT *pt, BOOL closed)
Definition: path.c:1378
_DCPATHFLAGS
Definition: path.h:5
@ DCPATH_SAVE
Definition: path.h:7
@ DCPATH_SAVESTATE
Definition: path.h:11
@ DCPATH_CLOCKWISE
Definition: path.h:8
@ DCPATH_ACTIVE
Definition: path.h:6
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
PPATH FASTCALL PATH_WidenPathEx(DC *dc, PPATH pPath)
Definition: path.c:2136
BOOL FASTCALL PATH_MoveTo(PDC dc, PPATH pPath)
Definition: path.c:554
struct _EXTPATHDATA EXTPATHDATA
enum tagGdiPathState GdiPathState
const WCHAR * str
Definition: polytest.cpp:41
Definition: types.h:101
Definition: path.h:62
PATHOBJ po
Definition: path.h:63
CLIPOBJ * pco
Definition: path.h:65
PPATH pPath
Definition: path.h:64
struct _EXTPATHDATA * ppdNext
Definition: path.h:31
PATHDATA pd
Definition: path.h:30
Definition: path.h:35
RECTFX rcfxBoundBox
Definition: path.h:38
BOOL newStroke
Definition: path.h:57
POINT pos
Definition: path.h:58
FLONG flType
Definition: path.h:40
PEXTPATHDATA ppdFirst
Definition: path.h:41
POINTFX ptfxSubPathStart
Definition: path.h:39
BASEOBJECT BaseObject
Definition: path.h:36
FLONG state
Definition: path.h:52
BYTE * pFlags
Definition: path.h:54
FLONG fl
Definition: path.h:46
int numEntriesUsed
Definition: path.h:55
POINT * pPoints
Definition: path.h:53
int numEntriesAllocated
Definition: path.h:56
struct _EPATHOBJ * epo
Definition: path.h:49
ULONG cCurves
Definition: path.h:47
PEXTPATHDATA ppdLast
Definition: path.h:42
FLONG flags
Definition: path.h:43
PEXTPATHDATA ppdCurrent
Definition: path.h:44
Definition: region.h:8
Definition: cmds.c:130
eMaj lines
Definition: tritemp.h:206
float FLOAT
Definition: typedefs.h:69
int32_t INT
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3710
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3709
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3708
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3711
_In_ int _Inout_ LPRECT lprc
Definition: winuser.h:4466
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
unsigned char BYTE
Definition: xxhash.c:193