pixman: Branch 'master'

Søren Sandmann Pedersen sandmann at kemper.freedesktop.org
Mon Jul 13 15:04:05 PDT 2009


 pixman/pixman-combine.c.template |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit be3a1b04ae9ef52f60fa1c6423d743b628aa57ca
Author: Benjamin Otte <otte at gnome.org>
Date:   Mon Jul 13 18:02:09 2009 -0400

    Fix burn and dodge operators to match acroread output

diff --git a/pixman/pixman-combine.c.template b/pixman/pixman-combine.c.template
index 44a09ad..a937bf7 100644
--- a/pixman/pixman-combine.c.template
+++ b/pixman/pixman-combine.c.template
@@ -538,7 +538,7 @@ static inline comp4_t
 blend_color_dodge (comp4_t dca, comp4_t da, comp4_t sca, comp4_t sa)
 {
     if (sca >= sa) {
-	return DIV_ONE_UNc (sa * da);
+	return dca == 0 ? 0 : DIV_ONE_UNc (sa * da);
     } else {
 	comp4_t rca = dca * sa * sa / (sa - sca);
 	return DIV_ONE_UNc (rca > sa * da ? sa * da : rca);
@@ -560,7 +560,7 @@ static inline comp4_t
 blend_color_burn (comp4_t dca, comp4_t da, comp4_t sca, comp4_t sa)
 {
     if (sca == 0) {
-	return 0;
+	return dca < da ? 0 : DIV_ONE_UNc (sa * da);
     } else {
 	comp4_t sada = sa * da;
 	comp4_t rca = (da - dca) * sa * sa / sca;


More information about the xorg-commit mailing list