additional wrapper updates, bug 4468
authorBrian Paul <brian.paul@tungstengraphics.com>
Mon, 19 Sep 2005 20:12:32 +0000 (20:12 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Mon, 19 Sep 2005 20:12:32 +0000 (20:12 +0000)
26 files changed:
src/mesa/drivers/windows/gldirect/dglwgl.h
src/mesa/main/enums.c
src/mesa/main/glheader.h
src/mesa/main/imports.c
src/mesa/main/imports.h
src/mesa/main/mtypes.h
src/mesa/main/texenvprogram.c
src/mesa/math/m_debug_norm.c
src/mesa/math/m_debug_xform.c
src/mesa/math/m_matrix.c
src/mesa/shader/arbprogparse.c
src/mesa/shader/nvvertexec.c
src/mesa/shader/slang/slang_compile.c
src/mesa/shader/slang/slang_execute.c
src/mesa/swrast/s_aaline.c
src/mesa/swrast/s_fog.c
src/mesa/swrast/s_nvfragprog.c
src/mesa/swrast/s_texfilter.c
src/mesa/tnl/t_vb_arbprogram.c
src/mesa/tnl/t_vb_fog.c
src/mesa/tnl/t_vertex_generic.c
src/mesa/tnl/t_vp_build.c
src/mesa/tnl/t_vtx_exec.c
src/mesa/tnl/t_vtx_x86.c
src/mesa/x86-64/x86-64.c
src/mesa/x86/common_x86.c

index c488ff9e659a05e51f300935c461d0c77a33bad6..aac04103335becdefbca48249910179588b2fa8f 100644 (file)
@@ -60,6 +60,31 @@ typedef struct {
        char *name;
 }  DGL_extension;
 
+#ifndef __MINGW32__
+/* XXX why is this here?
+ * It should probaby be somewhere in src/mesa/drivers/windows/
+ */
+#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_WINGDI_H) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) && !defined(BUILD_FOR_SNAP) 
+#      define WGL_FONT_LINES      0
+#      define WGL_FONT_POLYGONS   1
+#ifndef _GNU_H_WINDOWS32_FUNCTIONS
+#      ifdef UNICODE
+#              define wglUseFontBitmaps  wglUseFontBitmapsW
+#              define wglUseFontOutlines  wglUseFontOutlinesW
+#      else
+#              define wglUseFontBitmaps  wglUseFontBitmapsA
+#              define wglUseFontOutlines  wglUseFontOutlinesA
+#      endif /* !UNICODE */
+#endif /* _GNU_H_WINDOWS32_FUNCTIONS */
+typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
+typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
+typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
+#if !defined(GLX_USE_MESA)
+#include <GL/mesa_wgl.h>
+#endif
+#endif
+#endif /* !__MINGW32__ */
+
 /*------------------------- Function Prototypes ---------------------------*/
 
 #ifdef  __cplusplus
index 837618cd74a9f2bee0431dbcf07fa65ec41c1b6f..08522cdf7bf77ece457718339e1e8f58f20968d9 100644 (file)
@@ -4542,7 +4542,7 @@ const char *_mesa_lookup_enum_by_nr( int nr )
 {
    unsigned * i;
 
-   i = (unsigned *)bsearch( & nr, reduced_enums, Elements(reduced_enums),
+   i = (unsigned *)_mesa_bsearch( & nr, reduced_enums, Elements(reduced_enums),
                             sizeof(reduced_enums[0]), (cfunc) compar_nr );
 
    if ( i != NULL ) {
@@ -4560,7 +4560,7 @@ int _mesa_lookup_enum_by_name( const char *symbol )
    enum_elt * f = NULL;
 
    if ( symbol != NULL ) {
-      f = (enum_elt *)bsearch( symbol, all_enums, Elements(all_enums),
+      f = (enum_elt *)_mesa_bsearch( symbol, all_enums, Elements(all_enums),
                               sizeof( enum_elt ), (cfunc) compar_name );
    }
 
index ee34076fb747515b96fb64a4c94a7d443d1c4b3a..4c75585c4d264c1cd3aa45403da276a1247a112f 100644 (file)
@@ -118,32 +118,6 @@ typedef UINT_PTR uintptr_t;
 #endif /* WIN32 / CYGWIN bracket */
 
 
-#ifndef __MINGW32__
-/* XXX why is this here?
- * It should probaby be somewhere in src/mesa/drivers/windows/
- */
-#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_WINGDI_H) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) && !defined(BUILD_FOR_SNAP) 
-#      define WGL_FONT_LINES      0
-#      define WGL_FONT_POLYGONS   1
-#ifndef _GNU_H_WINDOWS32_FUNCTIONS
-#      ifdef UNICODE
-#              define wglUseFontBitmaps  wglUseFontBitmapsW
-#              define wglUseFontOutlines  wglUseFontOutlinesW
-#      else
-#              define wglUseFontBitmaps  wglUseFontBitmapsA
-#              define wglUseFontOutlines  wglUseFontOutlinesA
-#      endif /* !UNICODE */
-#endif /* _GNU_H_WINDOWS32_FUNCTIONS */
-typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
-typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
-typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
-#if !defined(GLX_USE_MESA)
-#include <GL/mesa_wgl.h>
-#endif
-#endif
-#endif /* !__MINGW32__ */
-
-
 /*
  * Either define MESA_BIG_ENDIAN or MESA_LITTLE_ENDIAN.
  * Do not use them unless absolutely necessary!
@@ -173,7 +147,6 @@ typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESC
 #if !defined(CAPI) && defined(WIN32) && !defined(BUILD_FOR_SNAP)
 #define CAPI _cdecl
 #endif
-#include <GL/internal/glcore.h>
 
 
 /* This is a macro on IRIX */
@@ -267,20 +240,6 @@ typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESC
 #  define __builtin_expect(x, y) x
 #endif
 
-/* Windows does not have the ffs() function */
-#if defined(_WIN32) && !defined(__MINGW32__)
-int INLINE ffs(int value)
-{
-    int bit;
-    if (value == 0)
-       return 0;
-    for (bit=1; !(value & 1); bit++)
-       value >>= 1;
-    return bit;
-}
-#endif
-
-
 /* The __FUNCTION__ gcc variable is generally only used for debugging.
  * If we're not using gcc, define __FUNCTION__ as a cpp symbol here.
  * Don't define it if using a newer Windows compiler.
index 8d39f77b4109eaec145107b0b901fb56b092b836..f7d9de36697459b66e99f2e81c934458bcd8eca9 100644 (file)
@@ -23,7 +23,6 @@
  * \todo Functions still needed:
  * - scanf
  * - qsort
- * - bsearch
  * - rand and RAND_MAX
  *
  * \note When compiled into a XFree86 module these functions wrap around
@@ -529,6 +528,34 @@ _mesa_pow(double x, double y)
 }
 
 
+/* Windows does not have the ffs() function */
+#if defined(_WIN32) && !defined(__MINGW32__)
+int INLINE ffs(int value)
+{
+    int bit;
+    if (value == 0)
+       return 0;
+    for (bit=1; !(value & 1); bit++)
+       value >>= 1;
+    return bit;
+}
+#endif
+
+
+/**
+ * Wrapper around either ffs() or xf86ffs().
+ */
+int
+_mesa_ffs(int i)
+{
+#if defined(XFree86LOADER) && defined(IN_MODULE)
+   return xf86ffs(i);
+#else
+   return ffs(i);
+#endif
+}
+
+
 /**
  * Return number of bits set in given GLuint.
  */
@@ -684,6 +711,27 @@ _mesa_half_to_float(GLhalfARB val)
 /*@}*/
 
 
+/**********************************************************************/
+/** \name Sort & Search */
+/*@{*/
+
+/**
+ * Wrapper for bsearch().
+ */
+void *
+_mesa_bsearch( const void *key, const void *base, size_t nmemb, size_t size, 
+               int (*compar)(const void *, const void *) )
+{
+#if defined(XFree86LOADER) && defined(IN_MODULE)
+   return xf86bsearch(key, base, nmemb, size, compar);
+#else
+   return bsearch(key, base, nmemb, size, compar);
+#endif
+}
+
+/*@}*/
+
+
 /**********************************************************************/
 /** \name Environment vars */
 /*@{*/
@@ -860,6 +908,17 @@ _mesa_printf( const char *fmtString, ... )
 #endif
 }
 
+/** Wrapper around either vsprintf() or xf86vsprintf() */
+int
+_mesa_vsprintf( char *str, const char *fmt, va_list args )
+{
+#if defined(XFree86LOADER) && defined(IN_MODULE)
+   return xf86vsprintf( str, fmt, args );
+#else
+   return vsprintf( str, fmt, args );
+#endif
+}
+
 /*@}*/
 
 
@@ -1035,6 +1094,26 @@ _mesa_debug( const GLcontext *ctx, const char *fmtString, ... )
 /*@}*/
 
 
+/**********************************************************************/
+/** \name Exit */
+/*@{*/
+
+/**
+ * Wrapper for exit().
+ */
+void
+_mesa_exit( int status )
+{
+#if defined(XFree86LOADER) && defined(IN_MODULE)
+   xf86exit(status);
+#else
+   exit(status);
+#endif
+}
+
+/*@}*/
+
+
 /**********************************************************************/
 /** \name Default Imports Wrapper */
 /*@{*/
index 134eff84b34663d2adc791781899a2f13fda32f6..c02be4382a175c888a741c25cb4f3e1989d7162a 100644 (file)
@@ -39,6 +39,7 @@
 /* XXX some of the stuff in glheader.h should be moved into this file.
  */
 #include "glheader.h"
+#include <GL/internal/glcore.h>
 
 
 #ifdef __cplusplus
@@ -274,6 +275,8 @@ static INLINE int GET_FLOAT_BITS( float x )
  *** CEILF: ceiling of float
  *** FLOORF: floor of float
  *** FABSF: absolute value of float
+ *** LOGF: the natural logarithm (base e) of the value
+ *** EXPF: raise e to the value
  *** LDEXPF: multiply value by an integral power of two
  *** FREXPF: extract mantissa and exponent from value
  ***/
@@ -281,6 +284,8 @@ static INLINE int GET_FLOAT_BITS( float x )
 #define CEILF(x)   ((GLfloat) xf86ceil(x))
 #define FLOORF(x)  ((GLfloat) xf86floor(x))
 #define FABSF(x)   ((GLfloat) xf86fabs(x))
+#define LOGF(x)    ((GLfloat) xf86log(x))
+#define EXPF(x)    ((GLfloat) xf86exp(x))
 #define LDEXPF(x,y)   ((GLfloat) xf86ldexp(x,y))
 #define FREXPF(x,y)   ((GLfloat) xf86frexp(x,y))
 #elif defined(__gnu_linux__)
@@ -288,12 +293,16 @@ static INLINE int GET_FLOAT_BITS( float x )
 #define CEILF(x)   ceilf(x)
 #define FLOORF(x)  floorf(x)
 #define FABSF(x)   fabsf(x)
+#define LOGF(x)    logf(x)
+#define EXPF(x)    expf(x)
 #define LDEXPF(x,y)  ldexpf(x,y)
 #define FREXPF(x,y)  frexpf(x,y)
 #else
 #define CEILF(x)   ((GLfloat) ceil(x))
 #define FLOORF(x)  ((GLfloat) floor(x))
 #define FABSF(x)   ((GLfloat) fabs(x))
+#define LOGF(x)    ((GLfloat) log(x))
+#define EXPF(x)    ((GLfloat) exp(x))
 #define LDEXPF(x,y)  ((GLfloat) ldexp(x,y))
 #define FREXPF(x,y)  ((GLfloat) frexp(x,y))
 #endif
@@ -637,6 +646,9 @@ _mesa_pow(double x, double y);
 extern float
 _mesa_log2(float x);
 
+extern int
+_mesa_ffs(int i);
+
 extern unsigned int
 _mesa_bitcount(unsigned int n);
 
@@ -647,6 +659,10 @@ extern float
 _mesa_half_to_float(GLhalfARB h);
 
 
+extern void *
+_mesa_bsearch( const void *key, const void *base, size_t nmemb, size_t size, 
+               int (*compar)(const void *, const void *) );
+
 extern char *
 _mesa_getenv( const char *var );
 
@@ -686,6 +702,9 @@ _mesa_sprintf( char *str, const char *fmt, ... );
 extern void
 _mesa_printf( const char *fmtString, ... );
 
+extern int 
+_mesa_vsprintf( char *str, const char *fmt, va_list args );
+
 
 extern void
 _mesa_warning( __GLcontext *gc, const char *fmtString, ... );
@@ -699,6 +718,9 @@ _mesa_error( __GLcontext *ctx, GLenum error, const char *fmtString, ... );
 extern void
 _mesa_debug( const __GLcontext *ctx, const char *fmtString, ... );
 
+extern void 
+_mesa_exit( int status );
+
 
 extern void
 _mesa_init_default_imports( __GLimports *imports, void *driverCtx );
index 8817205dec125ba22045259e1fc1656afaa64b9c..0c3a63d2e3e0c5734a04c142e4aa7a1bb29edc68 100644 (file)
@@ -36,6 +36,7 @@
 
 
 #include "glheader.h"
+#include <GL/internal/glcore.h>        /* GLimports/GLexports/GLcontextModes */
 #include "config.h"            /* Hardwired parameters */
 #include "glapitable.h"
 #include "glthread.h"
index 2ffb1774a34698838ceb64e156f2202a795da44a..6f9fe2dc454afa0c3296177b6c7c74e34e41b239 100644 (file)
@@ -350,16 +350,16 @@ static struct ureg get_temp( struct texenv_fragment_program *p )
    
    /* First try and reuse temps which have been used already:
     */
-   bit = ffs( ~p->temp_in_use & p->alu_temps );
+   bit = _mesa_ffs( ~p->temp_in_use & p->alu_temps );
 
    /* Then any unused temporary:
     */
    if (!bit)
-      bit = ffs( ~p->temp_in_use );
+      bit = _mesa_ffs( ~p->temp_in_use );
 
    if (!bit) {
       _mesa_problem(NULL, "%s: out of temporaries\n", __FILE__);
-      exit(1);
+      _mesa_exit(1);
    }
 
    if (bit > p->program->Base.NumTemporaries)
@@ -378,16 +378,16 @@ static struct ureg get_tex_temp( struct texenv_fragment_program *p )
     * ~p->temps_output isn't necessary, but will keep it there for
     * now:
     */
-   bit = ffs( ~p->temp_in_use & ~p->alu_temps & ~p->temps_output );
+   bit = _mesa_ffs( ~p->temp_in_use & ~p->alu_temps & ~p->temps_output );
 
    /* Then any unused temporary:
     */
    if (!bit) 
-      bit = ffs( ~p->temp_in_use );
+      bit = _mesa_ffs( ~p->temp_in_use );
 
    if (!bit) {
       _mesa_problem(NULL, "%s: out of temporaries\n", __FILE__);
-      exit(1);
+      _mesa_exit(1);
    }
 
    if (bit > p->program->Base.NumTemporaries)
index e4039985502680abb81925f037524414ca4fd5dc..9bb46598158e8f6ae2e5a7672cbcbfab3dcc87f5 100644 (file)
@@ -165,7 +165,7 @@ static void ref_norm_transform_normalize( const GLmatrix *mat,
            /* Hmmm, don't know how we could test the precalculated
             * length case...
             */
-            scale = 1.0 / sqrt( len );
+            scale = 1.0 / SQRTF( len );
            SCALE_SCALAR_3V( out[i], scale, t );
          } else {
             out[i][0] = out[i][1] = out[i][2] = 0;
@@ -230,7 +230,7 @@ static int test_norm_function( normal_func func, int mtype, long *cycles )
          case VAR:
             break;
          default:
-            abort();
+            _mesa_exit(1);
          }
       }
    }
@@ -241,7 +241,7 @@ static int test_norm_function( normal_func func, int mtype, long *cycles )
       ASSIGN_3V( d2[i], 0.0, 0.0, 0.0 );
       for ( j = 0 ; j < 3 ; j++ )
          s[i][j] = rnd();
-      length[i] = 1 / sqrt( LEN_SQUARED_3FV( s[i] ) );
+      length[i] = 1 / SQRTF( LEN_SQUARED_3FV( s[i] ) );
    }
 
    source->data = (GLfloat(*)[4]) s;
@@ -339,7 +339,7 @@ void _math_test_all_normal_transform_functions( char *description )
 
    if ( first_time ) {
       first_time = 0;
-      mesa_profile = getenv( "MESA_PROFILE" );
+      mesa_profile = _mesa_getenv( "MESA_PROFILE" );
    }
 
 #ifdef RUN_DEBUG_BENCHMARK
index d8250f246ef55463ac184c3933fa7118c032f736..feed539eacb8ffb08403425df29d587739b6c052 100644 (file)
@@ -284,7 +284,7 @@ void _math_test_all_transform_functions( char *description )
 
    if ( first_time ) {
       first_time = 0;
-      mesa_profile = getenv( "MESA_PROFILE" );
+      mesa_profile = _mesa_getenv( "MESA_PROFILE" );
    }
 
 #ifdef RUN_DEBUG_BENCHMARK
index ff32e3d94bfd73775a037c9f0fb642f5fb437fe9..b4ba1bc2a08b97cd56137229a9c034bff996ec89 100644 (file)
@@ -382,9 +382,9 @@ static GLboolean invert_matrix_general( GLmatrix *mat )
    r3[7] = 1.0, r3[4] = r3[5] = r3[6] = 0.0;
 
    /* choose pivot - or die */
-   if (fabs(r3[0])>fabs(r2[0])) SWAP_ROWS(r3, r2);
-   if (fabs(r2[0])>fabs(r1[0])) SWAP_ROWS(r2, r1);
-   if (fabs(r1[0])>fabs(r0[0])) SWAP_ROWS(r1, r0);
+   if (FABSF(r3[0])>FABSF(r2[0])) SWAP_ROWS(r3, r2);
+   if (FABSF(r2[0])>FABSF(r1[0])) SWAP_ROWS(r2, r1);
+   if (FABSF(r1[0])>FABSF(r0[0])) SWAP_ROWS(r1, r0);
    if (0.0 == r0[0])  return GL_FALSE;
 
    /* eliminate first variable     */
@@ -402,8 +402,8 @@ static GLboolean invert_matrix_general( GLmatrix *mat )
    if (s != 0.0) { r1[7] -= m1 * s; r2[7] -= m2 * s; r3[7] -= m3 * s; }
 
    /* choose pivot - or die */
-   if (fabs(r3[1])>fabs(r2[1])) SWAP_ROWS(r3, r2);
-   if (fabs(r2[1])>fabs(r1[1])) SWAP_ROWS(r2, r1);
+   if (FABSF(r3[1])>FABSF(r2[1])) SWAP_ROWS(r3, r2);
+   if (FABSF(r2[1])>FABSF(r1[1])) SWAP_ROWS(r2, r1);
    if (0.0 == r1[1])  return GL_FALSE;
 
    /* eliminate second variable */
@@ -416,7 +416,7 @@ static GLboolean invert_matrix_general( GLmatrix *mat )
    s = r1[7]; if (0.0 != s) { r2[7] -= m2 * s; r3[7] -= m3 * s; }
 
    /* choose pivot - or die */
-   if (fabs(r3[2])>fabs(r2[2])) SWAP_ROWS(r3, r2);
+   if (FABSF(r3[2])>FABSF(r2[2])) SWAP_ROWS(r3, r2);
    if (0.0 == r2[2])  return GL_FALSE;
 
    /* eliminate third variable */
@@ -1075,7 +1075,7 @@ _math_matrix_scale( GLmatrix *mat, GLfloat x, GLfloat y, GLfloat z )
    m[2] *= x;   m[6] *= y;   m[10] *= z;
    m[3] *= x;   m[7] *= y;   m[11] *= z;
 
-   if (fabs(x - y) < 1e-8 && fabs(x - z) < 1e-8)
+   if (FABSF(x - y) < 1e-8 && FABSF(x - z) < 1e-8)
       mat->flags |= MAT_FLAG_UNIFORM_SCALE;
    else
       mat->flags |= MAT_FLAG_GENERAL_SCALE;
index e8992c6d8b13281e725befd6bcc5075bfaa08371..dba8280c27ee0c68e7616fa558d60e947cb447b2 100644 (file)
@@ -3886,7 +3886,7 @@ static int extension_is_supported (const GLubyte *ext)
 
    while (extensions < end)
    {
-      const GLubyte *name_end = (const GLubyte *) strchr ((const char *) extensions, ' ');
+      const GLubyte *name_end = (const GLubyte *) _mesa_strstr ((const char *) extensions, " ");
       if (name_end == NULL)
          name_end = end;
       if (name_end - extensions == ext_len && _mesa_strncmp ((const char *) ext,
@@ -4037,7 +4037,7 @@ _mesa_parse_arb_program (GLcontext * ctx, const GLubyte * str, GLsizei len,
    strz[len] = '\0';
 
 #if DEBUG_PARSING
-   printf ("Checking Grammar!\n");
+   fprintf (stderr, "Checking Grammar!\n");
 #endif
    /* do a fast check on program string - initial production buffer is 4K */
    err = grammar_fast_check (arbprogram_syn_id, strz, &parsed, &parsed_len, 0x1000);
@@ -4050,21 +4050,23 @@ _mesa_parse_arb_program (GLcontext * ctx, const GLubyte * str, GLsizei len,
       _mesa_error (ctx, GL_INVALID_OPERATION, "glProgramStringARB(syntax error)");
 
       /* useful for debugging */
-      if (0) {
+#if DEBUG_PARSING
+      do {
          int line, col;
          char *s;
-         printf("Program: %s\n", (char *) strz);
-         printf("Error Pos: %d\n", ctx->Program.ErrorPos);
+         fprintf(stderr, "Program: %s\n", (char *) strz);
+         fprintf(stderr, "Error Pos: %d\n", ctx->Program.ErrorPos);
          s = (char *) _mesa_find_line_column(strz, strz+ctx->Program.ErrorPos, &line, &col);
-         printf("line %d col %d: %s\n", line, col, s);
-      }
+         fprintf(stderr, "line %d col %d: %s\n", line, col, s);
+      } while (0)
+#endif
 
       grammar_destroy (arbprogram_syn_id);
       return 1;
    }
 
 #if DEBUG_PARSING
-   printf ("Destroying grammer dict [parse retval: %d]\n", err);
+   fprintf (stderr, "Destroying grammer dict [parse retval: %d]\n", err);
 #endif
    grammar_destroy (arbprogram_syn_id);
 
@@ -4120,7 +4122,7 @@ _mesa_parse_arb_program (GLcontext * ctx, const GLubyte * str, GLsizei len,
 
    _mesa_free (parsed);
 #if DEBUG_PARSING
-   printf ("_mesa_parse_arb_program() done\n");
+   fprintf (stderr, "_mesa_parse_arb_program() done\n");
 #endif
    return err;
 }
index 725e3ec9cd590663066297c162dbab4e1aede0d8..f99c4dfac1337f8802918a2c2814319900a6ccf0 100644 (file)
@@ -452,7 +452,7 @@ _mesa_exec_vertex_program(GLcontext *ctx, const struct vertex_program *program)
             {
                GLfloat t[4], q[4], floor_t0;
                fetch_vector1( &inst->SrcReg[0], state, t );
-               floor_t0 = (float) floor(t[0]);
+               floor_t0 = FLOORF(t[0]);
                if (floor_t0 > FLT_MAX_EXP) {
                   SET_POS_INFINITY(q[0]);
                   SET_POS_INFINITY(q[2]);
@@ -481,7 +481,7 @@ _mesa_exec_vertex_program(GLcontext *ctx, const struct vertex_program *program)
             {
                GLfloat t[4], q[4], abs_t0;
                fetch_vector1( &inst->SrcReg[0], state, t );
-               abs_t0 = (GLfloat) fabs(t[0]);
+               abs_t0 = FABSF(t[0]);
                if (abs_t0 != 0.0F) {
                   /* Since we really can't handle infinite values on VMS
                    * like other OSes we'll use __MAXFLOAT to represent
@@ -499,7 +499,7 @@ _mesa_exec_vertex_program(GLcontext *ctx, const struct vertex_program *program)
                   }
                   else {
                      int exponent;
-                     double mantissa = frexp(t[0], &exponent);
+                     GLfloat mantissa = FREXPF(t[0], &exponent);
                      q[0] = (GLfloat) (exponent - 1);
                      q[1] = (GLfloat) (2.0 * mantissa); /* map [.5, 1) -> [1, 2) */
                      q[2] = (GLfloat) (q[0] + LOG2(q[1]));
@@ -635,7 +635,7 @@ _mesa_exec_vertex_program(GLcontext *ctx, const struct vertex_program *program)
             {
                GLfloat t[4];
                fetch_vector4( &inst->SrcReg[0], state, t );
-               state->AddressReg[0] = (GLint) floor(t[0]);
+               state->AddressReg[0] = (GLint) FLOORF(t[0]);
             }
             break;
          case VP_OPCODE_DPH:
index 0ff450ca91c1e169300e6d97e64ece3eac16b4ba..688eac33c7adfdbf748222f0e52a260011fb75e6 100644 (file)
@@ -635,7 +635,7 @@ int slang_info_log_error (slang_info_log *log, const char *msg, ...)
        char buf[1024];
 
        va_start (va, msg);
-       _mesa_sprintf (buf, msg, va);
+       _mesa_vsprintf (buf, msg, va);
        if (slang_info_log_message (log, "error", buf))
                return 1;
        slang_info_log_memory (log);
@@ -649,7 +649,7 @@ int slang_info_log_warning (slang_info_log *log, const char *msg, ...)
        char buf[1024];
 
        va_start (va, msg);
-       _mesa_sprintf (buf, msg, va);
+       _mesa_vsprintf (buf, msg, va);
        if (slang_info_log_message (log, "warning", buf))
                return 1;
        slang_info_log_memory (log);
@@ -685,7 +685,7 @@ static int parse_identifier (slang_parse_ctx *C, char **id)
                slang_info_log_memory (C->L);
                return 0;
        }
-       C->I += strlen ((const char *) C->I) + 1;
+       C->I += _mesa_strlen ((const char *) C->I) + 1;
        return 1;
 }
 
@@ -734,8 +734,9 @@ static int parse_float (slang_parse_ctx *C, float *number)
                return 0;
        }
 
-       whole = (char *) (slang_alloc_malloc ((strlen (integral) + strlen (fractional) + strlen (
-               exponent) + 3) * sizeof (char)));
+       whole = (char *) (slang_alloc_malloc ((_mesa_strlen (integral) + 
+               _mesa_strlen (fractional) + _mesa_strlen (exponent) + 3) * 
+               sizeof (char)));
        if (whole == NULL)
        {
                slang_alloc_free (exponent);
@@ -751,7 +752,7 @@ static int parse_float (slang_parse_ctx *C, float *number)
        slang_string_concat (whole, "E");
        slang_string_concat (whole, exponent);
 
-       *number = (float) (atof (whole));
+       *number = (float) (_mesa_strtod(whole, (char **)NULL));
 
        slang_alloc_free (whole);
        slang_alloc_free (exponent);
@@ -2115,7 +2116,7 @@ if (slang_string_compare ("main", (**parsed_func_ret).header.name) == 0)
 xxx_prolog (&file, (**parsed_func_ret).address);
 _slang_execute (&file);
 slang_assembly_file_destruct (&file);
-exit (0);
+_mesa_exit (0);
 }
        }
        return 1;
index 78a638b4445c9f6bb1d4a53e31402c7b69dee17f..5b1d6d394094001d0532f51beca0e38e88ffca04 100644 (file)
@@ -34,6 +34,9 @@
 #include "slang_storage.h"\r
 #include "slang_execute.h"\r
 \r
+#define DEBUG_SLANG\r
+\r
+#ifdef DEBUG_SLANG\r
 static void dump_instruction (FILE *f, slang_assembly *a, unsigned int i)\r
 {\r
        fprintf (f, "%.5u:\t", i);\r
@@ -179,11 +182,14 @@ static void dump (const slang_assembly_file *file)
 \r
        fclose (f);\r
 }\r
+#endif\r
 \r
 int _slang_execute (const slang_assembly_file *file)\r
 {\r
        slang_machine mach;\r
+#ifdef DEBUG_SLANG\r
        FILE *f;\r
+#endif\r
 \r
        mach.ip = 0;\r
        mach.sp = SLANG_MACHINE_STACK_SIZE;\r
@@ -200,13 +206,18 @@ int _slang_execute (const slang_assembly_file *file)
        static_assert(sizeof (GLuint) == 4);\r
        /*static_assert(sizeof (GLuint *) == 4);*/\r
 \r
+#ifdef DEBUG_SLANG\r
        dump (file);\r
+#endif\r
 \r
+#ifdef DEBUG_SLANG\r
        f = fopen ("~mesa-slang-assembly-execution.txt", "w");\r
+#endif\r
 \r
        while (!mach.exit)\r
        {\r
                slang_assembly *a = file->code + mach.ip;\r
+#ifdef DEBUG_SLANG\r
                if (f != NULL)\r
                {\r
                        unsigned int i;\r
@@ -216,6 +227,7 @@ int _slang_execute (const slang_assembly_file *file)
                                fprintf (f, "\t%.5u\t%6f\t%u\n", i, mach.stack._float[i], mach.stack._addr[i]);\r
                        fflush (f);\r
                }\r
+#endif\r
                mach.ip++;\r
 \r
                switch (a->type)\r
@@ -344,8 +356,10 @@ int _slang_execute (const slang_assembly_file *file)
                }\r
        }\r
 \r
+#ifdef DEBUG_SLANG\r
        if (f != NULL)\r
                fclose (f);\r
+#endif\r
 \r
        return 0;\r
 }\r
index 39c51a50f71751f8c93dacc49d4839fc27797089..b8c214f6890ead8e3b600eea33fd9fd85c3c7f0e 100644 (file)
@@ -210,7 +210,7 @@ compute_lambda(const GLfloat sPlane[4], const GLfloat tPlane[4],
    if (rho2 == 0.0F)
       return 0.0;
    else
-      return (GLfloat) (log(rho2) * 1.442695 * 0.5);/* 1.442695 = 1/log(2) */
+      return (GLfloat) (LOGF(rho2) * 1.442695 * 0.5);/* 1.442695 = 1/log(2) */
 }
 
 
index 0af9cd8f284fbd033267860e9434aebf2cc3a807..e3d6274b3fe4db550b67bb864f93bc74935ddf00 100644 (file)
@@ -51,12 +51,12 @@ _swrast_z_to_fogfactor(GLcontext *ctx, GLfloat z)
       return CLAMP(f, 0.0F, 1.0F);
    case GL_EXP:
       d = ctx->Fog.Density;
-      f = (GLfloat) exp(-d * z);
+      f = EXPF(-d * z);
       f = CLAMP(f, 0.0F, 1.0F);
       return f;
    case GL_EXP2:
       d = ctx->Fog.Density;
-      f = (GLfloat) exp(-(d * d * z * z));
+      f = EXPF(-(d * d * z * z));
       f = CLAMP(f, 0.0F, 1.0F);
       return f;
    default:
@@ -130,7 +130,7 @@ _swrast_fog_rgba_span( const GLcontext *ctx, struct sw_span *span )
             GLuint i;
             for (i = 0; i < span->end; i++) {
                GLfloat f, oneMinusF;
-               f = (GLfloat) exp(density * FABSF(fogCoord) / w);
+               f = EXPF(density * FABSF(fogCoord) / w);
                f = CLAMP(f, 0.0F, 1.0F);
                oneMinusF = 1.0F - f;
                rgba[i][RCOMP] = (GLchan) (f * rgba[i][RCOMP] + oneMinusF * rFog);
@@ -158,7 +158,7 @@ _swrast_fog_rgba_span( const GLcontext *ctx, struct sw_span *span )
                if (tmp < FLT_MIN_10_EXP)
                   tmp = FLT_MIN_10_EXP;
 #endif
-               f = (GLfloat) exp(tmp);
+               f = EXPF(tmp);
                f = CLAMP(f, 0.0F, 1.0F);
                oneMinusF = 1.0F - f;
                rgba[i][RCOMP] = (GLchan) (f * rgba[i][RCOMP] + oneMinusF * rFog);
@@ -259,7 +259,7 @@ _swrast_fog_ci_span( const GLcontext *ctx, struct sw_span *span )
             GLfloat w = haveW ? span->w : 1.0F;
             GLuint i;
             for (i = 0; i < span->end; i++) {
-               GLfloat f = (GLfloat) exp(density * fogCoord / w);
+               GLfloat f = EXPF(density * fogCoord / w);
                f = CLAMP(f, 0.0F, 1.0F);
                index[i] = (GLuint) ((GLfloat) index[i] + (1.0F - f) * fogIndex);
                fogCoord += fogStep;
@@ -284,7 +284,7 @@ _swrast_fog_ci_span( const GLcontext *ctx, struct sw_span *span )
                if (tmp < FLT_MIN_10_EXP)
                   tmp = FLT_MIN_10_EXP;
 #endif
-               f = (GLfloat) exp(tmp);
+               f = EXPF(tmp);
                f = CLAMP(f, 0.0F, 1.0F);
                index[i] = (GLuint) ((GLfloat) index[i] + (1.0F - f) * fogIndex);
                fogCoord += fogStep;
index 931bf64f925753b6694c4423db4b8d243e76e3b1..1e18120152aa38f9028cfa4cdc883a0a760dfcfc 100644 (file)
@@ -821,7 +821,7 @@ execute_program( GLcontext *ctx,
                result[0] = 1.0F;
                result[1] = a[0];
                /* XXX we could probably just use pow() here */
-               result[2] = (a[0] > 0.0F) ? (GLfloat) exp(a[3] * log(a[1])) : 0.0F;
+               result[2] = (a[0] > 0.0F) ? EXPF(a[3] * LOGF(a[1])) : 0.0F;
                result[3] = 1.0F;
                store_vector4( inst, machine, result );
             }
index 59673bb978acc88909de932da3bd7203067917e3..0597947f5156faf901ee07fb12c408b54fa5c671 100644 (file)
@@ -297,7 +297,7 @@ repeat_remainder(GLint a, GLint b)
       }                                                                        \
       break;                                                           \
    case GL_MIRROR_CLAMP_EXT:                                           \
-      U = (GLfloat) fabs(S);                                           \
+      U = FABSF(S);                                                    \
       if (U >= 1.0F)                                                   \
          U = (GLfloat) SIZE;                                           \
       else                                                             \
@@ -307,7 +307,7 @@ repeat_remainder(GLint a, GLint b)
       I1 = I0 + 1;                                                     \
       break;                                                           \
    case GL_MIRROR_CLAMP_TO_EDGE_EXT:                                   \
-      U = (GLfloat) fabs(S);                                           \
+      U = FABSF(S);                                                    \
       if (U >= 1.0F)                                                   \
          U = (GLfloat) SIZE;                                           \
       else                                                             \
@@ -324,7 +324,7 @@ repeat_remainder(GLint a, GLint b)
       {                                                                        \
          const GLfloat min = -1.0F / (2.0F * SIZE);                    \
          const GLfloat max = 1.0F - min;                               \
-         U = (GLfloat) fabs(S);                                                \
+         U = FABSF(S);                                                 \
          if (U <= min)                                                 \
             U = min * SIZE;                                            \
          else if (U >= max)                                            \
@@ -418,7 +418,7 @@ repeat_remainder(GLint a, GLint b)
       {                                                                        \
          /* s limited to [0,1] */                                      \
          /* i limited to [0,size-1] */                                 \
-         const GLfloat u = (GLfloat) fabs(S);                          \
+         const GLfloat u = FABSF(S);                                   \
          if (u <= 0.0F)                                                        \
             I = 0;                                                     \
          else if (u >= 1.0F)                                           \
@@ -433,7 +433,7 @@ repeat_remainder(GLint a, GLint b)
          /* i limited to [0, size-1] */                                        \
          const GLfloat min = 1.0F / (2.0F * SIZE);                     \
          const GLfloat max = 1.0F - min;                               \
-         const GLfloat u = (GLfloat) fabs(S);                          \
+         const GLfloat u = FABSF(S);                                   \
          if (u < min)                                                  \
             I = 0;                                                     \
          else if (u > max)                                             \
@@ -448,7 +448,7 @@ repeat_remainder(GLint a, GLint b)
          /* i limited to [0, size-1] */                                        \
          const GLfloat min = -1.0F / (2.0F * SIZE);                    \
          const GLfloat max = 1.0F - min;                               \
-         const GLfloat u = (GLfloat) fabs(S);                          \
+         const GLfloat u = FABSF(S);                                   \
          if (u < min)                                                  \
             I = -1;                                                    \
          else if (u > max)                                             \
index 9fc49a2ceefff1239c513cad1549476f25f11046..08b9ffc88985d4cb6cc6db3f21ec11a429f735ea 100644 (file)
@@ -97,7 +97,7 @@ static GLfloat RoughApproxPower(GLfloat x, GLfloat y)
  */
 static GLfloat ApproxLog2(GLfloat t)
 {
-   return (GLfloat) (log(t) * 1.442695F);
+   return (GLfloat) (LOGF(t) * 1.442695F);
 }
 
 static GLfloat ApproxExp2(GLfloat t)
index 91c3591f5bff10905f7e918dd1c671d58f477f0c..ddf849a658e7aa478a013382585c1b5e85ab3f1a 100644 (file)
@@ -80,7 +80,7 @@ init_static_data( void )
    GLfloat f = 0.0F;
    GLint i = 0;
    for ( ; i < FOG_EXP_TABLE_SIZE ; i++, f += FOG_INCR) {
-      exp_table[i] = (GLfloat) exp(-f);
+      exp_table[i] = EXPF(-f);
    }
    inited = 1;
 }
index 3f9445805381ac7e99885f9a30ee328a7f9864b8..236a5bedc801a20ec545bac415d2344088d1402a 100644 (file)
@@ -203,7 +203,7 @@ static INLINE void insert_3f_xyw_4( const struct tnl_clipspace_attr *a, GLubyte
 static INLINE void insert_3f_xyw_err( const struct tnl_clipspace_attr *a, GLubyte *v, const GLfloat *in )
 {
    (void) a; (void) v; (void) in;
-   abort();
+   _mesa_exit(1);
 }
 
 static INLINE void insert_3f_3( const struct tnl_clipspace_attr *a, GLubyte *v, const GLfloat *in )
index 3e77758edbb6b0d7ba29d92a3c1bd09b4f83af7b..68bd7b7a9a07978ec15fdc99e21fef59034b4b7a 100644 (file)
@@ -326,10 +326,10 @@ static struct ureg swizzle1( struct ureg reg, int x )
 
 static struct ureg get_temp( struct tnl_program *p )
 {
-   int bit = ffs( ~p->temp_in_use );
+   int bit = _mesa_ffs( ~p->temp_in_use );
    if (!bit) {
-      fprintf(stderr, "%s: out of temporaries\n", __FILE__);
-      exit(1);
+      _mesa_problem(NULL, "%s: out of temporaries\n", __FILE__);
+      _mesa_exit(1);
    }
 
    p->temp_in_use |= 1<<(bit-1);
index ef609781c5139a97d0b9251a22ce359386eae8f0..b296e439d20b608390279fe8eb63fadfb4ca3a98 100644 (file)
@@ -113,8 +113,12 @@ static void _tnl_vb_bind_vtx( GLcontext *ctx )
    GLuint count = tnl->vtx.initial_counter - tnl->vtx.counter;
    GLuint attr, i;
 
-   if (0) fprintf(stderr, "_tnl_vb_bind_vtx(): %d verts %d vertsize\n",
+#undef DEBUG_VTX
+
+#ifdef DEBUG_VTX
+   fprintf(stderr, "_tnl_vb_bind_vtx(): %d verts %d vertsize\n",
                  count, tnl->vtx.vertex_size);
+#endif
 
 
    /* Setup constant data in the VB.
index 1812cfa471542c5876af8f30ca33b4beccaaacc1..99a05509327e87cfd60f5b4f332e17eb12b4771f 100644 (file)
@@ -44,7 +44,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "t_vtx_api.h"
 #include "simple_list.h"
 
-
 #if defined(USE_X86_ASM) && !defined(HAVE_NONSTANDARD_GLAPIENTRY)
 
 #define EXTERN( FUNC )         \
@@ -94,6 +93,18 @@ EXTERN( _tnl_x86_choose_fv );
 
 
 
+#undef DEBUG_VTX
+
+#ifdef DEBUG_VTX
+#define FIXUP_PRINTF( offset, NEWVAL ) \
+      fprintf(stderr, "%s/%d: offset %d, new value: 0x%x\n", __FILE__, __LINE__, offset, (int)(NEWVAL))
+#define FIXUPREL_PRINTF( offset, NEWVAL, CODE ) \
+      fprintf(stderr, "%s/%d: offset %d, new value: 0x%x\n", __FILE__, __LINE__, offset, (int)(NEWVAL) - ((int)(CODE)+offset) - 4)
+#else
+#define FIXUP_PRINTF( offset, NEWVAL )
+#define FIXUPREL_PRINTF( offset, NEWVAL, CODE )
+#endif
+
 #define FIXUP( CODE, KNOWN_OFFSET, CHECKVAL, NEWVAL )  \
 do {                                                   \
    GLint subst = 0x10101010 + CHECKVAL;                        \
@@ -101,7 +112,7 @@ do {                                                        \
    if (DONT_KNOW_OFFSETS) {                            \
       while (*(int *)(CODE+offset) != subst) offset++; \
       *(int *)(CODE+offset) = (int)(NEWVAL);           \
-      if (0) fprintf(stderr, "%s/%d: offset %d, new value: 0x%x\n", __FILE__, __LINE__, offset, (int)(NEWVAL)); \
+      FIXUP_PRINTF(offset, NEWVAL);                    \
       offset += 4;                                     \
    }                                                   \
    else {                                              \
@@ -120,7 +131,7 @@ do {                                                        \
    if (DONT_KNOW_OFFSETS) {                            \
       while (*(int *)(CODE+offset) != subst) offset++; \
       *(int *)(CODE+offset) = (int)(NEWVAL) - ((int)(CODE)+offset) - 4; \
-      if (0) fprintf(stderr, "%s/%d: offset %d, new value: 0x%x\n", __FILE__, __LINE__, offset, (int)(NEWVAL) - ((int)(CODE)+offset) - 4); \
+      FIXUPREL_PRINTF(offset, NEWVAL, CODE);           \
       offset += 4;                                     \
    }                                                   \
    else {                                              \
index e70bc66274d3a8dc0d2b79159de7475499e8b3cf..21d978b06e54de0b52f465f9844e75bdd3178f5e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: x86-64.c,v 1.1 2005/05/07 16:59:59 brianp Exp $ */
+/* $Id: x86-64.c,v 1.2 2005/09/19 20:12:33 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -70,7 +70,7 @@ static void message( const char *msg )
    }
 #endif
    if ( debug ) {
-      fprintf( stderr, "%s", msg );
+      _mesa_debug( NULL, "%s", msg );
    }
 }
 #endif
index 0ff7fd51a6d73d386bcdb8597b40c23e5d0ab0e3..eece7c1c84deac32c1fb3e23643a5cabb29d878b 100644 (file)
@@ -71,7 +71,7 @@ static void message( const char *msg )
    }
 #endif
    if ( debug ) {
-      fprintf( stderr, "%s", msg );
+      _mesa_debug( NULL, "%s", msg );
    }
 }