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
4090aa43
Commit
4090aa43
authored
Aug 04, 2008
by
Adam Petaccia
Committed by
Alexandre Julliard
Aug 05, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdiplus: Implement GdipCombineRegionRect.
parent
40456271
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
48 additions
and
4 deletions
+48
-4
region.c
dlls/gdiplus/region.c
+48
-4
No files found.
dlls/gdiplus/region.c
View file @
4090aa43
...
...
@@ -205,6 +205,20 @@ clone_out:
return
stat
;
}
/* Common code for CombineRegion*
* All the caller has to do is get its format into an element
*/
static
inline
void
fuse_region
(
GpRegion
*
region
,
region_element
*
left
,
region_element
*
right
,
const
CombineMode
mode
)
{
region
->
node
.
type
=
mode
;
region
->
node
.
elementdata
.
combine
.
left
=
left
;
region
->
node
.
elementdata
.
combine
.
right
=
right
;
region
->
header
.
size
=
sizeheader_size
+
get_element_size
(
&
region
->
node
);
region
->
header
.
num_children
+=
2
;
}
/*****************************************************************************
* GdipCloneRegion [GDIPLUS.@]
*
...
...
@@ -242,11 +256,41 @@ GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion *region, GpPath *path, Combin
return
NotImplemented
;
}
GpStatus
WINGDIPAPI
GdipCombineRegionRect
(
GpRegion
*
region
,
GDIPCONST
GpRectF
*
rect
,
CombineMode
mode
)
GpStatus
WINGDIPAPI
GdipCombineRegionRect
(
GpRegion
*
region
,
GDIPCONST
GpRectF
*
rect
,
CombineMode
mode
)
{
FIXME
(
"(%p %p %d): stub
\n
"
,
region
,
rect
,
mode
);
return
NotImplemented
;
GpRegion
*
rect_region
;
region_element
*
left
,
*
right
=
NULL
;
GpStatus
stat
;
TRACE
(
"%p %p %d
\n
"
,
region
,
rect
,
mode
);
if
(
!
(
region
&&
rect
))
return
InvalidParameter
;
stat
=
GdipCreateRegionRect
(
rect
,
&
rect_region
);
if
(
stat
!=
Ok
)
return
stat
;
left
=
GdipAlloc
(
sizeof
(
region_element
));
if
(
!
left
)
goto
out
;
memcpy
(
left
,
&
region
->
node
,
sizeof
(
region_element
));
stat
=
clone_element
(
&
rect_region
->
node
,
&
right
);
if
(
stat
!=
Ok
)
goto
out
;
fuse_region
(
region
,
left
,
right
,
mode
);
GdipDeleteRegion
(
rect_region
);
return
Ok
;
out:
GdipFree
(
left
);
delete_element
(
right
);
GdipDeleteRegion
(
rect_region
);
return
stat
;
}
GpStatus
WINGDIPAPI
GdipCombineRegionRectI
(
GpRegion
*
region
,
GDIPCONST
GpRect
*
rect
,
...
...
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