Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
a84658f9
Commit
a84658f9
authored
Oct 23, 2015
by
Henri Verbeet
Committed by
Alexandre Julliard
Oct 23, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d2d1: Properly handle collinear edges in d2d_cdt_insert_segment().
Signed-off-by:
Henri Verbeet
<
hverbeet@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
c125612c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
1 deletion
+14
-1
geometry.c
dlls/d2d1/geometry.c
+14
-1
No files found.
dlls/d2d1/geometry.c
View file @
a84658f9
...
...
@@ -1342,17 +1342,30 @@ static BOOL d2d_cdt_insert_segment(struct d2d_cdt *cdt, struct d2d_geometry *geo
const
struct
d2d_cdt_edge_ref
*
origin
,
struct
d2d_cdt_edge_ref
*
edge
,
size_t
end_vertex
)
{
struct
d2d_cdt_edge_ref
base_edge
,
current
,
new_origin
,
next
,
target
;
size_t
current_destination
,
current_origin
;
for
(
current
=
*
origin
;;
current
=
next
)
{
d2d_cdt_edge_next_origin
(
cdt
,
&
next
,
&
current
);
if
(
d2d_cdt_edge_destination
(
cdt
,
&
current
)
==
end_vertex
)
current_destination
=
d2d_cdt_edge_destination
(
cdt
,
&
current
);
if
(
current_destination
==
end_vertex
)
{
d2d_cdt_edge_sym
(
edge
,
&
current
);
return
TRUE
;
}
current_origin
=
d2d_cdt_edge_origin
(
cdt
,
&
current
);
if
(
d2d_cdt_ccw
(
cdt
,
end_vertex
,
current_origin
,
current_destination
)
==
0
.
0
f
&&
(
cdt
->
vertices
[
current_destination
].
x
>
cdt
->
vertices
[
current_origin
].
x
)
==
(
cdt
->
vertices
[
end_vertex
].
x
>
cdt
->
vertices
[
current_origin
].
x
)
&&
(
cdt
->
vertices
[
current_destination
].
y
>
cdt
->
vertices
[
current_origin
].
y
)
==
(
cdt
->
vertices
[
end_vertex
].
y
>
cdt
->
vertices
[
current_origin
].
y
))
{
d2d_cdt_edge_sym
(
&
new_origin
,
&
current
);
return
d2d_cdt_insert_segment
(
cdt
,
geometry
,
&
new_origin
,
edge
,
end_vertex
);
}
if
(
d2d_cdt_rightof
(
cdt
,
end_vertex
,
&
next
)
&&
d2d_cdt_leftof
(
cdt
,
end_vertex
,
&
current
))
{
d2d_cdt_edge_next_left
(
cdt
,
&
base_edge
,
&
current
);
...
...
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