From d215b4744ba09f49aa0d180e1a23782bcebfd871 Mon Sep 17 00:00:00 2001 From: Adam Petaccia Date: Mon, 4 Aug 2008 13:56:37 -0400 Subject: [PATCH] gdiplus: Implement GdipCreateRegionRect. --- dlls/gdiplus/region.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/dlls/gdiplus/region.c b/dlls/gdiplus/region.c index e2be5f5a30d..64ac9a5e919 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)