From ed7f4b42307bff4633689d6781cd3643f10041e5 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 16 Jun 2009 08:45:06 -0600 Subject: mesa: fix REMAINDER() macro The results were incorrect for some negative values of A. See bug 21872. --- src/mesa/swrast/s_texfilter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/mesa/swrast') diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c index 31bfb5c952..dd59314cd9 100644 --- a/src/mesa/swrast/s_texfilter.c +++ b/src/mesa/swrast/s_texfilter.c @@ -138,7 +138,7 @@ lerp_rgba_3d(GLfloat result[4], GLfloat a, GLfloat b, GLfloat c, * If A is a signed integer, A % B doesn't give the right value for A < 0 * (in terms of texture repeat). Just casting to unsigned fixes that. */ -#define REMAINDER(A, B) ((unsigned) (A) % (unsigned) (B)) +#define REMAINDER(A, B) (((A) + (B) * 1024) % (B)) /** -- cgit v1.2.3