diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index aa64a3cb311..7d6081d36c8 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -424,7 +424,7 @@ @ stdcall GdipIsOutlineVisiblePathPoint(ptr long long ptr ptr ptr) @ stdcall GdipIsOutlineVisiblePathPointI(ptr long long ptr ptr ptr) @ stdcall GdipIsStyleAvailable(ptr long ptr) -@ stub GdipIsVisibleClipEmpty +@ stdcall GdipIsVisibleClipEmpty(ptr ptr) @ stdcall GdipIsVisiblePathPoint(ptr long long ptr ptr) @ stdcall GdipIsVisiblePathPointI(ptr long long ptr ptr) @ stdcall GdipIsVisiblePoint(ptr long long ptr) diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 67b0ff91b9f..39ab18c2674 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -4359,3 +4359,26 @@ GpStatus WINGDIPAPI GdipRecordMetafileI(HDC hdc, EmfType type, GDIPCONST GpRect FIXME("(%p %d %p %d %p %p): stub\n", hdc, type, frameRect, frameUnit, desc, metafile); return NotImplemented; } + +/***************************************************************************** + * GdipIsVisibleClipEmpty [GDIPLUS.@] + */ +GpStatus WINGDIPAPI GdipIsVisibleClipEmpty(GpGraphics *graphics, BOOL *res) +{ + GpStatus stat; + GpRegion* rgn; + + TRACE("(%p, %p)\n", graphics, res); + + if((stat = GdipCreateRegion(&rgn)) != Ok) + return stat; + + if((stat = get_visible_clip_region(graphics, rgn)) != Ok) + goto cleanup; + + stat = GdipIsEmptyRegion(rgn, graphics, res); + +cleanup: + GdipDeleteRegion(rgn); + return stat; +}