ReactOS  0.4.15-dev-985-gd905dd5
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 {
18  struct gdi_physdev dev;
19  //struct gdi_path *path;
21 };
22 
23 static 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 
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  */
131 static 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  */
154 static 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  */
212 static 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  */
224 static 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  */
236 static 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  */
272 static BOOL pathdrv_Polygon( PHYSDEV dev, const POINT *pts, INT count )
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  */
284 static 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  */
296 static 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  }
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;
378  DeleteObject( hrgn );
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 
440 const struct gdi_dc_funcs path_driver =
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 };
struct @1647::@1648 driver
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
static BOOL pathdrv_MoveTo(PHYSDEV dev, INT x, INT y)
Definition: path.c:95
#define push_dc_driver
Definition: gdi_private.h:200
static UCHAR ULONG UCHAR ULONG UCHAR * output
Definition: bcrypt.c:29
static PHYSDEV find_dc_driver(DC *dc, const struct gdi_dc_funcs *funcs)
Definition: gdi_private.h:155
static BOOL pathdrv_DeleteDC(PHYSDEV dev)
Definition: path.c:84
static BOOL pathdrv_CreateDC(PHYSDEV *dev, LPCWSTR driver, LPCWSTR device, LPCWSTR output, const DEVMODEW *devmode)
Definition: path.c:70
_In_ int _Inout_ LPRECT lprc
Definition: winuser.h:4440
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_StrokeAndFillPath(PHYSDEV dev)
Definition: path.c:392
static BOOL pathdrv_LineTo(PHYSDEV dev, INT x, INT y)
Definition: path.c:107
static BOOL pathdrv_PolyBezier(PHYSDEV dev, const POINT *pts, DWORD cbPoints)
Definition: path.c:224
BOOL nulldrv_BeginPath(PHYSDEV dev)
Definition: path.c:331
BOOL nulldrv_FlattenPath(PHYSDEV dev)
Definition: path.c:408
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
static BOOL pathdrv_PolyDraw(PHYSDEV dev, const POINT *pts, const BYTE *types, DWORD cbPoints)
Definition: path.c:236
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
#define TRUE
Definition: types.h:120
#define ERROR(name)
Definition: error_private.h:53
GLuint GLuint GLsizei count
Definition: gl.h:1545
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
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
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
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
static BOOL pathdrv_PolyPolygon(PHYSDEV dev, const POINT *pts, const INT *counts, UINT polygons)
Definition: path.c:284
int32_t INT
Definition: typedefs.h:58
static struct path_physdev * get_path_physdev(PHYSDEV dev)
Definition: path.c:23
DWORD ret
Definition: path.c:47
int WINAPI ExtSelectClipRgn(_In_ HDC, _In_opt_ HRGN, _In_ int)
BOOL nulldrv_StrokePath(PHYSDEV dev)
Definition: path.c:400
static BOOL pathdrv_Rectangle(PHYSDEV dev, INT x1, INT y1, INT x2, INT y2)
Definition: path.c:119
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
Definition: devices.h:37
#define ERROR_CAN_NOT_COMPLETE
Definition: winerror.h:582
const WCHAR * str
const struct gdi_dc_funcs path_driver
Definition: path.c:440
smooth NULL
Definition: ftsmooth.c:416
static BOOL pathdrv_AngleArc(PHYSDEV dev, INT x, INT y, DWORD radius, FLOAT eStartAngle, FLOAT eSweepAngle)
Definition: path.c:154
BOOL nulldrv_AbortPath(PHYSDEV dev)
Definition: path.c:354
void DPRINT(...)
Definition: polytest.cpp:61
GLint GLint bottom
Definition: glext.h:7726
static BOOL pathdrv_Ellipse(PHYSDEV dev, INT x1, INT y1, INT x2, INT y2)
Definition: path.c:143
BOOL nulldrv_SelectClipPath(PHYSDEV dev, INT mode)
Definition: path.c:370
#define GDI_PRIORITY_PATH_DRV
Definition: gdi_driver.h:207
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
static BOOL pathdrv_Polyline(PHYSDEV dev, const POINT *pts, INT count)
Definition: path.c:248
BOOL HasPathHook
Definition: path.c:20
Definition: polytest.cpp:40
#define GetProcessHeap()
Definition: compat.h:484
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
Definition: cmds.c:130
DEVMODEW devmode
BOOL nulldrv_FillPath(PHYSDEV dev)
Definition: path.c:384
HRGN WINAPI PathToRegion(HDC hdc)
Definition: path.c:120
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint left
Definition: glext.h:7726
#define SetLastError(x)
Definition: compat.h:500
WINEDC * get_nulldrv_dc(PHYSDEV dev)
Definition: rosglue.c:186
GLdouble GLdouble right
Definition: glext.h:10859
static BOOL pathdrv_CloseFigure(PHYSDEV dev)
Definition: path.c:319
GLbitfield flags
Definition: glext.h:7161
static PHYSDEV pop_dc_driver(DC *dc, const struct gdi_dc_funcs *funcs)
Definition: gdi_private.h:145
static BOOL pathdrv_PolyBezierTo(PHYSDEV dev, const POINT *pts, DWORD cbPoints)
Definition: path.c:212
static BOOL pathdrv_BeginPath(PHYSDEV dev)
Definition: path.c:31
static HRGN hrgn
Definition: win.c:55
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3706
GLenum mode
Definition: glext.h:6217
unsigned char BYTE
Definition: xxhash.c:193
const struct gdi_dc_funcs path_driver DECLSPEC_HIDDEN
Definition: path.c:14
static BOOL pathdrv_PolylineTo(PHYSDEV dev, const POINT *pts, INT count)
Definition: path.c:260
struct gdi_physdev dev
Definition: path.c:18
static BOOL pathdrv_PolyPolyline(PHYSDEV dev, const POINT *pts, const DWORD *counts, DWORD polylines)
Definition: path.c:296
WINEDC * get_physdev_dc(PHYSDEV dev)
Definition: rosglue.c:191
BOOL nulldrv_WidenPath(PHYSDEV dev)
Definition: path.c:424
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
float FLOAT
Definition: typedefs.h:69
static BOOL pathdrv_Polygon(PHYSDEV dev, const POINT *pts, INT count)
Definition: path.c:272
static BOOL pathdrv_AbortPath(PHYSDEV dev)
Definition: path.c:41
static const WCHAR dc[]
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
BOOL nulldrv_EndPath(PHYSDEV dev)
Definition: path.c:347
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
static BOOL pathdrv_EndPath(PHYSDEV dev)
Definition: path.c:53
#define HeapFree(x, y, z)
Definition: compat.h:483
BOOL nulldrv_CloseFigure(PHYSDEV dev)
Definition: path.c:363
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