From: Søren Sandmann Pedersen Date: Tue, 20 Dec 2011 11:32:26 +0000 (-0500) Subject: Fix rounding for DIV_UNc() X-Git-Tag: pixman-0.25.2~39 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=37572455866114cbb8bb1bf3acfb1c61d200f98c;p=platform%2Fupstream%2Fpixman.git Fix rounding for DIV_UNc() We need to compute floor (a/b * 255 + 0.5), not floor (a / b * 255), so add b/2 to the numerator in the DIV_UNc() macro. --- diff --git a/pixman/pixman-combine.h.template b/pixman/pixman-combine.h.template index 53afcd2..20f784b 100644 --- a/pixman/pixman-combine.h.template +++ b/pixman/pixman-combine.h.template @@ -28,7 +28,7 @@ ((t) = (a) * (comp2_t)(b) + ONE_HALF, ((((t) >> G_SHIFT ) + (t) ) >> G_SHIFT )) #define DIV_UNc(a, b) \ - (((comp2_t) (a) * MASK) / (b)) + (((comp2_t) (a) * MASK + ((b) / 2)) / (b)) #define ADD_UNc(x, y, t) \ ((t) = (x) + (y), \ diff --git a/test/blitters-test.c b/test/blitters-test.c index fd62c67..feea308 100644 --- a/test/blitters-test.c +++ b/test/blitters-test.c @@ -424,6 +424,6 @@ main (int argc, const char *argv[]) } return fuzzer_test_main("blitters", 2000000, - 0x3EDA4108, + 0xA364B5BF, test_composite, argc, argv); }