Nikolay Sivov : gdiplus: Add testing for ObjectBusy in some Graphics methods.
Alexandre Julliard
julliard at winehq.org
Tue Feb 3 09:13:19 CST 2009
Module: wine
Branch: master
Commit: 8c096167d7ce26d794e09c70a86963b901596d2f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8c096167d7ce26d794e09c70a86963b901596d2f
Author: Nikolay Sivov <bunglehead at gmail.com>
Date: Mon Feb 2 23:48:01 2009 +0300
gdiplus: Add testing for ObjectBusy in some Graphics methods.
---
dlls/gdiplus/graphics.c | 12 ++++++++++++
dlls/gdiplus/tests/graphics.c | 14 +++++++++++++-
include/gdiplusflat.h | 5 +++++
3 files changed, 30 insertions(+), 1 deletions(-)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 1c88453..04beb0b 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -2415,6 +2415,9 @@ GpStatus WINGDIPAPI GdipGetClipBounds(GpGraphics *graphics, GpRectF *rect)
if(!graphics)
return InvalidParameter;
+ if(graphics->busy)
+ return ObjectBusy;
+
return GdipGetRegionBounds(graphics->clip, graphics, rect);
}
@@ -2428,6 +2431,9 @@ GpStatus WINGDIPAPI GdipGetClipBoundsI(GpGraphics *graphics, GpRect *rect)
if(!graphics)
return InvalidParameter;
+ if(graphics->busy)
+ return ObjectBusy;
+
return GdipGetRegionBoundsI(graphics->clip, graphics, rect);
}
@@ -3378,6 +3384,9 @@ GpStatus WINGDIPAPI GdipTranslateClip(GpGraphics *graphics, REAL dx, REAL dy)
if(!graphics)
return InvalidParameter;
+ if(graphics->busy)
+ return ObjectBusy;
+
return GdipTranslateRegion(graphics->clip, dx, dy);
}
@@ -3391,5 +3400,8 @@ GpStatus WINGDIPAPI GdipTranslateClipI(GpGraphics *graphics, INT dx, INT dy)
if(!graphics)
return InvalidParameter;
+ if(graphics->busy)
+ return ObjectBusy;
+
return GdipTranslateRegion(graphics->clip, (REAL)dx, (REAL)dy);
}
diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c
index fb98a38..8091a9a 100644
--- a/dlls/gdiplus/tests/graphics.c
+++ b/dlls/gdiplus/tests/graphics.c
@@ -486,6 +486,7 @@ static void test_Get_Release_DC(void)
INT i;
BOOL res;
ARGB color = 0x00000000;
+ HRGN hrgn = CreateRectRgn(0, 0, 10, 10);
pt[0].X = 10;
pt[0].Y = 10;
@@ -653,6 +654,10 @@ static void test_Get_Release_DC(void)
expect(ObjectBusy, status); status = Ok;
status = GdipFlush(graphics, FlushIntentionFlush);
expect(ObjectBusy, status); status = Ok;
+ status = GdipGetClipBounds(graphics, rectf);
+ expect(ObjectBusy, status); status = Ok;
+ status = GdipGetClipBoundsI(graphics, rect);
+ expect(ObjectBusy, status); status = Ok;
status = GdipGetCompositingMode(graphics, &compmode);
expect(ObjectBusy, status); status = Ok;
status = GdipGetCompositingQuality(graphics, &quality);
@@ -711,6 +716,8 @@ static void test_Get_Release_DC(void)
expect(ObjectBusy, status); status = Ok;
status = GdipTranslateWorldTransform(graphics, 0.0, 0.0, MatrixOrderPrepend);
expect(ObjectBusy, status); status = Ok;
+ status = GdipSetClipHrgn(graphics, hrgn, CombineModeReplace);
+ expect(ObjectBusy, status); status = Ok;
status = GdipSetClipPath(graphics, path, CombineModeReplace);
expect(ObjectBusy, status); status = Ok;
status = GdipSetClipRect(graphics, 0.0, 0.0, 10.0, 10.0, CombineModeReplace);
@@ -718,7 +725,11 @@ static void test_Get_Release_DC(void)
status = GdipSetClipRectI(graphics, 0, 0, 10, 10, CombineModeReplace);
expect(ObjectBusy, status); status = Ok;
status = GdipSetClipRegion(graphics, clip, CombineModeReplace);
- expect(ObjectBusy, status);
+ expect(ObjectBusy, status); status = Ok;
+ status = GdipTranslateClip(graphics, 0.0, 0.0);
+ expect(ObjectBusy, status); status = Ok;
+ status = GdipTranslateClipI(graphics, 0, 0);
+ expect(ObjectBusy, status); status = Ok;
status = GdipDrawPolygon(graphics, pen, ptf, 5);
expect(ObjectBusy, status); status = Ok;
status = GdipDrawPolygonI(graphics, pen, pt, 5);
@@ -746,6 +757,7 @@ static void test_Get_Release_DC(void)
GdipDeleteBrush((GpBrush*)brush);
GdipDeleteRegion(region);
GdipDeleteMatrix(m);
+ DeleteObject(hrgn);
ReleaseDC(0, hdc);
}
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index dd01d1b..56540cd 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -190,6 +190,8 @@ GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics*,GpBrush*,GDIPCONST GpRectF*,I
GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics*,GpBrush*,GDIPCONST GpRect*,INT);
GpStatus WINGDIPAPI GdipFillRegion(GpGraphics*,GpBrush*,GpRegion*);
GpStatus WINGDIPAPI GdipGetClip(GpGraphics*,GpRegion*);
+GpStatus WINGDIPAPI GdipGetClipBounds(GpGraphics*,GpRectF*);
+GpStatus WINGDIPAPI GdipGetClipBoundsI(GpGraphics*,GpRect*);
GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics*,CompositingMode*);
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*);
GpStatus WINGDIPAPI GdipGetDC(GpGraphics*,HDC*);
@@ -222,6 +224,7 @@ GpStatus WINGDIPAPI GdipRestoreGraphics(GpGraphics*,GraphicsState);
GpStatus WINGDIPAPI GdipRotateWorldTransform(GpGraphics*,REAL,GpMatrixOrder);
GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics*,GraphicsState*);
GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder);
+GpStatus WINGDIPAPI GdipSetClipHrgn(GpGraphics*,HRGN,CombineMode);
GpStatus WINGDIPAPI GdipSetClipPath(GpGraphics*,GpPath*,CombineMode);
GpStatus WINGDIPAPI GdipSetClipRect(GpGraphics*,REAL,REAL,REAL,REAL,CombineMode);
GpStatus WINGDIPAPI GdipSetClipRectI(GpGraphics*,INT,INT,INT,INT,CombineMode);
@@ -240,6 +243,8 @@ GpStatus WINGDIPAPI GdipTransformPoints(GpGraphics*, GpCoordinateSpace, GpCoordi
GpPointF *, INT);
GpStatus WINGDIPAPI GdipTransformPointsI(GpGraphics*, GpCoordinateSpace, GpCoordinateSpace,
GpPoint *, INT);
+GpStatus WINGDIPAPI GdipTranslateClip(GpGraphics*,REAL,REAL);
+GpStatus WINGDIPAPI GdipTranslateClipI(GpGraphics*,INT,INT);
GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder);
/* GraphicsPath */
More information about the wine-cvs
mailing list