path: root/test
diff options
authorChris Wilson <>2009-08-25 20:51:06 +0100
committerChris Wilson <>2009-08-29 08:08:29 +0100
commit4051ed328b618e28cf1df276899eefa225225c76 (patch)
tree7e988ac283c4404326f806b13e6baf0ea7df7dc9 /test
parent82ccb4c70cbf28167c280e590017b221a406b5c3 (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.pngbin3647 -> 3644 bytes
-rw-r--r--test/ft-text-vertical-layout-type3.ref.pngbin3607 -> 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
index 6f0df7b34..f1c12a9f3 100644
--- a/test/ft-text-vertical-layout-type1.ref.png
+++ b/test/ft-text-vertical-layout-type1.ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type3.ref.png b/test/ft-text-vertical-layout-type3.ref.png
index 94048f1c4..1bda421c4 100644
--- a/test/ft-text-vertical-layout-type3.ref.png
+++ b/test/ft-text-vertical-layout-type3.ref.png
Binary files differ