Release 971221
[wine] / include / path.h
1 /*
2  * Graphics paths (BeginPath, EndPath etc.)
3  *
4  * Copyright 1997 Martin Boehme
5  */
6
7 #ifndef __WINE_PATH_H
8 #define __WINE_PATH_H
9
10 /* It should not be necessary to access the contents of the GdiPath
11  * structure directly; if you find that the exported functions don't
12  * allow you to do what you want, then please place a new exported
13  * function that does this job in path.c.
14  */
15
16 typedef enum tagGdiPathState
17 {
18    PATH_Null,
19    PATH_Open,
20    PATH_Closed
21 } GdiPathState;
22
23 typedef struct tagGdiPath
24 {
25    GdiPathState state;
26    POINT32      *pPoints;
27    BYTE         *pFlags;
28    int          numEntriesUsed, numEntriesAllocated;
29    BOOL32       newStroke;
30 } GdiPath;
31
32 #define PATH_IsPathOpen(path) ((path).state==PATH_Open)
33 /* Returns TRUE if the specified path is in the open state, i.e. in the
34  * state where points will be added to the path, or FALSE otherwise. This
35  * function is implemented as a macro for performance reasons.
36  */
37
38 extern void   PATH_InitGdiPath(GdiPath *pPath);
39 extern void   PATH_DestroyGdiPath(GdiPath *pPath);
40 extern BOOL32 PATH_AssignGdiPath(GdiPath *pPathDest,
41    const GdiPath *pPathSrc);
42 extern BOOL32 PATH_MoveTo(HDC32 hdc);
43 extern BOOL32 PATH_LineTo(HDC32 hdc, INT32 x, INT32 y);
44
45 #endif /* __WINE_PATH_H */