NAME

GdipGetRegionData  (GDIPLUS.@)

SYNOPSIS

 GpStatus WINGDIPAPI  GdipGetRegionData
 (
  GpRegion* region,
  BYTE*     buffer,
  UINT      size,
  UINT*     needed
 )

DESCRIPTION

Returns the header, followed by combining ops and region elements.

PARAMS

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.

RETURNS

SUCCESS: Ok

FAILURE: InvalidParameter.

NOTES

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.

IMPLEMENTATION

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.