| 1 | From 10aaa5d2ffa62df99f03c857dc78e6ff2b33c183 Mon Sep 17 00:00:00 2001 |
| 2 | From: Julien Cristau <jcristau@debian.org> |
| 3 | Date: Sun, 30 Sep 2012 12:02:11 +0200 |
| 4 | Subject: [PATCH] Revert "fb: reorder Bresenham error correction to avoid |
| 5 | overshoot." |
| 6 | |
| 7 | This reverts commit 3e62f48edf47a59d923ac58b6d4262b02456a556. |
| 8 | |
| 9 | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54168 |
| 10 | Debian: http://buss.debian.org/688908 |
| 11 | |
| 12 | Signed-off-by: Julien Cristau <jcristau@debian.org> |
| 13 | --- |
| 14 | fb/fbseg.c | 18 +++++++++--------- |
| 15 | 1 file changed, 9 insertions(+), 9 deletions(-) |
| 16 | |
| 17 | --- a/fb/fbseg.c |
| 18 | +++ b/fb/fbseg.c |
| 19 | @@ -65,12 +65,6 @@ fbBresSolid(DrawablePtr pDrawable, |
| 20 | if (axis == X_AXIS) { |
| 21 | bits = 0; |
| 22 | while (len--) { |
| 23 | - if (e >= 0) { |
| 24 | - WRITE(dst, FbDoMaskRRop (READ(dst), and, xor, bits)); |
| 25 | - bits = 0; |
| 26 | - dst += dstStride; |
| 27 | - e += e3; |
| 28 | - } |
| 29 | bits |= mask; |
| 30 | mask = fbBresShiftMask(mask, signdx, dstBpp); |
| 31 | if (!mask) { |
| 32 | @@ -80,12 +74,21 @@ fbBresSolid(DrawablePtr pDrawable, |
| 33 | mask = mask0; |
| 34 | } |
| 35 | e += e1; |
| 36 | + if (e >= 0) { |
| 37 | + WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, bits)); |
| 38 | + bits = 0; |
| 39 | + dst += dstStride; |
| 40 | + e += e3; |
| 41 | + } |
| 42 | } |
| 43 | if (bits) |
| 44 | WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, bits)); |
| 45 | } |
| 46 | else { |
| 47 | while (len--) { |
| 48 | + WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, mask)); |
| 49 | + dst += dstStride; |
| 50 | + e += e1; |
| 51 | if (e >= 0) { |
| 52 | e += e3; |
| 53 | mask = fbBresShiftMask(mask, signdx, dstBpp); |
| 54 | @@ -94,9 +97,6 @@ fbBresSolid(DrawablePtr pDrawable, |
| 55 | mask = mask0; |
| 56 | } |
| 57 | } |
| 58 | - WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, mask)); |
| 59 | - dst += dstStride; |
| 60 | - e += e1; |
| 61 | } |
| 62 | } |
| 63 | |