git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
polygon intersector: finished active list splay tree optimization
[swftools.git]
/
lib
/
gfxpoly
/
poly.c
diff --git
a/lib/gfxpoly/poly.c
b/lib/gfxpoly/poly.c
index
4d641a1
..
1ef8618
100644
(file)
--- a/
lib/gfxpoly/poly.c
+++ b/
lib/gfxpoly/poly.c
@@
-887,7
+887,8
@@
void event_apply(status_t*status, event_t*e)
event_dump(e);
#endif
segment_t*s = e->s1;
event_dump(e);
#endif
segment_t*s = e->s1;
- actlist_insert(status->actlist, e->p, s);
+ assert(e->p.x == s->a.x && e->p.y == s->a.y);
+ actlist_insert(status->actlist, s->a, s->b, s);
segment_t*left = actlist_left(status->actlist, s);
segment_t*right = actlist_right(status->actlist, s);
if(left)
segment_t*left = actlist_left(status->actlist, s);
segment_t*right = actlist_right(status->actlist, s);
if(left)
@@
-989,7
+990,8
@@
static void add_horizontals(gfxpoly_t*poly, windrule_t*windrule)
windstate_t before,after;
switch(e->type) {
case EVENT_START: {
windstate_t before,after;
switch(e->type) {
case EVENT_START: {
- actlist_insert(actlist, e->p, s);
+ assert(e->p.x == s->a.x && e->p.y == s->a.y);
+ actlist_insert(actlist, s->a, s->b, s);
event_t e;
e.type = EVENT_END;
e.p = s->b;
event_t e;
e.type = EVENT_END;
e.p = s->b;