mesa: fix a couple issues with U_FIXED, I_FIXED macros
authorBrian Paul <brianp@vmware.com>
Sat, 19 Oct 2013 14:21:38 +0000 (08:21 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 22 Oct 2013 14:20:45 +0000 (08:20 -0600)
Silence a bunch of MSVC type conversion warnings.

Changed return type of S_FIXED to int32_t (signed).  The result
is the same.  It just seems more intuitive that a signed conversion
function should return a signed value.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/mesa/main/macros.h

index 880c6564e185b6384a5a6609dd32a29833ec01e6..379f75663875b0aad74b46c30de80f9959a5f316 100644 (file)
@@ -193,7 +193,7 @@ static INLINE uint32_t
 U_FIXED(float value, uint32_t frac_bits)
 {
    value *= (1 << frac_bits);
-   return value < 0 ? 0 : value;
+   return value < 0.0f ? 0 : (uint32_t) value;
 }
 
 /**
@@ -201,10 +201,10 @@ U_FIXED(float value, uint32_t frac_bits)
  *
  * \param frac_bits   The number of bits used to store the fractional part.
  */
-static INLINE uint32_t
+static INLINE int32_t
 S_FIXED(float value, uint32_t frac_bits)
 {
-   return value * (1 << frac_bits);
+   return (int32_t) (value * (1 << frac_bits));
 }
 /*@}*/