I've got an alpha computation problem. I fear for the algorithm. Here's
the picture:
0.ff4f
0 |1
2 o-------------------------------------p
| |
| |
.36ed q................ | Tiny little triangle 'A'
| .......... | /
.58fe r==========================........s==t/
| .u... .5916
| |
| |
.989c v=====================================w==
| |
| |
| |
3 +-------------------------------------+
The error terms aren't relevant here, we're just computing alphas.
This edge (....) is a left edge, so we trying to compute the alpha of the
tiny little triangle 'A' in the upper right corner of the trapezoid,
that's 'rtwv' - 'rsuwv'
'rtwv' = 'opwv' - 'optr'
'rsuwv' = 'quwv' - 'qsr'
Note that these computations have little to do with one another. Rounding
areas and converting to alpha (in this case) makes 'rtwv' smaller than
'rsuwv'. Very bad.
I'll have to think of how we can fix this case without breaking everything
else.
Keith Packard XFree86 Core Team HP Cambridge Research Lab
_______________________________________________
Render mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/render