GdipGetRegionData (GDIPLUS.@)
GpStatus WINGDIPAPI GdipGetRegionData ( GpRegion* region, BYTE* buffer, UINT size, UINT* needed )
Returns the header, followed by combining ops and region elements.
region | [In] | region to retrieve from. |
buffer | [Out] | buffer to hold the resulting data. |
size | [In] | size of the buffer. |
needed | [Out] | (optional) how much data was written. |
SUCCESS: Ok
FAILURE: InvalidParameter.
The header contains the size, a checksum, a version string, and the number of children. The size does not count itself or the checksum. Version is always something like 0xdbc01001 or 0xdbc01002.
An element is a RECT, or PATH; Combining ops are stored as their CombineMode value. Special regions (infinite, empty) emit just their op-code; GpRectFs emit their code followed by their points; GpPaths emit their code followed by a second header for the path followed by the actual path data. Followed by the flags for each point. The pathheader contains the size of the data to follow, a version number again, followed by a count of how many points, and any special flags which may apply. 0x4000 means it's a path of shorts instead of FLOAT.
Combining Ops are stored in reverse order from when they were constructed; the output is a tree where the left side combining area is always taken first.
Declared in "include/gdiplusflat.h". gitlab.winehq.org/wine/wine/blob/master/include/gdiplusflat.h
Implemented in "dlls/gdiplus/region.c". gitlab.winehq.org/wine/wine/blob/master/dlls/gdiplus/region.c
Debug channel "gdiplus".
Copyright © 2024 The Wine Project. All trademarks are the property of their respective owners. Visit WineHQ for license details. Generated Nov 2024.