Remove broken optimizations in combine_disjoint_over_u()
authorSøren Sandmann Pedersen <ssp@redhat.com>
Tue, 5 Oct 2010 15:08:42 +0000 (11:08 -0400)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Mon, 11 Oct 2010 16:06:20 +0000 (12:06 -0400)
commit4e89a5b7f3b039fcc86dff7fb8bec79884c913e8
treeb35c0b3b1aaa60c6e2d319d89fd34219130b9c08
parent8d76c1b3391e1165aaf9e0f331749aee1394f62c
Remove broken optimizations in combine_disjoint_over_u()

The first broken optimization is that it checks "a != 0x00" where it
should check "s != 0x00". The other is that it skips the computation
when alpha is 0xff. That is wrong because in the formula:

     min (1, (1 - Aa)/Ab)

the render specification states that if Ab is 0, the quotient is
defined to positive infinity. That is the case even if (1 - Aa) is 0.
pixman/pixman-combine.c.template
test/blitters-test.c