Shawn M. Chapla : gdiplus: Implement GdipGetClipBoundsI in terms of GdipGetClipBounds.
Alexandre Julliard
julliard at winehq.org
Wed Aug 26 15:24:45 CDT 2020
Module: wine
Branch: master
Commit: 52fa4fb74e028f7a3f8c577562b21300cb22a4da
URL: https://source.winehq.org/git/wine.git/?a=commit;h=52fa4fb74e028f7a3f8c577562b21300cb22a4da
Author: Shawn M. Chapla <schapla at codeweavers.com>
Date: Tue Aug 25 18:13:41 2020 -0400
gdiplus: Implement GdipGetClipBoundsI in terms of GdipGetClipBounds.
Signed-off-by: Shawn M. Chapla <schapla at codeweavers.com>
Signed-off-by: Esme Povirk <esme at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdiplus/graphics.c | 16 ++++++++++++----
dlls/gdiplus/tests/graphics.c | 2 +-
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index c3542b3d65..5db8973c7b 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -4770,15 +4770,23 @@ GpStatus WINGDIPAPI GdipGetClipBounds(GpGraphics *graphics, GpRectF *rect)
*/
GpStatus WINGDIPAPI GdipGetClipBoundsI(GpGraphics *graphics, GpRect *rect)
{
+ GpRectF rectf;
+ GpStatus stat;
+
TRACE("(%p, %p)\n", graphics, rect);
- if(!graphics)
+ if (!rect)
return InvalidParameter;
- if(graphics->busy)
- return ObjectBusy;
+ if ((stat = GdipGetClipBounds(graphics, &rectf)) == Ok)
+ {
+ rect->X = gdip_round(rectf.X);
+ rect->Y = gdip_round(rectf.Y);
+ rect->Width = gdip_round(rectf.Width);
+ rect->Height = gdip_round(rectf.Height);
+ }
- return GdipGetRegionBoundsI(graphics->clip, graphics, rect);
+ return stat;
}
GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics *graphics,
diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c
index 38780d4686..1dbb0ae279 100644
--- a/dlls/gdiplus/tests/graphics.c
+++ b/dlls/gdiplus/tests/graphics.c
@@ -5157,7 +5157,7 @@ static void test_clipping(void)
status = GdipGetClipBoundsI(graphics, &recti);
expect(Ok, status);
- todo_wine ok(recti.X == 45 && recti.Y == 20 && recti.Width == 50 && recti.Height == 25,
+ ok(recti.X == 45 && recti.Y == 20 && recti.Width == 50 && recti.Height == 25,
"expected 45,20-50,25, got %i,%i-%i,%i\n", recti.X, recti.Y, recti.Width, recti.Height);
status = GdipSetEmpty(region);
More information about the wine-cvs
mailing list