From: Brian Paul Date: Tue, 16 Jun 2009 14:45:06 +0000 (-0600) Subject: mesa: fix REMAINDER() macro X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ed7f4b42307bff4633689d6781cd3643f10041e5;p=mesa.git mesa: fix REMAINDER() macro The results were incorrect for some negative values of A. See bug 21872. --- diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c index 31bfb5c9520..dd59314cd96 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)) /**