gdiplus: GdipIsVisiblePathPoint is not affected by world transform.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=38823
This commit is contained in:
Jeff Smith 2023-09-12 03:35:20 -05:00 committed by Alexandre Julliard
parent c9f2f1c376
commit 0c777a7d5c
2 changed files with 13 additions and 1 deletions

View file

@ -1793,7 +1793,7 @@ GpStatus WINGDIPAPI GdipIsVisiblePathPoint(GpPath* path, REAL x, REAL y, GpGraph
if(status != Ok)
return status;
status = GdipGetRegionHRgn(region, graphics, &hrgn);
status = GdipGetRegionHRgn(region, NULL, &hrgn);
if(status != Ok){
GdipDeleteRegion(region);
return status;

View file

@ -1865,6 +1865,18 @@ static void test_isvisible(void)
status = GdipIsVisiblePathPoint(path, 0.0, 0.0, graphics, &result);
expect(Ok, status);
expect(TRUE, result);
/* not affected by world transform */
status = GdipScaleWorldTransform(graphics, 2.0, 2.0, MatrixOrderPrepend);
expect(Ok, status);
result = FALSE;
status = GdipIsVisiblePathPoint(path, 9.0, 9.0, graphics, &result);
expect(Ok, status);
expect(TRUE, result);
result = TRUE;
status = GdipIsVisiblePathPoint(path, 11.0, 11.0, graphics, &result);
expect(Ok, status);
expect(FALSE, result);
GdipResetWorldTransform(graphics);
GdipDeletePath(path);
GdipDeleteGraphics(graphics);