mesa: Fix msvc build of glsl.
authorAras Pranckevicius <aras@unity3d.com>
Mon, 23 Aug 2010 06:19:51 +0000 (09:19 +0300)
committerJosé Fonseca <jfonseca@vmware.com>
Mon, 23 Aug 2010 19:55:50 +0000 (20:55 +0100)
Signed-off-by: José Fonseca <jfonseca@vmware.com>
src/mesa/main/imports.h

index e967b14731151b68c579125ff36366283ba95d6a..22ac26e15e9d989121bb5ed9d6d8f75c6c6b3a37 100644 (file)
@@ -120,7 +120,7 @@ typedef union { GLfloat f; GLint i; } fi_type;
  * \name Work-arounds for platforms that lack C99 math functions
  */
 /*@{*/
-#if (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE < 600)) && !defined(_ISOC99_SOURCE) \
+#if (!defined(_XOPEN_SOURCE) || (_XOPEN_SOURCE < 600)) && !defined(_ISOC99_SOURCE) \
    && (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L)) \
    && (!defined(_MSC_VER) || (_MSC_VER < 1400))
 #define acosf(f) ((float) acos(f))
@@ -141,7 +141,12 @@ typedef union { GLfloat f; GLint i; } fi_type;
 #define sqrtf(f) ((float) sqrt(f))
 #define tanf(f) ((float) tan(f))
 #define tanhf(f) ((float) tanh(f))
-#define truncf(f) ((float) trunc(f))
+#endif
+
+#if defined(_MSC_VER)
+static INLINE float truncf(float x) { return x < 0.0f ? ceilf(x) : floorf(x); }
+static INLINE float exp2f(float x) { return powf(2.0f, x); }
+static INLINE float log2f(float x) { return logf(x) * 1.442695041f; }
 #endif
 /*@}*/