diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 7244a81bafc..8d13a19d730 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -427,8 +427,8 @@ @ stub GdipIsVisibleClipEmpty @ stdcall GdipIsVisiblePathPoint(ptr long long ptr ptr) @ stdcall GdipIsVisiblePathPointI(ptr long long ptr ptr) -@ stub GdipIsVisiblePoint -@ stub GdipIsVisiblePointI +@ stdcall GdipIsVisiblePoint(ptr long long ptr) +@ stdcall GdipIsVisiblePointI(ptr long long ptr) @ stub GdipIsVisibleRect @ stub GdipIsVisibleRectI @ stub GdipIsVisibleRegionPoint diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 3b5d8f0679a..03b0994e959 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -2583,6 +2583,32 @@ GpStatus WINGDIPAPI GdipIsClipEmpty(GpGraphics *graphics, BOOL *res) return GdipIsEmptyRegion(graphics->clip, graphics, res); } +GpStatus WINGDIPAPI GdipIsVisiblePoint(GpGraphics *graphics, REAL x, REAL y, BOOL *result) +{ + FIXME("(%p, %.2f, %.2f, %p) stub\n", graphics, x, y, result); + + if(!graphics || !result) + return InvalidParameter; + + if(graphics->busy) + return ObjectBusy; + + return NotImplemented; +} + +GpStatus WINGDIPAPI GdipIsVisiblePointI(GpGraphics *graphics, INT x, INT y, BOOL *result) +{ + FIXME("(%p, %d, %d, %p) stub\n", graphics, x, y, result); + + if(!graphics || !result) + return InvalidParameter; + + if(graphics->busy) + return ObjectBusy; + + return NotImplemented; +} + 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 6f384460737..1b4e3104aff 100644 --- a/dlls/gdiplus/tests/graphics.c +++ b/dlls/gdiplus/tests/graphics.c @@ -487,6 +487,7 @@ static void test_Get_Release_DC(void) GpRect rect[2]; GpRegion *clip; INT i; + BOOL res; pt[0].X = 10; pt[0].Y = 10; @@ -674,6 +675,10 @@ static void test_Get_Release_DC(void) expect(ObjectBusy, status); status = Ok; status = GdipGraphicsClear(graphics, 0xdeadbeef); expect(ObjectBusy, status); status = Ok; + status = GdipIsVisiblePoint(graphics, 0.0, 0.0, &res); + expect(ObjectBusy, status); status = Ok; + status = GdipIsVisiblePointI(graphics, 0, 0, &res); + expect(ObjectBusy, status); status = Ok; /* GdipMeasureCharacterRanges */ /* GdipMeasureString */ status = GdipResetClip(graphics); diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 7b36a73e928..8df65f4a5f9 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -537,6 +537,8 @@ GpStatus WINGDIPAPI GdipSetClipPath(GpGraphics*,GpPath*,CombineMode); GpStatus WINGDIPAPI GdipSetClipRect(GpGraphics*,REAL,REAL,REAL,REAL,CombineMode); GpStatus WINGDIPAPI GdipSetClipRectI(GpGraphics*,INT,INT,INT,INT,CombineMode); GpStatus WINGDIPAPI GdipFillRegion(GpGraphics*,GpBrush*,GpRegion*); +GpStatus WINGDIPAPI GdipIsVisiblePoint(GpGraphics*,REAL,REAL,BOOL*); +GpStatus WINGDIPAPI GdipIsVisiblePointI(GpGraphics*,INT,INT,BOOL*); GpStatus WINGDIPAPI GdipCreateAdjustableArrowCap(REAL,REAL,BOOL,GpAdjustableArrowCap**); GpStatus WINGDIPAPI GdipGetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL*);