Adam Petaccia : gdiplus: Implement GdipCreateRegionRect.

Alexandre Julliard julliard at winehq.org
Tue Aug 5 07:26:23 CDT 2008


Module: wine
Branch: master
Commit: d215b4744ba09f49aa0d180e1a23782bcebfd871
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d215b4744ba09f49aa0d180e1a23782bcebfd871

Author: Adam Petaccia <adam at tpetaccia.com>
Date:   Mon Aug  4 13:56:37 2008 -0400

gdiplus: Implement GdipCreateRegionRect.

---

 dlls/gdiplus/region.c |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/dlls/gdiplus/region.c b/dlls/gdiplus/region.c
index e2be5f5..64ac9a5 100644
--- a/dlls/gdiplus/region.c
+++ b/dlls/gdiplus/region.c
@@ -332,12 +332,30 @@ GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath *path, GpRegion **region)
     return Ok;
 }
 
-GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF *rect, GpRegion **region)
+GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF *rect,
+        GpRegion **region)
 {
-    FIXME("(%p, %p): stub\n", rect, region);
+    GpStatus stat;
 
-    *region = NULL;
-    return NotImplemented;
+    TRACE("%p, %p\n", rect, region);
+
+    if (!(rect && region))
+        return InvalidParameter;
+
+    *region = GdipAlloc(sizeof(GpRegion));
+    stat = init_region(*region, RegionDataRect);
+    if(stat != Ok)
+    {
+        GdipDeleteRegion(*region);
+        return stat;
+    }
+
+    (*region)->node.elementdata.rect.X = rect->X;
+    (*region)->node.elementdata.rect.Y = rect->Y;
+    (*region)->node.elementdata.rect.Width = rect->Width;
+    (*region)->node.elementdata.rect.Height = rect->Height;
+
+    return Ok;
 }
 
 GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect *rect, GpRegion **region)




More information about the wine-cvs mailing list