Around 15 o'clock on Nov 16, Alex Larsson wrote:
> I've stumbled upon a rasterization bug while drawing lines of width 1.
Nice one. There's an "optimization" in the wide line code to avoid
drawing joins when one of the two lines will do it. It's busted.
This patch is already in XFree86 CVS.
[EMAIL PROTECTED] XFree86 Core Team SuSE, Inc.
Index: miwideline.c
===================================================================
RCS file: /home/x-cvs/xc/programs/Xserver/mi/miwideline.c,v
retrieving revision 1.10
diff -u -r1.10 miwideline.c
--- miwideline.c 2001/10/28 03:34:15 1.10
+++ miwideline.c 2001/11/16 21:09:25
@@ -479,8 +479,10 @@
int lw = pGC->lineWidth;
if (lw == 1 && !spanData) {
- /* Lines going in the same direction have no join */
- if (pLeft->dx >= 0 == pRight->dx <= 0)
+ /* See if one of the lines will draw the joining pixel */
+ if (pLeft->dx > 0 || (pLeft->dx == 0 && pLeft->dy > 0))
+ return;
+ if (pRight->dx > 0 || (pRight->dx == 0 && pRight->dy > 0))
return;
if (joinStyle != JoinRound) {
denom = - pLeft->dx * (double)pRight->dy + pRight->dx * (double)pLeft->dy;
_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert