Nikolay Sivov : gdiplus: Implemented GdipIsEmptyClip with tests.
Alexandre Julliard
julliard at winehq.org
Fri Aug 29 07:29:44 CDT 2008
Module: wine
Branch: master
Commit: 813d6dc5372475494a5df6ee3f5a2da905f59331
URL: http://source.winehq.org/git/wine.git/?a=commit;h=813d6dc5372475494a5df6ee3f5a2da905f59331
Author: Nikolay Sivov <bunglehead at gmail.com>
Date: Thu Aug 28 17:49:41 2008 +0400
gdiplus: Implemented GdipIsEmptyClip with tests.
---
dlls/gdiplus/gdiplus.spec | 2 +-
dlls/gdiplus/graphics.c | 8 ++++++++
dlls/gdiplus/tests/graphics.c | 35 +++++++++++++++++++++++++++++++++++
include/gdiplusflat.h | 1 +
4 files changed, 45 insertions(+), 1 deletions(-)
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index 87dc747..94123fa 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -414,7 +414,7 @@
@ stub GdipImageSetAbort
@ stub GdipInitializePalette
@ stdcall GdipInvertMatrix(ptr)
-@ stub GdipIsClipEmpty
+@ stdcall GdipIsClipEmpty(ptr ptr)
@ stdcall GdipIsEmptyRegion(ptr ptr ptr)
@ stdcall GdipIsEqualRegion(ptr ptr ptr ptr)
@ stdcall GdipIsInfiniteRegion(ptr ptr ptr)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index bcfe70f..d91d825 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -2392,6 +2392,14 @@ GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics *graphics, GpMatrix *matrix
return Ok;
}
+GpStatus WINGDIPAPI GdipIsClipEmpty(GpGraphics *graphics, BOOL *res)
+{
+ if(!graphics || !res)
+ return InvalidParameter;
+
+ return GdipIsEmptyRegion(graphics->clip, graphics, res);
+}
+
GpStatus WINGDIPAPI GdipMeasureCharacterRanges(GpGraphics* graphics,
GDIPCONST WCHAR* string, INT length, GDIPCONST GpFont* font,
GDIPCONST RectF* layoutRect, GDIPCONST GpStringFormat *stringFormat,
diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c
index 8bd76d1..b0858e1 100644
--- a/dlls/gdiplus/tests/graphics.c
+++ b/dlls/gdiplus/tests/graphics.c
@@ -844,6 +844,40 @@ static void test_get_set_clip(void)
ReleaseDC(0, hdc);
}
+static void test_isempty(void)
+{
+ GpStatus status;
+ GpGraphics *graphics = NULL;
+ HDC hdc = GetDC(0);
+ GpRegion *clip;
+ BOOL res;
+
+ status = GdipCreateFromHDC(hdc, &graphics);
+ expect(Ok, status);
+
+ status = GdipCreateRegion(&clip);
+ expect(Ok, status);
+
+ /* NULL */
+ status = GdipIsClipEmpty(NULL, NULL);
+ expect(InvalidParameter, status);
+ status = GdipIsClipEmpty(graphics, NULL);
+ expect(InvalidParameter, status);
+ status = GdipIsClipEmpty(NULL, &res);
+ expect(InvalidParameter, status);
+
+ /* default is infinite */
+ res = TRUE;
+ status = GdipIsClipEmpty(graphics, &res);
+ expect(Ok, status);
+ expect(FALSE, res);
+
+ GdipDeleteRegion(clip);
+
+ GdipDeleteGraphics(graphics);
+ ReleaseDC(0, hdc);
+}
+
START_TEST(graphics)
{
struct GdiplusStartupInput gdiplusStartupInput;
@@ -866,6 +900,7 @@ START_TEST(graphics)
test_Get_Release_DC();
test_transformpoints();
test_get_set_clip();
+ test_isempty();
GdiplusShutdown(gdiplusToken);
}
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index d9b70b2..0b4a67f 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -158,6 +158,7 @@ GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics*,CompositingMode*);
GpStatus WINGDIPAPI GdipGetClip(GpGraphics*,GpRegion*);
GpStatus WINGDIPAPI GdipSetClipRegion(GpGraphics*,GpRegion*,CombineMode);
GpStatus WINGDIPAPI GdipResetClip(GpGraphics*);
+GpStatus WINGDIPAPI GdipIsClipEmpty(GpGraphics*, BOOL*);
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*);
GpStatus WINGDIPAPI GdipGetDC(GpGraphics*,HDC*);
GpStatus WINGDIPAPI GdipGetImageDimension(GpImage*,REAL*,REAL*);
More information about the wine-cvs
mailing list