diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 7e127d7be19..5cbc5ba0830 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -62,9 +62,9 @@ @ stdcall GdipClosePathFigure(ptr) @ stdcall GdipClosePathFigures(ptr) @ stub GdipCombineRegionPath -@ stub GdipCombineRegionRect -@ stub GdipCombineRegionRectI -@ stub GdipCombineRegionRegion +@ stdcall GdipCombineRegionRect(ptr ptr long) +@ stdcall GdipCombineRegionRectI(ptr ptr long) +@ stdcall GdipCombineRegionRegion(ptr ptr long) @ stub GdipComment @ stdcall GdipConvertToEmfPlus(ptr ptr ptr long ptr ptr) @ stub GdipConvertToEmfPlusToFile @@ -125,8 +125,8 @@ @ stdcall GdipCreateRegion(ptr) @ stub GdipCreateRegionHrgn @ stdcall GdipCreateRegionPath(ptr ptr) -@ stub GdipCreateRegionRect -@ stub GdipCreateRegionRectI +@ stdcall GdipCreateRegionRect(ptr ptr) +@ stdcall GdipCreateRegionRectI(ptr ptr) @ stub GdipCreateRegionRgnData @ stdcall GdipCreateSolidFill(long ptr) @ stdcall GdipCreateStreamOnFile(ptr long ptr) @@ -377,8 +377,8 @@ @ stub GdipGetPropertySize @ stub GdipGetRegionBounds @ stub GdipGetRegionBoundsI -@ stub GdipGetRegionData -@ stub GdipGetRegionDataSize +@ stdcall GdipGetRegionData(ptr ptr long ptr) +@ stdcall GdipGetRegionDataSize(ptr ptr) @ stdcall GdipGetRegionHRgn(ptr ptr ptr) @ stub GdipGetRegionScans @ stub GdipGetRegionScansCount diff --git a/dlls/gdiplus/region.c b/dlls/gdiplus/region.c index 46e99194a5f..92239ff10fe 100644 --- a/dlls/gdiplus/region.c +++ b/dlls/gdiplus/region.c @@ -67,6 +67,27 @@ WINE_DEFAULT_DEBUG_CHANNEL(gdiplus); * */ +GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion *region, GDIPCONST GpRectF *rect, + CombineMode mode) +{ + FIXME("(%p %p %d): stub\n", region, rect, mode); + return NotImplemented; +} + +GpStatus WINGDIPAPI GdipCombineRegionRectI(GpRegion *region, GDIPCONST GpRect *rect, + CombineMode mode) +{ + FIXME("(%p %p %d): stub\n", region, rect, mode); + return NotImplemented; +} + +GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion *region1, GpRegion *region2, + CombineMode mode) +{ + FIXME("(%p %p %d): stub\n", region1, region2, mode); + return NotImplemented; +} + GpStatus WINGDIPAPI GdipCreateRegion(GpRegion **region) { FIXME("(%p): stub\n", region); @@ -83,12 +104,42 @@ GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath *path, GpRegion **region) return NotImplemented; } +GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF *rect, GpRegion **region) +{ + FIXME("(%p, %p): stub\n", rect, region); + + *region = NULL; + return NotImplemented; +} + +GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect *rect, GpRegion **region) +{ + FIXME("(%p, %p): stub\n", rect, region); + + *region = NULL; + return NotImplemented; +} + GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion *region) { FIXME("(%p): stub\n", region); return NotImplemented; } +GpStatus WINGDIPAPI GdipGetRegionData(GpRegion *region, BYTE *buffer, UINT size, UINT *needed) +{ + FIXME("(%p, %p, %d, %p): stub\n", region, buffer, size, needed); + + return NotImplemented; +} + +GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion *region, UINT *needed) +{ + FIXME("(%p, %p): stub\n", region, needed); + + return NotImplemented; +} + GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion *region, GpGraphics *graphics, HRGN *hrgn) { FIXME("(%p, %p, %p): stub\n", region, graphics, hrgn); diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 09036375be6..87135e30f26 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -389,9 +389,16 @@ GpStatus WINGDIPAPI GdipCloneStringFormat(GDIPCONST GpStringFormat*,GpStringForm GpStatus WINGDIPAPI GdipGetDpiX(GpGraphics*,REAL*); GpStatus WINGDIPAPI GdipGetDpiY(GpGraphics*,REAL*); +GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion *, GDIPCONST GpRectF *, CombineMode); +GpStatus WINGDIPAPI GdipCombineRegionRectI(GpRegion *, GDIPCONST GpRect *, CombineMode); +GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion *, GpRegion *, CombineMode); GpStatus WINGDIPAPI GdipCreateRegion(GpRegion **); GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath *, GpRegion **); +GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF *, GpRegion **); +GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect *, GpRegion **); GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion *); +GpStatus WINGDIPAPI GdipGetRegionData(GpRegion *, BYTE *, UINT, UINT *); +GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion *, UINT *); GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion *, GpGraphics *, HRGN *); GpStatus WINGDIPAPI GdipSetEmpty(GpRegion *); GpStatus WINGDIPAPI GdipSetInfinite(GpRegion *);