c04c74f834b529ae59a2a0efa696fb7eff1b813e
[reactos.git] / reactos / subsys / win32k / include / intgdi.h
1 #ifndef _WIN32K_INTGDI_H
2 #define _WIN32K_INTGDI_H
3
4 /* Brush functions */
5
6 XLATEOBJ* FASTCALL
7 IntGdiCreateBrushXlate(PDC Dc, GDIBRUSHOBJ *BrushObj, BOOLEAN *Failed);
8
9 VOID FASTCALL
10 IntGdiInitBrushInstance(GDIBRUSHINST *BrushInst, PGDIBRUSHOBJ BrushObj, XLATEOBJ *XlateObj);
11
12 HBRUSH FASTCALL
13 IntGdiCreateBrushIndirect(PLOGBRUSH lb);
14
15 HBRUSH FASTCALL
16 IntGdiCreateDIBPatternBrush(HGLOBAL hDIBPacked,
17 UINT ColorSpec);
18
19 HBRUSH FASTCALL
20 IntGdiCreateDIBPatternBrushPt(CONST VOID *PackedDIB,
21 UINT Usage);
22
23 BOOL FASTCALL
24 IntPatBlt(
25 PDC dc,
26 INT XLeft,
27 INT YLeft,
28 INT Width,
29 INT Height,
30 DWORD ROP,
31 PGDIBRUSHOBJ BrushObj);
32
33 /* Pen functions */
34
35 HPEN FASTCALL
36 IntGdiCreatePenIndirect(PLOGPEN lgpn);
37
38 /* Line functions */
39
40 BOOL FASTCALL
41 IntGdiLineTo(DC *dc,
42 int XEnd,
43 int YEnd);
44
45 BOOL FASTCALL
46 IntGdiMoveToEx(DC *dc,
47 int X,
48 int Y,
49 LPPOINT Point);
50
51 BOOL FASTCALL
52 IntGdiPolyBezier(DC *dc,
53 LPPOINT pt,
54 DWORD Count);
55
56 BOOL FASTCALL
57 IntGdiPolyline(DC *dc,
58 LPPOINT pt,
59 int Count);
60
61 BOOL FASTCALL
62 IntGdiPolyBezierTo(DC *dc,
63 LPPOINT pt,
64 DWORD Count);
65
66 BOOL FASTCALL
67 IntGdiPolyPolyline(DC *dc,
68 LPPOINT pt,
69 LPDWORD PolyPoints,
70 DWORD Count);
71
72 BOOL FASTCALL
73 IntGdiPolylineTo(DC *dc,
74 LPPOINT pt,
75 DWORD Count);
76
77 BOOL FASTCALL
78 IntGdiArc(DC *dc,
79 int LeftRect,
80 int TopRect,
81 int RightRect,
82 int BottomRect,
83 int XStartArc,
84 int YStartArc,
85 int XEndArc,
86 int YEndArc);
87
88 INT FASTCALL
89 IntGdiGetArcDirection(DC *dc);
90
91 /* Shape functions */
92
93 BOOL FASTCALL
94 IntGdiPolygon(PDC dc,
95 PPOINT UnsafePoints,
96 int Count);
97
98 BOOL FASTCALL
99 IntGdiPolyPolygon(DC *dc,
100 LPPOINT Points,
101 LPINT PolyCounts,
102 int Count);
103
104 /* Rgn functions */
105
106 int FASTCALL
107 IntGdiGetClipBox(HDC hDC,
108 LPRECT rc);
109
110 HRGN FASTCALL REGION_CropRgn(HRGN hDst, HRGN hSrc, const PRECT lpRect, PPOINT lpPt);
111 void FASTCALL REGION_UnionRectWithRegion(const RECT *rect, ROSRGNDATA *rgn);
112 INT FASTCALL UnsafeIntGetRgnBox(PROSRGNDATA Rgn, LPRECT pRect);
113 BOOL FASTCALL UnsafeIntRectInRegion(PROSRGNDATA Rgn, CONST LPRECT rc);
114
115 #define UnsafeIntCreateRectRgnIndirect(prc) \
116 NtGdiCreateRectRgn((prc)->left, (prc)->top, (prc)->right, (prc)->bottom)
117
118 #define UnsafeIntUnionRectWithRgn(rgndest, prc) \
119 REGION_UnionRectWithRegion((prc), (rgndest))
120
121 /* DC functions */
122
123 BOOL FASTCALL
124 IntGdiGetDCOrgEx(DC *dc, LPPOINT Point);
125
126 INT FASTCALL
127 IntGdiGetObject(HANDLE handle, INT count, LPVOID buffer);
128
129 HDC FASTCALL
130 IntGdiCreateDC(PUNICODE_STRING Driver,
131 PUNICODE_STRING Device,
132 PUNICODE_STRING Output,
133 CONST PDEVMODEW InitData);
134
135 COLORREF FASTCALL
136 IntGetDCColor(HDC hDC, ULONG Object);
137
138 COLORREF FASTCALL
139 IntSetDCColor(HDC hDC, ULONG Object, COLORREF Color);
140
141 /* Coord functions */
142
143 BOOL FASTCALL
144 IntGdiCombineTransform(LPXFORM XFormResult,
145 LPXFORM xform1,
146 LPXFORM xform2);
147
148 /* RECT functions */
149
150 VOID FASTCALL
151 IntGdiSetRect(PRECT Rect, INT left, INT top, INT right, INT bottom);
152
153 VOID FASTCALL
154 IntGdiSetEmptyRect(PRECT Rect);
155
156 BOOL FASTCALL
157 IntGdiIsEmptyRect(const RECT* Rect);
158
159 VOID FASTCALL
160 IntGdiOffsetRect(LPRECT Rect, INT x, INT y);
161
162 BOOL FASTCALL
163 IntGdiUnionRect(PRECT Dest, const RECT* Src1, const RECT* Src2);
164
165 BOOL FASTCALL
166 IntGdiIntersectRect(PRECT Dest, const RECT* Src1, const RECT* Src2);
167
168 /* Stock objects */
169
170 BOOL FASTCALL
171 IntSetSysColors(UINT nColors, INT *Elements, COLORREF *Colors);
172
173 BOOL FASTCALL
174 IntGetSysColorBrushes(HBRUSH *Brushes, UINT nBrushes);
175
176 BOOL FASTCALL
177 IntGetSysColorPens(HPEN *Pens, UINT nPens);
178
179 BOOL FASTCALL
180 IntGetSysColors(COLORREF *Colors, UINT nColors);
181
182 #endif /* _WIN32K_INTGDI_H */
183