ReactOS 0.4.15-dev-8231-g29a56f3
path.c
Go to the documentation of this file.
1//
2//
3// Do not remove this file, "Justin Case" future maintenance issues with Path arises.......
4//
5//
6
7#include <precomp.h>
8#include "gdi_private.h"
9
10#define NDEBUG
11#include <debug.h>
12
15
17{
19 //struct gdi_path *path;
21};
22
23static inline struct path_physdev *get_path_physdev( PHYSDEV dev )
24{
25 return CONTAINING_RECORD( dev, struct path_physdev, dev );
26}
27
28/***********************************************************************
29 * pathdrv_BeginPath
30 */
32{
33 DPRINT("pathdrv_BeginPath dev %p\n",dev);
34 return TRUE;
35}
36
37
38/***********************************************************************
39 * pathdrv_AbortPath
40 */
42{
43 DC *dc = get_physdev_dc( dev );
44 DPRINT("pathdrv_AbortPath dev %p\n",dev);
45 path_driver.pDeleteDC( pop_dc_driver( dc, &path_driver ));
46 return TRUE;
47}
48
49
50/***********************************************************************
51 * pathdrv_EndPath
52 */
54{
55 struct path_physdev *physdev = get_path_physdev( dev );
56 DC *dc = get_physdev_dc( dev );
57
58 DPRINT("pathdrv_EndPath dev %p\n",dev);
59
60 pop_dc_driver( dc, &path_driver );
61 HeapFree( GetProcessHeap(), 0, physdev );
62
63 return TRUE;
64}
65
66
67/***********************************************************************
68 * pathdrv_CreateDC
69 */
71 LPCWSTR output, const DEVMODEW *devmode )
72{
73 struct path_physdev *physdev = HeapAlloc( GetProcessHeap(), 0, sizeof(*physdev) );
74 DPRINT("pathdrv_CreateDC dev %p\n",dev);
75 if (!physdev) return FALSE;
76 push_dc_driver( dev, &physdev->dev, &path_driver );
77 return TRUE;
78}
79
80
81/*************************************************************
82 * pathdrv_DeleteDC
83 */
85{
86 struct path_physdev *physdev = get_path_physdev( dev );
87 DPRINT("pathdrv_DeleteDC dev %p\n",dev);
88 HeapFree( GetProcessHeap(), 0, physdev );
89 return TRUE;
90}
91
92/*************************************************************
93 * pathdrv_MoveTo
94 */
96{
97// struct path_physdev *physdev = get_path_physdev( dev );
98// DC *dc = get_physdev_dc( dev );
99 DPRINT("pathdrv_MoveTo dev %p\n",dev);
100 return TRUE;
101}
102
103
104/*************************************************************
105 * pathdrv_LineTo
106 */
108{
109// struct path_physdev *physdev = get_path_physdev( dev );
110// DC *dc = get_physdev_dc( dev );
111 DPRINT("pathdrv_LineTo dev %p\n",dev);
112 return TRUE;
113}
114
115
116/*************************************************************
117 * pathdrv_Rectangle
118 */
120{
121// struct path_physdev *physdev = get_path_physdev( dev );
122// DC *dc = get_physdev_dc( dev );
123 DPRINT("pathdrv_Rectangle dev %p\n",dev);
124 return TRUE;
125}
126
127
128/*************************************************************
129 * pathdrv_RoundRect
130 */
131static BOOL pathdrv_RoundRect( PHYSDEV dev, INT x1, INT y1, INT x2, INT y2, INT ell_width, INT ell_height )
132{
133// struct path_physdev *physdev = get_path_physdev( dev );
134// DC *dc = get_physdev_dc( dev );
135 DPRINT("pathdrv_RoundRect dev %p\n",dev);
136 return TRUE;
137}
138
139
140/*************************************************************
141 * pathdrv_Ellipse
142 */
144{
145// struct path_physdev *physdev = get_path_physdev( dev );
146// DC *dc = get_physdev_dc( dev );
147 DPRINT("pathdrv_Ellipse dev %p\n",dev);
148 return TRUE;
149}
150
151/*************************************************************
152 * pathdrv_AngleArc
153 */
154static BOOL pathdrv_AngleArc( PHYSDEV dev, INT x, INT y, DWORD radius, FLOAT eStartAngle, FLOAT eSweepAngle)
155{
156 DPRINT("pathdrv_AngleArc dev %p\n",dev);
157 return TRUE;
158}
159
160
161/*************************************************************
162 * pathdrv_Arc
163 */
165 INT xstart, INT ystart, INT xend, INT yend )
166{
167// DC *dc = get_physdev_dc( dev );
168 DPRINT("pathdrv_Arc dev %p\n",dev);
169 return TRUE;
170}
171
172
173/*************************************************************
174 * pathdrv_ArcTo
175 */
177 INT xstart, INT ystart, INT xend, INT yend )
178{
179// DC *dc = get_physdev_dc( dev );
180 DPRINT("pathdrv_ArcTo dev %p\n",dev);
181 return TRUE;
182}
183
184
185/*************************************************************
186 * pathdrv_Chord
187 */
189 INT xstart, INT ystart, INT xend, INT yend )
190{
191// DC *dc = get_physdev_dc( dev );
192 DPRINT("pathdrv_Chord dev %p\n",dev);
193 return TRUE;
194}
195
196
197/*************************************************************
198 * pathdrv_Pie
199 */
201 INT xstart, INT ystart, INT xend, INT yend )
202{
203// DC *dc = get_physdev_dc( dev );
204 DPRINT("pathdrv_Pie dev %p\n",dev);
205 return TRUE;
206}
207
208
209/*************************************************************
210 * pathdrv_PolyBezierTo
211 */
212static BOOL pathdrv_PolyBezierTo( PHYSDEV dev, const POINT *pts, DWORD cbPoints )
213{
214// struct path_physdev *physdev = get_path_physdev( dev );
215// DC *dc = get_physdev_dc( dev );
216 DPRINT("pathdrv_PolyBezierTo dev %p\n",dev);
217 return TRUE;
218}
219
220
221/*************************************************************
222 * pathdrv_PolyBezier
223 */
224static BOOL pathdrv_PolyBezier( PHYSDEV dev, const POINT *pts, DWORD cbPoints )
225{
226// struct path_physdev *physdev = get_path_physdev( dev );
227// DC *dc = get_physdev_dc( dev );
228 DPRINT("pathdrv_PolyBezier dev %p\n",dev);
229 return TRUE;
230}
231
232
233/*************************************************************
234 * pathdrv_PolyDraw
235 */
236static BOOL pathdrv_PolyDraw( PHYSDEV dev, const POINT *pts, const BYTE *types, DWORD cbPoints )
237{
238// struct path_physdev *physdev = get_path_physdev( dev );
239// DC *dc = get_physdev_dc( dev );
240 DPRINT("pathdrv_PolyDraw dev %p\n",dev);
241 return TRUE;
242}
243
244
245/*************************************************************
246 * pathdrv_Polyline
247 */
249{
250// struct path_physdev *physdev = get_path_physdev( dev );
251// DC *dc = get_physdev_dc( dev );
252 DPRINT("pathdrv_PolyLine dev %p\n",dev);
253 return TRUE;
254}
255
256
257/*************************************************************
258 * pathdrv_PolylineTo
259 */
261{
262// struct path_physdev *physdev = get_path_physdev( dev );
263// DC *dc = get_physdev_dc( dev );
264 DPRINT("pathdrv_PolyLineTo dev %p\n",dev);
265 return TRUE;
266}
267
268
269/*************************************************************
270 * pathdrv_Polygon
271 */
273{
274// struct path_physdev *physdev = get_path_physdev( dev );
275// DC *dc = get_physdev_dc( dev );
276 DPRINT("pathdrv_Polygon dev %p\n",dev);
277 return TRUE;
278}
279
280
281/*************************************************************
282 * pathdrv_PolyPolygon
283 */
284static BOOL pathdrv_PolyPolygon( PHYSDEV dev, const POINT* pts, const INT* counts, UINT polygons )
285{
286// struct path_physdev *physdev = get_path_physdev( dev );
287// DC *dc = get_physdev_dc( dev );
288 DPRINT("pathdrv_PolyPolygon dev %p\n",dev);
289 return TRUE;
290}
291
292
293/*************************************************************
294 * pathdrv_PolyPolyline
295 */
296static BOOL pathdrv_PolyPolyline( PHYSDEV dev, const POINT* pts, const DWORD* counts, DWORD polylines )
297{
298// struct path_physdev *physdev = get_path_physdev( dev );
299// DC *dc = get_physdev_dc( dev );
300 DPRINT("pathdrv_PolyPolyline dev %p\n",dev);
301 return TRUE;
302}
303
304
305/*************************************************************
306 * pathdrv_ExtTextOut
307 */
309 LPCWSTR str, UINT count, const INT *dx )
310{
311// struct path_physdev *physdev = get_path_physdev( dev );
312 DPRINT("pathdrv_ExtTextOut dev %p\n",dev);
313 return TRUE;
314}
315
316/*************************************************************
317 * pathdrv_CloseFigure
318 */
320{
321// struct path_physdev *physdev = get_path_physdev( dev );
322 DPRINT("pathdrv_CloseFigure dev %p\n",dev);
323 return TRUE;
324}
325
326
327/***********************************************************************
328 * null driver fallback implementations
329 */
330
332{
333 DC *dc = get_nulldrv_dc( dev );
334 struct path_physdev *physdev;
335
336 if (!path_driver.pCreateDC( &dc->physDev, NULL, NULL, NULL, NULL ))
337 {
338 return FALSE;
339 }
340 physdev = get_path_physdev( find_dc_driver( dc, &path_driver ));
341 physdev->HasPathHook = TRUE;
342 DPRINT("nulldrv_BeginPath dev %p\n",dev);
343 DPRINT("nulldrv_BeginPath pd %p\n",physdev);
344 return TRUE;
345}
346
348{
349 DPRINT("nulldrv_EndPath dev %p\n",dev);
351 return FALSE;
352}
353
355{
356 //DC *dc = get_nulldrv_dc( dev );
357 DPRINT("nulldrv_AbortPath dev %p\n",dev);
358 //if (dc->path) free_gdi_path( dc->path );
359 //dc->path = NULL;
360 return TRUE;
361}
362
364{
365 DPRINT("nulldrv_CloseFigure dev %p\n",dev);
367 return FALSE;
368}
369
371{
372 BOOL ret = FALSE;
373 HRGN hrgn = PathToRegion( dev->hdc );
374 DPRINT("nulldrv_SelectClipPath dev %p\n",dev);
375 if (hrgn)
376 {
377 ret = ExtSelectClipRgn( dev->hdc, hrgn, mode ) != ERROR;
379 }
380 return ret;
381// return TRUE;
382}
383
385{
386 DPRINT("nulldrv_FillPath dev %p\n",dev);
387 //if (GetPath( dev->hdc, NULL, NULL, 0 ) == -1) return FALSE;
388 //AbortPath( dev->hdc );
389 return TRUE;
390}
391
393{
394 DPRINT("nulldrv_StrokeAndFillPath dev %p\n",dev);
395 //if (GetPath( dev->hdc, NULL, NULL, 0 ) == -1) return FALSE;
396 //AbortPath( dev->hdc );
397 return TRUE;
398}
399
401{
402 DPRINT("nulldrv_StrokePath dev %p\n",dev);
403 //if (GetPath( dev->hdc, NULL, NULL, 0 ) == -1) return FALSE;
404 //AbortPath( dev->hdc );
405 return TRUE;
406}
407
409{
410/* DC *dc = get_nulldrv_dc( dev );
411 struct gdi_path *path; */
412 DPRINT("nulldrv_FlattenPath dev %p\n",dev);
413/* if (!dc->path)
414 {
415 SetLastError( ERROR_CAN_NOT_COMPLETE );
416 return FALSE;
417 }
418 if (!(path = PATH_FlattenPath( dc->path ))) return FALSE;
419 free_gdi_path( dc->path );
420 dc->path = path;*/
421 return TRUE;
422}
423
425{
426/* DC *dc = get_nulldrv_dc( dev );
427 struct gdi_path *path;*/
428 DPRINT("nulldrv_WidenPath dev %p\n",dev);
429/* if (!dc->path)
430 {
431 SetLastError( ERROR_CAN_NOT_COMPLETE );
432 return FALSE;
433 }
434 if (!(path = PATH_WidenPath( dc ))) return FALSE;
435 free_gdi_path( dc->path );
436 dc->path = path;*/
437 return TRUE;
438}
439
441{
442 NULL, /* pAbortDoc */
443 pathdrv_AbortPath, /* pAbortPath */
444 NULL, /* pAlphaBlend */
445 pathdrv_AngleArc, /* pAngleArc */
446 pathdrv_Arc, /* pArc */
447 pathdrv_ArcTo, /* pArcTo */
448 pathdrv_BeginPath, /* pBeginPath */
449 NULL, /* pBlendImage */
450 pathdrv_Chord, /* pChord */
451 pathdrv_CloseFigure, /* pCloseFigure */
452 NULL, /* pCreateCompatibleDC */
453 pathdrv_CreateDC, /* pCreateDC */
454 pathdrv_DeleteDC, /* pDeleteDC */
455 NULL, /* pDeleteObject */
456 NULL, /* pDeviceCapabilities */
457 pathdrv_Ellipse, /* pEllipse */
458 NULL, /* pEndDoc */
459 NULL, /* pEndPage */
460 pathdrv_EndPath, /* pEndPath */
461 NULL, /* pEnumFonts */
462 NULL, /* pEnumICMProfiles */
463 NULL, /* pExcludeClipRect */
464 NULL, /* pExtDeviceMode */
465 NULL, /* pExtEscape */
466 NULL, /* pExtFloodFill */
467 NULL, /* pExtSelectClipRgn */
468 pathdrv_ExtTextOut, /* pExtTextOut */
469 NULL, /* pFillPath */
470 NULL, /* pFillRgn */
471 NULL, /* pFlattenPath */
472 NULL, /* pFontIsLinked */
473 NULL, /* pFrameRgn */
474 NULL, /* pGdiComment */
475 NULL, /* pGetBoundsRect */
476 NULL, /* pGetCharABCWidths */
477 NULL, /* pGetCharABCWidthsI */
478 NULL, /* pGetCharWidth */
479 NULL, /* pGetCharWidthInfo */
480 NULL, /* pGetDeviceCaps */
481 NULL, /* pGetDeviceGammaRamp */
482 NULL, /* pGetFontData */
483 NULL, /* pGetFontRealizationInfo */
484 NULL, /* pGetFontUnicodeRanges */
485 NULL, /* pGetGlyphIndices */
486 NULL, /* pGetGlyphOutline */
487 NULL, /* pGetICMProfile */
488 NULL, /* pGetImage */
489 NULL, /* pGetKerningPairs */
490 NULL, /* pGetNearestColor */
491 NULL, /* pGetOutlineTextMetrics */
492 NULL, /* pGetPixel */
493 NULL, /* pGetSystemPaletteEntries */
494 NULL, /* pGetTextCharsetInfo */
495 NULL, /* pGetTextExtentExPoint */
496 NULL, /* pGetTextExtentExPointI */
497 NULL, /* pGetTextFace */
498 NULL, /* pGetTextMetrics */
499 NULL, /* pGradientFill */
500 NULL, /* pIntersectClipRect */
501 NULL, /* pInvertRgn */
502 pathdrv_LineTo, /* pLineTo */
503 NULL, /* pModifyWorldTransform */
504 pathdrv_MoveTo, /* pMoveTo */
505 NULL, /* pOffsetClipRgn */
506 NULL, /* pOffsetViewportOrg */
507 NULL, /* pOffsetWindowOrg */
508 NULL, /* pPaintRgn */
509 NULL, /* pPatBlt */
510 pathdrv_Pie, /* pPie */
511 pathdrv_PolyBezier, /* pPolyBezier */
512 pathdrv_PolyBezierTo, /* pPolyBezierTo */
513 pathdrv_PolyDraw, /* pPolyDraw */
514 pathdrv_PolyPolygon, /* pPolyPolygon */
515 pathdrv_PolyPolyline, /* pPolyPolyline */
516 pathdrv_Polygon, /* pPolygon */
517 pathdrv_Polyline, /* pPolyline */
518 pathdrv_PolylineTo, /* pPolylineTo */
519 NULL, /* pPutImage */
520 NULL, /* pRealizeDefaultPalette */
521 NULL, /* pRealizePalette */
522 pathdrv_Rectangle, /* pRectangle */
523 NULL, /* pResetDC */
524 NULL, /* pRestoreDC */
525 pathdrv_RoundRect, /* pRoundRect */
526 NULL, /* pSaveDC */
527 NULL, /* pScaleViewportExt */
528 NULL, /* pScaleWindowExt */
529 NULL, /* pSelectBitmap */
530 NULL, /* pSelectBrush */
531 NULL, /* pSelectClipPath */
532 NULL, /* pSelectFont */
533 NULL, /* pSelectPalette */
534 NULL, /* pSelectPen */
535 NULL, /* pSetArcDirection */
536 NULL, /* pSetBkColor */
537 NULL, /* pSetBkMode */
538 NULL, /* pSetDCBrushColor */
539 NULL, /* pSetDCPenColor */
540 NULL, /* pSetDIBColorTable */
541 NULL, /* pSetDIBitsToDevice */
542 NULL, /* pSetDeviceClipping */
543 NULL, /* pSetDeviceGammaRamp */
544 NULL, /* pSetLayout */
545 NULL, /* pSetMapMode */
546 NULL, /* pSetMapperFlags */
547 NULL, /* pSetPixel */
548 NULL, /* pSetPolyFillMode */
549 NULL, /* pSetROP2 */
550 NULL, /* pSetRelAbs */
551 NULL, /* pSetStretchBltMode */
552 NULL, /* pSetTextAlign */
553 NULL, /* pSetTextCharacterExtra */
554 NULL, /* pSetTextColor */
555 NULL, /* pSetTextJustification */
556 NULL, /* pSetViewportExt */
557 NULL, /* pSetViewportOrg */
558 NULL, /* pSetWindowExt */
559 NULL, /* pSetWindowOrg */
560 NULL, /* pSetWorldTransform */
561 NULL, /* pStartDoc */
562 NULL, /* pStartPage */
563 NULL, /* pStretchBlt */
564 NULL, /* pStretchDIBits */
565 NULL, /* pStrokeAndFillPath */
566 NULL, /* pStrokePath */
567 NULL, /* pUnrealizePalette */
568 NULL, /* pWidenPath */
569 NULL, /* wine_get_wgl_driver */
570 GDI_PRIORITY_PATH_DRV /* priority */
571};
static HRGN hrgn
DEVMODEW devmode
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define GetProcessHeap()
Definition: compat.h:736
#define SetLastError(x)
Definition: compat.h:752
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
#define ERROR(name)
Definition: error_private.h:53
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
pKey DeleteObject()
#define GDI_PRIORITY_PATH_DRV
Definition: gdi_driver.h:207
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
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
GLdouble GLdouble right
Definition: glext.h:10859
GLenum mode
Definition: glext.h:6217
GLint left
Definition: glext.h:7726
GLbitfield flags
Definition: glext.h:7161
GLint GLint bottom
Definition: glext.h:7726
GLint dx
Definition: linetemp.h:97
static const WCHAR dc[]
struct @1680::@1681 driver
unsigned int UINT
Definition: ndis.h:50
const WCHAR * str
#define DPRINT
Definition: sndvol32.h:73
Definition: polytest.cpp:41
Definition: devices.h:37
BOOL HasPathHook
Definition: path.c:20
struct gdi_physdev dev
Definition: path.c:18
Definition: cmds.c:130
float FLOAT
Definition: typedefs.h:69
int32_t INT
Definition: typedefs.h:58
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
int ret
static BOOL pathdrv_BeginPath(PHYSDEV dev)
Definition: path.c:31
static BOOL pathdrv_PolyBezierTo(PHYSDEV dev, const POINT *pts, DWORD cbPoints)
Definition: path.c:212
BOOL nulldrv_StrokePath(PHYSDEV dev)
Definition: path.c:400
static BOOL pathdrv_ArcTo(PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
Definition: path.c:176
static struct path_physdev * get_path_physdev(PHYSDEV dev)
Definition: path.c:23
static BOOL pathdrv_PolylineTo(PHYSDEV dev, const POINT *pts, INT count)
Definition: path.c:260
static BOOL pathdrv_Polygon(PHYSDEV dev, const POINT *pts, INT count)
Definition: path.c:272
static BOOL pathdrv_PolyPolygon(PHYSDEV dev, const POINT *pts, const INT *counts, UINT polygons)
Definition: path.c:284
static BOOL pathdrv_AngleArc(PHYSDEV dev, INT x, INT y, DWORD radius, FLOAT eStartAngle, FLOAT eSweepAngle)
Definition: path.c:154
BOOL nulldrv_CloseFigure(PHYSDEV dev)
Definition: path.c:363
static BOOL pathdrv_AbortPath(PHYSDEV dev)
Definition: path.c:41
static BOOL pathdrv_EndPath(PHYSDEV dev)
Definition: path.c:53
BOOL nulldrv_FillPath(PHYSDEV dev)
Definition: path.c:384
BOOL nulldrv_EndPath(PHYSDEV dev)
Definition: path.c:347
static BOOL pathdrv_RoundRect(PHYSDEV dev, INT x1, INT y1, INT x2, INT y2, INT ell_width, INT ell_height)
Definition: path.c:131
BOOL nulldrv_FlattenPath(PHYSDEV dev)
Definition: path.c:408
static BOOL pathdrv_Polyline(PHYSDEV dev, const POINT *pts, INT count)
Definition: path.c:248
BOOL nulldrv_SelectClipPath(PHYSDEV dev, INT mode)
Definition: path.c:370
const struct gdi_dc_funcs path_driver
Definition: path.c:440
static BOOL pathdrv_MoveTo(PHYSDEV dev, INT x, INT y)
Definition: path.c:95
BOOL nulldrv_StrokeAndFillPath(PHYSDEV dev)
Definition: path.c:392
static BOOL pathdrv_Ellipse(PHYSDEV dev, INT x1, INT y1, INT x2, INT y2)
Definition: path.c:143
static BOOL pathdrv_LineTo(PHYSDEV dev, INT x, INT y)
Definition: path.c:107
static BOOL pathdrv_CloseFigure(PHYSDEV dev)
Definition: path.c:319
static BOOL pathdrv_CreateDC(PHYSDEV *dev, LPCWSTR driver, LPCWSTR device, LPCWSTR output, const DEVMODEW *devmode)
Definition: path.c:70
BOOL nulldrv_WidenPath(PHYSDEV dev)
Definition: path.c:424
static BOOL pathdrv_Rectangle(PHYSDEV dev, INT x1, INT y1, INT x2, INT y2)
Definition: path.c:119
static BOOL pathdrv_ExtTextOut(PHYSDEV dev, INT x, INT y, UINT flags, const RECT *lprc, LPCWSTR str, UINT count, const INT *dx)
Definition: path.c:308
WINEDC * get_nulldrv_dc(PHYSDEV dev)
BOOL nulldrv_BeginPath(PHYSDEV dev)
Definition: path.c:331
static BOOL pathdrv_PolyDraw(PHYSDEV dev, const POINT *pts, const BYTE *types, DWORD cbPoints)
Definition: path.c:236
static BOOL pathdrv_PolyPolyline(PHYSDEV dev, const POINT *pts, const DWORD *counts, DWORD polylines)
Definition: path.c:296
static BOOL pathdrv_Pie(PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
Definition: path.c:200
static BOOL pathdrv_Chord(PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
Definition: path.c:188
static BOOL pathdrv_Arc(PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
Definition: path.c:164
const struct gdi_dc_funcs path_driver DECLSPEC_HIDDEN
Definition: path.c:14
static BOOL pathdrv_PolyBezier(PHYSDEV dev, const POINT *pts, DWORD cbPoints)
Definition: path.c:224
static BOOL pathdrv_DeleteDC(PHYSDEV dev)
Definition: path.c:84
BOOL nulldrv_AbortPath(PHYSDEV dev)
Definition: path.c:354
_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
#define ERROR_CAN_NOT_COMPLETE
Definition: winerror.h:582
HRGN WINAPI PathToRegion(_In_ HDC)
int WINAPI ExtSelectClipRgn(_In_ HDC, _In_opt_ HRGN, _In_ int)
_In_ int _Inout_ LPRECT lprc
Definition: winuser.h:4466
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
unsigned char BYTE
Definition: xxhash.c:193