summaryrefslogtreecommitdiff
path: root/src/cairo-mono-scan-converter.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-03-09 14:06:06 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-03-10 10:46:50 +0000
commit5ff689c01771165d26cc272d65e01dfb1a1fd57e (patch)
tree738d5a073289f56ba6e142c0d75a131ae6b270d2 /src/cairo-mono-scan-converter.c
parent07b540fd35d7312bbfb362f22dac20f57f6900e6 (diff)
downloadcairo-5ff689c01771165d26cc272d65e01dfb1a1fd57e.tar.gz
mono-scan-converter: Use edge->is_vertical flag
The earlier bug found in edge advancement was actually due to the missed opportunity of not performing the increment when we know the step is zero. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-mono-scan-converter.c')
-rw-r--r--src/cairo-mono-scan-converter.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/cairo-mono-scan-converter.c b/src/cairo-mono-scan-converter.c
index 29d547552..2a9546cf8 100644
--- a/src/cairo-mono-scan-converter.c
+++ b/src/cairo-mono-scan-converter.c
@@ -337,11 +337,13 @@ row (struct mono_scan_converter *c, unsigned int mask)
int xend = I(edge->x.quo);
if (--edge->height_left) {
- edge->x.quo += edge->dxdy.quo;
- edge->x.rem += edge->dxdy.rem;
- if (edge->x.rem >= 0) {
- ++edge->x.quo;
- edge->x.rem -= edge->dy;
+ if (!edge->vertical) {
+ edge->x.quo += edge->dxdy.quo;
+ edge->x.rem += edge->dxdy.rem;
+ if (edge->x.rem >= 0) {
+ ++edge->x.quo;
+ edge->x.rem -= edge->dy;
+ }
}
if (edge->x.quo < prev_x) {