Fix ColorDodge and ColorBurn to conform to the spec
authorSøren Sandmann Pedersen <sandmann@redhat.com>
Sat, 29 Nov 2008 20:12:45 +0000 (15:12 -0500)
committerSøren Sandmann Pedersen <sandmann@redhat.com>
Tue, 23 Jun 2009 18:42:36 +0000 (14:42 -0400)
pixman/pixman-combine.c.template

index 01bbc31..080c067 100644 (file)
@@ -542,7 +542,7 @@ static inline comp4_t
 BlendColorDodge (comp4_t dca, comp4_t da, comp4_t sca, comp4_t sa)
 {
     if (sca >= sa) {
-       return dca == 0 ? 0 : DivOne (sa * da);
+       return DivOne (sa * da);
     } else {
        comp4_t rca = dca * sa * sa / (sa - sca);
        return DivOne (rca > sa * da ? sa * da : rca);
@@ -564,7 +564,7 @@ static inline comp4_t
 BlendColorBurn (comp4_t dca, comp4_t da, comp4_t sca, comp4_t sa)
 {
     if (sca == 0) {
-       return (da == dca) ? DivOne (sa * da) : 0;
+       return DivOne (sa * da);
     } else {
        comp4_t sada = sa * da;
        comp4_t rca = (da - dca) * sa * sa / sca;