Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
a576c403
Commit
a576c403
authored
May 15, 2008
by
Huw Davies
Committed by
Alexandre Julliard
May 19, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdiplus: Add some notes about the format of the data blob returned by GdipGetRegionData.
parent
d85ac9d9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
0 deletions
+37
-0
region.c
dlls/gdiplus/region.c
+37
-0
No files found.
dlls/gdiplus/region.c
View file @
a576c403
...
...
@@ -30,6 +30,43 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
gdiplus
);
/**********************************************************
*
* Data returned by GdipGetRegionData (for rectangle based regions)
* looks something like this:
*
* struct region_data_header
* {
* DWORD size; size in bytes of the data - 8.
* DWORD magic1; probably a checksum.
* DWORD magic2; always seems to be 0xdbc01001 - version?
* DWORD num_ops; number of combining ops * 2
* };
*
* Then follows a sequence of combining ops and RECTFs.
*
* Combining ops are just stored as their CombineMode value.
*
* Each RECTF is preceded by the DWORD 0x10000000. An empty rect is
* stored as 0x10000002 (with no following RECTF) and an infinite rect
* is stored as 0x10000003 (again with no following RECTF).
*
* The combining ops are stored in the reverse order to the RECTFs and in the
* reverse order to which the region was constructed.
*
* When two or more complex regions (ie those with more than one rect)
* are combined, the combining op for the two regions comes first,
* then the combining ops for the rects in region 1, followed by the
* rects for region 1, then follows the combining ops for region 2 and
* finally region 2's rects. Presumably you're supposed to use the
* 0x10000000 rect header to find the end of the op list (the count of
* the rects in each region is not stored).
*
* When a simple region (1 rect) is combined, it's treated as if a single rect
* is being combined.
*
*/
GpStatus
WINGDIPAPI
GdipCreateRegion
(
GpRegion
**
region
)
{
FIXME
(
"(%p): stub
\n
"
,
region
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment