Commit c16bf295 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

gdi32: Use NtGdiArcInternal for Arc implementation.

parent af039dc5
...@@ -42,3 +42,15 @@ BOOL WINAPI MoveToEx( HDC hdc, INT x, INT y, POINT *pt ) ...@@ -42,3 +42,15 @@ BOOL WINAPI MoveToEx( HDC hdc, INT x, INT y, POINT *pt )
TRACE( "%p, (%d, %d), %p\n", hdc, x, y, pt ); TRACE( "%p, (%d, %d), %p\n", hdc, x, y, pt );
return NtGdiMoveTo( hdc, x, y, pt ); return NtGdiMoveTo( hdc, x, y, pt );
} }
/***********************************************************************
* Arc (GDI32.@)
*/
BOOL WINAPI Arc( HDC hdc, INT left, INT top, INT right, INT bottom,
INT xstart, INT ystart, INT xend, INT yend )
{
TRACE( "%p, (%d, %d)-(%d, %d), (%d, %d), (%d, %d)\n", hdc, left, top,
right, bottom, xstart, ystart, xend, yend );
return NtGdiArcInternal( NtGdiArc, hdc, left, top, right, bottom,
xstart, ystart, xend, yend );
}
...@@ -275,22 +275,29 @@ BOOL WINAPI NtGdiMoveTo( HDC hdc, INT x, INT y, POINT *pt ) ...@@ -275,22 +275,29 @@ BOOL WINAPI NtGdiMoveTo( HDC hdc, INT x, INT y, POINT *pt )
/*********************************************************************** /***********************************************************************
* Arc (GDI32.@) * NtGdiArcInternal (win32u.@)
*/ */
BOOL WINAPI Arc( HDC hdc, INT left, INT top, INT right, BOOL WINAPI NtGdiArcInternal( UINT type, HDC hdc, INT left, INT top, INT right,
INT bottom, INT xstart, INT ystart, INT bottom, INT xstart, INT ystart, INT xend, INT yend )
INT xend, INT yend )
{ {
PHYSDEV physdev; PHYSDEV physdev;
BOOL ret; BOOL ret;
DC * dc = get_dc_ptr( hdc ); DC *dc;
TRACE( "%p, (%d, %d)-(%d, %d), (%d, %d), (%d, %d)\n", hdc, left, top, right, bottom, xstart, ystart, xend, yend );
if (!dc) return FALSE; if (!(dc = get_dc_ptr( hdc ))) return FALSE;
update_dc( dc ); update_dc( dc );
physdev = GET_DC_PHYSDEV( dc, pArc );
ret = physdev->funcs->pArc( physdev, left, top, right, bottom, xstart, ystart, xend, yend ); switch (type)
{
case NtGdiArc:
physdev = GET_DC_PHYSDEV( dc, pArc );
ret = physdev->funcs->pArc( physdev, left, top, right, bottom, xstart, ystart, xend, yend );
break;
default:
WARN( "invalid arc type %u\n", type );
ret = FALSE;
}
release_dc_ptr( dc ); release_dc_ptr( dc );
return ret; return ret;
} }
......
...@@ -72,6 +72,14 @@ typedef struct _GDI_SHARED_MEMORY ...@@ -72,6 +72,14 @@ typedef struct _GDI_SHARED_MEMORY
GDI_HANDLE_ENTRY Handles[GDI_MAX_HANDLE_COUNT]; GDI_HANDLE_ENTRY Handles[GDI_MAX_HANDLE_COUNT];
} GDI_SHARED_MEMORY, *PGDI_SHARED_MEMORY; } GDI_SHARED_MEMORY, *PGDI_SHARED_MEMORY;
enum
{
NtGdiArc,
NtGdiArcTo,
NtGdiChord,
NtGdiPie,
};
INT WINAPI NtGdiAbortDoc( HDC hdc ); INT WINAPI NtGdiAbortDoc( HDC hdc );
BOOL WINAPI NtGdiAbortPath( HDC hdc ); BOOL WINAPI NtGdiAbortPath( HDC hdc );
BOOL WINAPI NtGdiAngleArc( HDC hdc, INT x, INT y, DWORD radius, FLOAT start_angle, BOOL WINAPI NtGdiAngleArc( HDC hdc, INT x, INT y, DWORD radius, FLOAT start_angle,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment