ReactOS  0.4.14-dev-317-g96040ec
dc.c File Reference
#include <assert.h>
#include "enhmfdrv/enhmetafiledrv.h"
Include dependency graph for dc.c:

Go to the source code of this file.

Functions

static PHYSDEV get_emfdev (PHYSDEV path)
 
INT EMFDRV_SaveDC (PHYSDEV dev)
 
BOOL EMFDRV_RestoreDC (PHYSDEV dev, INT level)
 
UINT EMFDRV_SetTextAlign (PHYSDEV dev, UINT align)
 
BOOL EMFDRV_SetTextJustification (PHYSDEV dev, INT nBreakExtra, INT nBreakCount)
 
INT EMFDRV_SetBkMode (PHYSDEV dev, INT mode)
 
COLORREF EMFDRV_SetBkColor (PHYSDEV dev, COLORREF color)
 
COLORREF EMFDRV_SetTextColor (PHYSDEV dev, COLORREF color)
 
INT EMFDRV_SetROP2 (PHYSDEV dev, INT rop)
 
INT EMFDRV_SetPolyFillMode (PHYSDEV dev, INT mode)
 
INT EMFDRV_SetStretchBltMode (PHYSDEV dev, INT mode)
 
INT EMFDRV_SetArcDirection (PHYSDEV dev, INT arcDirection)
 
INT EMFDRV_ExcludeClipRect (PHYSDEV dev, INT left, INT top, INT right, INT bottom)
 
INT EMFDRV_IntersectClipRect (PHYSDEV dev, INT left, INT top, INT right, INT bottom)
 
INT EMFDRV_OffsetClipRgn (PHYSDEV dev, INT x, INT y)
 
INT EMFDRV_ExtSelectClipRgn (PHYSDEV dev, HRGN hrgn, INT mode)
 
INT EMFDRV_SetMapMode (PHYSDEV dev, INT mode)
 
BOOL EMFDRV_SetViewportExtEx (PHYSDEV dev, INT cx, INT cy, SIZE *size)
 
BOOL EMFDRV_SetWindowExtEx (PHYSDEV dev, INT cx, INT cy, SIZE *size)
 
BOOL EMFDRV_SetViewportOrgEx (PHYSDEV dev, INT x, INT y, POINT *pt)
 
BOOL EMFDRV_SetWindowOrgEx (PHYSDEV dev, INT x, INT y, POINT *pt)
 
BOOL EMFDRV_ScaleViewportExtEx (PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom, SIZE *size)
 
BOOL EMFDRV_ScaleWindowExtEx (PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom, SIZE *size)
 
DWORD EMFDRV_SetLayout (PHYSDEV dev, DWORD layout)
 
BOOL EMFDRV_SetWorldTransform (PHYSDEV dev, const XFORM *xform)
 
BOOL EMFDRV_ModifyWorldTransform (PHYSDEV dev, const XFORM *xform, DWORD mode)
 
BOOL EMFDRV_OffsetViewportOrgEx (PHYSDEV dev, INT x, INT y, POINT *pt)
 
BOOL EMFDRV_OffsetWindowOrgEx (PHYSDEV dev, INT x, INT y, POINT *pt)
 
DWORD EMFDRV_SetMapperFlags (PHYSDEV dev, DWORD flags)
 
BOOL EMFDRV_AbortPath (PHYSDEV dev)
 
BOOL EMFDRV_BeginPath (PHYSDEV dev)
 
BOOL EMFDRV_CloseFigure (PHYSDEV dev)
 
BOOL EMFDRV_EndPath (PHYSDEV dev)
 
BOOL EMFDRV_FlattenPath (PHYSDEV dev)
 
BOOL EMFDRV_SelectClipPath (PHYSDEV dev, INT iMode)
 
BOOL EMFDRV_WidenPath (PHYSDEV dev)
 
INT EMFDRV_GetDeviceCaps (PHYSDEV dev, INT cap)
 
static BOOL emfpathdrv_AbortPath (PHYSDEV dev)
 
static BOOL emfpathdrv_AngleArc (PHYSDEV dev, INT x, INT y, DWORD radius, FLOAT start, FLOAT sweep)
 
static BOOL emfpathdrv_Arc (PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
 
static BOOL emfpathdrv_ArcTo (PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
 
static BOOL emfpathdrv_BeginPath (PHYSDEV dev)
 
static BOOL emfpathdrv_Chord (PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
 
static BOOL emfpathdrv_CloseFigure (PHYSDEV dev)
 
static BOOL emfpathdrv_CreateDC (PHYSDEV *dev, LPCWSTR driver, LPCWSTR device, LPCWSTR output, const DEVMODEW *devmode)
 
static BOOL emfpathdrv_DeleteDC (PHYSDEV dev)
 
static BOOL emfpathdrv_Ellipse (PHYSDEV dev, INT x1, INT y1, INT x2, INT y2)
 
static BOOL emfpathdrv_EndPath (PHYSDEV dev)
 
static BOOL emfpathdrv_ExtTextOut (PHYSDEV dev, INT x, INT y, UINT flags, const RECT *rect, LPCWSTR str, UINT count, const INT *dx)
 
static BOOL emfpathdrv_LineTo (PHYSDEV dev, INT x, INT y)
 
static BOOL emfpathdrv_MoveTo (PHYSDEV dev, INT x, INT y)
 
static BOOL emfpathdrv_Pie (PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
 
static BOOL emfpathdrv_PolyBezier (PHYSDEV dev, const POINT *pts, DWORD count)
 
static BOOL emfpathdrv_PolyBezierTo (PHYSDEV dev, const POINT *pts, DWORD count)
 
static BOOL emfpathdrv_PolyDraw (PHYSDEV dev, const POINT *pts, const BYTE *types, DWORD count)
 
static BOOL emfpathdrv_PolyPolygon (PHYSDEV dev, const POINT *pts, const INT *counts, UINT polygons)
 
static BOOL emfpathdrv_PolyPolyline (PHYSDEV dev, const POINT *pts, const DWORD *counts, DWORD polylines)
 
static BOOL emfpathdrv_Polygon (PHYSDEV dev, const POINT *pts, INT count)
 
static BOOL emfpathdrv_Polyline (PHYSDEV dev, const POINT *pts, INT count)
 
static BOOL emfpathdrv_PolylineTo (PHYSDEV dev, const POINT *pts, INT count)
 
static BOOL emfpathdrv_Rectangle (PHYSDEV dev, INT x1, INT y1, INT x2, INT y2)
 
static BOOL emfpathdrv_RoundRect (PHYSDEV dev, INT x1, INT y1, INT x2, INT y2, INT ell_width, INT ell_height)
 

Variables

static const struct gdi_dc_funcs emfpath_driver
 

Function Documentation

◆ EMFDRV_AbortPath()

BOOL EMFDRV_AbortPath ( PHYSDEV  dev)

Definition at line 417 of file dc.c.

418 {
419  EMRABORTPATH emr;
420 
421  emr.emr.iType = EMR_ABORTPATH;
422  emr.emr.nSize = sizeof(emr);
423 
424  return EMFDRV_WriteRecord( dev, &emr.emr );
425 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define EMR_ABORTPATH
Definition: wingdi.h:142
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_BeginPath()

BOOL EMFDRV_BeginPath ( PHYSDEV  dev)

Definition at line 427 of file dc.c.

428 {
429  EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
430  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pBeginPath );
431  EMRBEGINPATH emr;
432  DC *dc = get_physdev_dc( dev );
433 
434  emr.emr.iType = EMR_BEGINPATH;
435  emr.emr.nSize = sizeof(emr);
436 
437  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
438  if (physDev->path) return TRUE; /* already open */
439 
440  if (!next->funcs->pBeginPath( next )) return FALSE;
441  push_dc_driver( &dc->physDev, &physDev->pathdev, &emfpath_driver );
442  physDev->path = TRUE;
443  return TRUE;
444 }
#define push_dc_driver
Definition: gdi_private.h:200
#define TRUE
Definition: types.h:120
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
static EMFDRV_PDEVICE * get_emf_physdev(PHYSDEV dev)
HDC dc
Definition: cylfrac.c:34
static const struct gdi_dc_funcs emfpath_driver
Definition: dc.c:31
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
Definition: polytest.cpp:40
struct gdi_physdev pathdev
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
WINEDC * get_physdev_dc(PHYSDEV dev)
Definition: rosglue.c:191
#define EMR_BEGINPATH
Definition: wingdi.h:133

◆ EMFDRV_CloseFigure()

BOOL EMFDRV_CloseFigure ( PHYSDEV  dev)

Definition at line 446 of file dc.c.

447 {
448  EMRCLOSEFIGURE emr;
449 
450  emr.emr.iType = EMR_CLOSEFIGURE;
451  emr.emr.nSize = sizeof(emr);
452 
453  EMFDRV_WriteRecord( dev, &emr.emr );
454  return FALSE; /* always fails without a path */
455 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
DWORD nSize
Definition: wingdi.h:1686
#define EMR_CLOSEFIGURE
Definition: wingdi.h:135
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_EndPath()

BOOL EMFDRV_EndPath ( PHYSDEV  dev)

Definition at line 457 of file dc.c.

458 {
459  EMRENDPATH emr;
460 
461  emr.emr.iType = EMR_ENDPATH;
462  emr.emr.nSize = sizeof(emr);
463 
464  EMFDRV_WriteRecord( dev, &emr.emr );
465  return FALSE; /* always fails without a path */
466 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define EMR_ENDPATH
Definition: wingdi.h:134
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_ExcludeClipRect()

INT EMFDRV_ExcludeClipRect ( PHYSDEV  dev,
INT  left,
INT  top,
INT  right,
INT  bottom 
)

Definition at line 164 of file dc.c.

165 {
166  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pExcludeClipRect );
167  EMREXCLUDECLIPRECT emr;
168 
170  emr.emr.nSize = sizeof(emr);
171  emr.rclClip.left = left;
172  emr.rclClip.top = top;
173  emr.rclClip.right = right;
174  emr.rclClip.bottom = bottom;
175  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return ERROR;
176  return next->funcs->pExcludeClipRect( next, left, top, right, bottom );
177 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define ERROR(name)
Definition: error_private.h:53
#define EMR_EXCLUDECLIPRECT
Definition: wingdi.h:103
long bottom
Definition: polytest.cpp:53
long right
Definition: polytest.cpp:53
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
long top
Definition: polytest.cpp:53
GLint GLint bottom
Definition: glext.h:7726
long left
Definition: polytest.cpp:53
GLint left
Definition: glext.h:7726
GLdouble GLdouble right
Definition: glext.h:10859
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859

◆ EMFDRV_ExtSelectClipRgn()

INT EMFDRV_ExtSelectClipRgn ( PHYSDEV  dev,
HRGN  hrgn,
INT  mode 
)

Definition at line 207 of file dc.c.

208 {
209  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pExtSelectClipRgn );
210  EMREXTSELECTCLIPRGN *emr;
211  DWORD size, rgnsize;
212  BOOL ret;
213 
214  if (!hrgn)
215  {
216  if (mode != RGN_COPY) return ERROR;
217  rgnsize = 0;
218  }
219  else rgnsize = GetRegionData( hrgn, 0, NULL );
220 
221  size = rgnsize + offsetof(EMREXTSELECTCLIPRGN,RgnData);
222  emr = HeapAlloc( GetProcessHeap(), 0, size );
223  if (rgnsize) GetRegionData( hrgn, rgnsize, (RGNDATA *)&emr->RgnData );
224 
226  emr->emr.nSize = size;
227  emr->cbRgnData = rgnsize;
228  emr->iMode = mode;
229 
230  ret = EMFDRV_WriteRecord( dev, &emr->emr );
231  HeapFree( GetProcessHeap(), 0, emr );
232  return ret ? next->funcs->pExtSelectClipRgn( next, hrgn, mode ) : ERROR;
233 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define ERROR(name)
Definition: error_private.h:53
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
#define offsetof(TYPE, MEMBER)
GLsizeiptr size
Definition: glext.h:5919
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
unsigned long DWORD
Definition: ntddk_ex.h:95
int ret
DWORD nSize
Definition: wingdi.h:1686
static HRGN hrgn
Definition: win.c:55
GLenum mode
Definition: glext.h:6217
#define RGN_COPY
Definition: wingdi.h:356
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
DWORD WINAPI GetRegionData(_In_ HRGN hrgn, _In_ DWORD nCount, _Out_writes_bytes_to_opt_(nCount, return) LPRGNDATA lpRgnData)
#define HeapFree(x, y, z)
Definition: compat.h:394
#define EMR_EXTSELECTCLIPRGN
Definition: wingdi.h:148

◆ EMFDRV_FlattenPath()

BOOL EMFDRV_FlattenPath ( PHYSDEV  dev)

Definition at line 468 of file dc.c.

469 {
470  EMRFLATTENPATH emr;
471 
472  emr.emr.iType = EMR_FLATTENPATH;
473  emr.emr.nSize = sizeof(emr);
474 
475  return EMFDRV_WriteRecord( dev, &emr.emr );
476 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
#define EMR_FLATTENPATH
Definition: wingdi.h:139

◆ EMFDRV_GetDeviceCaps()

INT EMFDRV_GetDeviceCaps ( PHYSDEV  dev,
INT  cap 
)

Definition at line 510 of file dc.c.

511 {
512  EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
513 
514  return GetDeviceCaps( physDev->ref_dc, cap );
515 }
static EMFDRV_PDEVICE * get_emf_physdev(PHYSDEV dev)
GLenum cap
Definition: glext.h:9639
int WINAPI GetDeviceCaps(_In_ HDC hdc, _In_ int nIndex)
Definition: dc.c:561

◆ EMFDRV_IntersectClipRect()

INT EMFDRV_IntersectClipRect ( PHYSDEV  dev,
INT  left,
INT  top,
INT  right,
INT  bottom 
)

Definition at line 179 of file dc.c.

180 {
181  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pIntersectClipRect );
183 
185  emr.emr.nSize = sizeof(emr);
186  emr.rclClip.left = left;
187  emr.rclClip.top = top;
188  emr.rclClip.right = right;
189  emr.rclClip.bottom = bottom;
190  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return ERROR;
191  return next->funcs->pIntersectClipRect( next, left, top, right, bottom );
192 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define ERROR(name)
Definition: error_private.h:53
long bottom
Definition: polytest.cpp:53
long right
Definition: polytest.cpp:53
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
#define EMR_INTERSECTCLIPRECT
Definition: wingdi.h:104
long top
Definition: polytest.cpp:53
GLint GLint bottom
Definition: glext.h:7726
long left
Definition: polytest.cpp:53
GLint left
Definition: glext.h:7726
GLdouble GLdouble right
Definition: glext.h:10859
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859

◆ EMFDRV_ModifyWorldTransform()

BOOL EMFDRV_ModifyWorldTransform ( PHYSDEV  dev,
const XFORM xform,
DWORD  mode 
)

Definition at line 358 of file dc.c.

359 {
360  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pModifyWorldTransform );
362 
364  emr.emr.nSize = sizeof(emr);
365  emr.xform = *xform;
366  emr.iMode = mode;
367 
368  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
369  return next->funcs->pModifyWorldTransform( next, xform, mode );
370 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
#define EMR_MODIFYWORLDTRANSFORM
Definition: wingdi.h:110
DWORD nSize
Definition: wingdi.h:1686
GLenum mode
Definition: glext.h:6217
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6

◆ EMFDRV_OffsetClipRgn()

INT EMFDRV_OffsetClipRgn ( PHYSDEV  dev,
INT  x,
INT  y 
)

Definition at line 194 of file dc.c.

195 {
196  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pOffsetClipRgn );
197  EMROFFSETCLIPRGN emr;
198 
200  emr.emr.nSize = sizeof(emr);
201  emr.ptlOffset.x = x;
202  emr.ptlOffset.y = y;
203  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return ERROR;
204  return next->funcs->pOffsetClipRgn( next, x, y );
205 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define ERROR(name)
Definition: error_private.h:53
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
LONG y
Definition: windef.h:315
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
LONG x
Definition: windef.h:314
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
#define EMR_OFFSETCLIPRGN
Definition: wingdi.h:100

◆ EMFDRV_OffsetViewportOrgEx()

BOOL EMFDRV_OffsetViewportOrgEx ( PHYSDEV  dev,
INT  x,
INT  y,
POINT pt 
)

Definition at line 372 of file dc.c.

373 {
374  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pOffsetViewportOrgEx );
376  POINT prev;
377 
378  GetViewportOrgEx( dev->hdc, &prev );
379 
381  emr.emr.nSize = sizeof(emr);
382  emr.ptlOrigin.x = prev.x + x;
383  emr.ptlOrigin.y = prev.y + y;
384 
385  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
386  return next->funcs->pOffsetViewportOrgEx( next, x, y, pt );
387 }
long y
Definition: polytest.cpp:48
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
long x
Definition: polytest.cpp:48
#define pt(x, y)
Definition: drawing.c:79
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
LONG y
Definition: windef.h:315
#define EMR_SETVIEWPORTORGEX
Definition: wingdi.h:86
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
BOOL WINAPI GetViewportOrgEx(_In_ HDC, _Out_ LPPOINT)
Definition: coord.c:383
LONG x
Definition: windef.h:314
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548

◆ EMFDRV_OffsetWindowOrgEx()

BOOL EMFDRV_OffsetWindowOrgEx ( PHYSDEV  dev,
INT  x,
INT  y,
POINT pt 
)

Definition at line 389 of file dc.c.

390 {
391  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pOffsetWindowOrgEx );
392  EMRSETWINDOWORGEX emr;
393  POINT prev;
394 
395  GetWindowOrgEx( dev->hdc, &prev );
396 
398  emr.emr.nSize = sizeof(emr);
399  emr.ptlOrigin.x = prev.x + x;
400  emr.ptlOrigin.y = prev.y + y;
401 
402  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
403  return next->funcs->pOffsetWindowOrgEx( next, x, y, pt );
404 }
long y
Definition: polytest.cpp:48
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
long x
Definition: polytest.cpp:48
BOOL WINAPI GetWindowOrgEx(_In_ HDC, _Out_ LPPOINT)
Definition: coord.c:439
#define pt(x, y)
Definition: drawing.c:79
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
LONG y
Definition: windef.h:315
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
LONG x
Definition: windef.h:314
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
#define EMR_SETWINDOWORGEX
Definition: wingdi.h:84

◆ EMFDRV_RestoreDC()

BOOL EMFDRV_RestoreDC ( PHYSDEV  dev,
INT  level 
)

Definition at line 48 of file dc.c.

49 {
50  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pRestoreDC );
51  EMFDRV_PDEVICE* physDev = get_emf_physdev( dev );
52  DC *dc = get_physdev_dc( dev );
53  EMRRESTOREDC emr;
54  BOOL ret;
55 
56  emr.emr.iType = EMR_RESTOREDC;
57  emr.emr.nSize = sizeof(emr);
58 
59  if (level < 0)
60  emr.iRelative = level;
61  else
62  emr.iRelative = level - dc->saveLevel - 1;
63 
64  physDev->restoring++;
65  ret = next->funcs->pRestoreDC( next, level );
66  physDev->restoring--;
67 
68  if (ret) EMFDRV_WriteRecord( dev, &emr.emr );
69  return ret;
70 }
GLint level
Definition: gl.h:1546
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
static EMFDRV_PDEVICE * get_emf_physdev(PHYSDEV dev)
HDC dc
Definition: cylfrac.c:34
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
unsigned int BOOL
Definition: ntddk_ex.h:94
#define EMR_RESTOREDC
Definition: wingdi.h:108
Definition: polytest.cpp:40
int ret
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
WINEDC * get_physdev_dc(PHYSDEV dev)
Definition: rosglue.c:191
LONG iRelative
Definition: wingdi.h:2146

◆ EMFDRV_SaveDC()

INT EMFDRV_SaveDC ( PHYSDEV  dev)

Definition at line 33 of file dc.c.

34 {
35  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSaveDC );
36  INT ret = next->funcs->pSaveDC( next );
37 
38  if (ret)
39  {
40  EMRSAVEDC emr;
41  emr.emr.iType = EMR_SAVEDC;
42  emr.emr.nSize = sizeof(emr);
43  EMFDRV_WriteRecord( dev, &emr.emr );
44  }
45  return ret;
46 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
int32_t INT
Definition: typedefs.h:56
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
int ret
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
#define EMR_SAVEDC
Definition: wingdi.h:107

◆ EMFDRV_ScaleViewportExtEx()

BOOL EMFDRV_ScaleViewportExtEx ( PHYSDEV  dev,
INT  xNum,
INT  xDenom,
INT  yNum,
INT  yDenom,
SIZE size 
)

Definition at line 303 of file dc.c.

304 {
305  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pScaleViewportExtEx );
307 
309  emr.emr.nSize = sizeof(emr);
310  emr.xNum = xNum;
311  emr.xDenom = xDenom;
312  emr.yNum = yNum;
313  emr.yDenom = yDenom;
314 
315  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
316  return next->funcs->pScaleViewportExtEx( next, xNum, xDenom, yNum, yDenom, size );
317 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
GLsizeiptr size
Definition: glext.h:5919
DWORD nSize
Definition: wingdi.h:1686
#define EMR_SCALEVIEWPORTEXTEX
Definition: wingdi.h:105
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6

◆ EMFDRV_ScaleWindowExtEx()

BOOL EMFDRV_ScaleWindowExtEx ( PHYSDEV  dev,
INT  xNum,
INT  xDenom,
INT  yNum,
INT  yDenom,
SIZE size 
)

Definition at line 319 of file dc.c.

320 {
321  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pScaleWindowExtEx );
323 
325  emr.emr.nSize = sizeof(emr);
326  emr.xNum = xNum;
327  emr.xDenom = xDenom;
328  emr.yNum = yNum;
329  emr.yDenom = yDenom;
330 
331  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
332  return next->funcs->pScaleWindowExtEx( next, xNum, xDenom, yNum, yDenom, size );
333 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
GLsizeiptr size
Definition: glext.h:5919
#define EMR_SCALEWINDOWEXTEX
Definition: wingdi.h:106
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6

◆ EMFDRV_SelectClipPath()

BOOL EMFDRV_SelectClipPath ( PHYSDEV  dev,
INT  iMode 
)

Definition at line 478 of file dc.c.

479 {
480  // PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSelectClipPath ); This HACK breaks test_emf_clipping
481  EMRSELECTCLIPPATH emr;
482  // BOOL ret = FALSE;
483  // HRGN hrgn;
484 
486  emr.emr.nSize = sizeof(emr);
487  emr.iMode = iMode;
488 
489  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
490 /* hrgn = PathToRegion( dev->hdc );
491  if (hrgn)
492  {
493  ret = next->funcs->pExtSelectClipRgn( next, hrgn, iMode );
494  DeleteObject( hrgn );
495  } ERR("EMFDRV_SelectClipPath ret %d\n",ret);
496  return ret;*/
497  return TRUE;
498 }
#define TRUE
Definition: types.h:120
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
_In_ ULONG iMode
Definition: winddi.h:3520
#define EMR_SELECTCLIPPATH
Definition: wingdi.h:141
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_SetArcDirection()

INT EMFDRV_SetArcDirection ( PHYSDEV  dev,
INT  arcDirection 
)

Definition at line 154 of file dc.c.

155 {
156  EMRSETARCDIRECTION emr;
157 
159  emr.emr.nSize = sizeof(emr);
160  emr.iArcDirection = arcDirection;
161  return EMFDRV_WriteRecord(dev, &emr.emr) ? arcDirection : 0;
162 }
#define EMR_SETARCDIRECTION
Definition: wingdi.h:131
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_SetBkColor()

COLORREF EMFDRV_SetBkColor ( PHYSDEV  dev,
COLORREF  color 
)

Definition at line 100 of file dc.c.

101 {
102  EMRSETBKCOLOR emr;
103  EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
104 
105  if (physDev->restoring) return color; /* don't output records during RestoreDC */
106 
107  emr.emr.iType = EMR_SETBKCOLOR;
108  emr.emr.nSize = sizeof(emr);
109  emr.crColor = color;
110  return EMFDRV_WriteRecord( dev, &emr.emr ) ? color : CLR_INVALID;
111 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
static EMFDRV_PDEVICE * get_emf_physdev(PHYSDEV dev)
#define CLR_INVALID
Definition: wingdi.h:882
GLuint color
Definition: glext.h:6243
COLORREF crColor
Definition: wingdi.h:2176
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
#define EMR_SETBKCOLOR
Definition: wingdi.h:99

◆ EMFDRV_SetBkMode()

INT EMFDRV_SetBkMode ( PHYSDEV  dev,
INT  mode 
)

Definition at line 91 of file dc.c.

92 {
93  EMRSETBKMODE emr;
94  emr.emr.iType = EMR_SETBKMODE;
95  emr.emr.nSize = sizeof(emr);
96  emr.iMode = mode;
97  return EMFDRV_WriteRecord( dev, &emr.emr ) ? mode : 0;
98 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
DWORD nSize
Definition: wingdi.h:1686
GLenum mode
Definition: glext.h:6217
#define EMR_SETBKMODE
Definition: wingdi.h:92
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_SetLayout()

DWORD EMFDRV_SetLayout ( PHYSDEV  dev,
DWORD  layout 
)

Definition at line 335 of file dc.c.

336 {
337  EMRSETLAYOUT emr;
338 
339  emr.emr.iType = EMR_SETLAYOUT;
340  emr.emr.nSize = sizeof(emr);
341  emr.iMode = layout;
342  return EMFDRV_WriteRecord( dev, &emr.emr ) ? layout : GDI_ERROR;
343 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
static DWORD layout
Definition: dc.c:42
#define GDI_ERROR
Definition: wingdi.h:1308

◆ EMFDRV_SetMapMode()

INT EMFDRV_SetMapMode ( PHYSDEV  dev,
INT  mode 
)

Definition at line 235 of file dc.c.

236 {
237  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetMapMode );
238  EMRSETMAPMODE emr;
239  emr.emr.iType = EMR_SETMAPMODE;
240  emr.emr.nSize = sizeof(emr);
241  emr.iMode = mode;
242 
243  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0;
244  return next->funcs->pSetMapMode( next, mode );
245 }
#define EMR_SETMAPMODE
Definition: wingdi.h:91
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
DWORD nSize
Definition: wingdi.h:1686
GLenum mode
Definition: glext.h:6217
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6

◆ EMFDRV_SetMapperFlags()

DWORD EMFDRV_SetMapperFlags ( PHYSDEV  dev,
DWORD  flags 
)

Definition at line 406 of file dc.c.

407 {
408  EMRSETMAPPERFLAGS emr;
409 
411  emr.emr.nSize = sizeof(emr);
412  emr.dwFlags = flags;
413 
414  return EMFDRV_WriteRecord( dev, &emr.emr ) ? flags : GDI_ERROR;
415 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define EMR_SETMAPPERFLAGS
Definition: wingdi.h:90
GLbitfield flags
Definition: glext.h:7161
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
#define GDI_ERROR
Definition: wingdi.h:1308

◆ EMFDRV_SetPolyFillMode()

INT EMFDRV_SetPolyFillMode ( PHYSDEV  dev,
INT  mode 
)

Definition at line 136 of file dc.c.

137 {
138  EMRSETPOLYFILLMODE emr;
140  emr.emr.nSize = sizeof(emr);
141  emr.iMode = mode;
142  return EMFDRV_WriteRecord( dev, &emr.emr ) ? mode : 0;
143 }
#define EMR_SETPOLYFILLMODE
Definition: wingdi.h:93
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
DWORD nSize
Definition: wingdi.h:1686
GLenum mode
Definition: glext.h:6217
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_SetROP2()

INT EMFDRV_SetROP2 ( PHYSDEV  dev,
INT  rop 
)

Definition at line 127 of file dc.c.

128 {
129  EMRSETROP2 emr;
130  emr.emr.iType = EMR_SETROP2;
131  emr.emr.nSize = sizeof(emr);
132  emr.iMode = rop;
133  return EMFDRV_WriteRecord( dev, &emr.emr ) ? rop : 0;
134 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
static int rop(int rop, int src, int dst)
Definition: nanoxwin.c:124
#define EMR_SETROP2
Definition: wingdi.h:94
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_SetStretchBltMode()

INT EMFDRV_SetStretchBltMode ( PHYSDEV  dev,
INT  mode 
)

Definition at line 145 of file dc.c.

146 {
149  emr.emr.nSize = sizeof(emr);
150  emr.iMode = mode;
151  return EMFDRV_WriteRecord( dev, &emr.emr ) ? mode : 0;
152 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define EMR_SETSTRETCHBLTMODE
Definition: wingdi.h:95
DWORD nSize
Definition: wingdi.h:1686
GLenum mode
Definition: glext.h:6217
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_SetTextAlign()

UINT EMFDRV_SetTextAlign ( PHYSDEV  dev,
UINT  align 
)

Definition at line 72 of file dc.c.

73 {
74  EMRSETTEXTALIGN emr;
76  emr.emr.nSize = sizeof(emr);
77  emr.iMode = align;
78  return EMFDRV_WriteRecord( dev, &emr.emr ) ? align : GDI_ERROR;
79 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
int align(int length, int align)
Definition: dsound8.c:36
#define EMR_SETTEXTALIGN
Definition: wingdi.h:96
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
#define GDI_ERROR
Definition: wingdi.h:1308

◆ EMFDRV_SetTextColor()

COLORREF EMFDRV_SetTextColor ( PHYSDEV  dev,
COLORREF  color 
)

Definition at line 114 of file dc.c.

115 {
116  EMRSETTEXTCOLOR emr;
117  EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
118 
119  if (physDev->restoring) return color; /* don't output records during RestoreDC */
120 
121  emr.emr.iType = EMR_SETTEXTCOLOR;
122  emr.emr.nSize = sizeof(emr);
123  emr.crColor = color;
124  return EMFDRV_WriteRecord( dev, &emr.emr ) ? color : CLR_INVALID;
125 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
static EMFDRV_PDEVICE * get_emf_physdev(PHYSDEV dev)
#define CLR_INVALID
Definition: wingdi.h:882
#define EMR_SETTEXTCOLOR
Definition: wingdi.h:98
GLuint color
Definition: glext.h:6243
COLORREF crColor
Definition: wingdi.h:2176
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_SetTextJustification()

BOOL EMFDRV_SetTextJustification ( PHYSDEV  dev,
INT  nBreakExtra,
INT  nBreakCount 
)

Definition at line 81 of file dc.c.

82 {
84  emr.emr.iType = EMR_SETTEXTJUSTIFICATION;
85  emr.emr.nSize = sizeof(emr);
86  emr.nBreakExtra = nBreakExtra;
87  emr.nBreakCount = nBreakCount;
88  return EMFDRV_WriteRecord(dev, &emr.emr);
89 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685

◆ EMFDRV_SetViewportExtEx()

BOOL EMFDRV_SetViewportExtEx ( PHYSDEV  dev,
INT  cx,
INT  cy,
SIZE size 
)

Definition at line 247 of file dc.c.

248 {
249  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetViewportExtEx );
251 
253  emr.emr.nSize = sizeof(emr);
254  emr.szlExtent.cx = cx;
255  emr.szlExtent.cy = cy;
256 
257  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
258  return next->funcs->pSetViewportExtEx( next, cx, cy, size );
259 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
_Out_opt_ int _Out_opt_ int * cy
Definition: commctrl.h:581
LONG cx
Definition: windef.h:319
GLsizeiptr size
Definition: glext.h:5919
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
_Out_opt_ int * cx
Definition: commctrl.h:581
#define EMR_SETVIEWPORTEXTEX
Definition: wingdi.h:85
LONG cy
Definition: windef.h:320

◆ EMFDRV_SetViewportOrgEx()

BOOL EMFDRV_SetViewportOrgEx ( PHYSDEV  dev,
INT  x,
INT  y,
POINT pt 
)

Definition at line 275 of file dc.c.

276 {
277  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetViewportOrgEx );
279 
281  emr.emr.nSize = sizeof(emr);
282  emr.ptlOrigin.x = x;
283  emr.ptlOrigin.y = y;
284 
285  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
286  return next->funcs->pSetViewportOrgEx( next, x, y, pt );
287 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define pt(x, y)
Definition: drawing.c:79
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
LONG y
Definition: windef.h:315
#define EMR_SETVIEWPORTORGEX
Definition: wingdi.h:86
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
LONG x
Definition: windef.h:314
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548

◆ EMFDRV_SetWindowExtEx()

BOOL EMFDRV_SetWindowExtEx ( PHYSDEV  dev,
INT  cx,
INT  cy,
SIZE size 
)

Definition at line 261 of file dc.c.

262 {
263  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetWindowExtEx );
264  EMRSETWINDOWEXTEX emr;
265 
267  emr.emr.nSize = sizeof(emr);
268  emr.szlExtent.cx = cx;
269  emr.szlExtent.cy = cy;
270 
271  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
272  return next->funcs->pSetWindowExtEx( next, cx, cy, size );
273 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
_Out_opt_ int _Out_opt_ int * cy
Definition: commctrl.h:581
LONG cx
Definition: windef.h:319
GLsizeiptr size
Definition: glext.h:5919
DWORD nSize
Definition: wingdi.h:1686
#define EMR_SETWINDOWEXTEX
Definition: wingdi.h:83
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
_Out_opt_ int * cx
Definition: commctrl.h:581
LONG cy
Definition: windef.h:320

◆ EMFDRV_SetWindowOrgEx()

BOOL EMFDRV_SetWindowOrgEx ( PHYSDEV  dev,
INT  x,
INT  y,
POINT pt 
)

Definition at line 289 of file dc.c.

290 {
291  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetWindowOrgEx );
292  EMRSETWINDOWORGEX emr;
293 
295  emr.emr.nSize = sizeof(emr);
296  emr.ptlOrigin.x = x;
297  emr.ptlOrigin.y = y;
298 
299  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
300  return next->funcs->pSetWindowOrgEx( next, x, y, pt );
301 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define pt(x, y)
Definition: drawing.c:79
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
LONG y
Definition: windef.h:315
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
LONG x
Definition: windef.h:314
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
#define EMR_SETWINDOWORGEX
Definition: wingdi.h:84

◆ EMFDRV_SetWorldTransform()

BOOL EMFDRV_SetWorldTransform ( PHYSDEV  dev,
const XFORM xform 
)

Definition at line 345 of file dc.c.

346 {
347  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetWorldTransform );
349 
351  emr.emr.nSize = sizeof(emr);
352  emr.xform = *xform;
353 
354  if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
355  return next->funcs->pSetWorldTransform( next, xform );
356 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685
static unsigned __int64 next
Definition: rand_nt.c:6
#define EMR_SETWORLDTRANSFORM
Definition: wingdi.h:109

◆ EMFDRV_WidenPath()

BOOL EMFDRV_WidenPath ( PHYSDEV  dev)

Definition at line 500 of file dc.c.

501 {
502  EMRWIDENPATH emr;
503 
504  emr.emr.iType = EMR_WIDENPATH;
505  emr.emr.nSize = sizeof(emr);
506 
507  return EMFDRV_WriteRecord( dev, &emr.emr );
508 }
BOOL EMFDRV_WriteRecord(PHYSDEV dev, EMR *emr) DECLSPEC_HIDDEN
Definition: init.c:194
#define EMR_WIDENPATH
Definition: wingdi.h:140
DWORD nSize
Definition: wingdi.h:1686
DWORD iType
Definition: wingdi.h:1685

◆ emfpathdrv_AbortPath()

static BOOL emfpathdrv_AbortPath ( PHYSDEV  dev)
static

Definition at line 521 of file dc.c.

522 {
523  PHYSDEV emfdev = get_emfdev( dev );
524  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pAbortPath );
525  DC *dc = get_physdev_dc( dev );
526 
528  emfdev->funcs->pAbortPath( emfdev );
529  return next->funcs->pAbortPath( next );
530 }
HDC dc
Definition: cylfrac.c:34
static const struct gdi_dc_funcs emfpath_driver
Definition: dc.c:31
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
Definition: polytest.cpp:40
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static PHYSDEV pop_dc_driver(DC *dc, const struct gdi_dc_funcs *funcs)
Definition: gdi_private.h:145
static unsigned __int64 next
Definition: rand_nt.c:6
WINEDC * get_physdev_dc(PHYSDEV dev)
Definition: rosglue.c:191
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_AngleArc()

static BOOL emfpathdrv_AngleArc ( PHYSDEV  dev,
INT  x,
INT  y,
DWORD  radius,
FLOAT  start,
FLOAT  sweep 
)
static

Definition at line 535 of file dc.c.

536 {
537  PHYSDEV emfdev = get_emfdev( dev );
538  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pAngleArc );
539 
540  return (emfdev->funcs->pAngleArc( emfdev, x, y, radius, start, sweep ) &&
541  next->funcs->pAngleArc( next, x, y, radius, start, sweep ));
542 }
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
GLuint start
Definition: gl.h:1545
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_Arc()

static BOOL emfpathdrv_Arc ( PHYSDEV  dev,
INT  left,
INT  top,
INT  right,
INT  bottom,
INT  xstart,
INT  ystart,
INT  xend,
INT  yend 
)
static

Definition at line 547 of file dc.c.

549 {
550  PHYSDEV emfdev = get_emfdev( dev );
551  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pArc );
552 
553  return (emfdev->funcs->pArc( emfdev, left, top, right, bottom, xstart, ystart, xend, yend ) &&
554  next->funcs->pArc( next, left, top, right, bottom, xstart, ystart, xend, yend ));
555 }
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
GLint GLint bottom
Definition: glext.h:7726
GLint left
Definition: glext.h:7726
GLdouble GLdouble right
Definition: glext.h:10859
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859

◆ emfpathdrv_ArcTo()

static BOOL emfpathdrv_ArcTo ( PHYSDEV  dev,
INT  left,
INT  top,
INT  right,
INT  bottom,
INT  xstart,
INT  ystart,
INT  xend,
INT  yend 
)
static

Definition at line 560 of file dc.c.

562 {
563  PHYSDEV emfdev = get_emfdev( dev );
564  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pArcTo );
565 
566  return (emfdev->funcs->pArcTo( emfdev, left, top, right, bottom, xstart, ystart, xend, yend ) &&
567  next->funcs->pArcTo( next, left, top, right, bottom, xstart, ystart, xend, yend ));
568 }
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
GLint GLint bottom
Definition: glext.h:7726
GLint left
Definition: glext.h:7726
GLdouble GLdouble right
Definition: glext.h:10859
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859

◆ emfpathdrv_BeginPath()

static BOOL emfpathdrv_BeginPath ( PHYSDEV  dev)
static

Definition at line 573 of file dc.c.

574 {
575  PHYSDEV emfdev = get_emfdev( dev );
576  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pBeginPath );
577 
578  return (emfdev->funcs->pBeginPath( emfdev ) && next->funcs->pBeginPath( next ));
579 }
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_Chord()

static BOOL emfpathdrv_Chord ( PHYSDEV  dev,
INT  left,
INT  top,
INT  right,
INT  bottom,
INT  xstart,
INT  ystart,
INT  xend,
INT  yend 
)
static

Definition at line 584 of file dc.c.

586 {
587  PHYSDEV emfdev = get_emfdev( dev );
588  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pChord );
589 
590  return (emfdev->funcs->pChord( emfdev, left, top, right, bottom, xstart, ystart, xend, yend ) &&
591  next->funcs->pChord( next, left, top, right, bottom, xstart, ystart, xend, yend ));
592 }
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
GLint GLint bottom
Definition: glext.h:7726
GLint left
Definition: glext.h:7726
GLdouble GLdouble right
Definition: glext.h:10859
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859

◆ emfpathdrv_CloseFigure()

static BOOL emfpathdrv_CloseFigure ( PHYSDEV  dev)
static

Definition at line 597 of file dc.c.

598 {
599  PHYSDEV emfdev = get_emfdev( dev );
600  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pCloseFigure );
601 
602  emfdev->funcs->pCloseFigure( emfdev );
603  return next->funcs->pCloseFigure( next );
604 }
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_CreateDC()

static BOOL emfpathdrv_CreateDC ( PHYSDEV dev,
LPCWSTR  driver,
LPCWSTR  device,
LPCWSTR  output,
const DEVMODEW devmode 
)
static

Definition at line 609 of file dc.c.

611 {
612  assert( 0 ); /* should never be called */
613  return TRUE;
614 }
#define TRUE
Definition: types.h:120
#define assert(x)
Definition: debug.h:53

◆ emfpathdrv_DeleteDC()

static BOOL emfpathdrv_DeleteDC ( PHYSDEV  dev)
static

Definition at line 619 of file dc.c.

620 {
621  EMFDRV_PDEVICE *physdev = (EMFDRV_PDEVICE *)get_emfdev( dev );
622 
623  physdev->path = FALSE;
624  return TRUE;
625 }
#define TRUE
Definition: types.h:120
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26

◆ emfpathdrv_Ellipse()

static BOOL emfpathdrv_Ellipse ( PHYSDEV  dev,
INT  x1,
INT  y1,
INT  x2,
INT  y2 
)
static

Definition at line 630 of file dc.c.

631 {
632  PHYSDEV emfdev = get_emfdev( dev );
633  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pEllipse );
634 
635  return (emfdev->funcs->pEllipse( emfdev, x1, y1, x2, y2 ) &&
636  next->funcs->pEllipse( next, x1, y1, x2, y2 ));
637 }
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3706
static unsigned __int64 next
Definition: rand_nt.c:6
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3706
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_EndPath()

static BOOL emfpathdrv_EndPath ( PHYSDEV  dev)
static

Definition at line 642 of file dc.c.

643 {
644  PHYSDEV emfdev = get_emfdev( dev );
645  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pEndPath );
646  DC *dc = get_physdev_dc( dev );
647 
649  emfdev->funcs->pEndPath( emfdev );
650  return next->funcs->pEndPath( next );
651 }
HDC dc
Definition: cylfrac.c:34
static const struct gdi_dc_funcs emfpath_driver
Definition: dc.c:31
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
Definition: polytest.cpp:40
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static PHYSDEV pop_dc_driver(DC *dc, const struct gdi_dc_funcs *funcs)
Definition: gdi_private.h:145
static unsigned __int64 next
Definition: rand_nt.c:6
WINEDC * get_physdev_dc(PHYSDEV dev)
Definition: rosglue.c:191
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_ExtTextOut()

static BOOL emfpathdrv_ExtTextOut ( PHYSDEV  dev,
INT  x,
INT  y,
UINT  flags,
const RECT rect,
LPCWSTR  str,
UINT  count,
const INT dx 
)
static

Definition at line 656 of file dc.c.

658 {
659  PHYSDEV emfdev = get_emfdev( dev );
660  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pExtTextOut );
661 
662  return (emfdev->funcs->pExtTextOut( emfdev, x, y, flags, rect, str, count, dx ) &&
663  next->funcs->pExtTextOut( next, x, y, flags, rect, str, count, dx ));
664 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
& rect
Definition: startmenu.cpp:1413
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
const WCHAR * str
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
GLbitfield flags
Definition: glext.h:7161
static unsigned __int64 next
Definition: rand_nt.c:6
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLint dx
Definition: linetemp.h:97
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_LineTo()

static BOOL emfpathdrv_LineTo ( PHYSDEV  dev,
INT  x,
INT  y 
)
static

Definition at line 669 of file dc.c.

670 {
671  PHYSDEV emfdev = get_emfdev( dev );
672  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pLineTo );
673 
674  return (emfdev->funcs->pLineTo( emfdev, x, y ) && next->funcs->pLineTo( next, x, y ));
675 }
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_MoveTo()

static BOOL emfpathdrv_MoveTo ( PHYSDEV  dev,
INT  x,
INT  y 
)
static

Definition at line 680 of file dc.c.

681 {
682  PHYSDEV emfdev = get_emfdev( dev );
683  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pMoveTo );
684 
685  return (emfdev->funcs->pMoveTo( emfdev, x, y ) && next->funcs->pMoveTo( next, x, y ));
686 }
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_Pie()

static BOOL emfpathdrv_Pie ( PHYSDEV  dev,
INT  left,
INT  top,
INT  right,
INT  bottom,
INT  xstart,
INT  ystart,
INT  xend,
INT  yend 
)
static

Definition at line 691 of file dc.c.

693 {
694  PHYSDEV emfdev = get_emfdev( dev );
695  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pPie );
696 
697  return (emfdev->funcs->pPie( emfdev, left, top, right, bottom, xstart, ystart, xend, yend ) &&
698  next->funcs->pPie( next, left, top, right, bottom, xstart, ystart, xend, yend ));
699 }
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
GLint GLint bottom
Definition: glext.h:7726
GLint left
Definition: glext.h:7726
GLdouble GLdouble right
Definition: glext.h:10859
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859

◆ emfpathdrv_PolyBezier()

static BOOL emfpathdrv_PolyBezier ( PHYSDEV  dev,
const POINT pts,
DWORD  count 
)
static

Definition at line 704 of file dc.c.

705 {
706  PHYSDEV emfdev = get_emfdev( dev );
707  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pPolyBezier );
708 
709  return (emfdev->funcs->pPolyBezier( emfdev, pts, count ) &&
710  next->funcs->pPolyBezier( next, pts, count ));
711 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_PolyBezierTo()

static BOOL emfpathdrv_PolyBezierTo ( PHYSDEV  dev,
const POINT pts,
DWORD  count 
)
static

Definition at line 716 of file dc.c.

717 {
718  PHYSDEV emfdev = get_emfdev( dev );
719  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pPolyBezierTo );
720 
721  return (emfdev->funcs->pPolyBezierTo( emfdev, pts, count ) &&
722  next->funcs->pPolyBezierTo( next, pts, count ));
723 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_PolyDraw()

static BOOL emfpathdrv_PolyDraw ( PHYSDEV  dev,
const POINT pts,
const BYTE types,
DWORD  count 
)
static

Definition at line 728 of file dc.c.

729 {
730  PHYSDEV emfdev = get_emfdev( dev );
731  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pPolyDraw );
732 
733  return (emfdev->funcs->pPolyDraw( emfdev, pts, types, count ) &&
734  next->funcs->pPolyDraw( next, pts, types, count ));
735 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
Definition: cmds.c:130
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_Polygon()

static BOOL emfpathdrv_Polygon ( PHYSDEV  dev,
const POINT pts,
INT  count 
)
static

Definition at line 764 of file dc.c.

765 {
766  PHYSDEV emfdev = get_emfdev( dev );
767  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pPolygon );
768 
769  return (emfdev->funcs->pPolygon( emfdev, pts, count ) &&
770  next->funcs->pPolygon( next, pts, count ));
771 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_Polyline()

static BOOL emfpathdrv_Polyline ( PHYSDEV  dev,
const POINT pts,
INT  count 
)
static

Definition at line 776 of file dc.c.

777 {
778  PHYSDEV emfdev = get_emfdev( dev );
779  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pPolyline );
780 
781  return (emfdev->funcs->pPolyline( emfdev, pts, count ) &&
782  next->funcs->pPolyline( next, pts, count ));
783 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_PolylineTo()

static BOOL emfpathdrv_PolylineTo ( PHYSDEV  dev,
const POINT pts,
INT  count 
)
static

Definition at line 788 of file dc.c.

789 {
790  PHYSDEV emfdev = get_emfdev( dev );
791  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pPolylineTo );
792 
793  return (emfdev->funcs->pPolylineTo( emfdev, pts, count ) &&
794  next->funcs->pPolylineTo( next, pts, count ));
795 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_PolyPolygon()

static BOOL emfpathdrv_PolyPolygon ( PHYSDEV  dev,
const POINT pts,
const INT counts,
UINT  polygons 
)
static

Definition at line 740 of file dc.c.

741 {
742  PHYSDEV emfdev = get_emfdev( dev );
743  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pPolyPolygon );
744 
745  return (emfdev->funcs->pPolyPolygon( emfdev, pts, counts, polygons ) &&
746  next->funcs->pPolyPolygon( next, pts, counts, polygons ));
747 }
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_PolyPolyline()

static BOOL emfpathdrv_PolyPolyline ( PHYSDEV  dev,
const POINT pts,
const DWORD counts,
DWORD  polylines 
)
static

Definition at line 752 of file dc.c.

753 {
754  PHYSDEV emfdev = get_emfdev( dev );
755  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pPolyPolyline );
756 
757  return (emfdev->funcs->pPolyPolyline( emfdev, pts, counts, polylines ) &&
758  next->funcs->pPolyPolyline( next, pts, counts, polylines ));
759 }
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
static unsigned __int64 next
Definition: rand_nt.c:6
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_Rectangle()

static BOOL emfpathdrv_Rectangle ( PHYSDEV  dev,
INT  x1,
INT  y1,
INT  x2,
INT  y2 
)
static

Definition at line 800 of file dc.c.

801 {
802  PHYSDEV emfdev = get_emfdev( dev );
803  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pRectangle );
804 
805  return (emfdev->funcs->pRectangle( emfdev, x1, y1, x2, y2 ) &&
806  next->funcs->pRectangle( next, x1, y1, x2, y2 ));
807 }
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3706
static unsigned __int64 next
Definition: rand_nt.c:6
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3706
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ emfpathdrv_RoundRect()

static BOOL emfpathdrv_RoundRect ( PHYSDEV  dev,
INT  x1,
INT  y1,
INT  x2,
INT  y2,
INT  ell_width,
INT  ell_height 
)
static

Definition at line 812 of file dc.c.

814 {
815  PHYSDEV emfdev = get_emfdev( dev );
816  PHYSDEV next = GET_NEXT_PHYSDEV( dev, pRoundRect );
817 
818  return (emfdev->funcs->pRoundRect( emfdev, x1, y1, x2, y2, ell_width, ell_height ) &&
819  next->funcs->pRoundRect( next, x1, y1, x2, y2, ell_width, ell_height ));
820 }
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
#define GET_NEXT_PHYSDEV(dev, func)
Definition: gdi_driver.h:215
static PHYSDEV get_emfdev(PHYSDEV path)
Definition: dc.c:26
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3706
static unsigned __int64 next
Definition: rand_nt.c:6
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3706
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31

◆ get_emfdev()

Variable Documentation

◆ emfpath_driver

static const struct gdi_dc_funcs emfpath_driver
static

Definition at line 31 of file dc.c.

Referenced by EMFDRV_BeginPath(), emfpathdrv_AbortPath(), and emfpathdrv_EndPath().