diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2009-08-25 20:51:06 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2009-08-29 08:08:29 +0100 |
commit | 4051ed328b618e28cf1df276899eefa225225c76 (patch) | |
tree | 7e988ac283c4404326f806b13e6baf0ea7df7dc9 /test | |
parent | 82ccb4c70cbf28167c280e590017b221a406b5c3 (diff) |
[tessellator] Special case rectilinear tessellation
For the frequent cases where we know in advance that we are dealing with a
rectilinear path, but can not use the simple region code, implement a
variant of the Bentley-Ottmann tessellator. The advantages here are that
edge comparison is very simple (we only have vertical edges) and there are
no intersection, though possible overlaps. The idea is the same, maintain
a y-x sorted queue of start/stop events that demarcate traps and sweep
through the active edges at each event, looking for completed traps.
The motivation for this was noticing a performance regression in
box-fill-outline with the self-intersection work:
1.9.2 to HEAD^: 3.66x slowdown
HEAD^ to HEAD: 5.38x speedup
1.9.2 to HEAD: 1.57x speedup
The cause of which was choosing to use spans instead of the region handling
code, as the complex polygon was no longer being tessellated.
Diffstat (limited to 'test')
-rw-r--r-- | test/ft-text-vertical-layout-type1.ref.png | bin | 3647 -> 3644 bytes |
-rw-r--r-- | test/ft-text-vertical-layout-type3.ref.png | bin | 3607 -> 3608 bytes |
2 files changed, 0 insertions, 0 deletions
diff --git a/test/ft-text-vertical-layout-type1.ref.png b/test/ft-text-vertical-layout-type1.ref.png Binary files differindex 6f0df7b3..f1c12a9f 100644 --- a/test/ft-text-vertical-layout-type1.ref.png +++ b/test/ft-text-vertical-layout-type1.ref.png diff --git a/test/ft-text-vertical-layout-type3.ref.png b/test/ft-text-vertical-layout-type3.ref.png Binary files differindex 94048f1c..1bda421c 100644 --- a/test/ft-text-vertical-layout-type3.ref.png +++ b/test/ft-text-vertical-layout-type3.ref.png |