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
7b5af236
Commit
7b5af236
authored
Apr 24, 2012
by
Vincent Povirk
Committed by
Alexandre Julliard
Apr 26, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdiplus: Implement GdipWidenPath for closed figures.
parent
930cdab2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
1 deletion
+43
-1
graphicspath.c
dlls/gdiplus/graphicspath.c
+43
-1
No files found.
dlls/gdiplus/graphicspath.c
View file @
7b5af236
...
...
@@ -1739,6 +1739,48 @@ static void widen_open_figure(GpPath *path, GpPen *pen, int start, int end,
(
*
last_point
)
->
type
|=
PathPointTypeCloseSubpath
;
}
static
void
widen_closed_figure
(
GpPath
*
path
,
GpPen
*
pen
,
int
start
,
int
end
,
path_list_node_t
**
last_point
)
{
int
i
;
path_list_node_t
*
prev_point
;
if
(
end
<=
start
+
1
)
return
;
/* left outline */
prev_point
=
*
last_point
;
widen_joint
(
&
path
->
pathdata
.
Points
[
end
],
&
path
->
pathdata
.
Points
[
start
],
&
path
->
pathdata
.
Points
[
start
+
1
],
pen
,
last_point
);
for
(
i
=
start
+
1
;
i
<
end
;
i
++
)
widen_joint
(
&
path
->
pathdata
.
Points
[
i
-
1
],
&
path
->
pathdata
.
Points
[
i
],
&
path
->
pathdata
.
Points
[
i
+
1
],
pen
,
last_point
);
widen_joint
(
&
path
->
pathdata
.
Points
[
end
-
1
],
&
path
->
pathdata
.
Points
[
end
],
&
path
->
pathdata
.
Points
[
start
],
pen
,
last_point
);
prev_point
->
next
->
type
=
PathPointTypeStart
;
(
*
last_point
)
->
type
|=
PathPointTypeCloseSubpath
;
/* right outline */
prev_point
=
*
last_point
;
widen_joint
(
&
path
->
pathdata
.
Points
[
start
],
&
path
->
pathdata
.
Points
[
end
],
&
path
->
pathdata
.
Points
[
end
-
1
],
pen
,
last_point
);
for
(
i
=
end
-
1
;
i
>
start
;
i
--
)
widen_joint
(
&
path
->
pathdata
.
Points
[
i
+
1
],
&
path
->
pathdata
.
Points
[
i
],
&
path
->
pathdata
.
Points
[
i
-
1
],
pen
,
last_point
);
widen_joint
(
&
path
->
pathdata
.
Points
[
start
+
1
],
&
path
->
pathdata
.
Points
[
start
],
&
path
->
pathdata
.
Points
[
end
],
pen
,
last_point
);
prev_point
->
next
->
type
=
PathPointTypeStart
;
(
*
last_point
)
->
type
|=
PathPointTypeCloseSubpath
;
}
GpStatus
WINGDIPAPI
GdipWidenPath
(
GpPath
*
path
,
GpPen
*
pen
,
GpMatrix
*
matrix
,
REAL
flatness
)
{
...
...
@@ -1795,7 +1837,7 @@ GpStatus WINGDIPAPI GdipWidenPath(GpPath *path, GpPen *pen, GpMatrix *matrix,
if
((
type
&
PathPointTypeCloseSubpath
)
==
PathPointTypeCloseSubpath
)
{
FIXME
(
"closed figures unimplemented
\n
"
);
widen_closed_figure
(
flat_path
,
pen
,
subpath_start
,
i
,
&
last_point
);
}
else
if
(
i
==
flat_path
->
pathdata
.
Count
-
1
||
(
flat_path
->
pathdata
.
Types
[
i
+
1
]
&
PathPointTypePathTypeMask
)
==
PathPointTypeStart
)
...
...
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