Killed mmath.[ch]. Moved low-level functions/assembly code into imports.[ch]
authorBrian Paul <brian.paul@tungstengraphics.com>
Sat, 1 Mar 2003 01:50:20 +0000 (01:50 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Sat, 1 Mar 2003 01:50:20 +0000 (01:50 +0000)
Moved type conversion and interpolation macros into macros.h
Updated all the files that used to include mmath.h

92 files changed:
src/mesa/Makefile.X11
src/mesa/array_cache/ac_context.c
src/mesa/array_cache/ac_import.c
src/mesa/drivers/dos/dmesa.c
src/mesa/drivers/dos/internal.h
src/mesa/drivers/glide/fxdd.c
src/mesa/drivers/glide/fxvb.c
src/mesa/drivers/osmesa/osmesa.c
src/mesa/drivers/windows/wmesa.c
src/mesa/drivers/x11/fakeglx.c
src/mesa/drivers/x11/xm_api.c
src/mesa/drivers/x11/xm_line.c
src/mesa/drivers/x11/xm_tri.c
src/mesa/main/Makefile.BeOS-R5
src/mesa/main/Makefile.DJ
src/mesa/main/Makefile.OSMesa16
src/mesa/main/Makefile.X11
src/mesa/main/Makefile.ugl
src/mesa/main/Makefile.win
src/mesa/main/api_eval.c
src/mesa/main/api_noop.c
src/mesa/main/buffers.c
src/mesa/main/clip.c
src/mesa/main/colormac.h
src/mesa/main/colortab.c
src/mesa/main/context.c
src/mesa/main/drawpix.c
src/mesa/main/enable.c
src/mesa/main/eval.c
src/mesa/main/feedback.c
src/mesa/main/get.c
src/mesa/main/glheader.h
src/mesa/main/histogram.c
src/mesa/main/image.c
src/mesa/main/imports.c
src/mesa/main/imports.h
src/mesa/main/light.c
src/mesa/main/lines.c
src/mesa/main/macros.h
src/mesa/main/matrix.c
src/mesa/main/mtypes.h
src/mesa/main/nvfragparse.c
src/mesa/main/nvvertexec.c
src/mesa/main/points.c
src/mesa/main/rastpos.c
src/mesa/main/state.c
src/mesa/main/texformat.c
src/mesa/main/teximage.c
src/mesa/main/texutil.c
src/mesa/main/varray.c
src/mesa/math/m_debug_norm.c
src/mesa/math/m_matrix.c
src/mesa/math/m_norm_tmp.h
src/mesa/math/m_translate.c
src/mesa/math/m_xform.c
src/mesa/swrast/s_aaline.c
src/mesa/swrast/s_aatriangle.c
src/mesa/swrast/s_accum.c
src/mesa/swrast/s_alpha.c
src/mesa/swrast/s_bitmap.c
src/mesa/swrast/s_drawpix.c
src/mesa/swrast/s_feedback.c
src/mesa/swrast/s_fog.c
src/mesa/swrast/s_lines.c
src/mesa/swrast/s_nvfragprog.c
src/mesa/swrast/s_points.c
src/mesa/swrast/s_span.c
src/mesa/swrast/s_texstore.c
src/mesa/swrast/s_texture.c
src/mesa/swrast/s_triangle.c
src/mesa/swrast/s_zoom.c
src/mesa/tnl/t_array_api.c
src/mesa/tnl/t_array_import.c
src/mesa/tnl/t_eval_api.c
src/mesa/tnl/t_imm_dlist.c
src/mesa/tnl/t_imm_elt.c
src/mesa/tnl/t_imm_eval.c
src/mesa/tnl/t_imm_exec.c
src/mesa/tnl/t_imm_fixup.c
src/mesa/tnl/t_pipeline.c
src/mesa/tnl/t_vb_cliptmp.h
src/mesa/tnl/t_vb_fog.c
src/mesa/tnl/t_vb_light.c
src/mesa/tnl/t_vb_normals.c
src/mesa/tnl/t_vb_points.c
src/mesa/tnl/t_vb_program.c
src/mesa/tnl/t_vb_render.c
src/mesa/tnl/t_vb_texgen.c
src/mesa/tnl/t_vb_texmat.c
src/mesa/tnl/t_vb_vertex.c
src/mesa/tnl/t_vtx_exec.c
src/mesa/tnl/t_vtx_x86.c

index 9ccaafc9d8c375ee71c103315b708d2aab655809..7a8e8f0b415536e0844d3b1107cd8484208ba15d 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.X11,v 1.73 2003/01/14 04:55:45 brianp Exp $
+# $Id: Makefile.X11,v 1.74 2003/03/01 01:50:20 brianp Exp $
 
 # Mesa 3-D graphics library
 # Version:  5.0
@@ -55,7 +55,6 @@ CORE_SOURCES = \
        light.c \
        lines.c \
        matrix.c \
-       mmath.c \
        nvprogram.c \
        nvfragparse.c \
        nvvertexec.c \
index a09a55cd53f582eec09358172f0aac8e89216eb6..28d4b225feb7318c01b13a1be73e89e2b3754133 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: ac_context.c,v 1.10 2003/01/14 04:55:46 brianp Exp $ */
+/* $Id: ac_context.c,v 1.11 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -30,7 +30,6 @@
 #include "glheader.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 #include "array_cache/ac_context.h"
index f8b92a4ee57bd726c9e13c6d8f55013ba966b2d5..58d2c246d041155b70206ee9f2d3441ddd39b367 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: ac_import.c,v 1.22 2003/01/14 04:55:46 brianp Exp $ */
+/* $Id: ac_import.c,v 1.23 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -30,7 +30,6 @@
 #include "glheader.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 #include "math/m_translate.h"
index a72973832a4198441212a43163b70762db5d146d..5202bbd6b17c836331bb9ee837f758da1ff20ec1 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
  * Mesa 3-D graphics library\r
- * Version:  5.0\r
+ * Version:  5.1\r
  * \r
- * Copyright (C) 1999  Brian Paul   All Rights Reserved.\r
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.\r
  * \r
  * Permission is hereby granted, free of charge, to any person obtaining a\r
  * copy of this software and associated documentation files (the "Software"),\r
@@ -39,7 +39,6 @@
 #include "extensions.h"\r
 #include "macros.h"\r
 #include "matrix.h"\r
-#include "mmath.h"\r
 #include "texformat.h"\r
 #include "texstore.h"\r
 #include "array_cache/acache.h"\r
index 304a7377baa402a5cf706c36e6a24d6dd17cd6e6..f6dc0e4b41ffafd66899be0ba15f6807f0cc33b3 100644 (file)
@@ -34,7 +34,7 @@
 #ifndef INTERNAL_H_included\r
 #define INTERNAL_H_included\r
 \r
-#include "../mmath.h"\r
+#include "../macros.h"\r
 \r
 /*\r
  * general purpose defines, etc.\r
index fd099e7e1153c25896cb9067a38808b42353b13c..906424810ab3b4f1e7aa8abe07a7cc07e80138ce 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: fxdd.c,v 1.95 2003/01/08 21:32:36 brianp Exp $ */
+/* $Id: fxdd.c,v 1.96 2003/03/01 01:50:23 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.0
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -45,7 +45,7 @@
 #include "fxdrv.h"
 #include "enums.h"
 #include "extensions.h"
-#include "mmath.h"
+#include "macros.h"
 #include "texstore.h"
 #include "swrast/swrast.h"
 #include "swrast_setup/swrast_setup.h"
index d14e53d21d4b5c071f16f57b628975b9e21f4ec0..f807048b0936daf24478d1eefd79dad01a35ab7e 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: fxvb.c,v 1.16 2002/11/04 20:29:04 brianp Exp $ */
+/* $Id: fxvb.c,v 1.17 2003/03/01 01:50:23 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.0
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -40,7 +40,6 @@
 #include "imports.h"
 #include "macros.h"
 #include "colormac.h"
-#include "mmath.h"
 
 #include "math/m_translate.h"
 #include "swrast_setup/swrast_setup.h"
index 5901ae29a0937bef0a76165954da83a51fc2644c..25efb7ef4ad3e777ae090de716979a01b019bea9 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: osmesa.c,v 1.99 2003/02/25 19:25:54 brianp Exp $ */
+/* $Id: osmesa.c,v 1.100 2003/03/01 01:50:23 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
  * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -45,7 +45,6 @@
 #include "imports.h"
 #include "macros.h"
 #include "matrix.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "texformat.h"
 #include "texstore.h"
index 4baa547f2852b2eda47322d4c9ceaa613e954da0..456050b9fc3f97903066fb09c82c896da721f8c2 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: wmesa.c,v 1.43 2003/01/30 15:47:06 kschultz Exp $ */
+/* $Id: wmesa.c,v 1.44 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Windows (Win32) device driver for Mesa 3.4
@@ -39,7 +39,6 @@
 #include "imports.h"
 #include "macros.h"
 #include "matrix.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "texformat.h"
 #include "texstore.h"
index b9a7ce4c6d79659c437fcedcb307b10bc9165650..86a328a066c20d77f10afd0722eef533af0eae1c 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: fakeglx.c,v 1.79 2003/02/25 19:25:58 brianp Exp $ */
+/* $Id: fakeglx.c,v 1.80 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -49,7 +49,6 @@
 #include "config.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "xfonts.h"
 #include "xmesaP.h"
index d1d2bce49d417a9a479a469a2d99754ebfc620a6..80db1212da11b6c8ea408fc3d246e6b1b891bb87 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: xm_api.c,v 1.53 2003/02/17 16:35:56 brianp Exp $ */
+/* $Id: xm_api.c,v 1.54 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -71,7 +71,6 @@
 #include "glthread.h"
 #include "imports.h"
 #include "matrix.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "macros.h"
 #include "texformat.h"
index 1855fad99e3e727fe3ff909c31bcd5126a468116..7b629f0b49e15da2c02cb66d7c96b7cfeb46eb81 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: xm_line.c,v 1.22 2003/02/17 16:35:57 brianp Exp $ */
+/* $Id: xm_line.c,v 1.23 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -35,7 +35,6 @@
 #include "glxheader.h"
 #include "depth.h"
 #include "macros.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "xmesaP.h"
 
index d34cac53fe853d5d34064ae8f708e82061b0f3a7..602eba41e6467000b9815380c08a002e0877faf8 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: xm_tri.c,v 1.31 2003/02/17 16:36:01 brianp Exp $ */
+/* $Id: xm_tri.c,v 1.32 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -36,7 +36,6 @@
 #include "depth.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "xmesaP.h"
 
index 97d814c91724b2b5da7cdb9514b46f0b1b286810..8ae0efcf1da326f46ee153a892a8d7367cdf95b3 100644 (file)
@@ -1,7 +1,7 @@
 # Mesa 3-D graphics library
-# Version:  4.1
+# Version:  5.1
 # 
-# Copyright (C) 1995-2002  Brian Paul   All Rights Reserved.
+# Copyright (C) 1995-2003  Brian Paul   All Rights Reserved.
 # 
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -90,7 +90,6 @@ MESA_CORE_SRCS = \
        light.c \
        lines.c \
        matrix.c \
-       mmath.c \
        pixel.c \
        points.c \
        polygon.c \
index e2714f9088fa8c0a3fed694120d4c532d24527a5..2a3c6a79b7a42fb5e5242e0c9b6e48e3ec27b0c3 100644 (file)
@@ -130,7 +130,6 @@ CORE_SOURCES = \
        light.c \\r
        lines.c \\r
        matrix.c \\r
-       mmath.c \\r
        pixel.c \\r
        points.c \\r
        polygon.c \\r
index c1899e70ac2b5f409c08c788db63c7705b384c9e..7a7b0f11bfbd9741058f5ab35e8a167e3cfef5a5 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.OSMesa16,v 1.11 2003/01/14 04:55:45 brianp Exp $
+# $Id: Makefile.OSMesa16,v 1.12 2003/03/01 01:50:20 brianp Exp $
 
 # Mesa 3-D graphics library
 # Version:  5.0
@@ -56,7 +56,6 @@ CORE_SOURCES = \
        light.c \
        lines.c \
        matrix.c \
-       mmath.c \
        nvprogram.c \
        nvfragparse.c \
        nvvertexec.c \
index 9ccaafc9d8c375ee71c103315b708d2aab655809..7a8e8f0b415536e0844d3b1107cd8484208ba15d 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.X11,v 1.73 2003/01/14 04:55:45 brianp Exp $
+# $Id: Makefile.X11,v 1.74 2003/03/01 01:50:20 brianp Exp $
 
 # Mesa 3-D graphics library
 # Version:  5.0
@@ -55,7 +55,6 @@ CORE_SOURCES = \
        light.c \
        lines.c \
        matrix.c \
-       mmath.c \
        nvprogram.c \
        nvfragparse.c \
        nvvertexec.c \
index 95d880984f9b7008c7e2db7ab124062c871fa9eb..bcecd7afb7c029c7f57fc8ed34f2b6388f329312 100644 (file)
@@ -85,7 +85,6 @@ GL_SOURCES = \
        light.c \
        lines.c \
        matrix.c \
-       mmath.c \
        pixel.c \
        points.c \
        polygon.c \
index ebb59e76cdd4cd3ce8a30620166831b29bfab0e7..2acbce0ced13bfa91f6cd3ab55731193ca70fe2e 100644 (file)
@@ -45,7 +45,6 @@ CORE_SRCS = \
        light.c \
        lines.c \
        matrix.c \
-       mmath.c \
        nvprogram.c \
        nvfragparse.c \
        nvvertexec.c \
index 3b29ac62b93568cf9129a9f44284f118ef1cef5f..254f81498899c4d2e9169113f11547b8485ebd4e 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: api_eval.c,v 1.3 2002/10/29 20:28:42 brianp Exp $ */
+/* $Id: api_eval.c,v 1.4 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -31,7 +31,6 @@
 #include "api_eval.h"
 #include "context.h"
 #include "macros.h"
-#include "mmath.h"
 #include "math/m_eval.h"
 
 static void do_EvalCoord1f(GLcontext* ctx, GLfloat u)
index 6a4226294c9a1c5f2a507aad9811b1e653d5a0cd..ff96605f1bb8646c1089201a9eb672cc960dffd2 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: api_noop.c,v 1.11 2003/01/14 04:55:45 brianp Exp $ */
+/* $Id: api_noop.c,v 1.12 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -32,7 +32,6 @@
 #include "colormac.h"
 #include "light.h"
 #include "macros.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 
index 14994c61f73fcb1328f50e8870da6e73f476cf28..ab579b3d33409799882414342bd0e4e154c2f4ed 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: buffers.c,v 1.42 2002/10/24 23:57:19 brianp Exp $ */
+/* $Id: buffers.c,v 1.43 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -33,7 +33,6 @@
 #include "context.h"
 #include "depth.h"
 #include "enums.h"
-#include "macros.h"
 #include "stencil.h"
 #include "state.h"
 #include "mtypes.h"
index 79565a0fb31f9d5b32e95a90cb3e238127e4a333..8f701bb71200ecc5fbd63deca17d7f50a5ea4eca 100644 (file)
@@ -1,8 +1,8 @@
-/* $Id: clip.c,v 1.26 2002/10/24 23:57:19 brianp Exp $ */
+/* $Id: clip.c,v 1.27 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  5.1
  *
  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
  *
@@ -29,7 +29,6 @@
 #include "clip.h"
 #include "context.h"
 #include "macros.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 #include "math/m_xform.h"
index 7fdd0b3b9d80c3cd815da8e747c177da769e25d8..7f6b922f62b475e15beb59081988193d2b71cf8b 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: colormac.h,v 1.11 2002/04/04 16:51:52 brianp Exp $ */
+/* $Id: colormac.h,v 1.12 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
 #define COLORMAC_H
 
 
-#include "glheader.h"
+#include "imports.h"
 #include "config.h"
 #include "macros.h"
-#include "mmath.h"
-/* Do not reference mtypes.h from this file.
- */
 
 
 #if CHAN_BITS == 8
@@ -133,4 +130,63 @@ do {                                               \
 } while (0)
 
 
+
+/* Generic color packing macros
+ * XXX We may move these into texutil.h at some point.
+ */
+
+#define PACK_COLOR_8888( a, b, c, d )                                  \
+   (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
+
+#define PACK_COLOR_888( a, b, c )                                      \
+   (((a) << 16) | ((b) << 8) | (c))
+
+#define PACK_COLOR_565( a, b, c )                                      \
+   ((((a) & 0xf8) << 8) | (((b) & 0xfc) << 3) | (((c) & 0xf8) >> 3))
+
+#define PACK_COLOR_1555( a, b, c, d )                                  \
+   ((((b) & 0xf8) << 7) | (((c) & 0xf8) << 2) | (((d) & 0xf8) >> 3) |  \
+    ((a) ? 0x8000 : 0))
+
+#define PACK_COLOR_4444( a, b, c, d )                                  \
+   ((((a) & 0xf0) << 8) | (((b) & 0xf0) << 4) | ((c) & 0xf0) | ((d) >> 4))
+
+#define PACK_COLOR_88( a, b )                                          \
+   (((a) << 8) | (b))
+
+#define PACK_COLOR_332( a, b, c )                                      \
+   (((a) & 0xe0) | (((b) & 0xe0) >> 3) | (((c) & 0xc0) >> 6))
+
+
+#ifdef MESA_BIG_ENDIAN
+
+#define PACK_COLOR_8888_LE( a, b, c, d )       PACK_COLOR_8888( d, c, b, a )
+
+#define PACK_COLOR_565_LE( a, b, c )                                   \
+   (((a) & 0xf8) | (((b) & 0xe0) >> 5) | (((b) & 0x1c) << 11) |                \
+   (((c) & 0xf8) << 5))
+
+#define PACK_COLOR_1555_LE( a, b, c, d )                               \
+   ((((b) & 0xf8) >> 1) | (((c) & 0xc0) >> 6) | (((c) & 0x38) << 10) | \
+    (((d) & 0xf8) << 5) | ((a) ? 0x80 : 0))
+
+#define PACK_COLOR_4444_LE( a, b, c, d )       PACK_COLOR_4444( c, d, a, b )
+
+#define PACK_COLOR_88_LE( a, b )               PACK_COLOR_88( b, a )
+
+#else  /* little endian */
+
+#define PACK_COLOR_8888_LE( a, b, c, d )       PACK_COLOR_8888( a, b, c, d )
+
+#define PACK_COLOR_565_LE( a, b, c )           PACK_COLOR_565( a, b, c )
+
+#define PACK_COLOR_1555_LE( a, b, c, d )       PACK_COLOR_1555( a, b, c, d )
+
+#define PACK_COLOR_4444_LE( a, b, c, d )       PACK_COLOR_4444( a, b, c, d )
+
+#define PACK_COLOR_88_LE( a, b )               PACK_COLOR_88( a, b )
+
+#endif /* endianness */
+
+
 #endif /* COLORMAC_H */
index 184aa8eff2c310c8b9aae40871b6e9dcda2d9c29..0a785743c06d1542400423257180005e04354a2b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: colortab.c,v 1.48 2003/01/26 14:37:16 brianp Exp $ */
+/* $Id: colortab.c,v 1.49 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -31,7 +31,6 @@
 #include "context.h"
 #include "image.h"
 #include "macros.h"
-#include "mmath.h"
 #include "state.h"
 
 
index 7430d94410fe22ed77db511ba8b482daa35b5526..b9bbe65193324882ac75986fd2e21fd451dc477a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: context.c,v 1.193 2003/01/26 14:37:15 brianp Exp $ */
+/* $Id: context.c,v 1.194 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -41,7 +41,6 @@
 #include "hash.h"
 #include "light.h"
 #include "macros.h"
-#include "mmath.h"
 #include "simple_list.h"
 #include "state.h"
 #include "teximage.h"
@@ -81,6 +80,9 @@ int MESA_DEBUG_FLAGS = 0;
 #endif
 
 
+/* ubyte -> float conversion */
+GLfloat _mesa_ubyte_to_float_color_tab[256];
+
 static void
 free_shared_state( GLcontext *ctx, struct gl_shared_state *ss );
 
@@ -556,6 +558,8 @@ one_time_init( GLcontext *ctx )
    static GLboolean alreadyCalled = GL_FALSE;
    _glthread_LOCK_MUTEX(OneTimeLock);
    if (!alreadyCalled) {
+      GLuint i;
+
       /* do some implementation tests */
       assert( sizeof(GLbyte) == 1 );
       assert( sizeof(GLshort) >= 2 );
@@ -567,7 +571,10 @@ one_time_init( GLcontext *ctx )
       _mesa_init_lists();
 
       _math_init();
-      _mesa_init_math();
+
+      for (i = 0; i < 256; i++) {
+         _mesa_ubyte_to_float_color_tab[i] = (float) i / 255.0F;
+      }
 
 #ifdef USE_SPARC_ASM
       _mesa_init_sparc_glapi_relocs();
index 1dbeefa23b237270e70d6f7ca633d1cdb7243cfc..f5d780e2ae289a582fd5e3d2c2b2866376a94839 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drawpix.c,v 1.63 2002/10/24 23:57:20 brianp Exp $ */
+/* $Id: drawpix.c,v 1.64 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -31,7 +31,6 @@
 #include "drawpix.h"
 #include "feedback.h"
 #include "macros.h"
-#include "mmath.h"
 #include "state.h"
 #include "mtypes.h"
 
index f343c2099a7649db9f2cbe59d8bfc9abac8342be..eb46976abb093022e0cc64091788068b0f2369eb 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: enable.c,v 1.74 2003/01/26 14:37:16 brianp Exp $ */
+/* $Id: enable.c,v 1.75 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -30,7 +30,6 @@
 #include "enable.h"
 #include "light.h"
 #include "macros.h"
-#include "mmath.h"
 #include "simple_list.h"
 #include "mtypes.h"
 #include "enums.h"
index 30767a6277e6173f6a032bb794b7b23bb14d99d5..d207d14b2086405bde9e658f7dc194ed87ef46ad 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: eval.c,v 1.24 2002/10/24 23:57:20 brianp Exp $ */
+/* $Id: eval.c,v 1.25 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -44,7 +44,6 @@
 #include "context.h"
 #include "eval.h"
 #include "macros.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 
@@ -705,7 +704,7 @@ _mesa_GetMapiv( GLenum target, GLenum query, GLint *v )
          }
         if (data) {
            for (i=0;i<n;i++) {
-              v[i] = ROUNDF(data[i]);
+              v[i] = IROUND(data[i]);
            }
         }
          break;
@@ -720,14 +719,14 @@ _mesa_GetMapiv( GLenum target, GLenum query, GLint *v )
          break;
       case GL_DOMAIN:
          if (map1d) {
-            v[0] = ROUNDF(map1d->u1);
-            v[1] = ROUNDF(map1d->u2);
+            v[0] = IROUND(map1d->u1);
+            v[1] = IROUND(map1d->u2);
          }
          else {
-            v[0] = ROUNDF(map2d->u1);
-            v[1] = ROUNDF(map2d->u2);
-            v[2] = ROUNDF(map2d->v1);
-            v[3] = ROUNDF(map2d->v2);
+            v[0] = IROUND(map2d->u1);
+            v[1] = IROUND(map2d->u2);
+            v[2] = IROUND(map2d->v1);
+            v[3] = IROUND(map2d->v2);
          }
          break;
       default:
index 330fd7d2be2742cd325d0036c01d0edbffeb4b38..6bd336b5f70634bf55cca8694943839e75b75e15 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: feedback.c,v 1.27 2002/10/24 23:57:20 brianp Exp $ */
+/* $Id: feedback.c,v 1.28 2003/03/01 01:50:20 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -31,7 +31,6 @@
 #include "enums.h"
 #include "feedback.h"
 #include "macros.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 
index 011ec4d64ca4566cc3096ef1a38f84915ae49326..54f2832846e5795a9f478e27cf48dd7c9100df02 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: get.c,v 1.105 2003/01/26 14:37:16 brianp Exp $ */
+/* $Id: get.c,v 1.106 2003/03/01 01:50:21 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -33,7 +33,6 @@
 #include "extensions.h"
 #include "get.h"
 #include "macros.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "texcompress.h"
 #include "math/m_matrix.h"
index b27f8d2f78e9a39f52c5356f7e1ec5b6d095d3eb..c203b91598cb1bd45f6cb31dbf0a2cbcf5b0679e 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: glheader.h,v 1.29 2002/10/30 19:44:41 brianp Exp $ */
+/* $Id: glheader.h,v 1.30 2003/03/01 01:50:21 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  5.0
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
  * Other Mesa source files should _not_ directly include any system
  * headers.  This allows Mesa to be integrated into XFree86 and
  * allows system-dependent hacks/work-arounds to be collected in one place.
+ * XXX actually, a lot of system-dependent stuff is now in imports.[ch].
  *
  * If you touch this file, everything gets recompiled!
  *
- * This file should be included before any other header in the .c files.
- *
  * Put compiler/OS/assembly pragmas and macros here to avoid
  * cluttering other source files.
  */
index 134463956e2e2262d520c72fb53b84c581acb7e9..2eca44f02ff85e3241684c200bc96b19b8e8e013 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: histogram.c,v 1.11 2002/10/24 23:57:21 brianp Exp $ */
+/* $Id: histogram.c,v 1.12 2003/03/01 01:50:21 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -30,7 +30,6 @@
 #include "context.h"
 #include "image.h"
 #include "histogram.h"
-#include "mmath.h"
 
 
 /*
index 3830b0318eeec30b5ca79312cc0b9114137b0b54..b36c804e5323c371913b3e05823b486fd7edd017 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: image.c,v 1.69 2002/10/24 23:57:21 brianp Exp $ */
+/* $Id: image.c,v 1.70 2003/03/01 01:50:21 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
 #include "imports.h"
 #include "histogram.h"
 #include "macros.h"
-#include "mmath.h"
 #include "pixel.h"
 #include "mtypes.h"
 
 
+
+/* Compute ceiling of integer quotient of A divided by B: */
+#define CEILING( A, B )  ( (A) % (B) == 0 ? (A)/(B) : (A)/(B)+1 )
+
+
+
 /*
  * These are the image packing parameters for Mesa's internal images.
  * That is, _mesa_unpack_image() returns image data in this format.
index 80bee830da29eab4ddf73ac90dbec16726023062..e9d579e7640efb949e366f793e0d3d78ccf2415f 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: imports.c,v 1.31 2003/02/08 15:56:34 brianp Exp $ */
+/* $Id: imports.c,v 1.32 2003/03/01 01:50:21 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
  * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
  */
 
 
-#include "glheader.h"
-#include "mtypes.h"
-#include "context.h"
 #include "imports.h"
+#include "context.h"
 
 
 #define MAXSTRING 4000  /* for vsnprintf() */
@@ -73,6 +71,11 @@ extern int vsnprintf(char *str, size_t count, const char *fmt, va_list arg);
  * rand and RAND_MAX
  */
 
+
+/**********************************************************************
+ * Memory
+ */
+
 void *
 _mesa_malloc(size_t bytes)
 {
@@ -224,6 +227,10 @@ _mesa_bzero( void *dst, size_t n )
 }
 
 
+/**********************************************************************
+ * Math
+ */
+
 double
 _mesa_sin(double a)
 {
@@ -247,7 +254,7 @@ _mesa_cos(double a)
 
 
 double
-_mesa_sqrt(double x)
+_mesa_sqrtd(double x)
 {
 #if defined(XFree86LOADER) && defined(IN_MODULE)
    return xf86sqrt(x);
@@ -257,6 +264,95 @@ _mesa_sqrt(double x)
 }
 
 
+/*
+ * A High Speed, Low Precision Square Root
+ * by Paul Lalonde and Robert Dawson
+ * from "Graphics Gems", Academic Press, 1990
+ *
+ * SPARC implementation of a fast square root by table
+ * lookup.
+ * SPARC floating point format is as follows:
+ *
+ * BIT 31      30      23      22      0
+ *     sign    exponent        mantissa
+ */
+static short sqrttab[0x100];    /* declare table of square roots */
+
+static void init_sqrt_table(void)
+{
+#if defined(USE_IEEE) && !defined(DEBUG)
+   unsigned short i;
+   fi_type fi;     /* to access the bits of a float in  C quickly  */
+                   /* we use a union defined in glheader.h         */
+
+   for(i=0; i<= 0x7f; i++) {
+      fi.i = 0;
+
+      /*
+       * Build a float with the bit pattern i as mantissa
+       * and an exponent of 0, stored as 127
+       */
+
+      fi.i = (i << 16) | (127 << 23);
+      fi.f = _mesa_sqrtd(fi.f);
+
+      /*
+       * Take the square root then strip the first 7 bits of
+       * the mantissa into the table
+       */
+
+      sqrttab[i] = (fi.i & 0x7fffff) >> 16;
+
+      /*
+       * Repeat the process, this time with an exponent of
+       * 1, stored as 128
+       */
+
+      fi.i = 0;
+      fi.i = (i << 16) | (128 << 23);
+      fi.f = sqrt(fi.f);
+      sqrttab[i+0x80] = (fi.i & 0x7fffff) >> 16;
+   }
+#else
+   (void) sqrttab;  /* silence compiler warnings */
+#endif /*HAVE_FAST_MATH*/
+}
+
+
+float
+_mesa_sqrtf( float x )
+{
+#if defined(USE_IEEE) && !defined(DEBUG)
+   fi_type num;
+                                /* to access the bits of a float in C
+                                 * we use a union from glheader.h     */
+
+   short e;                     /* the exponent */
+   if (x == 0.0F) return 0.0F;  /* check for square root of 0 */
+   num.f = x;
+   e = (num.i >> 23) - 127;     /* get the exponent - on a SPARC the */
+                                /* exponent is stored with 127 added */
+   num.i &= 0x7fffff;           /* leave only the mantissa */
+   if (e & 0x01) num.i |= 0x800000;
+                                /* the exponent is odd so we have to */
+                                /* look it up in the second half of  */
+                                /* the lookup table, so we set the   */
+                                /* high bit                                */
+   e >>= 1;                     /* divide the exponent by two */
+                                /* note that in C the shift */
+                                /* operators are sign preserving */
+                                /* for signed operands */
+   /* Do the table lookup, based on the quaternary mantissa,
+    * then reconstruct the result back into a float
+    */
+   num.i = ((sqrttab[num.i >> 16]) << 16) | ((e + 127) << 23);
+   return num.f;
+#else
+   return (float) _mesa_sqrtd((double) x);
+#endif
+}
+
+
 double
 _mesa_pow(double x, double y)
 {
@@ -268,6 +364,25 @@ _mesa_pow(double x, double y)
 }
 
 
+/*
+ * Return number of bits set in given GLuint.
+ */
+unsigned int
+_mesa_bitcount(unsigned int n)
+{
+   unsigned int bits;
+   for (bits = 0; n > 0; n = n >> 1) {
+      bits += (n & 1);
+   }
+   return bits;
+}
+
+
+
+/**********************************************************************
+ * Environment vars
+ */
+
 char *
 _mesa_getenv( const char *var )
 {
@@ -279,6 +394,10 @@ _mesa_getenv( const char *var )
 }
 
 
+/**********************************************************************
+ * String
+ */
+
 char *
 _mesa_strstr( const char *haystack, const char *needle )
 {
@@ -389,6 +508,10 @@ _mesa_strtod( const char *s, char **end )
 }
 
 
+/**********************************************************************
+ * I/O
+ */
+
 int
 _mesa_sprintf( char *str, const char *fmt, ... )
 {
@@ -421,6 +544,10 @@ _mesa_printf( const char *fmtString, ... )
 }
 
 
+/**********************************************************************
+ * Diagnostics
+ */
+
 void
 _mesa_warning( GLcontext *ctx, const char *fmtString, ... )
 {
@@ -673,12 +800,34 @@ default_GetDrawablePrivate(__GLcontext *gc)
 /*
  * Initialize a __GLimports object to point to the functions in
  * this file.  This is to be called from device drivers.
+ * Also, do some one-time initializations.
  * Input:  imports - the object to init
  *         driverCtx - pointer to device driver-specific data
  */
 void
 _mesa_init_default_imports(__GLimports *imports, void *driverCtx)
 {
+   /* XXX maybe move this one-time init stuff into context.c */
+   static GLboolean initialized = GL_FALSE;
+   if (!initialized) {
+      init_sqrt_table();
+
+#if defined(_FPU_GETCW) && defined(_FPU_SETCW)
+      {
+         const char *debug = _mesa_getenv("MESA_DEBUG");
+         if (debug && _mesa_strcmp(debug, "FP")==0) {
+            /* die on FP exceptions */
+            fpu_control_t mask;
+            _FPU_GETCW(mask);
+            mask &= ~(_FPU_MASK_IM | _FPU_MASK_DM | _FPU_MASK_ZM
+                      | _FPU_MASK_OM | _FPU_MASK_UM);
+            _FPU_SETCW(mask);
+         }
+      }
+#endif
+      initialized = GL_TRUE;
+   }
+
    imports->malloc = default_malloc;
    imports->calloc = default_calloc;
    imports->realloc = default_realloc;
index 8ebc982172c3e517dc497853284d0e0ba1ae84b0..741cdbf519867c868b773fe0b699f0b263a52556 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: imports.h,v 1.12 2003/02/08 15:56:34 brianp Exp $ */
+/* $Id: imports.h,v 1.13 2003/03/01 01:50:21 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
  * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
 #define IMPORTS_H
 
 
+/* XXX some of the stuff in glheader.h should be moved into this file.
+ */
+#include "glheader.h"
+
+
+/**********************************************************************
+ * General macros
+ */
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+
+
+/**********************************************************************
+ * Memory macros
+ */
+
 #define MALLOC(BYTES)      _mesa_malloc(BYTES)
 #define CALLOC(BYTES)      _mesa_calloc(BYTES)
 #define MALLOC_STRUCT(T)   (struct T *) _mesa_malloc(sizeof(struct T))
@@ -99,6 +118,428 @@ extern void _ext_mesa_free_pixelbuffer( void *pb );
 #endif
 
 
+
+/**********************************************************************
+ * Math macros
+ */
+
+#define MAX_GLUSHORT   0xffff
+#define MAX_GLUINT     0xffffffff
+
+#ifndef M_PI
+#define M_PI (3.1415926)
+#endif
+
+/* Degrees to radians conversion: */
+#define DEG2RAD (M_PI/180.0)
+
+
+/***
+ *** USE_IEEE: Determine if we're using IEEE floating point
+ ***/
+#if defined(__i386__) || defined(__sparc__) || defined(__s390x__) || \
+    defined(__powerpc__) || \
+    ( defined(__alpha__) && ( defined(__IEEE_FLOAT) || !defined(VMS) ) )
+#define USE_IEEE
+#define IEEE_ONE 0x3f800000
+#endif
+
+
+/***
+ *** SQRTF: single-precision square root
+ ***/
+#ifdef DEBUG
+#  define SQRTF(X)  ((float)_mesa_sqrtd((float) X))
+#elif defined(__WATCOMC__) && defined(USE_X86_ASM)
+float asm_sqrt (float x);
+#pragma aux asm_sqrt =                      \
+       "fsqrt"                             \
+       parm [8087]                         \
+       value [8087]                        \
+       modify exact [];
+#  define SQRTF(X)  asm_sqrt(X)
+#else
+#  define SQRTF(X)  _mesa_sqrtf(X)
+#endif
+
+
+/***
+ *** LOG2: Log base 2 of float
+ ***/
+#ifdef USE_IEEE
+#if 0
+/* This is pretty fast, but not accurate enough (only 2 fractional bits).
+ * Based on code from http://www.stereopsis.com/log2.html
+ */
+static INLINE GLfloat LOG2(GLfloat x)
+{
+   const GLfloat y = x * x * x * x;
+   const GLuint ix = *((GLuint *) &y);
+   const GLuint exp = (ix >> 23) & 0xFF;
+   const GLint log2 = ((GLint) exp) - 127;
+   return (GLfloat) log2 * (1.0 / 4.0);  /* 4, because of x^4 above */
+}
+#endif
+/* Pretty fast, and accurate.
+ * Based on code from http://www.flipcode.com/totd/
+ */
+static INLINE GLfloat LOG2(GLfloat val)
+{
+   GLint *exp_ptr = (GLint *) &val;
+   GLint x = *exp_ptr;
+   const GLint log_2 = ((x >> 23) & 255) - 128;
+   x &= ~(255 << 23);
+   x += 127 << 23;
+   *exp_ptr = x;
+   val = ((-1.0f/3) * val + 2) * val - 2.0f/3;
+   return val + log_2;
+}
+#elif defined(XFree86LOADER) && defined(IN_MODULE)
+#define LOG2(x) ((GLfloat) (xf86log(x) * 1.442695))
+#else
+/*
+ * NOTE: log_base_2(x) = log(x) / log(2)
+ * NOTE: 1.442695 = 1/log(2).
+ */
+#define LOG2(x)  ((GLfloat) (log(x) * 1.442695F))
+#endif
+
+
+/***
+ *** IS_INF_OR_NAN: test if float is infinite or NaN
+ ***/
+#ifdef USE_IEEE
+static INLINE int IS_INF_OR_NAN( float x )
+{
+   fi_type tmp;
+   tmp.f = x;
+   return !(int)((unsigned int)((tmp.i & 0x7fffffff)-0x7f800000) >> 31);
+}
+#elif defined(isfinite)
+#define IS_INF_OR_NAN(x)        (!isfinite(x))
+#elif defined(finite)
+#define IS_INF_OR_NAN(x)        (!finite(x))
+#elif __VMS
+#define IS_INF_OR_NAN(x)        (!finite(x))
+#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#define IS_INF_OR_NAN(x)        (!isfinite(x))
+#else
+#define IS_INF_OR_NAN(x)        (!finite(x))
+#endif 
+
+
+/***
+ *** IS_NEGATIVE: test if float is negative
+ ***/
+#if defined(USE_IEEE)
+#define GET_FLOAT_BITS(x) ((fi_type *) &(x))->i
+#define IS_NEGATIVE(x) (GET_FLOAT_BITS(x) & (1<<31))
+#else
+#define IS_NEGATIVE(x) (x < 0.0F)
+#endif
+
+
+/***
+ *** DIFFERENT_SIGNS: test if two floats have opposite signs
+ ***/
+#if defined(USE_IEEE)
+#define DIFFERENT_SIGNS(x,y) ((GET_FLOAT_BITS(x) ^ GET_FLOAT_BITS(y)) & (1<<31))
+#else
+/* Could just use (x*y<0) except for the flatshading requirements.
+ * Maybe there's a better way?
+ */
+#define DIFFERENT_SIGNS(x,y) ((x) * (y) <= 0.0F && (x) - (y) != 0.0F)
+#endif
+
+
+/***
+ *** CEILF: ceiling of float
+ *** FLOORF: floor of float
+ *** FABSF: absolute value of float
+ ***/
+#if defined(__sparc__) || defined(__NeXT__) /* XXX improve? */
+#define CEILF(x)   ceil(x)
+#define FLOORF(x)  floor(x)
+#define FABSF(x)   fabs(x)
+#elif defined(__WIN32__) || defined(__IBMC__) || defined(__IBMCPP__)
+#define CEILF(x)   ((GLfloat) ceil(x))
+#define FLOORF(x)  ((GLfloat) floor(x))
+#define FABSF(x)   ((GLfloat) fabs(x))
+#elif defined(XFree86LOADER) && defined(IN_MODULE)
+#define CEILF(x)   ((GLfloat) xf86ceil(x))
+#define FLOORF(x)  ((GLfloat) xf86floor(x))
+#define FABSF(x)   ((GLfloat) xf86fabs(x))
+#else
+#define CEILF(x)   ceilf(x)
+#define FLOORF(x)  floorf(x)
+#define FABSF(x)   fabsf(x)
+#endif
+
+
+/***
+ *** IROUND: return (as an integer) float rounded to nearest integer
+ ***/
+#if defined(USE_SPARC_ASM) && defined(__GNUC__) && defined(__sparc__)
+static INLINE int iround(float f)
+{
+       int r;
+       __asm__ ("fstoi %1, %0" : "=f" (r) : "f" (f));
+       return r;
+}
+#define IROUND(x)  iround(x)
+#elif defined(USE_X86_ASM) && defined(__GNUC__) && defined(__i386__)
+static INLINE int iround(float f)
+{
+   int r;
+   __asm__ ("fistpl %0" : "=m" (r) : "t" (f) : "st");
+   return r;
+}
+#define IROUND(x)  iround(x)
+#elif defined(USE_X86_ASM) && defined(__MSC__) && defined(__WIN32__)
+static INLINE int iround(float f)
+{
+   int r;
+   _asm {
+        fld f
+        fistp r
+       }
+   return r;
+}
+#define IROUND(x)  iround(x)
+#elif defined(USE_X86_ASM) && defined(__WATCOMC__)
+long iround(float f);
+#pragma aux iround =                        \
+       "push   eax"                        \
+       "fistp  dword ptr [esp]"            \
+       "pop    eax"                        \
+       parm [8087]                         \
+       value [eax]                         \
+       modify exact [eax];
+
+#define IROUND(x)  iround(x)
+#else
+#define IROUND(f)  ((int) (((f) >= 0.0F) ? ((f) + 0.5F) : ((f) - 0.5F)))
+#endif
+
+
+/***
+ *** IROUND_POS: return (as an integer) positive float rounded to nearest int
+ ***/
+#ifdef DEBUG
+#define IROUND_POS(f) (assert((f) >= 0.0F), IROUND(f))
+#else
+#define IROUND_POS(f) (IROUND(f))
+#endif
+
+
+/***
+ *** IFLOOR: return (as an integer) floor of float
+ ***/
+#if defined(USE_X86_ASM) && defined(__GNUC__) && defined(__i386__)
+/*
+ * IEEE floor for computers that round to nearest or even.
+ * 'f' must be between -4194304 and 4194303.
+ * This floor operation is done by "(iround(f + .5) + iround(f - .5)) >> 1",
+ * but uses some IEEE specific tricks for better speed.
+ * Contributed by Josh Vanderhoof
+ */
+static INLINE int ifloor(float f)
+{
+   int ai, bi;
+   double af, bf;
+   af = (3 << 22) + 0.5 + (double)f;
+   bf = (3 << 22) + 0.5 - (double)f;
+   /* GCC generates an extra fstp/fld without this. */
+   __asm__ ("fstps %0" : "=m" (ai) : "t" (af) : "st");
+   __asm__ ("fstps %0" : "=m" (bi) : "t" (bf) : "st");
+   return (ai - bi) >> 1;
+}
+#define IFLOOR(x)  ifloor(x)
+#elif defined(USE_IEEE)
+static INLINE int ifloor(float f)
+{
+   int ai, bi;
+   double af, bf;
+   fi_type u;
+
+   af = (3 << 22) + 0.5 + (double)f;
+   bf = (3 << 22) + 0.5 - (double)f;
+   u.f = af; ai = u.i;
+   u.f = bf; bi = u.i;
+   return (ai - bi) >> 1;
+}
+#define IFLOOR(x)  ifloor(x)
+#else
+static INLINE int ifloor(float f)
+{
+   int i = IROUND(f);
+   return (i > f) ? i - 1 : i;
+}
+#define IFLOOR(x)  ifloor(x)
+#endif
+
+
+/***
+ *** ICEIL: return (as an integer) ceiling of float
+ ***/
+#if defined(USE_X86_ASM) && defined(__GNUC__) && defined(__i386__)
+/*
+ * IEEE ceil for computers that round to nearest or even.
+ * 'f' must be between -4194304 and 4194303.
+ * This ceil operation is done by "(iround(f + .5) + iround(f - .5) + 1) >> 1",
+ * but uses some IEEE specific tricks for better speed.
+ * Contributed by Josh Vanderhoof
+ */
+static INLINE int iceil(float f)
+{
+   int ai, bi;
+   double af, bf;
+   af = (3 << 22) + 0.5 + (double)f;
+   bf = (3 << 22) + 0.5 - (double)f;
+   /* GCC generates an extra fstp/fld without this. */
+   __asm__ ("fstps %0" : "=m" (ai) : "t" (af) : "st");
+   __asm__ ("fstps %0" : "=m" (bi) : "t" (bf) : "st");
+   return (ai - bi + 1) >> 1;
+}
+#define ICEIL(x)  iceil(x)
+#elif defined(USE_IEEE)
+static INLINE int iceil(float f)
+{
+   int ai, bi;
+   double af, bf;
+   fi_type u;
+   af = (3 << 22) + 0.5 + (double)f;
+   bf = (3 << 22) + 0.5 - (double)f;
+   u.f = af; ai = u.i;
+   u.f = bf; bi = u.i;
+   return (ai - bi + 1) >> 1;
+}
+#define ICEIL(x)  iceil(x)
+#else
+static INLINE int iceil(float f)
+{
+   int i = IROUND(f);
+   return (i < f) ? i + 1 : i;
+}
+#define ICEIL(x)  iceil(x)
+#endif
+
+
+/***
+ *** UNCLAMPED_FLOAT_TO_UBYTE: map float from {0,1} to ubyte in [0,255]
+ *** CLAMPED_FLOAT_TO_UBYTE: map float in [0,1] to ubyte in [0,255]
+ ***/
+#if defined(USE_IEEE) && !defined(DEBUG)
+#define IEEE_0996 0x3f7f0000   /* 0.996 or so */
+/* This function/macro is sensitive to precision.  Test very carefully
+ * if you change it!
+ */
+#define UNCLAMPED_FLOAT_TO_UBYTE(UB, F)                                        \
+        do {                                                           \
+           fi_type __tmp;                                              \
+           __tmp.f = (F);                                              \
+           UB = ((__tmp.i >= IEEE_0996)                                        \
+               ? ((GLint)__tmp.i < 0) ? (GLubyte)0 : (GLubyte)255      \
+               : (__tmp.f = __tmp.f*(255.0F/256.0F) + 32768.0F,                \
+                  (GLubyte)__tmp.i));                                  \
+        } while (0)
+#define CLAMPED_FLOAT_TO_UBYTE(ub, f) \
+        UNCLAMPED_FLOAT_TO_UBYTE(ub, f)
+#else
+#define UNCLAMPED_FLOAT_TO_UBYTE(ub, f) \
+       ub = ((GLubyte) IROUND(CLAMP((f), 0.0F, 1.0F) * 255.0F))
+#define CLAMPED_FLOAT_TO_UBYTE(ub, f) \
+       ub = ((GLubyte) IROUND((f) * 255.0F))
+#endif
+
+
+/***
+ *** COPY_FLOAT: copy a float from src to dest, avoid slow FP regs if possible
+ ***/
+#if defined(USE_IEEE) && !defined(DEBUG)
+#define COPY_FLOAT( dst, src )                                 \
+       ((fi_type *) &(dst))->i = ((fi_type *) &(src))->i
+#else
+#define COPY_FLOAT( dst, src )         (dst) = (src)
+#endif
+
+
+/***
+ *** START_FAST_MATH: Set x86 FPU to faster, 32-bit precision mode (and save
+ ***                  original mode to a temporary).
+ *** END_FAST_MATH: Restore x86 FPU to original mode.
+ ***/
+#if defined(__GNUC__) && defined(__i386__)
+/*
+ * Set the x86 FPU control word to guarentee only 32 bits of precision
+ * are stored in registers.  Allowing the FPU to store more introduces
+ * differences between situations where numbers are pulled out of memory
+ * vs. situations where the compiler is able to optimize register usage.
+ *
+ * In the worst case, we force the compiler to use a memory access to
+ * truncate the float, by specifying the 'volatile' keyword.
+ */
+/* Hardware default: All exceptions masked, extended double precision,
+ * round to nearest (IEEE compliant):
+ */
+#define DEFAULT_X86_FPU                0x037f
+/* All exceptions masked, single precision, round to nearest:
+ */
+#define FAST_X86_FPU           0x003f
+/* The fldcw instruction will cause any pending FP exceptions to be
+ * raised prior to entering the block, and we clear any pending
+ * exceptions before exiting the block.  Hence, asm code has free
+ * reign over the FPU while in the fast math block.
+ */
+#if defined(NO_FAST_MATH)
+#define START_FAST_MATH(x)                                             \
+do {                                                                   \
+   static GLuint mask = DEFAULT_X86_FPU;                               \
+   __asm__ ( "fnstcw %0" : "=m" (*&(x)) );                             \
+   __asm__ ( "fldcw %0" : : "m" (mask) );                              \
+} while (0)
+#else
+#define START_FAST_MATH(x)                                             \
+do {                                                                   \
+   static GLuint mask = FAST_X86_FPU;                                  \
+   __asm__ ( "fnstcw %0" : "=m" (*&(x)) );                             \
+   __asm__ ( "fldcw %0" : : "m" (mask) );                              \
+} while (0)
+#endif
+/* Restore original FPU mode, and clear any exceptions that may have
+ * occurred in the FAST_MATH block.
+ */
+#define END_FAST_MATH(x)                                               \
+do {                                                                   \
+   __asm__ ( "fnclex ; fldcw %0" : : "m" (*&(x)) );                    \
+} while (0)
+
+#elif defined(__WATCOMC__) && !defined(NO_FAST_MATH)
+void _wacom_start_fast_math(unsigned short *x);
+#pragma aux _wacom_start_fast_math =    \
+    "fstcw   word ptr [esi]"            \
+    "or      word ptr [esi], 0x3f"      \
+    "fldcw   word ptr [esi]"            \
+    parm [esi]                          \
+    modify exact [];
+void _wacom_end_fast_math(unsigned short *x);
+#pragma aux _wacom_end_fast_math =      \
+    "fldcw   word ptr [esi]"            \
+    parm [esi]                          \
+    modify exact [];
+#define START_FAST_MATH(x)  _wacom_start_fast_math(& x)
+#define END_FAST_MATH(x)  _wacom_end_fast_math(& x)
+#else
+#define START_FAST_MATH(x)  x = 0
+#define END_FAST_MATH(x)  (void)(x)
+#endif
+
+
+
+/**********************************************************************
+ * Functions
+ */
+
 extern void *
 _mesa_malloc( size_t bytes );
 
@@ -137,11 +578,20 @@ extern double
 _mesa_cos(double a);
 
 extern double
-_mesa_sqrt(double x);
+_mesa_sqrtd(double x);
+
+extern float
+_mesa_sqrtf(float x);
 
 extern double
 _mesa_pow(double x, double y);
 
+extern float
+_mesa_log2(float x);
+
+extern unsigned int
+_mesa_bitcount(unsigned int n);
+
 
 extern char *
 _mesa_getenv( const char *var );
index 201938d4aa73b69978c690a2069b9caadabfd907..c7fa7018d3f40ef292842346bdb707ded177980d 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: light.c,v 1.54 2002/10/25 21:06:29 brianp Exp $ */
+/* $Id: light.c,v 1.55 2003/03/01 01:50:21 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -32,7 +32,6 @@
 #include "enums.h"
 #include "light.h"
 #include "macros.h"
-#include "mmath.h"
 #include "simple_list.h"
 #include "mtypes.h"
 #include "math/m_xform.h"
@@ -963,12 +962,12 @@ _mesa_GetMaterialiv( GLenum face, GLenum pname, GLint *params )
          params[3] = FLOAT_TO_INT( ctx->Light.Material[f].Emission[3] );
         break;
       case GL_SHININESS:
-         *params = ROUNDF( ctx->Light.Material[f].Shininess );
+         *params = IROUND( ctx->Light.Material[f].Shininess );
         break;
       case GL_COLOR_INDEXES:
-        params[0] = ROUNDF( ctx->Light.Material[f].AmbientIndex );
-        params[1] = ROUNDF( ctx->Light.Material[f].DiffuseIndex );
-        params[2] = ROUNDF( ctx->Light.Material[f].SpecularIndex );
+        params[0] = IROUND( ctx->Light.Material[f].AmbientIndex );
+        params[1] = IROUND( ctx->Light.Material[f].DiffuseIndex );
+        params[2] = IROUND( ctx->Light.Material[f].SpecularIndex );
         break;
       default:
          _mesa_error( ctx, GL_INVALID_ENUM, "glGetMaterialfv(pname)" );
index 0a33e1399e8dc37d527be834b8a9c51086154b09..821b17e0b556df83256427c2df28657cdc285bc7 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: lines.c,v 1.30 2002/10/24 23:57:21 brianp Exp $ */
+/* $Id: lines.c,v 1.31 2003/03/01 01:50:21 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -30,7 +30,6 @@
 #include "depth.h"
 #include "lines.h"
 #include "macros.h"
-#include "mmath.h"
 #include "texstate.h"
 #include "mtypes.h"
 
index 4fc93936ac86a17ca5825f63015197f22c5bf9a8..0be95109957e0e879422ce21b6bc4014abe4c006 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: macros.h,v 1.30 2002/10/18 17:02:00 kschultz Exp $ */
+/* $Id: macros.h,v 1.31 2003/03/01 01:50:21 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
  * A collection of useful macros.
  */
 
-
 #ifndef MACROS_H
 #define MACROS_H
 
+#include "imports.h"
+
 
-#include "glheader.h"
-/* Do not reference mtypes.h from this file.
+/*
+ * Integer / float conversion for colors, normals, etc.
  */
 
+/* Convert GLubyte in [0,255] to GLfloat in [0.0,1.0] */
+extern GLfloat _mesa_ubyte_to_float_color_tab[256];
+#define UBYTE_TO_FLOAT(u) _mesa_ubyte_to_float_color_tab[(unsigned int)(u)]
 
-/* Limits: */
-#define MAX_GLUSHORT   0xffff
-#define MAX_GLUINT     0xffffffff
+/* Convert GLfloat in [0.0,1.0] to GLubyte in [0,255] */
+#define FLOAT_TO_UBYTE(X)      ((GLubyte) (GLint) ((X) * 255.0F))
 
 
-/* Pi */
-#ifndef M_PI
-#define M_PI (3.1415926)
-#endif
+/* Convert GLbyte in [-128,127] to GLfloat in [-1.0,1.0] */
+#define BYTE_TO_FLOAT(B)       ((2.0F * (B) + 1.0F) * (1.0F/255.0F))
 
+/* Convert GLfloat in [-1.0,1.0] to GLbyte in [-128,127] */
+#define FLOAT_TO_BYTE(X)       ( (((GLint) (255.0F * (X))) - 1) / 2 )
 
-/* Degrees to radians conversion: */
-#define DEG2RAD (M_PI/180.0)
 
+/* Convert GLushort in [0,65536] to GLfloat in [0.0,1.0] */
+#define USHORT_TO_FLOAT(S)     ((GLfloat) (S) * (1.0F / 65535.0F))
 
-#ifndef NULL
-#define NULL 0
-#endif
+/* Convert GLfloat in [0.0,1.0] to GLushort in [0,65536] */
+#define FLOAT_TO_USHORT(X)     ((GLushort) (GLint) ((X) * 65535.0F))
+
+
+/* Convert GLshort in [-32768,32767] to GLfloat in [-1.0,1.0] */
+#define SHORT_TO_FLOAT(S)      ((2.0F * (S) + 1.0F) * (1.0F/65535.0F))
+
+/* Convert GLfloat in [0.0,1.0] to GLshort in [-32768,32767] */
+#define FLOAT_TO_SHORT(X)      ( (((GLint) (65535.0F * (X))) - 1) / 2 )
+
+
+/* Convert GLuint in [0,4294967295] to GLfloat in [0.0,1.0] */
+#define UINT_TO_FLOAT(U)       ((GLfloat) (U) * (1.0F / 4294967295.0F))
+
+/* Convert GLfloat in [0.0,1.0] to GLuint in [0,4294967295] */
+#define FLOAT_TO_UINT(X)       ((GLuint) ((X) * 4294967295.0))
+
+
+/* Convert GLint in [-2147483648,2147483647] to GLfloat in [-1.0,1.0] */
+#define INT_TO_FLOAT(I)                ((2.0F * (I) + 1.0F) * (1.0F/4294967294.0F))
+
+/* Convert GLfloat in [-1.0,1.0] to GLint in [-2147483648,2147483647] */
+/* causes overflow:
+#define FLOAT_TO_INT(X)                ( (((GLint) (4294967294.0F * (X))) - 1) / 2 )
+*/
+/* a close approximation: */
+#define FLOAT_TO_INT(X)                ( (GLint) (2147483647.0 * (X)) )
+
+
+#define BYTE_TO_UBYTE(b)   ((GLubyte) ((b) < 0 ? 0 : (GLubyte) (b)))
+#define SHORT_TO_UBYTE(s)  ((GLubyte) ((s) < 0 ? 0 : (GLubyte) ((s) >> 7)))
+#define USHORT_TO_UBYTE(s) ((GLubyte) ((s) >> 8))
+#define INT_TO_UBYTE(i)    ((GLubyte) ((i) < 0 ? 0 : (GLubyte) ((i) >> 23)))
+#define UINT_TO_UBYTE(i)   ((GLubyte) ((i) >> 24))
+
+
+#define BYTE_TO_USHORT(b)  ((b) < 0 ? 0 : ((GLushort) (((b) * 65535) / 255)))
+#define UBYTE_TO_USHORT(b) (((GLushort) (b) << 8) | (GLushort) (b))
+#define SHORT_TO_USHORT(s) ((s) < 0 ? 0 : ((GLushort) (((s) * 65535 / 32767))))
+#define INT_TO_USHORT(i)   ((i) < 0 ? 0 : ((GLushort) ((i) >> 15)))
+#define UINT_TO_USHORT(i)  ((i) < 0 ? 0 : ((GLushort) ((i) >> 16)))
+#define UNCLAMPED_FLOAT_TO_USHORT(us, f)  \
+        us = ( (GLushort) IROUND( CLAMP((f), 0.0, 1.0) * 65535.0F) )
+#define CLAMPED_FLOAT_TO_USHORT(us, f)  \
+        us = ( (GLushort) IROUND( (f) * 65535.0F) )
 
 
 /* Stepping a GLfloat pointer by a byte stride
@@ -389,6 +434,79 @@ do {                                               \
 
 
 
+/*
+ * Linear interpolation
+ * NOTE:  OUT argument is evaluated twice!
+ * NOTE:  Be wary of using *coord++ as an argument to any of these macros!
+ */
+#define LINTERP(T, OUT, IN)    ((OUT) + (T) * ((IN) - (OUT)))
+
+/* Can do better with integer math:
+ */
+#define INTERP_UB( t, dstub, outub, inub )     \
+do {                                           \
+   GLfloat inf = UBYTE_TO_FLOAT( inub );       \
+   GLfloat outf = UBYTE_TO_FLOAT( outub );     \
+   GLfloat dstf = LINTERP( t, outf, inf );     \
+   UNCLAMPED_FLOAT_TO_UBYTE( dstub, dstf );    \
+} while (0)
+
+#define INTERP_CHAN( t, dstc, outc, inc )      \
+do {                                           \
+   GLfloat inf = CHAN_TO_FLOAT( inc );         \
+   GLfloat outf = CHAN_TO_FLOAT( outc );       \
+   GLfloat dstf = LINTERP( t, outf, inf );     \
+   UNCLAMPED_FLOAT_TO_CHAN( dstc, dstf );      \
+} while (0)
+
+#define INTERP_UI( t, dstui, outui, inui )     \
+   dstui = (GLuint) (GLint) LINTERP( (t), (GLfloat) (outui), (GLfloat) (inui) )
+
+#define INTERP_F( t, dstf, outf, inf )         \
+   dstf = LINTERP( t, outf, inf )
+
+#define INTERP_4F( t, dst, out, in )           \
+do {                                           \
+   dst[0] = LINTERP( (t), (out)[0], (in)[0] ); \
+   dst[1] = LINTERP( (t), (out)[1], (in)[1] ); \
+   dst[2] = LINTERP( (t), (out)[2], (in)[2] ); \
+   dst[3] = LINTERP( (t), (out)[3], (in)[3] ); \
+} while (0)
+
+#define INTERP_3F( t, dst, out, in )           \
+do {                                           \
+   dst[0] = LINTERP( (t), (out)[0], (in)[0] ); \
+   dst[1] = LINTERP( (t), (out)[1], (in)[1] ); \
+   dst[2] = LINTERP( (t), (out)[2], (in)[2] ); \
+} while (0)
+
+#define INTERP_4CHAN( t, dst, out, in )                        \
+do {                                                   \
+   INTERP_CHAN( (t), (dst)[0], (out)[0], (in)[0] );    \
+   INTERP_CHAN( (t), (dst)[1], (out)[1], (in)[1] );    \
+   INTERP_CHAN( (t), (dst)[2], (out)[2], (in)[2] );    \
+   INTERP_CHAN( (t), (dst)[3], (out)[3], (in)[3] );    \
+} while (0)
+
+#define INTERP_3CHAN( t, dst, out, in )                        \
+do {                                                   \
+   INTERP_CHAN( (t), (dst)[0], (out)[0], (in)[0] );    \
+   INTERP_CHAN( (t), (dst)[1], (out)[1], (in)[1] );    \
+   INTERP_CHAN( (t), (dst)[2], (out)[2], (in)[2] );    \
+} while (0)
+
+#define INTERP_SZ( t, vec, to, out, in, sz )                           \
+do {                                                                   \
+   switch (sz) {                                                       \
+   case 4: vec[to][3] = LINTERP( (t), (vec)[out][3], (vec)[in][3] );   \
+   case 3: vec[to][2] = LINTERP( (t), (vec)[out][2], (vec)[in][2] );   \
+   case 2: vec[to][1] = LINTERP( (t), (vec)[out][1], (vec)[in][1] );   \
+   case 1: vec[to][0] = LINTERP( (t), (vec)[out][0], (vec)[in][0] );   \
+   }                                                                   \
+} while(0)
+
+
+
 /* Assign scalers to short vectors: */
 #define ASSIGN_2V( V, V0, V1 ) \
 do {                           \
@@ -413,22 +531,6 @@ do {                                               \
 
 
 
-
-/* Absolute value (for Int, Float, Double): */
-#define ABSI(X)  ((X) < 0 ? -(X) : (X))
-#define ABSF(X)  ((X) < 0.0F ? -(X) : (X))
-#define ABSD(X)  ((X) < 0.0 ? -(X) : (X))
-
-
-
-/* Round a floating-point value to the nearest integer: */
-#define ROUNDF(X)  ( (X)<0.0F ? ((GLint) ((X)-0.5F)) : ((GLint) ((X)+0.5F)) )
-
-
-/* Compute ceiling of integer quotient of A divided by B: */
-#define CEILING( A, B )  ( (A) % (B) == 0 ? (A)/(B) : (A)/(B)+1 )
-
-
 /* Clamp X to [MIN,MAX]: */
 #define CLAMP( X, MIN, MAX )  ( (X)<(MIN) ? (MIN) : ((X)>(MAX) ? (MAX) : (X)) )
 
@@ -465,63 +567,24 @@ do {                                              \
 } while (0)
 
 
+/* Normalize a 3-element vector to unit length. */
+#define NORMALIZE_3FV( V )                     \
+do {                                           \
+   GLfloat len = (GLfloat) LEN_SQUARED_3FV(V); \
+   if (len) {                                  \
+      len = (GLfloat) (1.0 / SQRTF(len));      \
+      (V)[0] = (GLfloat) ((V)[0] * len);       \
+      (V)[1] = (GLfloat) ((V)[1] * len);       \
+      (V)[2] = (GLfloat) ((V)[2] * len);       \
+   }                                           \
+} while(0)
 
-/* Generic color packing macros
- * XXX We may move these into texutil.h at some point.
- */
-
-#define PACK_COLOR_8888( a, b, c, d )                                  \
-   (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
-
-#define PACK_COLOR_888( a, b, c )                                      \
-   (((a) << 16) | ((b) << 8) | (c))
-
-#define PACK_COLOR_565( a, b, c )                                      \
-   ((((a) & 0xf8) << 8) | (((b) & 0xfc) << 3) | (((c) & 0xf8) >> 3))
-
-#define PACK_COLOR_1555( a, b, c, d )                                  \
-   ((((b) & 0xf8) << 7) | (((c) & 0xf8) << 2) | (((d) & 0xf8) >> 3) |  \
-    ((a) ? 0x8000 : 0))
-
-#define PACK_COLOR_4444( a, b, c, d )                                  \
-   ((((a) & 0xf0) << 8) | (((b) & 0xf0) << 4) | ((c) & 0xf0) | ((d) >> 4))
-
-#define PACK_COLOR_88( a, b )                                          \
-   (((a) << 8) | (b))
-
-#define PACK_COLOR_332( a, b, c )                                      \
-   (((a) & 0xe0) | (((b) & 0xe0) >> 3) | (((c) & 0xc0) >> 6))
-
-
-#ifdef MESA_BIG_ENDIAN
-
-#define PACK_COLOR_8888_LE( a, b, c, d )       PACK_COLOR_8888( d, c, b, a )
-
-#define PACK_COLOR_565_LE( a, b, c )                                   \
-   (((a) & 0xf8) | (((b) & 0xe0) >> 5) | (((b) & 0x1c) << 11) |                \
-   (((c) & 0xf8) << 5))
-
-#define PACK_COLOR_1555_LE( a, b, c, d )                               \
-   ((((b) & 0xf8) >> 1) | (((c) & 0xc0) >> 6) | (((c) & 0x38) << 10) | \
-    (((d) & 0xf8) << 5) | ((a) ? 0x80 : 0))
-
-#define PACK_COLOR_4444_LE( a, b, c, d )       PACK_COLOR_4444( c, d, a, b )
-
-#define PACK_COLOR_88_LE( a, b )               PACK_COLOR_88( b, a )
-
-#else  /* little endian */
-
-#define PACK_COLOR_8888_LE( a, b, c, d )       PACK_COLOR_8888( a, b, c, d )
-
-#define PACK_COLOR_565_LE( a, b, c )           PACK_COLOR_565( a, b, c )
-
-#define PACK_COLOR_1555_LE( a, b, c, d )       PACK_COLOR_1555( a, b, c, d )
-
-#define PACK_COLOR_4444_LE( a, b, c, d )       PACK_COLOR_4444( a, b, c, d )
+#define LEN_3FV( V ) (SQRTF((V)[0]*(V)[0]+(V)[1]*(V)[1]+(V)[2]*(V)[2]))
+#define LEN_2FV( V ) (SQRTF((V)[0]*(V)[0]+(V)[1]*(V)[1]))
 
-#define PACK_COLOR_88_LE( a, b )               PACK_COLOR_88( a, b )
+#define LEN_SQUARED_3FV( V ) ((V)[0]*(V)[0]+(V)[1]*(V)[1]+(V)[2]*(V)[2])
+#define LEN_SQUARED_2FV( V ) ((V)[0]*(V)[0]+(V)[1]*(V)[1])
 
-#endif /* endianness */
 
 
 #endif
index 0b5f0014024f8642097d8f03279c49667da9437e..af046a3c8f076cfe6df540ae73427c07112c6eaa 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: matrix.c,v 1.45 2002/10/24 23:57:21 brianp Exp $ */
+/* $Id: matrix.c,v 1.46 2003/03/01 01:50:21 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -42,7 +42,6 @@
 #include "enums.h"
 #include "macros.h"
 #include "matrix.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "math/m_matrix.h"
 
index 7ca6f6111821f5f94aaa846870be9b8e11e9fa15..acac82bc881400cb82b558f531978c92519f88d8 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mtypes.h,v 1.104 2003/02/23 04:07:28 brianp Exp $ */
+/* $Id: mtypes.h,v 1.105 2003/03/01 01:50:22 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -109,6 +109,33 @@ typedef GLuint GLdepth;  /* Must be 32-bits! */
  * Fixed point data type:
  */
 typedef int GLfixed;
+/*
+ * Fixed point arithmetic macros
+ */
+#ifdef FIXED_14
+#define FIXED_ONE       0x00004000
+#define FIXED_HALF      0x00002000
+#define FIXED_FRAC_MASK 0x00003FFF
+#define FIXED_SCALE     16384.0f
+#define FIXED_SHIFT     14
+#else
+#define FIXED_ONE       0x00000800
+#define FIXED_HALF      0x00000400
+#define FIXED_FRAC_MASK 0x000007FF
+#define FIXED_SCALE     2048.0f
+#define FIXED_SHIFT     11
+#endif
+#define FIXED_INT_MASK  (~FIXED_FRAC_MASK)
+#define FIXED_EPSILON   1
+#define FloatToFixed(X) (IROUND((X) * FIXED_SCALE))
+#define IntToFixed(I)   ((I) << FIXED_SHIFT)
+#define FixedToInt(X)   ((X) >> FIXED_SHIFT)
+#define FixedToUns(X)   (((unsigned int)(X)) >> FIXED_SHIFT)
+#define FixedCeil(X)    (((X) + FIXED_ONE - FIXED_EPSILON) & FIXED_INT_MASK)
+#define FixedFloor(X)   ((X) & FIXED_INT_MASK)
+#define FixedToFloat(X) ((X) * (1.0F / FIXED_SCALE))
+#define PosFloatToFixed(X)      FloatToFixed(X)
+#define SignedFloatToFixed(X)   FloatToFixed(X)
 
 
 
index 97cc9dd6bb0a0e0338e1c22d78f32f81bd159b4b..f7eda38cc423620242a93d51c60573879566e77f 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: nvfragparse.c,v 1.11 2003/02/26 01:28:15 brianp Exp $ */
+/* $Id: nvfragparse.c,v 1.12 2003/03/01 01:50:22 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -36,7 +36,6 @@
 #include "hash.h"
 #include "imports.h"
 #include "macros.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "nvfragprog.h"
 #include "nvfragparse.h"
@@ -201,7 +200,10 @@ MatchInstruction(const GLubyte *token)
 
 static GLboolean IsLetter(GLubyte b)
 {
-   return (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || (b == '_');
+   return (b >= 'a' && b <= 'z') ||
+          (b >= 'A' && b <= 'Z') ||
+          (b == '_') ||
+          (b == '$');
 }
 
 
@@ -264,7 +266,7 @@ GetToken(const GLubyte *str, GLubyte *token)
       return i;
    }
 
-   /* punctuation */
+   /* punctuation character */
    if (str[i]) {
       token[0] = str[i++];
       token[1] = 0;
@@ -618,6 +620,9 @@ Parse_TextureImageId(struct parse_state *parseState,
 
    /* update record of referenced texture units */
    parseState->program->TexturesUsed[*texUnit] |= (1 << *texTargetIndex);
+   if (_mesa_bitcount(parseState->program->TexturesUsed[*texUnit]) > 1) {
+      RETURN_ERROR1("Only one texture target can be used per texture unit.");
+   }
 
    return GL_TRUE;
 }
@@ -840,6 +845,9 @@ Parse_OutputReg(struct parse_state *parseState, GLint *outputRegNum)
       if (_mesa_strcmp((const char *) token, OutputRegisters[j]) == 0) {
          *outputRegNum = FP_OUTPUT_REG_START + j;
          parseState->outputsWritten |= (1 << j);
+         if ((parseState->outputsWritten & 0x3) == 0x3) {
+            RETURN_ERROR1("Illegal to write to both o[COLR] and o[COLH]");
+         }
          break;
       }
    }
@@ -1138,6 +1146,7 @@ Parse_InstructionSequence(struct parse_state *parseState,
          GLfloat value[7];  /* yes, 7 to be safe */
          if (!Parse_Identifier(parseState, id))
             RETURN_ERROR;
+         /* XXX make sure id is not a reserved identifer, like R9 */
          if (!Parse_String(parseState, "="))
             RETURN_ERROR1("Expected =");
          if (!Parse_VectorOrScalarConstant(parseState, value))
@@ -1154,6 +1163,7 @@ Parse_InstructionSequence(struct parse_state *parseState,
          GLfloat value[7] = {0, 0, 0, 0, 0, 0, 0};  /* yes, to be safe */
          if (!Parse_Identifier(parseState, id))
             RETURN_ERROR;
+         /* XXX make sure id is not a reserved identifer, like R9 */
          if (Parse_String(parseState, "=")) {
             if (!Parse_VectorOrScalarConstant(parseState, value))
                RETURN_ERROR;
index 59fc9690d055cd8e17c2aff07cf6de941c9e8f86..72ebcffca9a47541abd90685e203a91f1e00478c 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: nvvertexec.c,v 1.1 2003/01/14 04:55:46 brianp Exp $ */
+/* $Id: nvvertexec.c,v 1.2 2003/03/01 01:50:22 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -37,7 +37,6 @@
 #include "mtypes.h"
 #include "nvvertexec.h"
 #include "nvvertprog.h"
-#include "mmath.h"
 #include "math/m_matrix.h"
 
 
index f162da4b5bf6f9718b4afcfc239558363f662966..9f9e3ad554aa4dd6e8e05453a2c653194004405e 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: points.c,v 1.34 2002/10/24 23:57:21 brianp Exp $ */
+/* $Id: points.c,v 1.35 2003/03/01 01:50:22 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -28,7 +28,6 @@
 #include "glheader.h"
 #include "context.h"
 #include "macros.h"
-#include "mmath.h"
 #include "points.h"
 #include "texstate.h"
 #include "mtypes.h"
index bb03c4569734646e52b52895e0f2abbb84c0163f..2ca7b22a9b4166beff3287e123edd532bae22a2b 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: rastpos.c,v 1.39 2002/10/24 23:57:21 brianp Exp $ */
+/* $Id: rastpos.c,v 1.40 2003/03/01 01:50:22 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -32,7 +32,6 @@
 #include "feedback.h"
 #include "light.h"
 #include "macros.h"
-#include "mmath.h"
 #include "rastpos.h"
 #include "state.h"
 #include "simple_list.h"
@@ -321,8 +320,8 @@ raster_pos4f(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
    if (ctx->Fog.FogCoordinateSource == GL_FOG_COORDINATE_EXT)
       ctx->Current.RasterDistance = ctx->Current.Attrib[VERT_ATTRIB_FOG][0];
    else
-      ctx->Current.RasterDistance = (GLfloat)
-                      GL_SQRT( eye[0]*eye[0] + eye[1]*eye[1] + eye[2]*eye[2] );
+      ctx->Current.RasterDistance =
+                      SQRTF( eye[0]*eye[0] + eye[1]*eye[1] + eye[2]*eye[2] );
 
    /* apply projection matrix:  clip = Proj * eye */
    TRANSFORM_POINT( clip, ctx->ProjectionMatrixStack.Top->m, eye );
index 14b62bc434dbfcf611dfdd066b7c3014e8c11c33..1051bda11da3c8fdf9fea141a1b97721a5141906 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: state.c,v 1.98 2003/01/14 04:55:46 brianp Exp $ */
+/* $Id: state.c,v 1.99 2003/03/01 01:50:22 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  5.0
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
 #include "fog.h"
 #include "hint.h"
 #include "histogram.h"
+#include "imports.h"
 #include "light.h"
 #include "lines.h"
 #include "matrix.h"
-#include "mmath.h"
 #include "pixel.h"
 #include "points.h"
 #include "polygon.h"
@@ -601,9 +601,9 @@ update_modelview_scale( GLcontext *ctx )
       GLfloat f = m[2] * m[2] + m[6] * m[6] + m[10] * m[10];
       if (f < 1e-12) f = 1.0;
       if (ctx->_NeedEyeCoords)
-        ctx->_ModelViewInvScale = (GLfloat) (1.0/GL_SQRT(f));
+        ctx->_ModelViewInvScale = 1.0F / SQRTF(f);
       else
-        ctx->_ModelViewInvScale = (GLfloat) GL_SQRT(f);
+        ctx->_ModelViewInvScale = SQRTF(f);
    }
 }
 
index 0700f85d0d394e422449ca8e7ac726db2f132bd7..c529031f9f125aa838399c7e01bf07ce1c5a7f18 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: texformat.c,v 1.18 2002/10/29 20:28:47 brianp Exp $ */
+/* $Id: texformat.c,v 1.19 2003/03/01 01:50:22 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -32,7 +32,6 @@
 #include "context.h"
 #include "image.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "texformat.h"
 #include "teximage.h"
index e7a087c0f4d3d87d51d4e6456ba6dae92dc77d76..3397a865cd5b1fa320eb8db65c1d64baffd20ef5 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: teximage.c,v 1.125 2003/01/08 16:24:05 brianp Exp $ */
+/* $Id: teximage.c,v 1.126 2003/03/01 01:50:22 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -30,7 +30,6 @@
 #include "image.h"
 #include "imports.h"
 #include "macros.h"
-#include "mmath.h"
 #include "state.h"
 #include "texcompress.h"
 #include "texformat.h"
index 660f7ec63f5c78a46477617bce40cac79f8e5091..26eda819bfbddc2af011e7a1b97fa662cbf2a40e 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: texutil.c,v 1.34 2002/10/29 20:28:53 brianp Exp $ */
+/* $Id: texutil.c,v 1.35 2003/03/01 01:50:22 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -36,6 +36,7 @@
 
 
 #include "glheader.h"
+#include "colormac.h"
 #include "context.h"
 #include "enums.h"
 #include "image.h"
index 1b540eff44749c5b404047a2efb71b6bf2bb847d..889584780f5f0ee119199585071a5e3874caffae 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: varray.c,v 1.47 2002/10/24 23:57:21 brianp Exp $ */
+/* $Id: varray.c,v 1.48 2003/03/01 01:50:22 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -31,7 +31,6 @@
 #include "dlist.h"
 #include "light.h"
 #include "macros.h"
-#include "mmath.h"
 #include "state.h"
 #include "texstate.h"
 #include "mtypes.h"
index 9e3f16f13c0d8e64c63c245f364f201dbd7615a5..0786ad05ee83f3708f6cb6357b0e3187b51586b0 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: m_debug_norm.c,v 1.12 2002/12/04 14:24:44 brianp Exp $ */
+/* $Id: m_debug_norm.c,v 1.13 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -31,7 +31,6 @@
 #include "context.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 
 #include "m_matrix.h"
 #include "m_xform.h"
index f0692ba11546c2572340bc57c30939cf83490f78..95a77e6a0842f37354dba43a44ffc5967a1ae832 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: m_matrix.c,v 1.15 2003/01/08 16:42:47 brianp Exp $ */
+/* $Id: m_matrix.c,v 1.16 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -38,7 +38,6 @@
 #include "imports.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 
 #include "m_matrix.h"
 
@@ -606,7 +605,7 @@ _math_matrix_rotate( GLmatrix *mat,
    }
 
    if (!optimized) {
-      const GLfloat mag = (GLfloat) GL_SQRT(x * x + y * y + z * z);
+      const GLfloat mag = SQRTF(x * x + y * y + z * z);
 
       if (mag <= 1.0e-4) {
          /* no rotation, leave mat as-is */
index 55861e8ca3a2ea0d7ce13d2ccd6adb1cfec2c115..2da7bbd676123a50a58e7bef5ab806aeb09f6312 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: m_norm_tmp.h,v 1.12 2002/10/24 23:57:24 brianp Exp $ */
+/* $Id: m_norm_tmp.h,v 1.13 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -69,7 +69,7 @@ TAG(transform_normalize_normals)( const GLmatrix *mat,
         {
            GLdouble len = tx*tx + ty*ty + tz*tz;
            if (len > 1e-20) {
-              GLdouble scale = 1.0 / GL_SQRT(len);
+              GLdouble scale = 1.0F / SQRTF(len);
               out[i][0] = (GLfloat) (tx * scale);
               out[i][1] = (GLfloat) (ty * scale);
               out[i][2] = (GLfloat) (tz * scale);
@@ -136,7 +136,7 @@ TAG(transform_normalize_normals_no_rot)( const GLmatrix *mat,
         {
            GLdouble len = tx*tx + ty*ty + tz*tz;
            if (len > 1e-20) {
-              GLdouble scale = 1.0 / GL_SQRT(len);
+              GLdouble scale = 1.0F / SQRTF(len);
               out[i][0] = (GLfloat) (tx * scale);
               out[i][1] = (GLfloat) (ty * scale);
               out[i][2] = (GLfloat) (tz * scale);
@@ -323,7 +323,7 @@ TAG(normalize_normals)( const GLmatrix *mat,
         const GLfloat x = from[0], y = from[1], z = from[2];
         GLdouble len = x * x + y * y + z * z;
         if (len > 1e-50) {
-           len = 1.0 / GL_SQRT(len);
+           len = 1.0F / SQRTF(len);
            out[i][0] = (GLfloat) (x * len);
            out[i][1] = (GLfloat) (y * len);
            out[i][2] = (GLfloat) (z * len);
index ffd4d6a017f83af3ce01cd8b1b9ef016746ce046..0c4a1b1631ddf5ed387119772e565b9e42a1e06b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: m_translate.c,v 1.10 2002/10/24 23:57:24 brianp Exp $ */
+/* $Id: m_translate.c,v 1.11 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -32,7 +32,6 @@
 #include "glheader.h"
 #include "mtypes.h"            /* GLchan hack */
 #include "colormac.h"
-#include "mmath.h"
 
 #include "m_translate.h"
 
index beda08c589c278a48d32613823a10823bb3a4d37..a6813d29e9f206fa46c9e1f637be67f71f55a31f 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: m_xform.c,v 1.18 2002/10/24 23:57:24 brianp Exp $ */
+/* $Id: m_xform.c,v 1.19 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -37,7 +37,6 @@
 
 #include "glheader.h"
 #include "macros.h"
-#include "mmath.h"
 
 #include "m_eval.h"
 #include "m_matrix.h"
index 5d391a2ad372b0111b11da08735195aa9275f21b..8221a55447f59b18e215b9b5d79c4899a0175d09 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_aaline.c,v 1.19 2003/02/28 15:08:49 brianp Exp $ */
+/* $Id: s_aaline.c,v 1.20 2003/03/01 01:50:25 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
 
 
 #include "glheader.h"
+#include "imports.h"
 #include "swrast/s_aaline.h"
 #include "swrast/s_context.h"
 #include "swrast/s_span.h"
 #include "swrast/swrast.h"
 #include "mtypes.h"
-#include "mmath.h"
 
 
 #define SUB_PIXEL 4
index 1b179bc61374130762646b763f7643fc22127393..7b41573a4eefaf3e7c0760789689c8764609ba56 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_aatriangle.c,v 1.29 2003/01/25 18:57:13 brianp Exp $ */
+/* $Id: s_aatriangle.c,v 1.30 2003/03/01 01:50:25 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -34,7 +34,6 @@
 #include "colormac.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "s_aatriangle.h"
 #include "s_context.h"
 #include "s_span.h"
index b42440060e09bb6f677de771702d928aa9ae47da..2af2714bd67e103571f740a8309a9dae96bdd1e3 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_accum.c,v 1.20 2002/10/30 19:49:30 brianp Exp $ */
+/* $Id: s_accum.c,v 1.21 2003/03/01 01:50:25 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -28,7 +28,6 @@
 #include "glheader.h"
 #include "context.h"
 #include "macros.h"
-#include "mmath.h"
 #include "imports.h"
 
 #include "s_accum.h"
index 5cbfe8617a58bedfafb42bb465ee8d5d3f817e0d..35ec7e9dcce91939b34188aeab99584549b81d72 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_alpha.c,v 1.12 2002/10/04 19:10:12 brianp Exp $ */
+/* $Id: s_alpha.c,v 1.13 2003/03/01 01:50:25 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -33,7 +33,6 @@
 #include "context.h"
 #include "colormac.h"
 #include "macros.h"
-#include "mmath.h"
 
 #include "s_alpha.h"
 #include "s_context.h"
index 9194fc7c341a14979692b5ab973b47b4453d00bd..49cc59ceefcf684b93ae106a0739428f2cac4b0d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_bitmap.c,v 1.20 2002/11/25 20:26:59 brianp Exp $ */
+/* $Id: s_bitmap.c,v 1.21 2003/03/01 01:50:25 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -33,7 +33,6 @@
 #include "glheader.h"
 #include "image.h"
 #include "macros.h"
-#include "mmath.h"
 #include "pixel.h"
 
 #include "s_context.h"
index ddf864793ec9719f2e81c48cb8caa02208890e8b..10508166982b99b8669b9c18fb592a60934d76cd 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_drawpix.c,v 1.45 2003/02/25 19:26:00 brianp Exp $ */
+/* $Id: s_drawpix.c,v 1.46 2003/03/01 01:50:25 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -31,7 +31,6 @@
 #include "image.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "pixel.h"
 
 #include "s_context.h"
index f25b179a2c56bd217ee0210fc7a66e15a1429664..614820cc4c74f23eb417c0f82ae3b1bd361b21f0 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: s_feedback.c,v 1.9 2001/09/19 20:30:44 kschultz Exp $ */
+/* $Id: s_feedback.c,v 1.10 2003/03/01 01:50:25 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -30,7 +30,6 @@
 #include "enums.h"
 #include "feedback.h"
 #include "macros.h"
-#include "mmath.h"
 
 #include "s_context.h"
 #include "s_feedback.h"
index c43ef60a30b01f41592bc6edbab5170fa53b8587..7a97193e1e507fc37b25faedea6fe29a868595c9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_fog.c,v 1.23 2002/08/07 00:45:07 brianp Exp $ */
+/* $Id: s_fog.c,v 1.24 2003/03/01 01:50:25 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -29,7 +29,6 @@
 #include "colormac.h"
 #include "context.h"
 #include "macros.h"
-#include "mmath.h"
 
 #include "s_context.h"
 #include "s_fog.h"
index 7fb5ef246f98b49536260c66e6b5ac00ffdac211..b21b39d61f7fc0f285a98eb9adee2610a25cc251 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_lines.c,v 1.34 2003/01/20 15:21:41 brianp Exp $ */
+/* $Id: s_lines.c,v 1.35 2003/03/01 01:50:25 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -28,7 +28,6 @@
 #include "glheader.h"
 #include "colormac.h"
 #include "macros.h"
-#include "mmath.h"
 #include "s_aaline.h"
 #include "s_context.h"
 #include "s_depth.h"
index 738c78274ef6f06bd87d43d593da6a7ca9dfa3b3..97f65c047946e72ac1625e14c4ecf0c61d698637 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_nvfragprog.c,v 1.4 2003/02/25 19:29:43 brianp Exp $ */
+/* $Id: s_nvfragprog.c,v 1.5 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -31,7 +31,6 @@
 #include "context.h"
 #include "nvfragprog.h"
 #include "macros.h"
-#include "mmath.h"
 
 #include "s_nvfragprog.h"
 
@@ -47,7 +46,7 @@ fetch_texel( GLcontext *ctx, const GLfloat texcoord[4], GLuint unit,
    const GLfloat *lambda = NULL;
    GLchan rgba[4];
    SWcontext *swrast = SWRAST_CONTEXT(ctx);
-   const struct gl_texture_object *texObj;
+   const struct gl_texture_object *texObj = NULL;
 
    switch (targetIndex) {
       case TEXTURE_1D_INDEX:
@@ -147,20 +146,7 @@ fetch_vector1( const struct fp_src_register *source,
                const struct fp_machine *machine,
                GLfloat result[4] )
 {
-   const GLfloat *src;
-
-   /*
-   if (source->RelAddr) {
-      GLint reg = source->Register + machine->AddressReg;
-      if (reg < VP_PROG_REG_START || reg > VP_PROG_REG_END)
-         src = zero;
-      else
-         src = machine->Registers[reg];
-   }
-   else
-   */
-
-   src = machine->Registers[source->Register];
+   const GLfloat *src = machine->Registers[source->Register];
 
    result[0] = src[source->Swizzle[0]];
 
@@ -300,7 +286,7 @@ execute_program(GLcontext *ctx, const struct fragment_program *program)
             {
                GLfloat a[4], result[4];
                fetch_vector1( &inst->SrcReg[0], machine, a );
-               result[0] = result[1] = result[2] = result[3] = cos(a[0]);
+               result[0] = result[1] = result[2] = result[3] = _mesa_cos(a[0]);
                store_vector4( inst, machine, result );
             }
             break;
@@ -363,7 +349,7 @@ execute_program(GLcontext *ctx, const struct fragment_program *program)
                GLfloat a[4], result[4];
                fetch_vector1( &inst->SrcReg[0], machine, a );
                result[0] = result[1] = result[2] = result[3] =
-                  (GLfloat) pow(2.0, a[0]);
+                  (GLfloat) _mesa_pow(2.0, a[0]);
                store_vector4( inst, machine, result );
             }
             break;
@@ -419,7 +405,7 @@ execute_program(GLcontext *ctx, const struct fragment_program *program)
                   a[1] = 0.0F;
                result[0] = 1.0F;
                result[1] = a[0];
-               result[2] = (a[0] > 0.0) ? pow(2.0, a[3]) : 0.0F;
+               result[2] = (a[0] > 0.0) ? _mesa_pow(2.0, a[3]) : 0.0F;
                result[3] = 1.0F;
                store_vector4( inst, machine, result );
             }
@@ -561,7 +547,7 @@ execute_program(GLcontext *ctx, const struct fragment_program *program)
                fetch_vector1( &inst->SrcReg[0], machine, a );
                fetch_vector1( &inst->SrcReg[1], machine, b );
                result[0] = result[1] = result[2] = result[3]
-                  = pow(a[0], b[0]);
+                  = _mesa_pow(a[0], b[0]);
                store_vector4( inst, machine, result );
             }
             break;
@@ -597,7 +583,7 @@ execute_program(GLcontext *ctx, const struct fragment_program *program)
                GLfloat a[4], result[4];
                fetch_vector1( &inst->SrcReg[0], machine, a );
                result[0] = result[1] = result[2] = result[3]
-                  = 1.0F / GL_SQRT(a[0]);
+                  = 1.0F / SQRTF(a[0]);
                store_vector4( inst, machine, result );
             }
             break;
@@ -647,7 +633,7 @@ execute_program(GLcontext *ctx, const struct fragment_program *program)
             {
                GLfloat a[4], result[4];
                fetch_vector1( &inst->SrcReg[0], machine, a );
-               result[0] = result[1] = result[2] = result[3] = sin(a[0]);
+               result[0] = result[1] = result[2] = result[3] = _mesa_sin(a[0]);
                store_vector4( inst, machine, result );
             }
             break;
index 0c060f16efe9f6e28da1a9341964da376afb5641..2bbd169b747941403a88953385cd7537e417c975 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_points.c,v 1.19 2002/06/15 03:03:11 brianp Exp $ */
+/* $Id: s_points.c,v 1.20 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -29,7 +29,6 @@
 #include "colormac.h"
 #include "context.h"
 #include "macros.h"
-#include "mmath.h"
 #include "texstate.h"
 #include "s_context.h"
 #include "s_feedback.h"
index e65d19c9d31785e9cb2a38ac86da376097a1bea4..d4081518036c58d005a97bd28fe8d9febbadee45 100644 (file)
@@ -1,8 +1,8 @@
-/* $Id: s_span.c,v 1.55 2003/02/27 18:15:18 brianp Exp $ */
+/* $Id: s_span.c,v 1.56 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  5.0.1
+ * Version:  5.1
  *
  * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
@@ -36,7 +36,6 @@
 #include "colormac.h"
 #include "context.h"
 #include "macros.h"
-#include "mmath.h"
 #include "imports.h"
 
 #include "s_alpha.h"
index ed8c3f9d32dbef09ae5fa1fa8fac053f22b9f58a..e87945ab42db298ecc6bf7fd0b6b4910a1634239 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: s_texstore.c,v 1.9 2002/10/24 23:57:24 brianp Exp $ */
+/* $Id: s_texstore.c,v 1.10 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
 
 
 
+#include "glheader.h"
+#include "imports.h"
 #include "colormac.h"
 #include "context.h"
 #include "convolve.h"
 #include "image.h"
-#include "imports.h"
 #include "macros.h"
 #include "texformat.h"
 #include "teximage.h"
index f99075fc54579cb809feca79ba8d84fa5c01ab1e..e63f49c7424eef8b2698ca5982f56da2c2959d47 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_texture.c,v 1.81 2003/02/27 19:40:45 kschultz Exp $ */
+/* $Id: s_texture.c,v 1.82 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -29,7 +29,6 @@
 #include "context.h"
 #include "colormac.h"
 #include "macros.h"
-#include "mmath.h"
 #include "imports.h"
 #include "texformat.h"
 #include "teximage.h"
@@ -2065,7 +2064,7 @@ choose_cube_face(const struct gl_texture_object *texObj,
    const GLfloat ry = texcoord[1];
    const GLfloat rz = texcoord[2];
    const struct gl_texture_image **imgArray;
-   const GLfloat arx = ABSF(rx),   ary = ABSF(ry),   arz = ABSF(rz);
+   const GLfloat arx = FABSF(rx),   ary = FABSF(ry),   arz = FABSF(rz);
    GLfloat sc, tc, ma;
 
    if (arx > ary && arx > arz) {
index 324a51582c19eb3e421c06db96fcc88b0bb2e7ab..76a45b96b5ea95cafd9502df8bdc41fdfb0244ac 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_triangle.c,v 1.66 2002/12/18 15:02:19 brianp Exp $ */
+/* $Id: s_triangle.c,v 1.67 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -36,7 +36,6 @@
 #include "colormac.h"
 #include "imports.h"
 #include "macros.h"
-#include "mmath.h"
 #include "texformat.h"
 #include "teximage.h"
 #include "texstate.h"
index 852905f681de7bce2550cbaa018598eb205d524f..f4fde9b31e5cc7d15296ffa7c808e872f8b33d61 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_zoom.c,v 1.22 2003/02/25 19:26:02 brianp Exp $ */
+/* $Id: s_zoom.c,v 1.23 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -297,7 +297,7 @@ _mesa_write_zoomed_stencil_span( GLcontext *ctx,
    (void) skipPixels;  /* XXX this shouldn't be ignored */
 
    /* compute width of output row */
-   m = (GLint) ABSF( n * ctx->Pixel.ZoomX );
+   m = (GLint) FABSF( n * ctx->Pixel.ZoomX );
    if (m==0) {
       return;
    }
index ac46e615bc3ca835029f8d3a5e74a505668f4202..19cb19b716dcb445e4ca557e41e0af49cfe6abf9 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_array_api.c,v 1.30 2003/02/17 16:36:07 brianp Exp $ */
+/* $Id: t_array_api.c,v 1.31 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -35,7 +35,6 @@
 #include "context.h"
 #include "imports.h"
 #include "macros.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "state.h"
 
index 5e22fa61e60bf3fec7466375fa709aace84f304f..2a8506aa4244739aeff82293adfae0add7b8ba40 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_array_import.c,v 1.27 2002/10/29 20:29:01 brianp Exp $ */
+/* $Id: t_array_import.c,v 1.28 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -31,7 +31,6 @@
 #include "context.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "state.h"
 #include "mtypes.h"
 
index feddf2619a18c0c2a88f593b7296150163e61916..1824fc3fa9ec73939209d5b842f9016c46d7b0c4 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_eval_api.c,v 1.12 2002/10/24 23:57:25 brianp Exp $ */
+/* $Id: t_eval_api.c,v 1.13 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -34,7 +34,6 @@
 #include "context.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "math/m_eval.h"
 
index 39cd0d4f16391a9905ce7c5cedb3420370ffff40..a9ae72cee07790375121f159f713e9681167a9c5 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_imm_dlist.c,v 1.45 2003/01/14 04:55:47 brianp Exp $ */
+/* $Id: t_imm_dlist.c,v 1.46 2003/03/01 01:50:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
  * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -32,7 +32,7 @@
 #include "context.h"
 #include "dlist.h"
 #include "debug.h"
-#include "mmath.h"
+#include "macros.h"
 #include "imports.h"
 #include "state.h"
 
index fbac523cb616965db9babe67f2fc0362ce70419e..c5f740373ed6c27ab3458a9939cc6680c37fc777 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_imm_elt.c,v 1.20 2002/10/29 20:29:02 brianp Exp $ */
+/* $Id: t_imm_elt.c,v 1.21 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -31,7 +31,6 @@
 #include "colormac.h"
 #include "context.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 #include "math/m_translate.h"
index ba8d6903e4b6ead55c69a16044096acc99c5bc70..f9f942aeea040afc18ab226fa0b8b2cccd723275 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_imm_eval.c,v 1.27 2002/10/29 20:29:02 brianp Exp $ */
+/* $Id: t_imm_eval.c,v 1.28 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -34,7 +34,6 @@
 #include "context.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "math/m_eval.h"
 
index fb149a123de0e7a1fcc47f0bb8cdbad70d0ecba8..97f49762adae665733ceb627fd6b85077fcc0f02 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_imm_exec.c,v 1.43 2002/10/24 23:57:25 brianp Exp $ */
+/* $Id: t_imm_exec.c,v 1.44 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -37,7 +37,6 @@
 #include "dlist.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "light.h"
 #include "state.h"
 #include "mtypes.h"
index fbbac432a37f26d96627e3196b01d310377b1a2e..8cb263363e8b5bba448494d2fccf0dc45488a5e8 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_imm_fixup.c,v 1.39 2002/10/29 20:29:03 brianp Exp $ */
+/* $Id: t_imm_fixup.c,v 1.40 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -38,7 +38,6 @@
 #include "light.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "state.h"
 #include "mtypes.h"
 
index 08702a4269859c0c0e6775e7a3461380f0859df6..5ac7539d6566406e0477acce7aadd003ae6dfaac 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_pipeline.c,v 1.25 2002/10/29 20:29:03 brianp Exp $ */
+/* $Id: t_pipeline.c,v 1.26 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -30,7 +30,6 @@
 #include "glheader.h"
 #include "context.h"
 #include "imports.h"
-#include "mmath.h"
 #include "state.h"
 #include "mtypes.h"
 
index 7b952404fb4851dcdc95a3655d67c97641e2a9e3..5f22012f9d1859fec55f972079f2184bbb22b960 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_vb_cliptmp.h,v 1.16 2002/10/29 20:29:03 brianp Exp $ */
+/* $Id: t_vb_cliptmp.h,v 1.17 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -44,7 +44,7 @@ do {                                                                  \
         GLfloat dp = CLIP_DOTPROD(idx, A, B, C, D );                   \
                                                                        \
          clipmask[idxPrev] |= PLANE;                                   \
-        if (!NEGATIVE(dpPrev)) {                                       \
+        if (!IS_NEGATIVE(dpPrev)) {                                    \
            outlist[outcount++] = idxPrev;                              \
            clipmask[idxPrev] &= ~PLANE;                                \
         }                                                              \
@@ -53,7 +53,7 @@ do {                                                                  \
             GLuint newvert = VB->LastClipped++;                                \
             VB->ClipMask[newvert] = 0;                                 \
             outlist[outcount++] = newvert;                             \
-           if (NEGATIVE(dp)) {                                         \
+           if (IS_NEGATIVE(dp)) {                                      \
               /* Going out of bounds.  Avoid division by zero as we    \
                * know dp != dpPrev from DIFFERENT_SIGNS, above.        \
                */                                                      \
@@ -95,7 +95,7 @@ do {                                                                  \
       if (DIFFERENT_SIGNS(dpI, dpJ)) {                                 \
          GLuint newvert = VB->LastClipped++;                           \
          VB->ClipMask[newvert] = 0;                                    \
-        if (NEGATIVE(dpJ)) {                                           \
+        if (IS_NEGATIVE(dpJ)) {                                        \
            GLfloat t = dpI / (dpI - dpJ);                              \
             VB->ClipMask[jj] |= PLANE;                                 \
             INTERP_4F( t, coord[newvert], coord[ii], coord[jj] );      \
@@ -109,7 +109,7 @@ do {                                                                        \
             ii = newvert;                                              \
         }                                                              \
       }                                                                        \
-      else if (NEGATIVE(dpI))                                          \
+      else if (IS_NEGATIVE(dpI))                                       \
         return;                                                        \
   }                                                                    \
 } while (0)
index 0464e5b256b39858093b52f1fa674bbf1ed8b13a..dedd4c53029dfb69afb1aa18c9b0e7a14de9bc66 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_vb_fog.c,v 1.19 2002/10/29 20:29:03 brianp Exp $ */
+/* $Id: t_vb_fog.c,v 1.20 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -33,7 +33,6 @@
 #include "context.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 #include "math/m_xform.h"
@@ -105,14 +104,14 @@ static void make_win_fog_coords( GLcontext *ctx, GLvector4f *out,
       else
          d = 1.0F / (ctx->Fog.End - ctx->Fog.Start);
       for ( i = 0 ; i < n ; i++, STRIDE_F(v, stride)) {
-         GLfloat f = (end - ABSF(*v)) * d;
+         GLfloat f = (end - FABSF(*v)) * d;
         data[i][0] = CLAMP(f, 0.0F, 1.0F);
       }
       break;
    case GL_EXP:
       d = ctx->Fog.Density;
       for ( i = 0 ; i < n ; i++, STRIDE_F(v,stride))
-         NEG_EXP( data[i][0], d * ABSF(*v) );
+         NEG_EXP( data[i][0], d * FABSF(*v) );
       break;
    case GL_EXP2:
       d = ctx->Fog.Density*ctx->Fog.Density;
index 934ddb8d7bac14d071a48f19769022dd7c177d69..cdaf0379edcf18c91f4b95dc3a2a5b8c32953e3d 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_vb_light.c,v 1.19 2002/10/24 23:57:25 brianp Exp $ */
+/* $Id: t_vb_light.c,v 1.20 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -31,7 +31,6 @@
 #include "light.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "simple_list.h"
 #include "mtypes.h"
 
index 9152d7f32524aa8acdea597469ff84bee0add63e..1fbff7e9e46726e864a94117008cd7fcde9bda50 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_vb_normals.c,v 1.17 2002/10/29 20:29:04 brianp Exp $ */
+/* $Id: t_vb_normals.c,v 1.18 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -33,7 +33,6 @@
 #include "context.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 #include "math/m_xform.h"
index 5bf1be12a66207f9e5154926b9760b12e52a5f0c..a631bad39dc377865ab23770e693327fb315f7b4 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_vb_points.c,v 1.10 2002/10/29 20:29:04 brianp Exp $ */
+/* $Id: t_vb_points.c,v 1.11 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -60,7 +60,7 @@ static GLboolean run_point_stage( GLcontext *ctx,
       /* XXX do threshold and min/max clamping here? */
       for (i = 0; i < VB->Count; i++) {
         const GLfloat dist = -eye[i][2];
-        /* GLfloat dist = GL_SQRT(pos[0]*pos[0]+pos[1]*pos[1]+pos[2]*pos[2]);*/
+        /* GLfloat dist = SQRTF(pos[0]*pos[0]+pos[1]*pos[1]+pos[2]*pos[2]);*/
         size[i][0] = pointSize / (p0 + dist * (p1 + dist * p2));
       }
    }
index f445953e9f1d6f7f3d063a35179e47a3696dff2a..5a8dcb982ac5133aa31a142e80c55d767ba53cc4 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_vb_program.c,v 1.17 2003/01/14 04:55:47 brianp Exp $ */
+/* $Id: t_vb_program.c,v 1.18 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -41,7 +41,6 @@
 #include "light.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "simple_list.h"
 #include "mtypes.h"
 #include "nvvertprog.h"
index e0536c893318f1472946396849bb7562e5c8be7e..c0e2bf26b09598ce71c48a213a637619dd420688 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_vb_render.c,v 1.33 2002/10/29 20:29:04 brianp Exp $ */
+/* $Id: t_vb_render.c,v 1.34 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.0.1
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -46,7 +46,6 @@
 #include "macros.h"
 #include "imports.h"
 #include "mtypes.h"
-#include "mmath.h"
 
 #include "math/m_matrix.h"
 #include "math/m_xform.h"
 /**********************************************************************/
 
 
-#if defined(USE_IEEE)
-#define NEGATIVE(x) (GET_FLOAT_BITS(x) & (1<<31))
-#define DIFFERENT_SIGNS(x,y) ((GET_FLOAT_BITS(x) ^ GET_FLOAT_BITS(y)) & (1<<31))
-#else
-#define NEGATIVE(x) (x < 0)
-#define DIFFERENT_SIGNS(x,y) (x * y <= 0 && x - y != 0)
-/* Could just use (x*y<0) except for the flatshading requirements.
- * Maybe there's a better way?
- */
-#endif
-
-
 #define W(i) coord[i][3]
 #define Z(i) coord[i][2]
 #define Y(i) coord[i][1]
index f175970f4d71b994fec567acafafc082ba2bacbd..74ad17356b08e0a1c45254ceb7fe27441347a088 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: t_vb_texgen.c,v 1.16 2003/01/14 04:55:47 brianp Exp $ */
+/* $Id: t_vb_texgen.c,v 1.17 2003/03/01 01:50:27 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
  * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -33,7 +33,6 @@
 #include "colormac.h"
 #include "context.h"
 #include "macros.h"
-#include "mmath.h"
 #include "imports.h"
 #include "mtypes.h"
 
@@ -114,7 +113,7 @@ static void build_m3( GLfloat f[][3], GLfloat m[],
       fz = f[i][2] = u[2] - norm[2] * two_nu;
       m[i] = fx * fx + fy * fy + (fz + 1.0F) * (fz + 1.0F);
       if (m[i] != 0.0F) {
-        m[i] = 0.5F / (GLfloat) GL_SQRT(m[i]);
+        m[i] = 0.5F / SQRTF(m[i]);
       }
    }
 }
@@ -143,7 +142,7 @@ static void build_m2( GLfloat f[][3], GLfloat m[],
       fz = f[i][2] = u[2] - norm[2] * two_nu;
       m[i] = fx * fx + fy * fy + (fz + 1.0F) * (fz + 1.0F);
       if (m[i] != 0.0F) {
-        m[i] = 0.5F / (GLfloat) GL_SQRT(m[i]);
+        m[i] = 0.5F / SQRTF(m[i]);
       }
    }
 }
index 06a678a18daf59258f253ab431d11ea75922cf4c..b92eaae53f2c7e851784f1e700f83f5d5206d939 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_vb_texmat.c,v 1.11 2003/01/14 04:55:47 brianp Exp $ */
+/* $Id: t_vb_texmat.c,v 1.12 2003/03/01 01:50:28 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -33,7 +33,6 @@
 #include "context.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 #include "math/m_xform.h"
index 9e9e1a9362e539dbb79f679de5907ee4d374f467..56aee97796dea22db5bd5480bec6de117a6e5174 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_vb_vertex.c,v 1.17 2002/10/31 17:14:37 brianp Exp $ */
+/* $Id: t_vb_vertex.c,v 1.18 2003/03/01 01:50:28 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -33,7 +33,6 @@
 #include "context.h"
 #include "macros.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 
 #include "math/m_xform.h"
index 7e9db7892539dd01847247370faf00e5af2a65dc..5b2f713cc1b6e05545f74c99506f317b29be7630 100644 (file)
@@ -35,7 +35,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "api_arrayelt.h"
 #include "context.h"
 #include "imports.h"
-#include "mmath.h"
 #include "mtypes.h"
 #include "enums.h"
 #include "glapi.h"
index 7a55db72df660f79516db10ffc6d9055395fe4b3..3211662dae67514394407523e508ba6c21bb5644 100644 (file)
@@ -32,7 +32,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
 #include "imports.h" 
-#include "mmath.h" 
 #include "simple_list.h" 
 #include "tnl_vtxfmt.h"