gdiplus: Implement GdipCreateRegionRectI.

This commit is contained in:
Adam Petaccia 2008-08-04 13:56:41 -04:00 committed by Alexandre Julliard
parent d215b4744b
commit cf3d4928bd
2 changed files with 22 additions and 12 deletions

View File

@ -358,12 +358,19 @@ GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF *rect,
return Ok;
}
GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect *rect, GpRegion **region)
GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect *rect,
GpRegion **region)
{
FIXME("(%p, %p): stub\n", rect, region);
GpRectF rectf;
*region = NULL;
return NotImplemented;
TRACE("%p, %p\n", rect, region);
rectf.X = (REAL)rect->X;
rectf.Y = (REAL)rect->Y;
rectf.Width = (REAL)rect->Width;
rectf.Height = (REAL)rect->Height;
return GdipCreateRegionRect(&rectf, region);
}
GpStatus WINGDIPAPI GdipCreateRegionRgnData(GDIPCONST BYTE *data, INT size, GpRegion **region)

View File

@ -115,8 +115,6 @@ todo_wine
rect.Y = 20;
rect.Width = 100;
rect.Height = 200;
todo_wine
{
status = GdipCreateRegionRectI(&rect, &region);
ok(status == Ok, "status %08x\n", status);
status = GdipGetRegionDataSize(region, &needed);
@ -127,11 +125,8 @@ todo_wine
expect(36, needed);
expect_dword(buf, 28);
trace("buf[1] = %08x\n", buf[1]);
}
expect_magic((DWORD*)(buf + 2));
expect_dword(buf + 3, 0);
todo_wine
{
expect_dword(buf + 4, RGNDATA_RECT);
expect_float(buf + 5, 10.0);
expect_float(buf + 6, 20.0);
@ -142,6 +137,8 @@ todo_wine
rect.Y = 30;
rect.Width = 10;
rect.Height = 20;
todo_wine
{
status = GdipCombineRegionRectI(region, &rect, CombineModeIntersect);
ok(status == Ok, "status %08x\n", status);
rect.X = 100;
@ -150,6 +147,7 @@ todo_wine
rect.Height = 50;
status = GdipCombineRegionRectI(region, &rect, CombineModeXor);
ok(status == Ok, "status %08x\n", status);
}
rect.X = 200;
rect.Y = 100;
@ -161,6 +159,8 @@ todo_wine
rect.Y = 10;
rect.Width = 40;
rect.Height = 66;
todo_wine
{
status = GdipCombineRegionRectI(region2, &rect, CombineModeUnion);
ok(status == Ok, "status %08x\n", status);
@ -172,18 +172,21 @@ todo_wine
rect.Width = 22;
rect.Height = 55;
status = GdipCombineRegionRectI(region, &rect, CombineModeExclude);
todo_wine
ok(status == Ok, "status %08x\n", status);
}
status = GdipGetRegionDataSize(region, &needed);
ok(status == Ok, "status %08x\n", status);
todo_wine
expect(156, needed);
status = GdipGetRegionData(region, (BYTE*)buf, sizeof(buf), &needed);
ok(status == Ok, "status %08x\n", status);
todo_wine
{
expect(156, needed);
expect_dword(buf, 148);
trace("buf[1] = %08x\n", buf[1]);
}
trace("buf[1] = %08x\n", buf[1]);
expect_magic((DWORD*)(buf + 2));
todo_wine
{
@ -223,12 +226,12 @@ todo_wine
expect_float(buf + 36, 500.0);
expect_float(buf + 37, 22.0);
expect_float(buf + 38, 55.0);
}
status = GdipDeleteRegion(region2);
ok(status == Ok, "status %08x\n", status);
status = GdipDeleteRegion(region);
ok(status == Ok, "status %08x\n", status);
}
/* Try some paths */