[ros-diffs] [fireball] 45571: - Implement usermode parts of Pie and Ellipse GDI driver APIs.

fireball at svn.reactos.org fireball at svn.reactos.org
Thu Feb 11 13:57:40 CET 2010


Author: fireball
Date: Thu Feb 11 13:57:39 2010
New Revision: 45571

URL: http://svn.reactos.org/svn/reactos?rev=45571&view=rev
Log:
- Implement usermode parts of Pie and Ellipse GDI driver APIs.

Modified:
    branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c

Modified: branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c?rev=45571&r1=45570&r2=45571&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c [iso-8859-1] Thu Feb 11 13:57:39 2010
@@ -236,8 +236,17 @@
 
 BOOL CDECL RosDrv_Ellipse( NTDRV_PDEVICE *physDev, INT left, INT top, INT right, INT bottom )
 {
-    UNIMPLEMENTED;
-    return FALSE;
+    POINT pts[2];
+
+    /* Map coordinates */
+    pts[0].x = left;
+    pts[0].y = top;
+    pts[1].x = right;
+    pts[1].y = bottom;
+
+    LPtoDP(physDev->hUserDC, pts, 2);
+
+    return RosGdiEllipse(physDev->hKernelDC, pts[0].x, pts[0].y, pts[1].x, pts[1].y);
 }
 
 BOOL CDECL RosDrv_EnumDeviceFonts( NTDRV_PDEVICE *physDev, LPLOGFONTW plf,
@@ -448,8 +457,22 @@
 BOOL CDECL RosDrv_Pie( NTDRV_PDEVICE *physDev, INT left, INT top, INT right, INT bottom,
             INT xstart, INT ystart, INT xend, INT yend )
 {
-    UNIMPLEMENTED;
-    return FALSE;
+    POINT pts[4];
+
+    /* Map coordinates */
+    pts[0].x = left;
+    pts[0].y = top;
+    pts[1].x = right;
+    pts[1].y = bottom;
+    pts[2].x = xstart;
+    pts[2].y = ystart;
+    pts[3].x = xend;
+    pts[3].y = yend;
+
+    LPtoDP(physDev->hUserDC, pts, 4);
+
+    return RosGdiPie(physDev->hKernelDC, pts[0].x, pts[0].y, pts[1].x, pts[1].y,
+        pts[2].x, pts[2].y, pts[3].x, pts[3].y);
 }
 
 BOOL CDECL RosDrv_PolyPolygon( NTDRV_PDEVICE *physDev, const POINT* pt, const INT* counts, UINT polygons)




More information about the Ros-diffs mailing list