summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrianp <brianp>2000-02-12 23:09:21 +0000
committerbrianp <brianp>2000-02-12 23:09:21 +0000
commit9232e84c16da284b2ce68e441004df381cec7e91 (patch)
tree34d9b5a50f95d08bbb27a542bd659dd002d88ad3
parent40bd68454309639eebe1c2cee60a61f7fcff0520 (diff)
Merged dispatch-0-0-2
-rw-r--r--xc/extras/Mesa/include/GL/gl.h6
-rw-r--r--xc/extras/Mesa/src/FX/fxapi.c12
-rw-r--r--xc/extras/Mesa/src/FX/fxclip.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxcliptmp.h4
-rw-r--r--xc/extras/Mesa/src/FX/fxcva.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxcva.h4
-rw-r--r--xc/extras/Mesa/src/FX/fxcvatmp.h4
-rw-r--r--xc/extras/Mesa/src/FX/fxdd.c154
-rw-r--r--xc/extras/Mesa/src/FX/fxddspan.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxddtex.c100
-rw-r--r--xc/extras/Mesa/src/FX/fxdrv.h6
-rw-r--r--xc/extras/Mesa/src/FX/fxfastpath.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxfasttmp.h4
-rw-r--r--xc/extras/Mesa/src/FX/fxglidew.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxglidew.h4
-rw-r--r--xc/extras/Mesa/src/FX/fxpipeline.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxrender.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxsanity.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxsdettmp.h4
-rw-r--r--xc/extras/Mesa/src/FX/fxsetup.c36
-rw-r--r--xc/extras/Mesa/src/FX/fxspan.c805
-rw-r--r--xc/extras/Mesa/src/FX/fxstripdet.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxtexman.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxtrifuncs.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxtritmp.h4
-rw-r--r--xc/extras/Mesa/src/FX/fxvs_tmp.h4
-rw-r--r--xc/extras/Mesa/src/FX/fxvsetup.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxvsetup.h4
-rw-r--r--xc/extras/Mesa/src/FX/fxwgl.c4
-rw-r--r--xc/extras/Mesa/src/X/fakeglx.c6
-rw-r--r--xc/extras/Mesa/src/X/fakeglx.h2
-rw-r--r--xc/extras/Mesa/src/X/glxapi.c2
-rw-r--r--xc/extras/Mesa/src/X/glxapi.h2
-rw-r--r--xc/extras/Mesa/src/X/glxheader.h2
-rw-r--r--xc/extras/Mesa/src/X/realglx.c2
-rw-r--r--xc/extras/Mesa/src/X/realglx.h2
-rw-r--r--xc/extras/Mesa/src/X/xfonts.c2
-rw-r--r--xc/extras/Mesa/src/X/xmesa1.c2
-rw-r--r--xc/extras/Mesa/src/X/xmesa2.c3
-rw-r--r--xc/extras/Mesa/src/X/xmesa3.c2
-rw-r--r--xc/extras/Mesa/src/X/xmesa4.c2
-rw-r--r--xc/extras/Mesa/src/X/xmesaP.h2
-rw-r--r--xc/extras/Mesa/src/X86/3dnow_xform_raw3.S495
-rw-r--r--xc/extras/Mesa/src/X86/3dnow_xform_raw4.S498
-rw-r--r--xc/extras/Mesa/src/X86/assyntax.h1
-rw-r--r--xc/extras/Mesa/src/accum.c11
-rw-r--r--xc/extras/Mesa/src/accum.h11
-rw-r--r--xc/extras/Mesa/src/all.h12
-rw-r--r--xc/extras/Mesa/src/alpha.c9
-rw-r--r--xc/extras/Mesa/src/alpha.h9
-rw-r--r--xc/extras/Mesa/src/alphabuf.c2
-rw-r--r--xc/extras/Mesa/src/alphabuf.h16
-rw-r--r--xc/extras/Mesa/src/attrib.c62
-rw-r--r--xc/extras/Mesa/src/attrib.h13
-rw-r--r--xc/extras/Mesa/src/bbox.c2
-rw-r--r--xc/extras/Mesa/src/bbox.h2
-rw-r--r--xc/extras/Mesa/src/bitmap.c3
-rw-r--r--xc/extras/Mesa/src/bitmap.h2
-rw-r--r--xc/extras/Mesa/src/blend.c72
-rw-r--r--xc/extras/Mesa/src/blend.h16
-rw-r--r--xc/extras/Mesa/src/buffers.c (renamed from xc/extras/Mesa/src/glmisc.c)217
-rw-r--r--xc/extras/Mesa/src/buffers.h (renamed from xc/extras/Mesa/src/glmisc.h)24
-rw-r--r--xc/extras/Mesa/src/clip.c2
-rw-r--r--xc/extras/Mesa/src/clip.h2
-rw-r--r--xc/extras/Mesa/src/clip_funcs.h2
-rw-r--r--xc/extras/Mesa/src/clip_tmp.h2
-rw-r--r--xc/extras/Mesa/src/colortab.c2
-rw-r--r--xc/extras/Mesa/src/colortab.h2
-rw-r--r--xc/extras/Mesa/src/config.c7
-rw-r--r--xc/extras/Mesa/src/config.h7
-rw-r--r--xc/extras/Mesa/src/context.c692
-rw-r--r--xc/extras/Mesa/src/context.h27
-rw-r--r--xc/extras/Mesa/src/copy_tmp.h2
-rw-r--r--xc/extras/Mesa/src/copypix.c7
-rw-r--r--xc/extras/Mesa/src/copypix.h2
-rw-r--r--xc/extras/Mesa/src/cull_tmp.h2
-rw-r--r--xc/extras/Mesa/src/cva.c2
-rw-r--r--xc/extras/Mesa/src/cva.h2
-rw-r--r--xc/extras/Mesa/src/dd.h2
-rw-r--r--xc/extras/Mesa/src/ddsample.c2
-rw-r--r--xc/extras/Mesa/src/debug_xform.c2
-rw-r--r--xc/extras/Mesa/src/debug_xform.h2
-rw-r--r--xc/extras/Mesa/src/depth.c24
-rw-r--r--xc/extras/Mesa/src/depth.h20
-rw-r--r--xc/extras/Mesa/src/dispatch.c594
-rw-r--r--xc/extras/Mesa/src/dlist.c585
-rw-r--r--xc/extras/Mesa/src/dlist.h2
-rw-r--r--xc/extras/Mesa/src/dotprod_tmp.h2
-rw-r--r--xc/extras/Mesa/src/drawpix.c7
-rw-r--r--xc/extras/Mesa/src/drawpix.h2
-rw-r--r--xc/extras/Mesa/src/enable.c2
-rw-r--r--xc/extras/Mesa/src/enable.h2
-rw-r--r--xc/extras/Mesa/src/enums.c8
-rw-r--r--xc/extras/Mesa/src/enums.h2
-rw-r--r--xc/extras/Mesa/src/eval.c2
-rw-r--r--xc/extras/Mesa/src/eval.h2
-rw-r--r--xc/extras/Mesa/src/extensions.c2
-rw-r--r--xc/extras/Mesa/src/extensions.h2
-rw-r--r--xc/extras/Mesa/src/feedback.c2
-rw-r--r--xc/extras/Mesa/src/feedback.h2
-rw-r--r--xc/extras/Mesa/src/fixed.h2
-rw-r--r--xc/extras/Mesa/src/fog.c28
-rw-r--r--xc/extras/Mesa/src/fog.h23
-rw-r--r--xc/extras/Mesa/src/fog_tmp.h2
-rw-r--r--xc/extras/Mesa/src/general_clip.h2
-rw-r--r--xc/extras/Mesa/src/get.c140
-rw-r--r--xc/extras/Mesa/src/get.h2
-rw-r--r--xc/extras/Mesa/src/glapi.c164
-rw-r--r--xc/extras/Mesa/src/glapi.h2
-rw-r--r--xc/extras/Mesa/src/glapinoop.c4239
-rw-r--r--xc/extras/Mesa/src/glapinoop.h2
-rw-r--r--xc/extras/Mesa/src/glapioffsets.h37
-rw-r--r--xc/extras/Mesa/src/glapitable.h41
-rw-r--r--xc/extras/Mesa/src/glapitemp.h1298
-rw-r--r--xc/extras/Mesa/src/glheader.h7
-rw-r--r--xc/extras/Mesa/src/glthread.c148
-rw-r--r--xc/extras/Mesa/src/glthread.h150
-rw-r--r--xc/extras/Mesa/src/hash.c14
-rw-r--r--xc/extras/Mesa/src/hash.h2
-rw-r--r--xc/extras/Mesa/src/highpc.c2
-rw-r--r--xc/extras/Mesa/src/hint.c176
-rw-r--r--xc/extras/Mesa/src/hint.h (renamed from xc/extras/Mesa/src/dispatch.h)21
-rw-r--r--xc/extras/Mesa/src/image.c2
-rw-r--r--xc/extras/Mesa/src/image.h2
-rw-r--r--xc/extras/Mesa/src/imaging.c2
-rw-r--r--xc/extras/Mesa/src/imaging.h2
-rw-r--r--xc/extras/Mesa/src/indirect_tmp.h2
-rw-r--r--xc/extras/Mesa/src/interp_tmp.h2
-rw-r--r--xc/extras/Mesa/src/light.c2
-rw-r--r--xc/extras/Mesa/src/light.h2
-rw-r--r--xc/extras/Mesa/src/lines.c2
-rw-r--r--xc/extras/Mesa/src/lines.h2
-rw-r--r--xc/extras/Mesa/src/linetemp.h2
-rw-r--r--xc/extras/Mesa/src/lnaatemp.h2
-rw-r--r--xc/extras/Mesa/src/logic.c2
-rw-r--r--xc/extras/Mesa/src/logic.h2
-rw-r--r--xc/extras/Mesa/src/lowpc.c2
-rw-r--r--xc/extras/Mesa/src/macros.h2
-rw-r--r--xc/extras/Mesa/src/masking.c2
-rw-r--r--xc/extras/Mesa/src/masking.h2
-rw-r--r--xc/extras/Mesa/src/matrix.c3
-rw-r--r--xc/extras/Mesa/src/matrix.h2
-rw-r--r--xc/extras/Mesa/src/mem.c2
-rw-r--r--xc/extras/Mesa/src/mem.h2
-rw-r--r--xc/extras/Mesa/src/mmath.c2
-rw-r--r--xc/extras/Mesa/src/mmath.h2
-rw-r--r--xc/extras/Mesa/src/mthreads.c179
-rw-r--r--xc/extras/Mesa/src/mthreads.h171
-rw-r--r--xc/extras/Mesa/src/norm_tmp.h2
-rw-r--r--xc/extras/Mesa/src/pb.c28
-rw-r--r--xc/extras/Mesa/src/pb.h2
-rw-r--r--xc/extras/Mesa/src/pipeline.c5
-rw-r--r--xc/extras/Mesa/src/pipeline.h2
-rw-r--r--xc/extras/Mesa/src/pixel.c2
-rw-r--r--xc/extras/Mesa/src/pixel.h2
-rw-r--r--xc/extras/Mesa/src/points.c2
-rw-r--r--xc/extras/Mesa/src/points.h2
-rw-r--r--xc/extras/Mesa/src/polygon.c2
-rw-r--r--xc/extras/Mesa/src/polygon.h2
-rw-r--r--xc/extras/Mesa/src/quads.c2
-rw-r--r--xc/extras/Mesa/src/quads.h2
-rw-r--r--xc/extras/Mesa/src/rastpos.c3
-rw-r--r--xc/extras/Mesa/src/rastpos.h2
-rw-r--r--xc/extras/Mesa/src/readpix.c6
-rw-r--r--xc/extras/Mesa/src/readpix.h2
-rw-r--r--xc/extras/Mesa/src/rect.c2
-rw-r--r--xc/extras/Mesa/src/rect.h2
-rw-r--r--xc/extras/Mesa/src/render_tmp.h2
-rw-r--r--xc/extras/Mesa/src/scissor.c2
-rw-r--r--xc/extras/Mesa/src/scissor.h2
-rw-r--r--xc/extras/Mesa/src/shade.c2
-rw-r--r--xc/extras/Mesa/src/shade.h2
-rw-r--r--xc/extras/Mesa/src/shade_tmp.h2
-rw-r--r--xc/extras/Mesa/src/simple_list.h2
-rw-r--r--xc/extras/Mesa/src/span.c44
-rw-r--r--xc/extras/Mesa/src/span.h2
-rw-r--r--xc/extras/Mesa/src/stages.c4
-rw-r--r--xc/extras/Mesa/src/stages.h2
-rw-r--r--xc/extras/Mesa/src/state.c1207
-rw-r--r--xc/extras/Mesa/src/state.h44
-rw-r--r--xc/extras/Mesa/src/stencil.c10
-rw-r--r--xc/extras/Mesa/src/stencil.h2
-rw-r--r--xc/extras/Mesa/src/texgen_tmp.h2
-rw-r--r--xc/extras/Mesa/src/teximage.c19
-rw-r--r--xc/extras/Mesa/src/teximage.h11
-rw-r--r--xc/extras/Mesa/src/texobj.c27
-rw-r--r--xc/extras/Mesa/src/texobj.h2
-rw-r--r--xc/extras/Mesa/src/texstate.c22
-rw-r--r--xc/extras/Mesa/src/texstate.h2
-rw-r--r--xc/extras/Mesa/src/texture.c2
-rw-r--r--xc/extras/Mesa/src/texture.h2
-rw-r--r--xc/extras/Mesa/src/trans_tmp.h2
-rw-r--r--xc/extras/Mesa/src/translate.c2
-rw-r--r--xc/extras/Mesa/src/translate.h2
-rw-r--r--xc/extras/Mesa/src/triangle.c2
-rw-r--r--xc/extras/Mesa/src/triangle.h2
-rw-r--r--xc/extras/Mesa/src/tritemp.h2
-rw-r--r--xc/extras/Mesa/src/types.h81
-rw-r--r--xc/extras/Mesa/src/varray.c13
-rw-r--r--xc/extras/Mesa/src/varray.h2
-rw-r--r--xc/extras/Mesa/src/vb.c2
-rw-r--r--xc/extras/Mesa/src/vb.h2
-rw-r--r--xc/extras/Mesa/src/vbcull.c2
-rw-r--r--xc/extras/Mesa/src/vbcull.h2
-rw-r--r--xc/extras/Mesa/src/vbfill.c5
-rw-r--r--xc/extras/Mesa/src/vbfill.h2
-rw-r--r--xc/extras/Mesa/src/vbindirect.c2
-rw-r--r--xc/extras/Mesa/src/vbindirect.h2
-rw-r--r--xc/extras/Mesa/src/vbrender.c4
-rw-r--r--xc/extras/Mesa/src/vbrender.h2
-rw-r--r--xc/extras/Mesa/src/vbxform.c3
-rw-r--r--xc/extras/Mesa/src/vbxform.h2
-rw-r--r--xc/extras/Mesa/src/vector.c2
-rw-r--r--xc/extras/Mesa/src/vector.h2
-rw-r--r--xc/extras/Mesa/src/vertices.c2
-rw-r--r--xc/extras/Mesa/src/vertices.h2
-rw-r--r--xc/extras/Mesa/src/winpos.c148
-rw-r--r--xc/extras/Mesa/src/winpos.h85
-rw-r--r--xc/extras/Mesa/src/xform.c2
-rw-r--r--xc/extras/Mesa/src/xform.h2
-rw-r--r--xc/extras/Mesa/src/xform_tmp.h2
-rw-r--r--xc/extras/Mesa/src/zoom.c2
-rw-r--r--xc/extras/Mesa/src/zoom.h2
-rw-r--r--xc/include/GL/glx.h1
-rw-r--r--xc/include/GL/glxtokens.h1
-rw-r--r--xc/lib/GL/Imakefile7
-rw-r--r--xc/lib/GL/dri/Imakefile3
-rw-r--r--xc/lib/GL/dri/dri_glx.c20
-rw-r--r--xc/lib/GL/glx/Imakefile2
-rw-r--r--xc/lib/GL/glx/glxclient.h5
-rw-r--r--xc/lib/GL/glx/glxcmds.c96
-rw-r--r--xc/lib/GL/glx/glxext.c62
-rw-r--r--xc/lib/GL/glx/indirect_init.c26
-rw-r--r--xc/lib/GL/mesa/src/Imakefile25
-rw-r--r--xc/lib/GL/mesa/src/drv/tdfx/Imakefile11
-rw-r--r--xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c16
-rw-r--r--xc/programs/Xserver/GL/mesa/src/Imakefile18
237 files changed, 4981 insertions, 8839 deletions
diff --git a/xc/extras/Mesa/include/GL/gl.h b/xc/extras/Mesa/include/GL/gl.h
index e90fe5cd6..8edd63abe 100644
--- a/xc/extras/Mesa/include/GL/gl.h
+++ b/xc/extras/Mesa/include/GL/gl.h
@@ -1,4 +1,4 @@
-/* $Id: gl.h,v 1.2 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: gl.h,v 1.3 2000/02/12 23:09:21 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -2122,8 +2122,8 @@ GLAPI void GLAPIENTRY glGetColorTableParameterivEXT( GLenum target, GLenum pname
#ifndef GL_EXT_compiled_vertex_array
#define GL_EXT_compiled_vertex_array 1
-#define GL_ARRAY_ELEMENT_LOCK_FIRST_SGI 0x81A8
-#define GL_ARRAY_ELEMENT_LOCK_COUNT_SGI 0x81A9
+#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
+#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
GLAPI void GLAPIENTRY glLockArraysEXT( GLint first, GLsizei count );
GLAPI void GLAPIENTRY glUnlockArraysEXT( void );
diff --git a/xc/extras/Mesa/src/FX/fxapi.c b/xc/extras/Mesa/src/FX/fxapi.c
index 7a2272e65..0b96cf439 100644
--- a/xc/extras/Mesa/src/FX/fxapi.c
+++ b/xc/extras/Mesa/src/FX/fxapi.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -1057,7 +1057,8 @@ fxMesaContext GLAPIENTRY fxMesaCreateContext(GLuint win,
/* install signal handlers */
#if defined(__linux__)
- if (fxMesa->glCtx->CatchSignals) {
+ /* Only install if environment var. is not set. */
+ if (fxMesa->glCtx->CatchSignals && !getenv("MESA_FX_NO_SIGNALS")) {
signal(SIGINT,cleangraphics_handler);
signal(SIGHUP,cleangraphics_handler);
signal(SIGPIPE,cleangraphics_handler);
@@ -1300,7 +1301,10 @@ int GLAPIENTRY fxQueryHardware(void)
#if defined(__WIN32__)
onexit((_onexit_t)cleangraphics);
#elif defined(__linux__)
- atexit(cleangraphics);
+ /* Only register handler if environment variable is not defined. */
+ if (!getenv("MESA_FX_NO_SIGNALS")) {
+ atexit(cleangraphics);
+ }
#endif
}
diff --git a/xc/extras/Mesa/src/FX/fxclip.c b/xc/extras/Mesa/src/FX/fxclip.c
index bd4fb6885..7067516be 100644
--- a/xc/extras/Mesa/src/FX/fxclip.c
+++ b/xc/extras/Mesa/src/FX/fxclip.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxcliptmp.h b/xc/extras/Mesa/src/FX/fxcliptmp.h
index dc780f401..82beeda6a 100644
--- a/xc/extras/Mesa/src/FX/fxcliptmp.h
+++ b/xc/extras/Mesa/src/FX/fxcliptmp.h
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxcva.c b/xc/extras/Mesa/src/FX/fxcva.c
index 5a52509a9..188210add 100644
--- a/xc/extras/Mesa/src/FX/fxcva.c
+++ b/xc/extras/Mesa/src/FX/fxcva.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxcva.h b/xc/extras/Mesa/src/FX/fxcva.h
index fd50621df..f809ec010 100644
--- a/xc/extras/Mesa/src/FX/fxcva.h
+++ b/xc/extras/Mesa/src/FX/fxcva.h
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxcvatmp.h b/xc/extras/Mesa/src/FX/fxcvatmp.h
index 75fc34bb4..801dc0edd 100644
--- a/xc/extras/Mesa/src/FX/fxcvatmp.h
+++ b/xc/extras/Mesa/src/FX/fxcvatmp.h
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxdd.c b/xc/extras/Mesa/src/FX/fxdd.c
index 70882494f..354a18f63 100644
--- a/xc/extras/Mesa/src/FX/fxdd.c
+++ b/xc/extras/Mesa/src/FX/fxdd.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -102,7 +102,7 @@ void fxInitPixelTables(fxMesaContext fxMesa, GLboolean bgrOrder)
/**********************************************************************/
/* Enalbe/Disable dithering */
-void fxDDDither(GLcontext *ctx, GLboolean enable)
+static void fxDDDither(GLcontext *ctx, GLboolean enable)
{
if (MESA_VERBOSE&VERBOSE_DRIVER) {
fprintf(stderr,"fxmesa: fxDDDither()\n");
@@ -117,7 +117,7 @@ void fxDDDither(GLcontext *ctx, GLboolean enable)
/* Return buffer size information */
-void fxDDBufferSize(GLcontext *ctx, GLuint *width, GLuint *height)
+static void fxDDBufferSize(GLcontext *ctx, GLuint *width, GLuint *height)
{
fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
@@ -178,9 +178,9 @@ static GLbitfield fxDDClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
GLbitfield softwareMask = mask & (DD_STENCIL_BIT | DD_ACCUM_BIT);
GLbitfield newMask = mask & ~(DD_STENCIL_BIT | DD_ACCUM_BIT);
-
if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDClear(%d,%d,%d,%d)\n",x,y,width,height);
+ fprintf(stderr,"fxmesa: fxDDClear(%d,%d,%d,%d)\n", (int) x, (int) y,
+ (int) width, (int) height);
}
if (mask == (DD_BACK_LEFT_BIT | DD_DEPTH_BIT)
@@ -209,6 +209,20 @@ static GLbitfield fxDDClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
if (newMask & (DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT)) {
if (newMask & DD_FRONT_LEFT_BIT) {
+ if (mask & DD_DEPTH_BIT) {
+ /* XXX it appears that the depth buffer isn't cleared when
+ * glRenderBuffer(GR_BUFFER_FRONTBUFFER) is set.
+ * This is a work-around/
+ */
+ FX_grRenderBuffer(GR_BUFFER_BACKBUFFER);
+ FX_grColorMask(FXFALSE,FXFALSE);
+ FX_grBufferClear(fxMesa->clearC, fxMesa->clearA,
+ (FxU16)(ctx->Depth.Clear*0xffff));
+ FX_grColorMask(ctx->Color.ColorMask[RCOMP] ||
+ ctx->Color.ColorMask[GCOMP] ||
+ ctx->Color.ColorMask[BCOMP],
+ ctx->Color.ColorMask[ACOMP] && fxMesa->haveAlphaBuffer);
+ }
FX_grRenderBuffer(GR_BUFFER_FRONTBUFFER);
FX_grBufferClear(fxMesa->clearC, fxMesa->clearA,
(FxU16)(ctx->Depth.Clear*0xffff));
@@ -254,7 +268,7 @@ static GLboolean fxDDSetDrawBuffer(GLcontext *ctx, GLenum mode )
fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDSetBuffer(%x)\n",mode);
+ fprintf(stderr,"fxmesa: fxDDSetBuffer(%x)\n", (int) mode);
}
if (mode == GL_FRONT_LEFT) {
@@ -282,7 +296,7 @@ static void fxDDSetReadBuffer(GLcontext *ctx, GLframebuffer *buffer,
(void) buffer;
if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDSetBuffer(%x)\n",mode);
+ fprintf(stderr,"fxmesa: fxDDSetBuffer(%x)\n", (int) mode);
}
if (mode == GL_FRONT_LEFT) {
@@ -455,7 +469,7 @@ static GLint fxDDGetParameteri(const GLcontext *ctx, GLint param)
case DD_HAVE_HARDWARE_FOG:
return 1;
default:
- fprintf(stderr,"fx Driver: internal error in fxDDGetParameteri(): %x\n",param);
+ fprintf(stderr,"fx Driver: internal error in fxDDGetParameteri(): %x\n", (int) param);
fxCloseHardware();
exit(-1);
return 0;
@@ -475,53 +489,79 @@ void fxDDSetNearFar(GLcontext *ctx, GLfloat n, GLfloat f)
*/
static const GLubyte *fxDDGetString(GLcontext *ctx, GLenum name)
{
- switch (name) {
- case GL_RENDERER:
#if defined(GLX_DIRECT_RENDERING)
- return "Mesa Glide - DRI VB/V3";
+ /* Building for DRI driver */
+ switch (name) {
+ case GL_RENDERER:
+ {
+ static char buffer[100];
+ char hardware[100];
+ strcpy(hardware, grGetString(GR_HARDWARE));
+ if (strcmp(hardware, "Voodoo3 (tm)") == 0)
+ strcpy(hardware, "Voodoo3");
+ else if (strcmp(hardware, "Voodoo Banshee (tm)") == 0)
+ strcpy(hardware, "VoodooBanshee");
+ else {
+ /* unexpected result: replace spaces with hyphens */
+ int i;
+ for (i = 0; hardware[i]; i++) {
+ if (hardware[i] == ' ' || hardware[i] == '\t')
+ hardware[i] = '-';
+ }
+ }
+ /* now make the GL_RENDERER string */
+ sprintf(buffer, "Mesa DRI %s 20000208", hardware);
+ return buffer;
+ }
+ case GL_VENDOR:
+ return "Precision Insight, Inc.";
+ default:
+ return NULL;
+ }
+
#else
+
+ /* Building for Voodoo1/2 stand-alone Mesa */
+ switch (name) {
+ case GL_RENDERER:
{
- static char buf[80];
-
- if (glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_VOODOO)
- {
- GrVoodooConfig_t *vc =
- &glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig;
-
- sprintf(buf,
- "Mesa Glide v0.30 Voodoo_Graphics %d "
- "CARD/%d FB/%d TM/%d TMU/%s",
- glbCurrentBoard,
- (vc->sliDetect ? (vc->fbRam*2) : vc->fbRam),
- (vc->tmuConfig[GR_TMU0].tmuRam +
- ((vc->nTexelfx>1) ? vc->tmuConfig[GR_TMU1].tmuRam : 0)),
- vc->nTexelfx,
- (vc->sliDetect ? "SLI" : "NOSLI"));
- }
- else if (glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_SST96)
- {
- GrSst96Config_t *sc =
- &glbHWConfig.SSTs[glbCurrentBoard].sstBoard.SST96Config;
-
- sprintf(buf,
- "Glide v0.30 Voodoo_Rush %d "
- "CARD/%d FB/%d TM/%d TMU/NOSLI",
- glbCurrentBoard,
- sc->fbRam,
- sc->tmuConfig.tmuRam,
- sc->nTexelfx);
- }
- else
- {
- strcpy(buf, "Glide v0.30 UNKNOWN");
- }
-
- return (GLubyte *) buf;
+ static char buf[80];
+
+ if (glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_VOODOO) {
+ GrVoodooConfig_t *vc =
+ &glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig;
+
+ sprintf(buf,
+ "Mesa Glide v0.30 Voodoo_Graphics %d "
+ "CARD/%d FB/%d TM/%d TMU/%s",
+ glbCurrentBoard,
+ (vc->sliDetect ? (vc->fbRam*2) : vc->fbRam),
+ (vc->tmuConfig[GR_TMU0].tmuRam +
+ ((vc->nTexelfx>1) ? vc->tmuConfig[GR_TMU1].tmuRam : 0)),
+ vc->nTexelfx,
+ (vc->sliDetect ? "SLI" : "NOSLI"));
+ }
+ else if (glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_SST96) {
+ GrSst96Config_t *sc =
+ &glbHWConfig.SSTs[glbCurrentBoard].sstBoard.SST96Config;
+
+ sprintf(buf,
+ "Glide v0.30 Voodoo_Rush %d "
+ "CARD/%d FB/%d TM/%d TMU/NOSLI",
+ glbCurrentBoard,
+ sc->fbRam,
+ sc->tmuConfig.tmuRam,
+ sc->nTexelfx);
+ }
+ else {
+ strcpy(buf, "Glide v0.30 UNKNOWN");
+ }
+ return (GLubyte *) buf;
}
-#endif
- default:
+ default:
return NULL;
- }
+ }
+#endif
}
@@ -674,18 +714,6 @@ void fxDDInitExtensions( GLcontext *ctx )
/************************************************************************/
/************************************************************************/
-/* This is a no-op, since the z-buffer is in hardware */
-static void fxAllocDepthBuffer(GLcontext *ctx)
-{
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxAllocDepthBuffer()\n");
- }
-}
-
-/************************************************************************/
-/************************************************************************/
-/************************************************************************/
-
/* Check if the hardware supports the current context
*
* Performs similar work to fxDDChooseRenderState() - should be merged.
diff --git a/xc/extras/Mesa/src/FX/fxddspan.c b/xc/extras/Mesa/src/FX/fxddspan.c
index b950b3f1c..ec5513480 100644
--- a/xc/extras/Mesa/src/FX/fxddspan.c
+++ b/xc/extras/Mesa/src/FX/fxddspan.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxddtex.c b/xc/extras/Mesa/src/FX/fxddtex.c
index 747d2555c..71d1e97ad 100644
--- a/xc/extras/Mesa/src/FX/fxddtex.c
+++ b/xc/extras/Mesa/src/FX/fxddtex.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -659,6 +659,10 @@ int fxTexGetInfo(int w, int h, GrLOD_t *lodlevel, GrAspectRatio_t *ar,
return 1;
}
+/*
+ * Given an OpenGL internal texture format, return the corresponding
+ * Glide internal texture format and base texture format.
+ */
void fxTexGetFormat(GLenum glformat, GrTextureFormat_t *tfmt, GLint *ifmt)
{
switch(glformat) {
@@ -724,7 +728,6 @@ void fxTexGetFormat(GLenum glformat, GrTextureFormat_t *tfmt, GLint *ifmt)
case GL_RGBA:
case GL_RGBA2:
case GL_RGBA4:
- case GL_RGB5_A1:
case GL_RGBA8:
case GL_RGB10_A2:
case GL_RGBA12:
@@ -734,6 +737,12 @@ void fxTexGetFormat(GLenum glformat, GrTextureFormat_t *tfmt, GLint *ifmt)
if(ifmt)
(*ifmt)=GL_RGBA;
break;
+ case GL_RGB5_A1:
+ if(tfmt)
+ (*tfmt)=GR_TEXFMT_ARGB_1555;
+ if(ifmt)
+ (*ifmt)=GL_RGBA;
+ break;
case GL_COLOR_INDEX:
case GL_COLOR_INDEX1_EXT:
case GL_COLOR_INDEX2_EXT:
@@ -961,7 +970,7 @@ static void fxTexBuildImageMap(const struct gl_texture_image *image,
if(wscale==hscale==1) {
int i=0;
int lenght=h*w;
- unsigned short r,g,b;
+ unsigned int r,g,b;
while(i++<lenght) {
r=*data++;
@@ -973,7 +982,7 @@ static void fxTexBuildImageMap(const struct gl_texture_image *image,
((0xf8 & b) >> 3);
}
} else {
- unsigned short r,g,b;
+ unsigned int r,g,b;
for(y=0;y<h;y++)
for(x=0;x<w;x++) {
@@ -992,7 +1001,6 @@ static void fxTexBuildImageMap(const struct gl_texture_image *image,
case GL_RGBA:
case GL_RGBA2:
case GL_RGBA4:
- case GL_RGB5_A1:
case GL_RGBA8:
case GL_RGB10_A2:
case GL_RGBA12:
@@ -1011,7 +1019,7 @@ static void fxTexBuildImageMap(const struct gl_texture_image *image,
if(wscale==hscale==1) {
int i=0;
int lenght=h*w;
- unsigned short r,g,b,a;
+ unsigned int r,g,b,a;
while(i++<lenght) {
r=*data++;
@@ -1025,7 +1033,7 @@ static void fxTexBuildImageMap(const struct gl_texture_image *image,
((0xf0 & b) >> 4);
}
} else {
- unsigned short r,g,b,a;
+ unsigned int r,g,b,a;
for(y=0;y<h;y++)
for(x=0;x<w;x++) {
@@ -1042,6 +1050,51 @@ static void fxTexBuildImageMap(const struct gl_texture_image *image,
}
}
break;
+ case GL_RGB5_A1:
+ (*istranslate)=GL_TRUE;
+
+ if(!(*dest)) {
+ if(!((*dest)=src=(unsigned short *)malloc(sizeof(unsigned short)*w*h))) {
+ fprintf(stderr,"fx Driver: out of memory !\n");
+ fxCloseHardware();
+ exit(-1);
+ }
+ } else
+ src=(*dest);
+
+ if(wscale==hscale==1) {
+ int i=0;
+ int lenght=h*w;
+ unsigned r,g,b,a;
+
+ while(i++<lenght) {
+ r=*data++;
+ g=*data++;
+ b=*data++;
+ a=*data++;
+ *src++=((0x80 & a) << 8) |
+ ((0xf8 & r) << 7) |
+ ((0xf8 & g) << 2) |
+ ((0xf8 & b) >> 3);
+ }
+ } else {
+ unsigned r,g,b,a;
+
+ for(y=0;y<h;y++)
+ for(x=0;x<w;x++) {
+ idx=(x/wscale+(y/hscale)*(w/wscale))*4;
+ r=data[idx];
+ g=data[idx+1];
+ b=data[idx+2];
+ a=data[idx+3];
+
+ src[x+y*w]=((0x80 & a) << 8) |
+ ((0xf8 & r) << 7) |
+ ((0xf8 & g) << 2) |
+ ((0xf8 & b) >> 3);
+ }
+ }
+ break;
default:
fprintf(stderr,"fx Driver: wrong internalFormat in texbuildimagemap()\n");
fxCloseHardware();
@@ -1231,7 +1284,6 @@ static void fxTexBuildSubImageMap(const struct gl_texture_image *image,
case GL_RGBA:
case GL_RGBA2:
case GL_RGBA4:
- case GL_RGB5_A1:
case GL_RGBA8:
case GL_RGB10_A2:
case GL_RGBA12:
@@ -1264,6 +1316,36 @@ static void fxTexBuildSubImageMap(const struct gl_texture_image *image,
}
}
break;
+ case GL_RGB5_A1:
+ {
+ int x,y;
+ unsigned char *src;
+ unsigned short *dst,r,g,b,a;
+ int simgw,dimgw;
+
+ src=(unsigned char *)(image->Data+(yoffset*image->Width+xoffset)*4);
+ dst=destimg+(yoffset*image->Width+xoffset);
+
+ simgw=(image->Width-width)*4;
+ dimgw=image->Width-width;
+ for(y=0;y<height;y++) {
+ for(x=0;x<width;x++) {
+ r=*src++;
+ g=*src++;
+ b=*src++;
+ a=*src++;
+ *dst++=
+ ((0x80 & a) << 8) |
+ ((0xf8 & r) << 7) |
+ ((0xf8 & g) << 2) |
+ ((0xf8 & b) >> 3);
+ }
+
+ src += simgw;
+ dst += dimgw;
+ }
+ }
+ break;
default:
fprintf(stderr,"fx Driver: wrong internalFormat in fxTexBuildSubImageMap()\n");
fxCloseHardware();
diff --git a/xc/extras/Mesa/src/FX/fxdrv.h b/xc/extras/Mesa/src/FX/fxdrv.h
index 8d3c0c8eb..208801e87 100644
--- a/xc/extras/Mesa/src/FX/fxdrv.h
+++ b/xc/extras/Mesa/src/FX/fxdrv.h
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -564,8 +564,6 @@ extern void fxDDClipInit(void);
extern void fxUpdateDDSpanPointers(GLcontext *);
extern void fxSetupDDSpanPointers(GLcontext *);
-extern void fxDDBufferSize(GLcontext *, GLuint *, GLuint *);
-
extern void fxPrintTextureData(tfxTexInfo *ti);
extern void fxDDTexEnv(GLcontext *, GLenum, const GLfloat *);
extern void fxDDTexImg(GLcontext *, GLenum, struct gl_texture_object *,
diff --git a/xc/extras/Mesa/src/FX/fxfastpath.c b/xc/extras/Mesa/src/FX/fxfastpath.c
index 08da27835..605dd8d34 100644
--- a/xc/extras/Mesa/src/FX/fxfastpath.c
+++ b/xc/extras/Mesa/src/FX/fxfastpath.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxfasttmp.h b/xc/extras/Mesa/src/FX/fxfasttmp.h
index c0fedd717..11a421230 100644
--- a/xc/extras/Mesa/src/FX/fxfasttmp.h
+++ b/xc/extras/Mesa/src/FX/fxfasttmp.h
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxglidew.c b/xc/extras/Mesa/src/FX/fxglidew.c
index 8437eb802..6024b0857 100644
--- a/xc/extras/Mesa/src/FX/fxglidew.c
+++ b/xc/extras/Mesa/src/FX/fxglidew.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxglidew.h b/xc/extras/Mesa/src/FX/fxglidew.h
index 7605664df..10db6f15f 100644
--- a/xc/extras/Mesa/src/FX/fxglidew.h
+++ b/xc/extras/Mesa/src/FX/fxglidew.h
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxpipeline.c b/xc/extras/Mesa/src/FX/fxpipeline.c
index 4d08d7ccd..fe4b76c68 100644
--- a/xc/extras/Mesa/src/FX/fxpipeline.c
+++ b/xc/extras/Mesa/src/FX/fxpipeline.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxrender.c b/xc/extras/Mesa/src/FX/fxrender.c
index 1e07cc8b0..8ce4b0618 100644
--- a/xc/extras/Mesa/src/FX/fxrender.c
+++ b/xc/extras/Mesa/src/FX/fxrender.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxsanity.c b/xc/extras/Mesa/src/FX/fxsanity.c
index ff6066e56..9f815012e 100644
--- a/xc/extras/Mesa/src/FX/fxsanity.c
+++ b/xc/extras/Mesa/src/FX/fxsanity.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxsdettmp.h b/xc/extras/Mesa/src/FX/fxsdettmp.h
index 258edf1bc..7b77b36c2 100644
--- a/xc/extras/Mesa/src/FX/fxsdettmp.h
+++ b/xc/extras/Mesa/src/FX/fxsdettmp.h
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxsetup.c b/xc/extras/Mesa/src/FX/fxsetup.c
index 7ca4bcb86..6ebd037fd 100644
--- a/xc/extras/Mesa/src/FX/fxsetup.c
+++ b/xc/extras/Mesa/src/FX/fxsetup.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -109,7 +109,7 @@ static void fxTexValidate(GLcontext *ctx, struct gl_texture_object *tObj)
else
FX_smallLodLog2(ti->info)=FX_largeLodLog2(ti->info);
- fxTexGetFormat(tObj->Image[minl]->Format,&(ti->info.format),&(ti->baseLevelInternalFormat));
+ fxTexGetFormat(tObj->Image[minl]->IntFormat,&(ti->info.format),&(ti->baseLevelInternalFormat));
switch (tObj->WrapS) {
case GL_CLAMP_TO_EDGE:
@@ -395,11 +395,11 @@ static void fxSetupSingleTMU_NoLock(fxMesaContext fxMesa, struct gl_texture_obje
static void fxSelectSingleTMUSrc_NoLock(fxMesaContext fxMesa, GLint tmu,
FxBool LODblend)
{
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxSelectSingleTMUSrc(%d,%d)\n",tmu,LODblend);
- }
+ if (MESA_VERBOSE&VERBOSE_DRIVER) {
+ fprintf(stderr,"fxmesa: fxSelectSingleTMUSrc(%d,%d)\n",tmu,LODblend);
+ }
- if(LODblend) {
+ if (LODblend) {
FX_grTexCombine_NoLock(GR_TMU0,
GR_COMBINE_FUNCTION_BLEND,
GR_COMBINE_FACTOR_ONE_MINUS_LOD_FRACTION,
@@ -413,32 +413,36 @@ static void fxSelectSingleTMUSrc_NoLock(fxMesaContext fxMesa, GLint tmu,
GR_COMBINE_FUNCTION_LOCAL,GR_COMBINE_FACTOR_NONE,
FXFALSE,FXFALSE);
fxMesa->tmuSrc=FX_TMU_SPLIT;
- } else {
+ }
+ else {
if (tmu!=FX_TMU1) {
FX_grTexCombine_NoLock(GR_TMU0,
GR_COMBINE_FUNCTION_LOCAL,GR_COMBINE_FACTOR_NONE,
GR_COMBINE_FUNCTION_LOCAL,GR_COMBINE_FACTOR_NONE,
FXFALSE,FXFALSE);
- FX_grTexCombine_NoLock(GR_TMU1,
- GR_COMBINE_FUNCTION_ZERO, GR_COMBINE_FACTOR_NONE,
- GR_COMBINE_FUNCTION_ZERO, GR_COMBINE_FACTOR_NONE,
- FXFALSE,FXFALSE);
+ if (fxMesa->haveTwoTMUs) {
+ FX_grTexCombine_NoLock(GR_TMU1,
+ GR_COMBINE_FUNCTION_ZERO, GR_COMBINE_FACTOR_NONE,
+ GR_COMBINE_FUNCTION_ZERO, GR_COMBINE_FACTOR_NONE,
+ FXFALSE,FXFALSE);
+ }
fxMesa->tmuSrc=FX_TMU0;
- } else {
+ }
+ else {
FX_grTexCombine_NoLock(GR_TMU1,
GR_COMBINE_FUNCTION_LOCAL,GR_COMBINE_FACTOR_NONE,
GR_COMBINE_FUNCTION_LOCAL,GR_COMBINE_FACTOR_NONE,
FXFALSE,FXFALSE);
-
+
/* GR_COMBINE_FUNCTION_SCALE_OTHER doesn't work ?!? */
-
+
FX_grTexCombine_NoLock(GR_TMU0,
GR_COMBINE_FUNCTION_BLEND,
GR_COMBINE_FACTOR_ONE,
GR_COMBINE_FUNCTION_BLEND,
GR_COMBINE_FACTOR_ONE,
FXFALSE,FXFALSE);
-
+
fxMesa->tmuSrc=FX_TMU1;
}
}
diff --git a/xc/extras/Mesa/src/FX/fxspan.c b/xc/extras/Mesa/src/FX/fxspan.c
deleted file mode 100644
index 86a178bb3..000000000
--- a/xc/extras/Mesa/src/FX/fxspan.c
+++ /dev/null
@@ -1,805 +0,0 @@
-/* -*- mode: C; tab-width:8; c-basic-offset:2 -*- */
-
-/*
- * Mesa 3-D graphics library
- * Version: 3.1
- *
- * Copyright (C) 1999 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"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- * Original Mesa / 3Dfx device driver (C) 1999 David Bucciarelli, by the
- * terms stated above.
- *
- * Thank you for your contribution, David!
- *
- * Please make note of the above copyright/license statement. If you
- * contributed code or bug fixes to this code under the previous (GNU
- * Library) license and object to the new license, your code will be
- * removed at your request. Please see the Mesa docs/COPYRIGHT file
- * for more information.
- *
- * Additional Mesa/3Dfx driver developers:
- * Daryll Strauss <daryll@precisioninsight.com>
- * Keith Whitwell <keith@precisioninsight.com>
- *
- * See fxapi.h for more revision/author details.
- */
-
-
-/* fxdd.c - 3Dfx VooDoo Mesa span and pixel functions */
-
-
-#ifdef HAVE_CONFIG_H
-#include "conf.h"
-#endif
-
-#if defined(FX)
-
-#include "fxdrv.h"
-
-#ifdef _MSC_VER
-#ifdef _WIN32
-#pragma warning( disable : 4090 4022 )
-/* 4101 : "different 'const' qualifier"
- * 4022 : "pointer mistmatch for actual parameter 'n'
- */
-#endif
-#endif
-
-/************************************************************************/
-/***** Span functions *****/
-/************************************************************************/
-
-static void fxDDWriteRGBASpan(const GLcontext *ctx,
- GLuint n, GLint x, GLint y,
- const GLubyte rgba[][4], const GLubyte mask[])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDWriteRGBASpan(...)\n");
- }
-
- if (mask) {
- int span=0;
-
- for (i=0;i<n;i++) {
- if (mask[i]) {
- ++span;
- } else {
- if (span > 0) {
- grLfbWriteRegion( fxMesa->currentFB, x+i-span, bottom-y,
- GR_LFB_SRC_FMT_8888, span, 1, 0, (void *) rgba[i-span] );
- span = 0;
- }
- }
- }
-
- if (span > 0)
- grLfbWriteRegion( fxMesa->currentFB, x+n-span, bottom-y,
- GR_LFB_SRC_FMT_8888, span, 1, 0, (void *) rgba[n-span] );
- } else
- grLfbWriteRegion( fxMesa->currentFB, x, bottom-y, GR_LFB_SRC_FMT_8888,
- n, 1, 0, (void *) rgba );
-}
-
-
-static void fxDDWriteRGBSpan(const GLcontext *ctx,
- GLuint n, GLint x, GLint y,
- const GLubyte rgb[][3], const GLubyte mask[])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
- GLubyte rgba[MAX_WIDTH][4];
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDWriteRGBSpan()\n");
- }
-
- if (mask) {
- int span=0;
-
- for (i=0;i<n;i++) {
- if (mask[i]) {
- rgba[span][0] = rgb[i][0];
- rgba[span][1] = rgb[i][1];
- rgba[span][2] = rgb[i][2];
- rgba[span][3] = 255;
- ++span;
- } else {
- if (span > 0) {
- grLfbWriteRegion( fxMesa->currentFB, x+i-span, bottom-y,
- GR_LFB_SRC_FMT_8888, span, 1, 0, (void *) rgba );
- span = 0;
- }
- }
- }
-
- if (span > 0)
- grLfbWriteRegion( fxMesa->currentFB, x+n-span, bottom-y,
- GR_LFB_SRC_FMT_8888, span, 1, 0, (void *) rgba );
- } else {
- for (i=0;i<n;i++) {
- rgba[i][0]=rgb[i][0];
- rgba[i][1]=rgb[i][1];
- rgba[i][2]=rgb[i][2];
- rgba[i][3]=255;
- }
-
- grLfbWriteRegion( fxMesa->currentFB, x, bottom-y, GR_LFB_SRC_FMT_8888,
- n, 1, 0, (void *) rgba );
- }
-}
-
-
-static void fxDDWriteMonoRGBASpan(const GLcontext *ctx,
- GLuint n, GLint x, GLint y,
- const GLubyte mask[])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
- GLuint data[MAX_WIDTH];
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDWriteMonoRGBASpan(...)\n");
- }
-
- if (mask) {
- int span=0;
-
- for (i=0;i<n;i++) {
- if (mask[i]) {
- data[span] = (GLuint) fxMesa->color;
- ++span;
- } else {
- if (span > 0) {
- grLfbWriteRegion( fxMesa->currentFB, x+i-span, bottom-y,
- GR_LFB_SRC_FMT_8888, span, 1, 0,
- (void *) data );
- span = 0;
- }
- }
- }
-
- if (span > 0)
- grLfbWriteRegion( fxMesa->currentFB, x+n-span, bottom-y,
- GR_LFB_SRC_FMT_8888, span, 1, 0,
- (void *) data );
- } else {
- for (i=0;i<n;i++) {
- data[i]=(GLuint) fxMesa->color;
- }
-
- grLfbWriteRegion( fxMesa->currentFB, x, bottom-y, GR_LFB_SRC_FMT_8888,
- n, 1, 0, (void *) data );
- }
-}
-
-
-static void fxDDReadRGBASpan(const GLcontext *ctx,
- GLuint n, GLint x, GLint y, GLubyte rgba[][4])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLushort data[MAX_WIDTH];
- GLuint i;
- GLint bottom=fxMesa->height-1;
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDReadRGBASpan(...)\n");
- }
-
- assert(n < MAX_WIDTH);
-
- grLfbReadRegion( fxMesa->currentFB, x, bottom-y, n, 1, 0, data);
- for (i=0;i<n;i++) {
- rgba[i][RCOMP]=(data[i] & 0x001f) << 3;
- rgba[i][GCOMP]=(data[i] & 0x07e0) >> 3;
- rgba[i][BCOMP]=(data[i] & 0xf800) >> 8;
- rgba[i][ACOMP]=255;
- }
-}
-
-/************************************************************************/
-/***** Pixel functions *****/
-/************************************************************************/
-
-static void fxDDWriteRGBAPixels(const GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- CONST GLubyte rgba[][4], const GLubyte mask[])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDWriteRGBAPixels(...)\n");
- }
-
- for(i=0;i<n;i++)
- if(mask[i])
- grLfbWriteRegion(fxMesa->currentFB,x[i],bottom-y[i],
- GR_LFB_SRC_FMT_8888,1,1,0,(void *) rgba[i]);
-}
-
-static void fxDDWriteMonoRGBAPixels(const GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- const GLubyte mask[])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDWriteMonoRGBAPixels(...)\n");
- }
-
- for(i=0;i<n;i++)
- if(mask[i])
- grLfbWriteRegion(fxMesa->currentFB,x[i],bottom-y[i],
- GR_LFB_SRC_FMT_8888,1,1,0,(void *) fxMesa->color);
-}
-
-static void fxDDReadRGBAPixels(const GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- GLubyte rgba[][4], const GLubyte mask[])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
- GLushort data;
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDReadRGBAPixels(...)\n");
- }
-
- for(i=0;i<n;i++)
- if(mask[i]) {
- grLfbReadRegion(fxMesa->currentFB,x[i],bottom-y[i],1,1,0,&data);
- rgba[i][RCOMP]=(data & 0x001f) << 3;
- rgba[i][GCOMP]=(data & 0x07e0) >> 3;
- rgba[i][BCOMP]=(data & 0xf800) >> 8;
-
- /* the alpha value should be read from the auxiliary buffer when required */
-
- rgba[i][ACOMP]=255;
- }
-}
-
-/************************************************************************/
-/***** Depth functions *****/
-/************************************************************************/
-
-static void fxDDReadDepthSpanFloat(GLcontext *ctx,
- GLuint n, GLint x, GLint y, GLfloat depth[])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
- GLushort data[MAX_WIDTH];
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDReadDepthSpanFloat(...)\n");
- }
-
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,n,1,0,data);
-
- /*
- convert the read values to float values [0.0 .. 1.0].
- */
- for(i=0;i<n;i++)
- depth[i]=data[i]/65535.0f;
-}
-
-static void fxDDReadDepthSpanInt(GLcontext *ctx,
- GLuint n, GLint x, GLint y, GLdepth depth[])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLint bottom=fxMesa->height-1;
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDReadDepthSpanInt(...)\n");
- }
-
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,n,1,0,depth);
-}
-
-static GLuint fxDDDepthTestSpanGeneric(GLcontext *ctx,
- GLuint n, GLint x, GLint y, const GLdepth z[],
- GLubyte mask[])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLushort depthdata[MAX_WIDTH];
- GLdepth *zptr=depthdata;
- GLubyte *m=mask;
- GLuint i;
- GLuint passed=0;
- GLint bottom=fxMesa->height-1;
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDDepthTestSpanGeneric(...)\n");
- }
-
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,n,1,0,depthdata);
-
- /* switch cases ordered from most frequent to less frequent */
- switch (ctx->Depth.Func) {
- case GL_LESS:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0; i<n; i++,zptr++,m++) {
- if (*m) {
- if (z[i] < *zptr) {
- /* pass */
- *zptr = z[i];
- passed++;
- } else {
- /* fail */
- *m = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0; i<n; i++,zptr++,m++) {
- if (*m) {
- if (z[i] < *zptr) {
- /* pass */
- passed++;
- } else {
- *m = 0;
- }
- }
- }
- }
- break;
- case GL_LEQUAL:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- if (z[i] <= *zptr) {
- *zptr = z[i];
- passed++;
- } else {
- *m = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- if (z[i] <= *zptr) {
- /* pass */
- passed++;
- } else {
- *m = 0;
- }
- }
- }
- }
- break;
- case GL_GEQUAL:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- if (z[i] >= *zptr) {
- *zptr = z[i];
- passed++;
- } else {
- *m = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- if (z[i] >= *zptr) {
- /* pass */
- passed++;
- } else {
- *m = 0;
- }
- }
- }
- }
- break;
- case GL_GREATER:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- if (z[i] > *zptr) {
- *zptr = z[i];
- passed++;
- } else {
- *m = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- if (z[i] > *zptr) {
- /* pass */
- passed++;
- } else {
- *m = 0;
- }
- }
- }
- }
- break;
- case GL_NOTEQUAL:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- if (z[i] != *zptr) {
- *zptr = z[i];
- passed++;
- } else {
- *m = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- if (z[i] != *zptr) {
- /* pass */
- passed++;
- } else {
- *m = 0;
- }
- }
- }
- }
- break;
- case GL_EQUAL:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- if (z[i] == *zptr) {
- *zptr = z[i];
- passed++;
- } else {
- *m =0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- if (z[i] == *zptr) {
- /* pass */
- passed++;
- } else {
- *m =0;
- }
- }
- }
- }
- break;
- case GL_ALWAYS:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0;i<n;i++,zptr++,m++) {
- if (*m) {
- *zptr = z[i];
- passed++;
- }
- }
- } else {
- /* Don't update Z buffer or mask */
- passed = n;
- }
- break;
- case GL_NEVER:
- for (i=0;i<n;i++) {
- mask[i] = 0;
- }
- break;
- default:
- ;
- } /*switch*/
-
- if(passed)
- grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,GR_LFB_SRC_FMT_ZA16,n,1,0,depthdata);
-
- return passed;
-}
-
-static void fxDDDepthTestPixelsGeneric(GLcontext* ctx,
- GLuint n, const GLint x[], const GLint y[],
- const GLdepth z[], GLubyte mask[])
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLdepth zval;
- GLuint i;
- GLint bottom=fxMesa->height-1;
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDDepthTestPixelsGeneric(...)\n");
- }
-
- /* switch cases ordered from most frequent to less frequent */
- switch (ctx->Depth.Func) {
- case GL_LESS:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] < zval) {
- /* pass */
- grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,&z[i]);
- } else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] < zval) {
- /* pass */
- }
- else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- }
- break;
- case GL_LEQUAL:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] <= zval) {
- /* pass */
- grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,&z[i]);
- } else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] <= zval) {
- /* pass */
- } else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- }
- break;
- case GL_GEQUAL:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] >= zval) {
- /* pass */
- grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,&z[i]);
- } else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] >= zval) {
- /* pass */
- } else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- }
- break;
- case GL_GREATER:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] > zval) {
- /* pass */
- grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,&z[i]);
- } else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] > zval) {
- /* pass */
- } else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- }
- break;
- case GL_NOTEQUAL:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] != zval) {
- /* pass */
- grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,&z[i]);
- } else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] != zval) {
- /* pass */
- }
- else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- }
- break;
- case GL_EQUAL:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] == zval) {
- /* pass */
- grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,&z[i]);
- } else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- } else {
- /* Don't update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval);
- if (z[i] == zval) {
- /* pass */
- } else {
- /* fail */
- mask[i] = 0;
- }
- }
- }
- }
- break;
- case GL_ALWAYS:
- if (ctx->Depth.Mask) {
- /* Update Z buffer */
- for (i=0; i<n; i++) {
- if (mask[i]) {
- grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,&z[i]);
- }
- }
- } else {
- /* Don't update Z buffer or mask */
- }
- break;
- case GL_NEVER:
- /* depth test never passes */
- for (i=0;i<n;i++) {
- mask[i] = 0;
- }
- break;
- default:
- ;
- } /*switch*/
-}
-
-/************************************************************************/
-
-void fxUpdateDDSpanPointers(GLcontext *ctx)
-{
- ctx->Driver.DepthTestSpan=fxDDDepthTestSpanGeneric;
- ctx->Driver.DepthTestPixels=fxDDDepthTestPixelsGeneric;
-
- ctx->Driver.ReadDepthSpanFloat=fxDDReadDepthSpanFloat;
- ctx->Driver.ReadDepthSpanInt=fxDDReadDepthSpanInt;
-}
-
-void fxSetupDDSpanPointers(GLcontext *ctx)
-{
- ctx->Driver.WriteRGBASpan =fxDDWriteRGBASpan;
- ctx->Driver.WriteRGBSpan =fxDDWriteRGBSpan;
- ctx->Driver.WriteMonoRGBASpan =fxDDWriteMonoRGBASpan;
- ctx->Driver.WriteRGBAPixels =fxDDWriteRGBAPixels;
- ctx->Driver.WriteMonoRGBAPixels =fxDDWriteMonoRGBAPixels;
-
- ctx->Driver.WriteCI8Span =NULL;
- ctx->Driver.WriteCI32Span =NULL;
- ctx->Driver.WriteMonoCISpan =NULL;
- ctx->Driver.WriteCI32Pixels =NULL;
- ctx->Driver.WriteMonoCIPixels =NULL;
-
- ctx->Driver.ReadRGBASpan =fxDDReadRGBASpan;
- ctx->Driver.ReadRGBAPixels =fxDDReadRGBAPixels;
-
- ctx->Driver.ReadCI32Span =NULL;
- ctx->Driver.ReadCI32Pixels =NULL;
-}
-
-
-#else
-
-
-/*
- * Need this to provide at least one external definition.
- */
-
-int gl_fx_dummy_function_span(void)
-{
- return 0;
-}
-
-#endif /* FX */
diff --git a/xc/extras/Mesa/src/FX/fxstripdet.c b/xc/extras/Mesa/src/FX/fxstripdet.c
index 791546fdf..bc21234b6 100644
--- a/xc/extras/Mesa/src/FX/fxstripdet.c
+++ b/xc/extras/Mesa/src/FX/fxstripdet.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxtexman.c b/xc/extras/Mesa/src/FX/fxtexman.c
index bc1969896..87f309adc 100644
--- a/xc/extras/Mesa/src/FX/fxtexman.c
+++ b/xc/extras/Mesa/src/FX/fxtexman.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxtrifuncs.c b/xc/extras/Mesa/src/FX/fxtrifuncs.c
index bcd00cbc7..76cede5a7 100644
--- a/xc/extras/Mesa/src/FX/fxtrifuncs.c
+++ b/xc/extras/Mesa/src/FX/fxtrifuncs.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxtritmp.h b/xc/extras/Mesa/src/FX/fxtritmp.h
index 2f4c408d4..06df4dcd0 100644
--- a/xc/extras/Mesa/src/FX/fxtritmp.h
+++ b/xc/extras/Mesa/src/FX/fxtritmp.h
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxvs_tmp.h b/xc/extras/Mesa/src/FX/fxvs_tmp.h
index b2371b04f..e3a30bf5d 100644
--- a/xc/extras/Mesa/src/FX/fxvs_tmp.h
+++ b/xc/extras/Mesa/src/FX/fxvs_tmp.h
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxvsetup.c b/xc/extras/Mesa/src/FX/fxvsetup.c
index 6cf32e574..78a311f25 100644
--- a/xc/extras/Mesa/src/FX/fxvsetup.c
+++ b/xc/extras/Mesa/src/FX/fxvsetup.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxvsetup.h b/xc/extras/Mesa/src/FX/fxvsetup.h
index c99ca28e1..48123c46b 100644
--- a/xc/extras/Mesa/src/FX/fxvsetup.h
+++ b/xc/extras/Mesa/src/FX/fxvsetup.h
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/FX/fxwgl.c b/xc/extras/Mesa/src/FX/fxwgl.c
index e7d0be665..1f0e16a95 100644
--- a/xc/extras/Mesa/src/FX/fxwgl.c
+++ b/xc/extras/Mesa/src/FX/fxwgl.c
@@ -2,9 +2,9 @@
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
diff --git a/xc/extras/Mesa/src/X/fakeglx.c b/xc/extras/Mesa/src/X/fakeglx.c
index f35b1e808..ae496b286 100644
--- a/xc/extras/Mesa/src/X/fakeglx.c
+++ b/xc/extras/Mesa/src/X/fakeglx.c
@@ -1,10 +1,10 @@
-/* $Id: fakeglx.c,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: fakeglx.c,v 1.3 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -63,7 +63,7 @@
#define SERVER_MINOR_VERSION 3
/* This is appended onto the glXGetClient/ServerString version strings. */
-#define MESA_GLX_VERSION "Mesa 3.1"
+#define MESA_GLX_VERSION "Mesa 3.3"
/* Who implemented this GLX? */
#define VENDOR "Brian Paul"
diff --git a/xc/extras/Mesa/src/X/fakeglx.h b/xc/extras/Mesa/src/X/fakeglx.h
index d19c8a11b..f2c5c9b58 100644
--- a/xc/extras/Mesa/src/X/fakeglx.h
+++ b/xc/extras/Mesa/src/X/fakeglx.h
@@ -1,4 +1,4 @@
-/* $Id: fakeglx.h,v 1.1 1999/12/05 23:10:27 daryll Exp $ */
+/* $Id: fakeglx.h,v 1.2 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X/glxapi.c b/xc/extras/Mesa/src/X/glxapi.c
index 7f4eeb3d1..9bbddd480 100644
--- a/xc/extras/Mesa/src/X/glxapi.c
+++ b/xc/extras/Mesa/src/X/glxapi.c
@@ -1,4 +1,4 @@
-/* $Id: glxapi.c,v 1.2 2000/01/30 00:27:03 brianp Exp $ */
+/* $Id: glxapi.c,v 1.3 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X/glxapi.h b/xc/extras/Mesa/src/X/glxapi.h
index 893a70683..c3798cf15 100644
--- a/xc/extras/Mesa/src/X/glxapi.h
+++ b/xc/extras/Mesa/src/X/glxapi.h
@@ -1,4 +1,4 @@
-/* $Id: glxapi.h,v 1.2 2000/01/30 00:27:03 brianp Exp $ */
+/* $Id: glxapi.h,v 1.3 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X/glxheader.h b/xc/extras/Mesa/src/X/glxheader.h
index 74e9c0e9b..c8f27f8d8 100644
--- a/xc/extras/Mesa/src/X/glxheader.h
+++ b/xc/extras/Mesa/src/X/glxheader.h
@@ -1,4 +1,4 @@
-/* $Id: glxheader.h,v 1.2 2000/01/30 00:27:03 brianp Exp $ */
+/* $Id: glxheader.h,v 1.3 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X/realglx.c b/xc/extras/Mesa/src/X/realglx.c
index 3008c18bf..3ebc99d09 100644
--- a/xc/extras/Mesa/src/X/realglx.c
+++ b/xc/extras/Mesa/src/X/realglx.c
@@ -1,4 +1,4 @@
-/* $Id: realglx.c,v 1.1 1999/12/05 23:10:27 daryll Exp $ */
+/* $Id: realglx.c,v 1.2 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X/realglx.h b/xc/extras/Mesa/src/X/realglx.h
index 849ae03f8..be05e04ea 100644
--- a/xc/extras/Mesa/src/X/realglx.h
+++ b/xc/extras/Mesa/src/X/realglx.h
@@ -1,4 +1,4 @@
-/* $Id: realglx.h,v 1.1 1999/12/05 23:10:27 daryll Exp $ */
+/* $Id: realglx.h,v 1.2 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X/xfonts.c b/xc/extras/Mesa/src/X/xfonts.c
index 5e6542c23..cafd1c0ea 100644
--- a/xc/extras/Mesa/src/X/xfonts.c
+++ b/xc/extras/Mesa/src/X/xfonts.c
@@ -1,4 +1,4 @@
-/* $Id: xfonts.c,v 1.2 2000/01/30 00:27:03 brianp Exp $ */
+/* $Id: xfonts.c,v 1.3 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X/xmesa1.c b/xc/extras/Mesa/src/X/xmesa1.c
index 07951ac00..7d1db4510 100644
--- a/xc/extras/Mesa/src/X/xmesa1.c
+++ b/xc/extras/Mesa/src/X/xmesa1.c
@@ -1,4 +1,4 @@
-/* $Id: xmesa1.c,v 1.2 2000/01/30 00:27:03 brianp Exp $ */
+/* $Id: xmesa1.c,v 1.3 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X/xmesa2.c b/xc/extras/Mesa/src/X/xmesa2.c
index a6b080c18..411833982 100644
--- a/xc/extras/Mesa/src/X/xmesa2.c
+++ b/xc/extras/Mesa/src/X/xmesa2.c
@@ -1,4 +1,4 @@
-/* $Id: xmesa2.c,v 1.3 2000/02/12 21:54:10 daryll Exp $ */
+/* $Id: xmesa2.c,v 1.4 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -36,6 +36,7 @@
#include "context.h"
#include "drawpix.h"
#include "mem.h"
+#include "state.h"
#include "types.h"
#include "xmesaP.h"
diff --git a/xc/extras/Mesa/src/X/xmesa3.c b/xc/extras/Mesa/src/X/xmesa3.c
index 80ba3d92f..6f5381504 100644
--- a/xc/extras/Mesa/src/X/xmesa3.c
+++ b/xc/extras/Mesa/src/X/xmesa3.c
@@ -1,4 +1,4 @@
-/* $Id: xmesa3.c,v 1.2 2000/01/30 00:27:03 brianp Exp $ */
+/* $Id: xmesa3.c,v 1.3 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X/xmesa4.c b/xc/extras/Mesa/src/X/xmesa4.c
index c239d162f..ec7c2e0a8 100644
--- a/xc/extras/Mesa/src/X/xmesa4.c
+++ b/xc/extras/Mesa/src/X/xmesa4.c
@@ -1,4 +1,4 @@
-/* $Id: xmesa4.c,v 1.2 2000/01/30 00:27:03 brianp Exp $ */
+/* $Id: xmesa4.c,v 1.3 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X/xmesaP.h b/xc/extras/Mesa/src/X/xmesaP.h
index ee07c16ff..e7092c852 100644
--- a/xc/extras/Mesa/src/X/xmesaP.h
+++ b/xc/extras/Mesa/src/X/xmesaP.h
@@ -1,4 +1,4 @@
-/* $Id: xmesaP.h,v 1.2 2000/01/30 00:27:03 brianp Exp $ */
+/* $Id: xmesaP.h,v 1.3 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/X86/3dnow_xform_raw3.S b/xc/extras/Mesa/src/X86/3dnow_xform_raw3.S
index 86dfba654..93c8ed390 100644
--- a/xc/extras/Mesa/src/X86/3dnow_xform_raw3.S
+++ b/xc/extras/Mesa/src/X86/3dnow_xform_raw3.S
@@ -11,7 +11,15 @@
-ALIGNTEXT16
+#define VEC_SIZE_1 1
+#define VEC_SIZE_2 3
+#define VEC_SIZE_3 7
+#define VEC_SIZE_4 15
+
+
+
+
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points3_general_raw)
GLNAME( gl_3dnow_transform_points3_general_raw ):
@@ -20,14 +28,11 @@ GLNAME( gl_3dnow_transform_points3_general_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(4), REGOFF(16, ECX) )
- OR_B ( CONST(15), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_4), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -35,103 +40,68 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
-
CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TPGR_4 ) )
-
- MOVD ( REGIND(ECX), MM0 ) /* | m00 */
- PUNPCKLDQ ( REGOFF(16, ECX), MM0 ) /* m10 | m00 */
-
- MOVD ( REGOFF(4, ECX), MM1 ) /* | m01 */
- PUNPCKLDQ ( REGOFF(20, ECX), MM1 ) /* m11 | m01 */
-
- MOVQ ( REGOFF(32, ECX), MM2 ) /* m21 | m20 */
- MOVQ ( REGOFF(48, ECX), MM3 ) /* m31 | m30 */
+ JE ( LLBL( G3TPGR_2 ) )
- PUSH_L ( EAX )
- PUSH_L ( EDX )
- PUSH_L ( ESI )
+ PREFETCHW ( REGIND(EDX) )
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVD ( REGOFF(8, EAX), MM6 ) /* | x2 */
+ MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
+ MOVD ( REGOFF(8, EAX), MM2 ) /* | x2 */
+ ADD_L ( EDI, EAX ) /* next vertex */
ALIGNTEXT32
-LLBL( G3TPGR_2 ):
-
- MOVQ ( MM4, MM5 ) /* x1 | x0 */
- ADD_L ( EDI, EAX ) /* next vertex */
-
- PFMUL ( MM0, MM4 ) /* x1*m10 | x0*m00 */
- PUNPCKLDQ ( MM6, MM6 ) /* x2 | x2 */
-
- PFMUL ( MM1, MM5 ) /* x1*m11 | x0*m01 */
- PFACC ( MM5, MM4 ) /* x0*m01+x1*m11 | x0*m00+x1*m10 */
+LLBL( G3TPGR_1 ):
- PFMUL ( MM2, MM6 ) /* x2*m21 | x2*m20 */
- PFADD ( MM3, MM6 ) /* x2*m21+m31 | x2*m20+m30 */
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
- PFADD ( MM4, MM6 ) /* r1 | r0 */
- ADD_L ( CONST(16), EDX ) /* next r */
-
- DEC_L ( ESI ) /* decrement vertex counter */
- MOVQ ( MM6, REGOFF(-16, EDX) ) /* write r0, r1 */
-
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVD ( REGOFF(8, EAX), MM6 ) /* | x2 */
-
- JA ( LLBL( G3TPGR_2 ) ) /* cnt > 0 ? -> process next vertex */
- /* and now the second stripe ... */
- POP_L ( ESI ) /* reset counter & pointers */
- POP_L ( EDX )
- POP_L ( EAX )
+ PREFETCH ( REGIND(EAX) )
- MOVD ( REGOFF(8, ECX), MM0 ) /* | m02 */
- PUNPCKLDQ ( REGOFF(24, ECX), MM0 ) /* m12 | m02 */
+ MOVQ ( MM0, MM1 ) /* x1 | x0 */
+ PUNPCKLDQ ( MM2, MM2 ) /* x2 | x2 */
- MOVD ( REGOFF(12, ECX), MM1 ) /* | m03 */
- PUNPCKLDQ ( REGOFF(28, ECX), MM1 ) /* m13 | m03 */
+ PUNPCKLDQ ( MM0, MM0 ) /* x0 | x0 */
+ MOVQ ( MM2, MM5 ) /* x2 | x2 */
- MOVQ ( REGOFF(40, ECX), MM2 ) /* m23 | m22 */
- MOVQ ( REGOFF(56, ECX), MM3 ) /* m33 | m32 */
+ PUNPCKHDQ ( MM1, MM1 ) /* x1 | x1 */
+ PFMUL ( REGOFF(32, ECX), MM2 ) /* x2*m9 | x2*m8 */
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVD ( REGOFF(8, EAX), MM6 ) /* | x2 */
+ MOVQ ( MM0, MM3 ) /* x0 | x0 */
+ PFMUL ( REGOFF(40, ECX), MM5 ) /* x2*m11 | x2*m10 */
+ MOVQ ( MM1, MM4 ) /* x1 | x1 */
+ PFMUL ( REGIND(ECX), MM0 ) /* x0*m1 | x0*m0 */
-ALIGNTEXT32
-LLBL( G3TPGR_3 ):
+ PFADD ( REGOFF(48, ECX), MM2 ) /* x2*m9+m13 | x2*m8+m12 */
+ PFMUL ( REGOFF(16, ECX), MM1 ) /* x1*m5 | x1*m4 */
- ADD_L ( EDI, EAX ) /* next vertex */
- MOVQ ( MM4, MM5 ) /* x1 | x0 */
+ PFADD ( REGOFF(56, ECX), MM5 ) /* x2*m11+m15 | x2*m10+m14 */
+ PFADD ( MM0, MM1 ) /* x0*m1+x1*m5 | x0*m0+x1*m4 */
- PFMUL ( MM0, MM4 ) /* x1*m12 | x0*m02 */
- PUNPCKLDQ ( MM6, MM6 ) /* x2 | x2 */
+ PFMUL ( REGOFF(8, ECX), MM3 ) /* x0*m3 | x0*m2 */
+ PFADD ( MM1, MM2 ) /* result r1 | r0 */
- PFMUL ( MM1, MM5 ) /* x1*m13 | x0*m03 */
- PFACC ( MM5, MM4 ) /* x0*m03+x1*m13 | x0*m02+x1*m12 */
+ PFMUL ( REGOFF(24, ECX), MM4 ) /* x1*m7 | x1*m6 */
+ ADD_L ( CONST(16), EDX ) /* next r */
- PFMUL ( MM2, MM6 ) /* x2*m23 | x2*m22 */
- PFADD ( MM3, MM6 ) /* x2*m23+m33 | x2*m22+m32 */
+ PFADD ( MM3, MM4 ) /* x0*m3+x1*m7 | x0*m2+x1*m6 */
+ MOVQ ( MM2, REGOFF(-16, EDX) ) /* write r0, r1 */
- PFADD ( MM4, MM6 ) /* r3 | r2 */
- ADD_L ( CONST(16), EDX ) /* next r */
+ PFADD ( MM4, MM5 ) /* r3 | r2 */
+ MOVQ ( MM5, REGOFF(-8, EDX) ) /* write r2, r3 */
- DEC_L ( ESI ) /* decrement vertex counter */
- MOVQ ( MM6, REGOFF(-8, EDX) ) /* write r2, r3 */
+ MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
+ MOVD ( REGOFF(8, EAX), MM2 ) /* | x2 */
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVD ( REGOFF(8, EAX), MM6 ) /* | x2 */
+ ADD_L ( EDI, EAX ) /* next vertex */
+ DEC_L ( ESI ) /* decrement vertex counter */
+ JA ( LLBL( G3TPGR_1 ) ) /* cnt > 0 ? -> process next vertex */
- JA ( LLBL( G3TPGR_3 ) ) /* cnt > 0 ? -> process next vertex */
+ALIGNTEXT32
+LLBL( G3TPGR_2 ):
-LLBL( G3TPGR_4 ):
FEMMS
-
- POP_L ( ESI )
POP_L ( EDI )
-
POP_L ( ESI )
RET
@@ -139,8 +109,7 @@ LLBL( G3TPGR_4 ):
-
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points3_identity_raw)
GLNAME( gl_3dnow_transform_points3_identity_raw ):
@@ -149,14 +118,11 @@ GLNAME( gl_3dnow_transform_points3_identity_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(3), REGOFF(16, ECX) )
- OR_B ( CONST(7), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_3), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -164,43 +130,43 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
-
CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TPIR_4 ) )
+ JE ( LLBL( G3TPIR_2 ) )
- MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
- MOVD ( REGOFF(8, EAX), MM1 ) /* | x2 */
+ PREFETCHW ( REGIND(EDX) )
+ MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
+ MOVD ( REGOFF(8, EAX), MM1 ) /* | x2 */
ALIGNTEXT32
-LLBL( G3TPIR_3 ):
+LLBL( G3TPIR_1 ):
- ADD_L ( EDI, EAX ) /* next vertex */
- ADD_L ( CONST(16), EDX ) /* next r */
+ PREFETCHW ( REGOFF(32, EDX) )
- DEC_L ( ESI ) /* decrement vertex counter */
- MOVQ ( MM0, REGOFF(-16, EDX) ) /* r1 | r0 */
+ ADD_L ( EDI, EAX ) /* next vertex */
+ ADD_L ( CONST(16), EDX ) /* next r */
- MOVD ( MM1, REGOFF(-8, EDX) ) /* | r2 */
- MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
+ DEC_L ( ESI ) /* decrement vertex counter */
+ MOVQ ( MM0, REGOFF(-16, EDX) ) /* r1 | r0 */
- MOVD ( REGOFF(8, EAX), MM1 ) /* | x2 */
- JA ( LLBL( G3TPIR_3 ) ) /* cnt > 0 ? -> process next vertex */
+ MOVD ( MM1, REGOFF(-8, EDX) ) /* | r2 */
+ MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
-LLBL( G3TPIR_4 ):
- FEMMS
+ MOVD ( REGOFF(8, EAX), MM1 ) /* | x2 */
+ JA ( LLBL( G3TPIR_1 ) ) /* cnt > 0 ? -> process next vertex */
- POP_L ( ESI )
- POP_L ( EDI )
+ALIGNTEXT32
+LLBL( G3TPIR_2 ):
+ FEMMS
+ POP_L ( EDI )
POP_L ( ESI )
RET
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points3_2d_raw)
GLNAME( gl_3dnow_transform_points3_2d_raw ):
@@ -209,14 +175,11 @@ GLNAME( gl_3dnow_transform_points3_2d_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(3), REGOFF(16, ECX) )
- OR_B ( CONST(7), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_3), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -224,11 +187,13 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
-
CMP_L ( CONST(0), ESI )
JE ( LLBL( G3TP2R_3 ) )
+ PREFETCH ( REGIND(EAX) )
+
+ PREFETCHW ( REGIND(EDX) )
+
MOVD ( REGIND(ECX), MM0 ) /* | m00 */
PUNPCKLDQ ( REGOFF(16, ECX), MM0 ) /* m10 | m00 */
@@ -239,37 +204,39 @@ ALIGNTEXT32
MOVQ ( REGIND(EAX), MM3 ) /* x1 | x0 */
MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
+ ADD_L ( EDI, EAX ) /* next vertex */
ALIGNTEXT32
LLBL( G3TP2R_2 ):
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
+
+ PREFETCH ( REGIND(EAX) )
+
MOVQ ( MM3, MM4 ) /* x1 | x0 */
PFMUL ( MM0, MM3 ) /* x1*m10 | x0*m00 */
- ADD_L ( EDI, EAX ) /* next vertex */
+ ADD_L ( CONST(16), EDX ) /* next r */
PFMUL ( MM1, MM4 ) /* x1*m11 | x0*m01 */
PFACC ( MM4, MM3 ) /* x0*m00+x1*m10 | x0*m01+x1*m11 */
- ADD_L ( CONST(16), EDX ) /* next r */
+ MOVD ( MM5, REGOFF(-8, EDX) ) /* write r2 (=x2) */
PFADD ( MM2, MM3 ) /* x0*...*m10+m30| x0*m01+x1*m11+m31 */
- DEC_L ( ESI ) /* decrement vertex counter */
-
- MOVD ( MM5, REGOFF(-8, EDX) ) /* write r2 (=x2) */
MOVQ ( MM3, REGOFF(-16, EDX) ) /* write r0, r1 */
MOVQ ( REGIND(EAX), MM3 ) /* x1 | x0 */
MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
- NOP
+ ADD_L ( EDI, EAX ) /* next vertex */
+ DEC_L ( ESI ) /* decrement vertex counter */
JA ( LLBL( G3TP2R_2 ) ) /* cnt > 0 ? -> process next vertex */
+ALIGNTEXT32
LLBL( G3TP2R_3 ):
- FEMMS
- POP_L ( ESI )
+ FEMMS
POP_L ( EDI )
-
POP_L ( ESI )
RET
@@ -277,7 +244,7 @@ LLBL( G3TP2R_3 ):
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points3_2d_no_rot_raw)
GLNAME( gl_3dnow_transform_points3_2d_no_rot_raw ):
@@ -286,14 +253,11 @@ GLNAME( gl_3dnow_transform_points3_2d_no_rot_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(3), REGOFF(16, ECX) )
- OR_B ( CONST(7), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_3), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -301,10 +265,12 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
-
CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TP2NRR_3 ) )
+ JE ( LLBL( G3TP2NRR_2 ) )
+
+ PREFETCH ( REGIND(EAX) )
+
+ PREFETCHW ( REGIND(EDX) )
MOVD ( REGIND(ECX), MM0 ) /* | m00 */
PUNPCKLDQ ( REGOFF(20, ECX), MM0 ) /* m11 | m00 */
@@ -313,38 +279,44 @@ ALIGNTEXT32
MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
+ ADD_L ( EDI, EAX ) /* next vertex */
ALIGNTEXT32
-LLBL( G3TP2NRR_2 ):
- ADD_L ( CONST(16), EDX ) /* next r */
- PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
+LLBL( G3TP2NRR_1 ):
- ADD_L ( EDI, EAX ) /* next vertex */
- PFADD ( MM1, MM4 ) /* x1*m11+m31 | x0*m00+m30 */
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
- DEC_L ( ESI ) /* decrement vertex counter */
- MOVD ( MM5, REGOFF(-8, EDX) ) /* write r2 (=x2) */
+ PREFETCH ( REGIND(EAX) )
- MOVQ ( MM4, REGOFF(-16, EDX) ) /* write r0, r1 */
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
+ PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
+ ADD_L ( CONST(16), EDX ) /* next r */
- MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
- JA ( LLBL( G3TP2NRR_2 ) ) /* cnt > 0 ? -> process next vertex */
+ PFADD ( MM1, MM4 ) /* x1*m11+m31 | x0*m00+m30 */
-LLBL( G3TP2NRR_3 ):
- FEMMS
+ MOVQ ( MM4, REGOFF(-16, EDX) ) /* write r0, r1 */
+ MOVD ( MM5, REGOFF(-8, EDX) ) /* write r2 (=x2) */
- POP_L ( ESI )
- POP_L ( EDI )
+ MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
+ MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
+
+ ADD_L ( EDI, EAX ) /* next vertex */
+ DEC_L ( ESI ) /* decrement vertex counter */
+ JA ( LLBL( G3TP2NRR_1 ) ) /* cnt > 0 ? -> process next vertex */
+
+ALIGNTEXT32
+LLBL( G3TP2NRR_2 ):
+
+ FEMMS
+ POP_L ( EDI )
POP_L ( ESI )
RET
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points3_3d_raw)
GLNAME( gl_3dnow_transform_points3_3d_raw ):
@@ -353,14 +325,11 @@ GLNAME( gl_3dnow_transform_points3_3d_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(3), REGOFF(16, ECX) )
- OR_B ( CONST(7), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_3), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -368,106 +337,78 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
-
CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TP3R_4 ) )
+ JE ( LLBL( G3TP3R_2 ) )
- MOVD ( REGIND(ECX), MM0 ) /* | m00 */
- PUNPCKLDQ ( REGOFF(16, ECX), MM0 ) /* m10 | m00 */
-
- MOVD ( REGOFF(4, ECX), MM1 ) /* | m01 */
- PUNPCKLDQ ( REGOFF(20, ECX), MM1 ) /* | m11 */
+ PREFETCH ( REGIND(EAX) )
- MOVQ ( REGOFF(32, ECX), MM2 ) /* m21 | m20 */
- MOVQ ( REGOFF(48, ECX), MM3 ) /* m31 | m30 */
+ PREFETCH ( REGIND(EDX) )
- PUSH_L ( EAX )
- PUSH_L ( EDX )
- PUSH_L ( ESI )
+ MOVD ( REGOFF(8, ECX), MM7 ) /* | m2 */
+ PUNPCKLDQ ( REGOFF(24, ECX), MM7 ) /* m6 | m2 */
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVD ( REGOFF(8, EAX), MM6 ) /* | x2 */
+ MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
+ MOVD ( REGOFF(8, EAX), MM1 ) /* | x2 */
+ ADD_L ( EDI, EAX ) /* next vertex */
ALIGNTEXT32
- NOP
- NOP
+LLBL( G3TP3R_1 ):
-LLBL( G3TP3R_2 ):
- MOVQ ( MM4, MM5 ) /* x1 | x0 */
- PFMUL ( MM0, MM4 ) /* x1*m10 | x0*m00 */
-
- PUNPCKLDQ ( MM6, MM6 ) /* x2 | x2 */
- PFMUL ( MM1, MM5 ) /* x1*m11 | x0*m01 */
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
- ADD_L ( EDI, EAX ) /* next vertex */
- PFMUL ( MM2, MM6 ) /* x2*m21 | x2*m20 */
+ PREFETCH ( REGIND(EAX) )
- PFACC ( MM5, MM4 ) /* x0*m01+x1*m11 | x0*m00+x1*m10 */
- PFADD ( MM3, MM6 ) /* x2*m21+m31 | x2*m20+m30 */
+ MOVQ ( MM0, MM2 ) /* x1 | x0 */
+ ADD_L ( CONST(16), EDX ) /* next r */
- PFADD ( MM4, MM6 ) /* r1 | r0 */
- ADD_L ( CONST(16), EDX ) /* next r */
+ PUNPCKLDQ ( MM2, MM2 ) /* x0 | x0 */
+ MOVQ ( MM0, MM3 ) /* x1 | x0 */
- DEC_L ( ESI ) /* decrement vertex counter */
- MOVQ ( MM6, REGOFF(-16, EDX) ) /* write r0, r1 */
+ PFMUL ( REGIND(ECX), MM2 ) /* x0*m1 | x0*m0 */
+ PUNPCKHDQ ( MM3, MM3 ) /* x1 | x1 */
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVD ( REGOFF(8, EAX), MM6 ) /* | x2 */
+ MOVQ ( MM1, MM4 ) /* | x2 */
+ PFMUL ( REGOFF(16, ECX), MM3 ) /* x1*m5 | x1*m4 */
- JA ( LLBL( G3TP3R_2 ) ) /* cnt > 0 ? -> process next vertex */
- /* and now the second stripe ... */
- MOVD ( REGOFF(8, ECX), MM0 ) /* | m02 */
- PUNPCKLDQ ( REGOFF(24, ECX), MM0 ) /* m12 | m02 */
+ PUNPCKLDQ ( MM4, MM4 ) /* x2 | x2 */
+ PFADD ( MM2, MM3 ) /* x0*m1+x1*m5 | x0*m0+x1*m4 */
- MOVD ( REGOFF(40, ECX), MM2 ) /* | m22 */
- MOVD ( REGOFF(56, ECX), MM3 ) /* | m32 */
+ PFMUL ( REGOFF(32, ECX), MM4 ) /* x2*m9 | x2*m8 */
+ PFADD ( REGOFF(48, ECX), MM3 ) /* x0*m1+...+m11 | x0*m0+x1*m4+m12 */
- POP_L ( ESI ) /* reset counter & pointers */
- POP_L ( EDX )
- POP_L ( EAX )
+ PFMUL ( MM7, MM0 ) /* x1*m6 | x0*m2 */
+ PFADD ( MM4, MM3 ) /* r1 | r0 */
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVD ( REGOFF(8, EAX), MM6 ) /* | x2 */
+ PFMUL ( REGOFF(40, ECX), MM1 ) /* | x2*m10 */
+ PUNPCKLDQ ( REGOFF(56, ECX), MM1 ) /* m14 | x2*m10 */
+ PFACC ( MM0, MM1 )
-ALIGNTEXT32
-LLBL( G3TP3R_3 ):
- PFMUL ( MM2, MM6 ) /* | x2*m22 */
- MOVQ ( MM4, MM5 ) /* x1 | x0 */
+ MOVQ ( MM3, REGOFF(-16, EDX) ) /* write r0, r1 */
+ PFACC ( MM1, MM1 ) /* | r2 */
- PFMUL ( MM0, MM4 ) /* x1*m12 | x0*m02 */
- PFADD ( MM3, MM6 ) /* | x2*m22+m32 */
+ MOVD ( MM1, REGOFF(-8, EDX) ) /* write r2 */
+ MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
- PFMUL ( MM1, MM5 ) /* x1*m13 | x0*m03 */
- ADD_L ( EDI, EAX ) /* next vertex */
+ MOVD ( REGOFF(8, EAX), MM1 ) /* | x2 */
- PFACC ( MM5, MM4 ) /* x0*m03+x1*m13 | x0*m02+x1*m12 */
- ADD_L ( CONST(16), EDX ) /* next r */
+ ADD_L ( EDI, EAX ) /* next vertex */
+ DEC_L ( ESI ) /* decrement vertex counter */
+ JA ( LLBL( G3TP3R_1 ) ) /* cnt > 0 ? -> process next vertex */
- PFADD ( MM4, MM6 ) /* | r2 */
- DEC_L ( ESI ) /* decrement vertex counter */
-
- MOVD ( MM6, REGOFF(-8, EDX) ) /* write r2 */
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
-
- MOVD ( REGOFF(8, EAX), MM6 ) /* | x2 */
- JA ( LLBL( G3TP3R_3 ) ) /* cnt > 0 ? -> process next vertex */
+ALIGNTEXT32
+LLBL( G3TP3R_2 ):
-LLBL( G3TP3R_4 ):
FEMMS
-
- POP_L ( ESI )
POP_L ( EDI )
-
POP_L ( ESI )
RET
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points3_3d_no_rot_raw)
GLNAME( gl_3dnow_transform_points3_3d_no_rot_raw ):
@@ -476,14 +417,11 @@ GLNAME( gl_3dnow_transform_points3_3d_no_rot_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(3), REGOFF(16, ECX) )
- OR_B ( CONST(7), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_3), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -491,10 +429,12 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
-
CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TP3NRR_3 ) )
+ JE ( LLBL( G3TP3NRR_2 ) )
+
+ PREFETCH ( REGIND(EAX) )
+
+ PREFETCHW ( REGIND(EDX) )
MOVD ( REGIND(ECX), MM0 ) /* | m00 */
PUNPCKLDQ ( REGOFF(20, ECX), MM0 ) /* m11 | m00 */
@@ -512,38 +452,40 @@ ALIGNTEXT32
ALIGNTEXT32
-LLBL( G3TP3NRR_2 ):
- PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
- ADD_L ( EDI, EAX ) /* next vertex */
+LLBL( G3TP3NRR_1 ):
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
+ ADD_L ( EDI, EAX ) /* next vertex */
- PFADD ( MM1, MM4 ) /* x1*m11+m31 | x0*m00+m30 */
- PFMUL ( MM2, MM5 ) /* | x2*m22 */
+ PREFETCHW ( REGIND(EAX) )
+ PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
- PFADD ( MM3, MM5 ) /* | x2*m22+m32 */
- MOVQ ( MM4, REGIND(EDX) ) /* write r0, r1 */
+ PFADD ( MM1, MM4 ) /* x1*m11+m31 | x0*m00+m30 */
+ PFMUL ( MM2, MM5 ) /* | x2*m22 */
- ADD_L ( CONST(16), EDX ) /* next r */
- DEC_L ( ESI ) /* decrement vertex counter */
+ PFADD ( MM3, MM5 ) /* | x2*m22+m32 */
+ MOVQ ( MM4, REGIND(EDX) ) /* write r0, r1 */
- MOVD ( MM5, REGOFF(-8, EDX) ) /* write r2 */
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
+ ADD_L ( CONST(16), EDX ) /* next r */
+ DEC_L ( ESI ) /* decrement vertex counter */
- MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
- JA ( LLBL( G3TP3NRR_2 ) ) /* cnt > 0 ? -> process next vertex */
+ MOVD ( MM5, REGOFF(-8, EDX) ) /* write r2 */
+ MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
-LLBL( G3TP3NRR_3 ):
- FEMMS
+ MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
+ JA ( LLBL( G3TP3NRR_1 ) ) /* cnt > 0 ? -> process next vertex */
- POP_L ( ESI )
- POP_L ( EDI )
+ALIGNTEXT32
+LLBL( G3TP3NRR_2 ):
+ FEMMS
+ POP_L ( EDI )
POP_L ( ESI )
RET
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points3_perspective_raw)
GLNAME( gl_3dnow_transform_points3_perspective_raw ):
@@ -552,14 +494,11 @@ GLNAME( gl_3dnow_transform_points3_perspective_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(4), REGOFF(16, ECX) )
- OR_B ( CONST(15), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_4), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -567,57 +506,65 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
-
CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TPPR_3 ) )
+ JE ( LLBL( G3TPPR_2 ) )
- MOVD ( REGIND(ECX), MM0 ) /* | m00 */
- PUNPCKLDQ ( REGOFF(20, ECX), MM0 ) /* m11 | m00 */
+ PREFETCH ( REGIND(EAX) )
- MOVQ ( REGOFF(32, ECX), MM1 ) /* m21 | m20 */
- MOVD ( REGOFF(40, ECX), MM2 ) /* | m22 */
+ PREFETCHW ( REGIND(EDX) )
- MOVD ( REGOFF(56, ECX), MM3 ) /* | m32 */
+ MOVD ( REGIND(ECX), MM0 ) /* | m00 */
+ PUNPCKLDQ ( REGOFF(20, ECX), MM0 ) /* m11 | m00 */
+
+ MOVQ ( REGOFF(32, ECX), MM1 ) /* m21 | m20 */
+ MOVD ( REGOFF(40, ECX), MM2 ) /* | m22 */
+
+ MOVD ( REGOFF(56, ECX), MM3 ) /* | m32 */
+
+ MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
+ MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
+
+ ADD_L ( EDI, EAX ) /* next vertex */
ALIGNTEXT32
- NOP /* align label */
- NOP
-LLBL( G3TPPR_2 ):
+LLBL( G3TPPR_1 ):
- PXOR ( MM7, MM7 ) /* 0 | 0 */
- MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- ADD_L ( EDI, EAX ) /* next vertex */
+ PREFETCH ( REGIND(EAX) )
- MOVQ ( MM5, MM6 ) /* | x2 */
- PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
+ PXOR ( MM7, MM7 ) /* 0 | 0 */
+ MOVQ ( MM5, MM6 ) /* | x2 */
- PFSUB ( MM5, MM7 ) /* -x2 | -x2 */
- PFMUL ( MM2, MM6 ) /* | x2*m22 */
+ PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
+ PFSUB ( MM5, MM7 ) /* | -x2 */
- PUNPCKLDQ ( MM5, MM5 ) /* x2 | x2 */
- MOVD ( MM7, REGOFF(12, EDX) ) /* write r3 */
+ PFMUL ( MM2, MM6 ) /* | x2*m22 */
+ PUNPCKLDQ ( MM5, MM5 ) /* x2 | x2 */
- PFMUL ( MM1, MM5 ) /* x2*m21 | x2*m20 */
- PFADD ( MM3, MM6 ) /* | x2*m22+m32 */
+ ADD_L ( CONST(16), EDX ) /* next r */
+ PFMUL ( MM1, MM5 ) /* x2*m21 | x2*m20 */
- PFADD ( MM4, MM5 ) /* x1*m11+x2*m21 | x0*m00+x2*m20 */
- ADD_L ( CONST(16), EDX ) /* next r */
+ PFADD ( MM3, MM6 ) /* | x2*m22+m32 */
+ PFADD ( MM4, MM5 ) /* x1*m11+x2*m21 | x0*m00+x2*m20 */
- DEC_L ( ESI ) /* decrement vertex counter */
- MOVD ( MM6, REGOFF(-8, EDX) ) /* write r2 */
+ MOVQ ( MM5, REGOFF(-16, EDX) ) /* write r0, r1 */
+ MOVD ( MM6, REGOFF(-8, EDX) ) /* write r2 */
- MOVQ ( MM5, REGOFF(-16, EDX) ) /* write r0, r1 */
- JA ( LLBL( G3TPPR_2 ) ) /* cnt > 0 ? -> process next vertex */
+ MOVD ( MM7, REGOFF(-4, EDX) ) /* write r3 */
+ MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
-LLBL( G3TPPR_3 ):
- FEMMS
+ MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
+ ADD_L ( EDI, EAX ) /* next vertex */
- POP_L ( ESI )
- POP_L ( EDI )
+ DEC_L ( ESI ) /* decrement vertex counter */
+ JA ( LLBL( G3TPPR_1 ) ) /* cnt > 0 ? -> process next vertex */
+ALIGNTEXT32
+LLBL( G3TPPR_2 ):
+
+ FEMMS
+ POP_L ( EDI )
POP_L ( ESI )
RET
diff --git a/xc/extras/Mesa/src/X86/3dnow_xform_raw4.S b/xc/extras/Mesa/src/X86/3dnow_xform_raw4.S
index 1c5f435be..dedbb8931 100644
--- a/xc/extras/Mesa/src/X86/3dnow_xform_raw4.S
+++ b/xc/extras/Mesa/src/X86/3dnow_xform_raw4.S
@@ -11,7 +11,15 @@
-ALIGNTEXT16
+#define VEC_SIZE_1 1
+#define VEC_SIZE_2 3
+#define VEC_SIZE_3 7
+#define VEC_SIZE_4 15
+
+
+
+
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points4_general_raw)
GLNAME( gl_3dnow_transform_points4_general_raw ):
@@ -20,14 +28,11 @@ GLNAME( gl_3dnow_transform_points4_general_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(4), REGOFF(16, ECX) )
- OR_B ( CONST(15), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_4), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -35,106 +40,77 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
-
- MOVD ( REGIND(ECX), MM0 ) /* | m00 */
- PUNPCKLDQ ( REGOFF(16, ECX), MM0 ) /* m10 | m00 */
-
- MOVD ( REGOFF(4, ECX), MM1 ) /* | m01 */
- PUNPCKLDQ ( REGOFF(20, ECX), MM1 ) /* m11 | m01 */
-
- MOVD ( REGOFF(32, ECX), MM2 ) /* | m20 */
- PUNPCKLDQ ( REGOFF(48, ECX), MM2 ) /* m30 | m20 */
-
- MOVD ( REGOFF(36, ECX), MM3 ) /* | m21 */
- PUNPCKLDQ ( REGOFF(52, ECX), MM3 ) /* m31 | m21 */
-
CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TPGR_4 ) )
-
- PUSH_L ( EAX )
- PUSH_L ( EDX )
- PUSH_L ( ESI )
+ JE ( LLBL( G3TPGR_2 ) )
+ PREFETCHW ( REGIND(EDX) )
-ALIGNTEXT32
-LLBL( G3TPGR_2 ):
+ MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
+ MOVQ ( REGOFF(8, EAX), MM4 ) /* x3 | x2 */
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVQ ( MM4, MM5 ) /* x1 | x0 */
+ ADD_L ( EDI, EAX ) /* next vertex */
- MOVQ ( REGOFF(8, EAX), MM6 ) /* x3 | x2 */
- PFMUL ( MM0, MM4 ) /* x1*m10 | x0*m00 */
+ALIGNTEXT32
+LLBL( G3TPGR_1 ):
- MOVQ ( MM6, MM7 ) /* x3 | x2 */
- PFMUL ( MM1, MM5 ) /* x1*m11 | x0*m01 */
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
- PFMUL ( MM2, MM6 ) /* x3*m30 | x2*m20 */
- PFACC ( MM5, MM4 ) /* x0*m01+x1*m11 | x0*m00+x1*m10 */
+ PREFETCH ( REGIND(EAX) )
- PFMUL ( MM3, MM7 ) /* x3*m31 | x2*m21 */
- ADD_L ( EDI, EAX ) /* next vertex */
+ MOVQ ( MM0, MM2 ) /* x1 | x0 */
+ MOVQ ( MM4, MM6 ) /* x3 | x2 */
- PFACC ( MM7, MM6 ) /* x2*m21+x3*m31 | x2*m20+x3*m30 */
- PFADD ( MM4, MM6 ) /* r1 | r0 */
+ PUNPCKLDQ ( MM0, MM0 ) /* x0 | x0 */
+ PUNPCKHDQ ( MM2, MM2 ) /* x1 | x1 */
- MOVQ ( MM6, REGIND(EDX) ) /* write r0, r1 */
+ MOVQ ( MM0, MM1 ) /* x0 | x0 */
ADD_L ( CONST(16), EDX ) /* next r */
- DEC_L ( ESI ) /* decrement vertex counter */
- JA ( LLBL( G3TPGR_2 ) ) /* cnt > 0 ? -> process next vertex */
- /* and now the second stripe ... */
- MOVD ( REGOFF(8, ECX), MM0 ) /* | m02 */
- PUNPCKLDQ ( REGOFF(24, ECX), MM0 ) /* m12 | m02 */
+ PFMUL ( REGIND(ECX), MM0 ) /* x0*m1 | x0*m0 */
+ MOVQ ( MM2, MM3 ) /* x1 | x1 */
- MOVD ( REGOFF(12, ECX), MM1 ) /* | m03 */
- PUNPCKLDQ ( REGOFF(28, ECX), MM1 ) /* m13 | m03 */
+ PFMUL ( REGOFF(8, ECX), MM1 ) /* x0*m3 | x0*m2 */
+ PUNPCKLDQ ( MM4, MM4 ) /* x2 | x2 */
- MOVD ( REGOFF(40, ECX), MM2 ) /* | m22 */
- PUNPCKLDQ ( REGOFF(56, ECX), MM2 ) /* m32 | m22 */
+ PFMUL ( REGOFF(16, ECX), MM2 ) /* x1*m5 | x1*m4 */
+ MOVQ ( MM4, MM5 ) /* x2 | x2 */
- MOVD ( REGOFF(44, ECX), MM3 ) /* | m23 */
- PUNPCKLDQ ( REGOFF(60, ECX), MM3 ) /* m33 | m23 */
+ PFMUL ( REGOFF(24, ECX), MM3 ) /* x1*m7 | x1*m6 */
+ PUNPCKHDQ ( MM6, MM6 ) /* x3 | x3 */
- POP_L ( ESI ) /* reset counter & pointers */
- POP_L ( EDX )
+ PFMUL ( REGOFF(32, ECX), MM4 ) /* x2*m9 | x2*m8 */
+ MOVQ ( MM6, MM7 ) /* x3 | x3 */
- POP_L ( EAX )
+ PFMUL ( REGOFF(40, ECX), MM5 ) /* x2*m11 | x2*m10 */
+ PFADD ( MM0, MM2 )
+ PFMUL ( REGOFF(48, ECX), MM6 ) /* x3*m13 | x3*m12 */
+ PFADD ( MM1, MM3 )
-ALIGNTEXT32
-LLBL( G3TPGR_3 ):
+ PFMUL ( REGOFF(56, ECX), MM7 ) /* x3*m15 | x3*m14 */
+ PFADD ( MM4, MM6 )
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVQ ( MM4, MM5 ) /* x1 | x0 */
+ PFADD ( MM5, MM7 )
+ PFADD ( MM2, MM6 )
- MOVQ ( REGOFF(8, EAX), MM6 ) /* x3 | x2 */
- PFMUL ( MM0, MM4 ) /* x1*m12 | x0*m02 */
+ PFADD ( MM3, MM7 )
+ MOVQ ( MM6, REGOFF(-16, EDX) )
- MOVQ ( MM6, MM7 ) /* x3 | x2 */
- PFMUL ( MM1, MM5 ) /* x1*m13 | x0*m03 */
+ MOVQ ( MM7, REGOFF(-8, EDX) )
+ MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
- PFMUL ( MM2, MM6 ) /* x3*m32 | x2*m22 */
- PFACC ( MM5, MM4 ) /* x0*m03+x1*m13 | x0*m02+x1*m12 */
+ MOVQ ( REGOFF(8, EAX), MM4 ) /* x3 | x2 */
+ ADD_L ( EDI, EAX ) /* next vertex */
- PFMUL ( MM3, MM7 ) /* x3*m33 | x2*m23 */
- ADD_L ( EDI, EAX ) /* next vertex */
-
- PFACC ( MM7, MM6 ) /* x2*m23+x3*m33 | x2*m22+x3*m32 */
- PFADD ( MM4, MM6 ) /* r3 | r2 */
+ DEC_L ( ESI ) /* decrement vertex counter */
+ JA ( LLBL( G3TPGR_1 ) ) /* cnt > 0 ? -> process next vertex */
- MOVQ ( MM6, REGOFF(8, EDX) ) /* write r2, r3 */
- ADD_L ( CONST(16), EDX ) /* next r */
- DEC_L ( ESI ) /* decrement vertex counter */
- JA ( LLBL( G3TPGR_3 ) ) /* cnt > 0 ? -> process next vertex */
+ALIGNTEXT32
+LLBL( G3TPGR_2 ):
-LLBL( G3TPGR_4 ):
FEMMS
-
- POP_L ( ESI )
POP_L ( EDI )
-
POP_L ( ESI )
RET
@@ -142,7 +118,7 @@ LLBL( G3TPGR_4 ):
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points4_identity_raw)
GLNAME( gl_3dnow_transform_points4_identity_raw ):
@@ -151,14 +127,11 @@ GLNAME( gl_3dnow_transform_points4_identity_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(4), REGOFF(16, ECX) )
- OR_B ( CONST(15), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_4), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -166,27 +139,38 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
+ CMP_L ( CONST(0), ESI )
+ JE ( LLBL( G3TPIR_2 ) )
-LLBL( G3TPIR_3 ):
MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
MOVQ ( REGOFF(8, EAX), MM1 ) /* x3 | x2 */
ADD_L ( EDI, EAX ) /* next vertex */
- MOVQ ( MM0, REGIND(EDX) ) /* r1 | r0 */
- MOVQ ( MM1, REGOFF(8, EDX) ) /* r3 | r2 */
+ALIGNTEXT32
+LLBL( G3TPIR_1 ):
+
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
+
+ PREFETCH ( REGIND(EAX) )
+
ADD_L ( CONST(16), EDX ) /* next r */
+ MOVQ ( MM0, REGOFF(-16, EDX) ) /* r1 | r0 */
+
+ MOVQ ( MM1, REGOFF(-8, EDX) ) /* r3 | r2 */
+ MOVQ ( REGIND(EAX), MM0 ) /* x1 | x0 */
+
+ MOVQ ( REGOFF(8, EAX), MM1 ) /* x3 | x2 */
+ ADD_L ( EDI, EAX ) /* next vertex */
DEC_L ( ESI ) /* decrement vertex counter */
- JA ( LLBL( G3TPIR_3 ) ) /* cnt > 0 ? -> process next vertex */
+ JA ( LLBL( G3TPIR_1 ) ) /* cnt > 0 ? -> process next vertex */
-LLBL( G3TPIR_4 ):
- FEMMS
+ALIGNTEXT32
+LLBL( G3TPIR_2 ):
- POP_L ( ESI )
+ FEMMS
POP_L ( EDI )
-
POP_L ( ESI )
RET
@@ -194,7 +178,7 @@ LLBL( G3TPIR_4 ):
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points4_2d_raw)
GLNAME( gl_3dnow_transform_points4_2d_raw ):
@@ -203,14 +187,11 @@ GLNAME( gl_3dnow_transform_points4_2d_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(4), REGOFF(16, ECX) )
- OR_B ( CONST(15), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_4), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -218,7 +199,8 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
+ CMP_L ( CONST(0), ESI )
+ JE ( LLBL( G3TP2R_2 ) )
MOVD ( REGIND(ECX), MM0 ) /* | m00 */
PUNPCKLDQ ( REGOFF(16, ECX), MM0 ) /* m10 | m00 */
@@ -227,43 +209,48 @@ ALIGNTEXT32
PUNPCKLDQ ( REGOFF(20, ECX), MM1 ) /* m11 | m01 */
MOVQ ( REGOFF(48, ECX), MM2 ) /* m31 | m30 */
- CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TP2R_3 ) )
+ MOVQ ( REGIND(EAX), MM3 ) /* x1 | x0 */
+ MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
+
+ ADD_L ( EDI, EAX ) /* next vertex */
ALIGNTEXT32
-LLBL( G3TP2R_2 ):
+LLBL( G3TP2R_1 ):
- MOVQ ( REGIND(EAX), MM3 ) /* x1 | x0 */
- MOVQ ( MM3, MM4 ) /* x1 | x0 */
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
- MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
- PFMUL ( MM0, MM3 ) /* x1*m10 | x0*m00 */
+ PREFETCH ( REGIND(EAX) )
+ MOVQ ( MM3, MM4 ) /* x1 | x0 */
MOVQ ( MM5, MM6 ) /* x3 | x2 */
- PFMUL ( MM1, MM4 ) /* x1*m11 | x0*m01 */
+ PFMUL ( MM1, MM4 ) /* x1*m11 | x0*m01 */
PUNPCKHDQ ( MM6, MM6 ) /* x3 | x3 */
- ADD_L ( EDI, EAX ) /* next vertex */
- PFMUL ( MM2, MM6 ) /* x3*m31 | x3*m30 */
+ PFMUL ( MM0, MM3 ) /* x1*m10 | x0*m00 */
+ ADD_L ( CONST(16), EDX ) /* next r */
+
PFACC ( MM4, MM3 ) /* x0*m01+x1*m11 | x0*m00+x1*m10 */
+ PFMUL ( MM2, MM6 ) /* x3*m31 | x3*m30 */
PFADD ( MM6, MM3 ) /* r1 | r0 */
- MOVQ ( MM5, REGOFF(8, EDX) ) /* write r2, r3 */
+ MOVQ ( MM5, REGOFF(-8, EDX) ) /* write r2, r3 */
- MOVQ ( MM3, REGIND(EDX) ) /* write r0, r1 */
- ADD_L ( CONST(16), EDX ) /* next r */
+ MOVQ ( MM3, REGOFF(-16, EDX) ) /* write r0, r1 */
+ MOVQ ( REGIND(EAX), MM3 ) /* x1 | x0 */
+
+ MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
+ ADD_L ( EDI, EAX ) /* next vertex */
DEC_L ( ESI ) /* decrement vertex counter */
- JA ( LLBL( G3TP2R_2 ) ) /* cnt > 0 ? -> process next vertex */
+ JA ( LLBL( G3TP2R_1 ) ) /* cnt > 0 ? -> process next vertex */
-LLBL( G3TP2R_3 ):
- FEMMS
+ALIGNTEXT32
+LLBL( G3TP2R_2 ):
- POP_L ( ESI )
+ FEMMS
POP_L ( EDI )
-
POP_L ( ESI )
RET
@@ -271,7 +258,7 @@ LLBL( G3TP2R_3 ):
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points4_2d_no_rot_raw)
GLNAME( gl_3dnow_transform_points4_2d_no_rot_raw ):
@@ -280,14 +267,11 @@ GLNAME( gl_3dnow_transform_points4_2d_no_rot_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(4), REGOFF(16, ECX) )
- OR_B ( CONST(15), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_4), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -295,45 +279,51 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
+ CMP_L ( CONST(0), ESI )
+ JE ( LLBL( G3TP2NRR_3 ) )
MOVD ( REGIND(ECX), MM0 ) /* | m00 */
PUNPCKLDQ ( REGOFF(20, ECX), MM0 ) /* m11 | m00 */
MOVQ ( REGOFF(48, ECX), MM1 ) /* m31 | m30 */
- CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TP2NRR_3 ) )
+ MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
+ MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
+
+ ADD_L ( EDI, EAX ) /* next vertex */
ALIGNTEXT32
LLBL( G3TP2NRR_2 ):
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
+
+ PREFETCH ( REGIND(EAX) )
PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
MOVQ ( MM5, MM6 ) /* x3 | x2 */
+ ADD_L ( CONST(16), EDX ) /* next r */
PUNPCKHDQ ( MM6, MM6 ) /* x3 | x3 */
- ADD_L ( EDI, EAX ) /* next vertex */
PFMUL ( MM1, MM6 ) /* x3*m31 | x3*m30 */
- MOVQ ( MM5, REGOFF(8, EDX) ) /* write r2, r3 */
-
PFADD ( MM4, MM6 ) /* x1*m11+x3*m31 | x0*m00+x3*m30 */
- MOVQ ( MM6, REGIND(EDX) ) /* write r0, r1 */
- ADD_L ( CONST(16), EDX ) /* next r */
+ MOVQ ( MM6, REGOFF(-16, EDX) ) /* write r0, r1 */
+ MOVQ ( MM5, REGOFF(-8, EDX) ) /* write r2, r3 */
+
+ MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
+ MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
+
+ ADD_L ( EDI, EAX ) /* next vertex */
DEC_L ( ESI ) /* decrement vertex counter */
JA ( LLBL( G3TP2NRR_2 ) ) /* cnt > 0 ? -> process next vertex */
+ALIGNTEXT32
LLBL( G3TP2NRR_3 ):
- FEMMS
- POP_L ( ESI )
+ FEMMS
POP_L ( EDI )
-
POP_L ( ESI )
RET
@@ -341,7 +331,7 @@ LLBL( G3TP2NRR_3 ):
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points4_3d_raw)
GLNAME( gl_3dnow_transform_points4_3d_raw ):
@@ -350,14 +340,11 @@ GLNAME( gl_3dnow_transform_points4_3d_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(4), REGOFF(16, ECX) )
- OR_B ( CONST(15), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_4), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -365,92 +352,73 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
-
- MOVD ( REGIND(ECX), MM0 ) /* | m00 */
- PUNPCKLDQ ( REGOFF(16, ECX), MM0 ) /* m10 | m00 */
-
- MOVD ( REGOFF(4, ECX), MM1 ) /* | m01 */
- PUNPCKLDQ ( REGOFF(20, ECX), MM1 ) /* m11 | m01 */
-
- MOVD ( REGOFF(32, ECX), MM2 ) /* | m20 */
- PUNPCKLDQ ( REGOFF(48, ECX), MM2 ) /* m30 | m20 */
-
- MOVD ( REGOFF(36, ECX), MM3 ) /* | m21 */
- PUNPCKLDQ ( REGOFF(52, ECX), MM3 ) /* m31 | m21 */
-
CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TP3R_4 ) )
+ JE ( LLBL( G3TP3R_2 ) )
- PUSH_L ( EAX )
- PUSH_L ( EDX )
- PUSH_L ( ESI )
+ MOVD ( REGOFF(8, ECX), MM6 ) /* | m2 */
+ PUNPCKLDQ ( REGOFF(24, ECX), MM6 ) /* m6 | m2 */
+ MOVD ( REGOFF(40, ECX), MM7 ) /* | m10 */
+ PUNPCKLDQ ( REGOFF(56, ECX), MM7 ) /* m14 | m10 */
+
+ MOVQ ( REGIND(EAX), MM2 ) /* x1 | x0 */
+ MOVQ ( REGOFF(8, EAX), MM3 ) /* x3 | x2 */
ALIGNTEXT32
-LLBL( G3TP3R_2 ):
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVQ ( MM4, MM5 ) /* x1 | x0 */
+LLBL( G3TP3R_1 ):
- PFMUL ( MM0, MM4 ) /* x1*m10 | x0*m00 */
- MOVQ ( REGOFF(8, EAX), MM6 ) /* x3 | x2 */
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
- PFMUL ( MM1, MM5 ) /* x1*m11 | x0*m01 */
- MOVQ ( MM6, MM7 ) /* x3 | x2 */
+ PREFETCH ( REGOFF(32, EAX) ) /* hopefully array is tightly packed */
- PFACC ( MM5, MM4 ) /* x0*m01+x1*m11 | x0*m00+x1*m10 */
- PFMUL ( MM2, MM6 ) /* x3*m30 | x2*m20 */
+ MOVQ ( MM2, MM0 ) /* x1 | x0 */
+ MOVQ ( MM3, MM4 ) /* x3 | x2 */
- PFMUL ( MM3, MM7 ) /* x3*m31 | x2*m21 */
- ADD_L ( EDI, EAX ) /* next vertex */
+ MOVQ ( MM0, MM1 ) /* x1 | x0 */
+ MOVQ ( MM4, MM5 ) /* x3 | x2 */
- PFACC ( MM7, MM6 ) /* x2*m21+x3*m31 | x2*m20+x3*m30 */
- PFADD ( MM4, MM6 ) /* r1 | r0 */
+ PUNPCKLDQ ( MM0, MM0 ) /* x0 | x0 */
+ PUNPCKHDQ ( MM1, MM1 ) /* x1 | x1 */
+
+ PFMUL ( REGIND(ECX), MM0 ) /* x0*m1 | x0*m0 */
+ PUNPCKLDQ ( MM3, MM3 ) /* x2 | x2 */
- MOVQ ( MM6, REGIND(EDX) ) /* write r0, r1 */
- ADD_L ( CONST(16), EDX ) /* next r */
-
- DEC_L ( ESI ) /* decrement vertex counter */
- JA ( LLBL( G3TP3R_2 ) ) /* cnt > 0 ? -> process next vertex */
- /* and now the second stripe ... */
- MOVD ( REGOFF(8, ECX), MM0 ) /* | m02 */
- PUNPCKLDQ ( REGOFF(24, ECX), MM0 ) /* m12 | m02 */
+ PFMUL ( REGOFF(16, ECX), MM1 ) /* x1*m5 | x1*m4 */
+ PUNPCKHDQ ( MM4, MM4 ) /* x3 | x3 */
- MOVD ( REGOFF(40, ECX), MM2 ) /* | m22 */
- PUNPCKLDQ ( REGOFF(56, ECX), MM2 ) /* m32 | m22 */
+ PFMUL ( MM6, MM2 ) /* x1*m6 | x0*m2 */
+ PFADD ( MM0, MM1 ) /* x0*m1+x1*m5 | x0*m0+x1*m4 */
- POP_L ( ESI ) /* reset counter & pointers */
- POP_L ( EDX )
+ PFMUL ( REGOFF(32, ECX), MM3 ) /* x2*m9 | x2*m8 */
+ ADD_L ( CONST(16), EDX ) /* next r */
- POP_L ( EAX )
+ PFMUL ( REGOFF(48, ECX), MM4 ) /* x3*m13 | x3*m12 */
+ PFADD ( MM1, MM3 ) /* x0*m1+..+x2*m9| x0*m0+...+x2*m8 */
+
+ PFMUL ( MM7, MM5 ) /* x3*m14 | x2*m10 */
+ PFADD ( MM3, MM4 ) /* r1 | r0 */
+ PFACC ( MM2, MM5 ) /* x0*m2+x1*m6 | x2*m10+x3*m14 */
+ MOVD ( REGOFF(12, EAX), MM0 ) /* | x3 */
-ALIGNTEXT32
-LLBL( G3TP3R_3 ):
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVQ ( REGOFF(8, EAX), MM6 ) /* x3 | x2 */
+ ADD_L ( EDI, EAX ) /* next vertex */
+ PFACC ( MM0, MM5 ) /* r3 | r2 */
- MOVD ( REGOFF(12, EAX), MM7 ) /* | x3 */
- PFMUL ( MM0, MM4 ) /* x1*m12 | x0*m02 */
+ MOVQ ( MM4, REGOFF(-16, EDX) ) /* write r0, r1 */
+ MOVQ ( MM5, REGOFF(-8, EDX) ) /* write r2, r3 */
- PFMUL ( MM2, MM6 ) /* x3*m32 | x2*m22 */
- ADD_L ( EDI, EAX ) /* next vertex */
+ MOVQ ( REGIND(EAX), MM2 ) /* x1 | x0 */
+ MOVQ ( REGOFF(8, EAX), MM3 ) /* x3 | x2 */
- PFACC ( MM4, MM6 ) /* x0*m03+x1*m13 | x0*m02+x1*m12 */
- PFACC ( MM7, MM6 ) /* x3 | x2*m22+x3*m32 */
+ DEC_L ( ESI ) /* decrement vertex counter */
+ JA ( LLBL( G3TP3R_1 ) ) /* cnt > 0 ? -> process next vertex */
- MOVQ ( MM6, REGOFF(8, EDX) ) /* write r2, r3 */
- ADD_L ( CONST(16), EDX ) /* next r */
- DEC_L ( ESI ) /* decrement vertex counter */
- JA ( LLBL( G3TP3R_3 ) ) /* cnt > 0 ? -> process next vertex */
+ALIGNTEXT32
+LLBL( G3TP3R_2 ):
-LLBL( G3TP3R_4 ):
FEMMS
-
- POP_L ( ESI )
POP_L ( EDI )
-
POP_L ( ESI )
RET
@@ -458,7 +426,7 @@ LLBL( G3TP3R_4 ):
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points4_3d_no_rot_raw)
GLNAME( gl_3dnow_transform_points4_3d_no_rot_raw ):
@@ -467,14 +435,11 @@ GLNAME( gl_3dnow_transform_points4_3d_no_rot_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(4), REGOFF(16, ECX) )
- OR_B ( CONST(15), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_4), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -482,60 +447,66 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
+ CMP_L ( CONST(0), ESI )
+ JE ( LLBL( G3TP3NRR_2 ) )
- MOVD ( REGIND(ECX), MM0 ) /* | m00 */
- PUNPCKLDQ ( REGOFF(20, ECX), MM0 ) /* m11 | m00 */
+ MOVD ( REGIND(ECX), MM0 ) /* | m00 */
+ PUNPCKLDQ ( REGOFF(20, ECX), MM0 ) /* m11 | m00 */
- MOVD ( REGOFF(40, ECX), MM2 ) /* | m22 */
- PUNPCKLDQ ( REGOFF(56, ECX), MM2 ) /* m32 | m22 */
+ MOVD ( REGOFF(40, ECX), MM2 ) /* | m22 */
+ PUNPCKLDQ ( REGOFF(56, ECX), MM2 ) /* m32 | m22 */
- MOVQ ( REGOFF(48, ECX), MM1 ) /* m31 | m30 */
- CMP_L ( CONST(0), ESI )
+ MOVQ ( REGOFF(48, ECX), MM1 ) /* m31 | m30 */
- JE ( LLBL( G3TP3NRR_3 ) )
+ MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
+ MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
+ MOVD ( REGOFF(12, EAX), MM7 ) /* | x3 */
+ ADD_L ( EDI, EAX ) /* next vertex */
ALIGNTEXT32
-LLBL( G3TP3NRR_2 ):
+LLBL( G3TP3NRR_1 ):
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
- MOVQ ( MM5, MM6 ) /* x3 | x2 */
- PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
+ PREFETCH ( REGOFF(32, EAX) ) /* hopefully stride is zero */
- MOVD ( REGOFF(12, EAX), MM7 ) /* | x3 */
- PFMUL ( MM2, MM5 ) /* x3*m32 | x2*m22 */
+ MOVQ ( MM5, MM6 ) /* x3 | x2 */
+ PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
- PUNPCKHDQ ( MM6, MM6 ) /* x3 | x3 */
- PFACC ( MM7, MM5 ) /* x3 | x2*m22+x3*m32 */
+ PUNPCKHDQ ( MM6, MM6 ) /* x3 | x3 */
+ PFMUL ( MM2, MM5 ) /* x3*m32 | x2*m22 */
- PFMUL ( MM1, MM6 ) /* x3*m31 | x3*m30 */
- ADD_L ( EDI, EAX ) /* next vertex */
+ PFMUL ( MM1, MM6 ) /* x3*m31 | x3*m30 */
+ PFACC ( MM7, MM5 ) /* x3 | x2*m22+x3*m32 */
- PFADD ( MM6, MM4 ) /* x1*m11+x3*m31 | x0*m00+x3*m30 */
- MOVQ ( MM5, REGOFF(8, EDX) ) /* write r2, r3 */
+ PFADD ( MM6, MM4 ) /* x1*m11+x3*m31 | x0*m00+x3*m30 */
+ ADD_L ( CONST(16), EDX ) /* next r */
- MOVQ ( MM4, REGIND(EDX) ) /* write r0, r1 */
- ADD_L ( CONST(16), EDX ) /* next r */
+ MOVQ ( MM4, REGOFF(-16, EDX) ) /* write r0, r1 */
+ MOVQ ( MM5, REGOFF(-8, EDX) ) /* write r2, r3 */
- DEC_L ( ESI ) /* decrement vertex counter */
- JA ( LLBL( G3TP3NRR_2 ) ) /* cnt > 0 ? -> process next vertex */
+ MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
+ MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
-LLBL( G3TP3NRR_3 ):
- FEMMS
+ MOVD ( REGOFF(12, EAX), MM7 ) /* | x3 */
+ ADD_L ( EDI, EAX ) /* next vertex */
- POP_L ( ESI )
- POP_L ( EDI )
+ DEC_L ( ESI ) /* decrement vertex counter */
+ JA ( LLBL( G3TP3NRR_1 ) ) /* cnt > 0 ? -> process next vertex */
+
+ALIGNTEXT32
+LLBL( G3TP3NRR_2 ):
+ FEMMS
+ POP_L ( EDI )
POP_L ( ESI )
RET
-ALIGNTEXT16
+ALIGNTEXT32
GLOBL GLNAME(gl_3dnow_transform_points4_perspective_raw)
GLNAME( gl_3dnow_transform_points4_perspective_raw ):
@@ -544,14 +515,11 @@ GLNAME( gl_3dnow_transform_points4_perspective_raw ):
MOV_L ( REGOFF(12, ESP), ESI )
MOV_L ( REGOFF(16, ESP), EAX )
MOV_L ( CONST(4), REGOFF(16, ECX) )
- OR_B ( CONST(15), REGOFF(20, ECX) )
+ OR_B ( CONST(VEC_SIZE_4), REGOFF(20, ECX) )
MOV_L ( REGOFF(8, EAX), EDX )
MOV_L ( EDX, REGOFF(8, ECX) )
-ALIGNTEXT32
-
PUSH_L ( EDI )
- PUSH_L ( ESI )
MOV_L ( REGOFF(4, ECX), EDX )
MOV_L ( ESI, ECX )
@@ -559,7 +527,12 @@ ALIGNTEXT32
MOV_L ( REGOFF(12, EAX), EDI )
MOV_L ( REGOFF(4, EAX), EAX )
- FEMMS
+ CMP_L ( CONST(0), ESI )
+ JE ( LLBL( G3TPPR_2 ) )
+
+ PREFETCH ( REGIND(EAX) )
+
+ PREFETCHW ( REGIND(EDX) )
MOVD ( REGIND(ECX), MM0 ) /* | m00 */
PUNPCKLDQ ( REGOFF(20, ECX), MM0 ) /* m11 | m00 */
@@ -570,49 +543,50 @@ ALIGNTEXT32
MOVQ ( REGOFF(32, ECX), MM2 ) /* m21 | m20 */
PXOR ( MM7, MM7 ) /* 0 | 0 */
- CMP_L ( CONST(0), ESI )
- JE ( LLBL( G3TPPR_3 ) )
+ MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
+ MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
+ MOVD ( REGOFF(8, EAX), MM3 ) /* | x2 */
+ ADD_L ( EDI, EAX ) /* next vertex */
ALIGNTEXT32
-LLBL( G3TPPR_2 ):
+LLBL( G3TPPR_1 ):
- MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
+ PREFETCHW ( REGOFF(32, EDX) ) /* prefetch 2 vertices ahead */
+
+ PREFETCH ( REGOFF(32, EAX) ) /* hopefully stride is zero */
- PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
MOVQ ( MM5, MM6 ) /* x3 | x2 */
+ PFMUL ( MM0, MM4 ) /* x1*m11 | x0*m00 */
PUNPCKLDQ ( MM5, MM5 ) /* x2 | x2 */
+ ADD_L ( CONST(16), EDX ) /* next r */
+
PFMUL ( MM2, MM5 ) /* x2*m21 | x2*m20 */
+ PFSUBR ( MM7, MM3 ) /* | -x2 */
+ PFMUL ( MM1, MM6 ) /* x3*m32 | x2*m22 */
PFADD ( MM4, MM5 ) /* x1*m11+x2*m21 | x0*m00+x2*m20 */
- MOVQ ( MM5, REGIND(EDX) ) /* write r0, r1 */
- MOVD ( REGOFF(8, EAX), MM5 ) /* | x2 */
- PFMUL ( MM1, MM6 ) /* x3*m32 | x2*m22 */
+ PFACC ( MM3, MM6 ) /* -x2 | x2*m22+x3*m32 */
+ MOVQ ( MM5, REGOFF(-16, EDX) ) /* write r0, r1 */
- PFSUBR ( MM7, MM5 ) /* | -x2 */
- ADD_L ( EDI, EAX ) /* next vertex */
+ MOVQ ( MM6, REGOFF(-8, EDX) ) /* write r2, r3 */
+ MOVQ ( REGIND(EAX), MM4 ) /* x1 | x0 */
- PFACC ( MM5, MM6 ) /* -x2 | x2*m22+x3*m32 */
- MOVQ ( MM6, REGOFF(8, EDX) ) /* write r2, r3 */
+ MOVQ ( REGOFF(8, EAX), MM5 ) /* x3 | x2 */
+ MOVD ( REGOFF(8, EAX), MM3 ) /* | x2 */
- ADD_L ( CONST(16), EDX ) /* next r */
+ ADD_L ( EDI, EAX ) /* next vertex */
DEC_L ( ESI ) /* decrement vertex counter */
- JA ( LLBL( G3TPPR_2 ) ) /* cnt > 0 ? -> process next vertex */
+ JA ( LLBL( G3TPPR_1 ) ) /* cnt > 0 ? -> process next vertex */
-LLBL( G3TPPR_3 ):
- FEMMS
+ALIGNTEXT32
+LLBL( G3TPPR_2 ):
- POP_L ( ESI )
+ FEMMS
POP_L ( EDI )
-
POP_L ( ESI )
RET
-
-
-
-
diff --git a/xc/extras/Mesa/src/X86/assyntax.h b/xc/extras/Mesa/src/X86/assyntax.h
index 2243d206c..92bcfffde 100644
--- a/xc/extras/Mesa/src/X86/assyntax.h
+++ b/xc/extras/Mesa/src/X86/assyntax.h
@@ -1575,6 +1575,7 @@ SECTION _DATA public align=16 class=DATA use32 flat
#define FEMMS femms
#define PREFETCH(a) prefetch P_ARG1(a)
+#define PREFETCHW(a) prefetchw P_ARG1(a)
/* Intel SSE */
#define ADDPS(a, b) addps P_ARG2(a, b)
diff --git a/xc/extras/Mesa/src/accum.c b/xc/extras/Mesa/src/accum.c
index b10b456ec..2abd10e8a 100644
--- a/xc/extras/Mesa/src/accum.c
+++ b/xc/extras/Mesa/src/accum.c
@@ -1,4 +1,4 @@
-/* $Id: accum.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: accum.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -34,6 +34,7 @@
#include "mem.h"
#include "masking.h"
#include "span.h"
+#include "state.h"
#include "types.h"
#endif
@@ -66,7 +67,8 @@
-void gl_alloc_accum_buffer( GLcontext *ctx )
+void
+_mesa_alloc_accum_buffer( GLcontext *ctx )
{
GLint n;
@@ -343,7 +345,7 @@ _mesa_Accum( GLenum op, GLfloat value )
if (ctx->IntegerAccumMode && value != 1.0)
rescale_accum(ctx);
- if (ctx->IntegerAccumMode) {
+ if (ctx->IntegerAccumMode && ctx->IntegerAccumScaler > 0) {
/* build lookup table to avoid many floating point multiplies */
const GLfloat mult = ctx->IntegerAccumScaler;
static GLchan multTable[32768];
@@ -419,7 +421,8 @@ _mesa_Accum( GLenum op, GLfloat value )
/*
* Clear the accumulation Buffer.
*/
-void gl_clear_accum_buffer( GLcontext *ctx )
+void
+_mesa_clear_accum_buffer( GLcontext *ctx )
{
GLuint buffersize;
GLfloat acc_scale;
diff --git a/xc/extras/Mesa/src/accum.h b/xc/extras/Mesa/src/accum.h
index 1e26fb0b7..584fc979d 100644
--- a/xc/extras/Mesa/src/accum.h
+++ b/xc/extras/Mesa/src/accum.h
@@ -1,4 +1,4 @@
-/* $Id: accum.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: accum.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -25,9 +25,6 @@
*/
-
-
-
#ifndef ACCUM_H
#define ACCUM_H
@@ -35,10 +32,12 @@
#include "types.h"
-extern void gl_alloc_accum_buffer( GLcontext *ctx );
+extern void
+_mesa_alloc_accum_buffer( GLcontext *ctx );
-extern void gl_clear_accum_buffer( GLcontext *ctx );
+extern void
+_mesa_clear_accum_buffer( GLcontext *ctx );
extern void
diff --git a/xc/extras/Mesa/src/all.h b/xc/extras/Mesa/src/all.h
index 7e8e99d78..187c2f2be 100644
--- a/xc/extras/Mesa/src/all.h
+++ b/xc/extras/Mesa/src/all.h
@@ -1,10 +1,10 @@
-/* $Id: all.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: all.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -49,11 +49,11 @@
#include "accum.h"
#include "alpha.h"
#include "alphabuf.h"
-#include "asm-386.h"
#include "attrib.h"
#include "bbox.h"
#include "bitmap.h"
#include "blend.h"
+#include "buffers.h"
#include "clip.h"
#include "colortab.h"
#include "config.h"
@@ -75,8 +75,9 @@
#include "get.h"
#include "glapi.h"
#include "glapinoop.h"
-#include "glmisc.h"
+#include "glthread.h"
#include "hash.h"
+#include "hint.h"
#include "image.h"
#include "imaging.h"
#include "light.h"
@@ -89,6 +90,7 @@
#include "mmath.h"
#include "pb.h"
#include "pixel.h"
+#include "pipeline.h"
#include "points.h"
#include "polygon.h"
#include "quads.h"
@@ -99,11 +101,13 @@
#include "shade.h"
#include "span.h"
#include "stages.h"
+#include "state.h"
#include "stencil.h"
#include "teximage.h"
#include "texobj.h"
#include "texstate.h"
#include "texture.h"
+#include "translate.h"
#include "triangle.h"
#include "types.h"
#include "varray.h"
diff --git a/xc/extras/Mesa/src/alpha.c b/xc/extras/Mesa/src/alpha.c
index 01c92f560..d6a4479d8 100644
--- a/xc/extras/Mesa/src/alpha.c
+++ b/xc/extras/Mesa/src/alpha.c
@@ -1,10 +1,10 @@
-/* $Id: alpha.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: alpha.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -80,8 +80,9 @@ _mesa_AlphaFunc( GLenum func, GLclampf ref )
* Return: 0 = all pixels in the span failed the alpha test.
* 1 = one or more pixels passed the alpha test.
*/
-GLint gl_alpha_test( const GLcontext* ctx,
- GLuint n, CONST GLubyte rgba[][4], GLubyte mask[] )
+GLint
+_mesa_alpha_test( const GLcontext *ctx,
+ GLuint n, CONST GLubyte rgba[][4], GLubyte mask[] )
{
GLuint i;
GLubyte ref = ctx->Color.AlphaRef;
diff --git a/xc/extras/Mesa/src/alpha.h b/xc/extras/Mesa/src/alpha.h
index 72355a7cd..8dace1a23 100644
--- a/xc/extras/Mesa/src/alpha.h
+++ b/xc/extras/Mesa/src/alpha.h
@@ -1,10 +1,10 @@
-/* $Id: alpha.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: alpha.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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,8 +32,9 @@
#include "types.h"
-extern GLint gl_alpha_test( const GLcontext *ctx, GLuint n,
- CONST GLubyte rgba[][4], GLubyte mask[] );
+extern GLint
+_mesa_alpha_test( const GLcontext *ctx, GLuint n,
+ CONST GLubyte rgba[][4], GLubyte mask[] );
extern void
diff --git a/xc/extras/Mesa/src/alphabuf.c b/xc/extras/Mesa/src/alphabuf.c
index cdf01af04..86ac5e48b 100644
--- a/xc/extras/Mesa/src/alphabuf.c
+++ b/xc/extras/Mesa/src/alphabuf.c
@@ -1,4 +1,4 @@
-/* $Id: alphabuf.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: alphabuf.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/alphabuf.h b/xc/extras/Mesa/src/alphabuf.h
index d8d01ffbb..7038611b9 100644
--- a/xc/extras/Mesa/src/alphabuf.h
+++ b/xc/extras/Mesa/src/alphabuf.h
@@ -1,10 +1,10 @@
-/* $Id: alphabuf.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: alphabuf.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -25,10 +25,6 @@
*/
-
-
-
-
#ifndef ALPHABUF_H
#define ALPHABUF_H
@@ -64,9 +60,9 @@ extern void gl_write_mono_alpha_pixels( GLcontext* ctx,
const GLubyte mask[] );
-extern void gl_read_alpha_span( GLcontext* ctx,
- GLuint n, GLint x, GLint y,
- GLubyte rgba[][4] );
+extern void gl_read_alpha_span( GLcontext* ctx,
+ GLuint n, GLint x, GLint y,
+ GLubyte rgba[][4] );
extern void gl_read_alpha_pixels( GLcontext* ctx,
diff --git a/xc/extras/Mesa/src/attrib.c b/xc/extras/Mesa/src/attrib.c
index 9bcf49c35..5bfc49116 100644
--- a/xc/extras/Mesa/src/attrib.c
+++ b/xc/extras/Mesa/src/attrib.c
@@ -1,10 +1,10 @@
-/* $Id: attrib.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: attrib.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.1
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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,8 +30,8 @@
#else
#include "glheader.h"
#include "attrib.h"
+#include "buffers.h"
#include "context.h"
-#include "glmisc.h"
#include "enable.h"
#include "enums.h"
#include "mem.h"
@@ -47,7 +47,8 @@
* Allocate a new attribute state node. These nodes have a
* "kind" value and a pointer to a struct of state data.
*/
-static struct gl_attrib_node *new_attrib_node( GLbitfield kind )
+static struct gl_attrib_node *
+new_attrib_node( GLbitfield kind )
{
struct gl_attrib_node *an = MALLOC_STRUCT(gl_attrib_node);
if (an) {
@@ -61,8 +62,9 @@ static struct gl_attrib_node *new_attrib_node( GLbitfield kind )
/*
* Copy texture object state from one texture object to another.
*/
-static void copy_texobj_state( struct gl_texture_object *dest,
- const struct gl_texture_object *src )
+static void
+copy_texobj_state( struct gl_texture_object *dest,
+ const struct gl_texture_object *src )
{
/*
dest->Name = src->Name;
@@ -92,11 +94,13 @@ static void copy_texobj_state( struct gl_texture_object *dest,
-void gl_PushAttrib( GLcontext* ctx, GLbitfield mask )
+void
+_mesa_PushAttrib(GLbitfield mask)
{
struct gl_attrib_node *newnode;
struct gl_attrib_node *head;
+ GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glPushAttrib");
if (MESA_VERBOSE&VERBOSE_API)
@@ -386,9 +390,11 @@ void gl_PushAttrib( GLcontext* ctx, GLbitfield mask )
* This function is kind of long just because we have to call a lot
* of device driver functions to update device driver state.
*/
-void gl_PopAttrib( GLcontext* ctx )
+void
+_mesa_PopAttrib(void)
{
struct gl_attrib_node *attr, *next;
+ GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glPopAttrib");
@@ -760,11 +766,13 @@ void gl_PopAttrib( GLcontext* ctx )
#define GL_CLIENT_UNPACK_BIT (1<<21)
-void gl_PushClientAttrib( GLcontext *ctx, GLbitfield mask )
+void
+_mesa_PushClientAttrib(GLbitfield mask)
{
struct gl_attrib_node *newnode;
struct gl_attrib_node *head;
+ GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glPushClientAttrib");
if (ctx->ClientAttribStackDepth>=MAX_CLIENT_ATTRIB_STACK_DEPTH) {
@@ -810,10 +818,12 @@ void gl_PushClientAttrib( GLcontext *ctx, GLbitfield mask )
-void gl_PopClientAttrib( GLcontext *ctx )
+void
+_mesa_PopClientAttrib(void)
{
struct gl_attrib_node *attr, *next;
+ GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glPopClientAttrib");
if (ctx->ClientAttribStackDepth==0) {
@@ -854,35 +864,3 @@ void gl_PopClientAttrib( GLcontext *ctx )
-void
-_mesa_PushAttrib( GLbitfield mask )
-{
- GET_CURRENT_CONTEXT(ctx);
- gl_PushAttrib(ctx, mask);
-}
-
-
-void
-_mesa_PopAttrib( void )
-{
- GET_CURRENT_CONTEXT(ctx);
- gl_PopAttrib(ctx);
-}
-
-
-void
-_mesa_PushClientAttrib( GLbitfield mask )
-{
- GET_CURRENT_CONTEXT(ctx);
- gl_PushClientAttrib(ctx, mask);
-}
-
-
-void
-_mesa_PopClientAttrib( void )
-{
- GET_CURRENT_CONTEXT(ctx);
- gl_PopClientAttrib(ctx);
-}
-
-
diff --git a/xc/extras/Mesa/src/attrib.h b/xc/extras/Mesa/src/attrib.h
index 91700e684..d25eed1e6 100644
--- a/xc/extras/Mesa/src/attrib.h
+++ b/xc/extras/Mesa/src/attrib.h
@@ -1,10 +1,10 @@
-/* $Id: attrib.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: attrib.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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,15 +32,6 @@
#include "types.h"
-extern void gl_PushAttrib( GLcontext* ctx, GLbitfield mask );
-
-extern void gl_PopAttrib( GLcontext* ctx );
-
-extern void gl_PushClientAttrib( GLcontext *ctx, GLbitfield mask );
-
-extern void gl_PopClientAttrib( GLcontext *ctx );
-
-
extern void
_mesa_PushAttrib( GLbitfield mask );
diff --git a/xc/extras/Mesa/src/bbox.c b/xc/extras/Mesa/src/bbox.c
index d8e1c4a9d..58d0c143a 100644
--- a/xc/extras/Mesa/src/bbox.c
+++ b/xc/extras/Mesa/src/bbox.c
@@ -1,4 +1,4 @@
-/* $Id: bbox.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: bbox.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/bbox.h b/xc/extras/Mesa/src/bbox.h
index fa5636e8f..be236ce07 100644
--- a/xc/extras/Mesa/src/bbox.h
+++ b/xc/extras/Mesa/src/bbox.h
@@ -1,4 +1,4 @@
-/* $Id: bbox.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: bbox.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/bitmap.c b/xc/extras/Mesa/src/bitmap.c
index 6732fe7f1..8792f8485 100644
--- a/xc/extras/Mesa/src/bitmap.c
+++ b/xc/extras/Mesa/src/bitmap.c
@@ -1,4 +1,4 @@
-/* $Id: bitmap.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: bitmap.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -36,6 +36,7 @@
#include "macros.h"
#include "pb.h"
#include "pixel.h"
+#include "state.h"
#include "types.h"
#include "vbrender.h"
#endif
diff --git a/xc/extras/Mesa/src/bitmap.h b/xc/extras/Mesa/src/bitmap.h
index d68144e3b..67afa56df 100644
--- a/xc/extras/Mesa/src/bitmap.h
+++ b/xc/extras/Mesa/src/bitmap.h
@@ -1,4 +1,4 @@
-/* $Id: bitmap.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: bitmap.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/blend.c b/xc/extras/Mesa/src/blend.c
index 047bfbe26..72ba8cd51 100644
--- a/xc/extras/Mesa/src/blend.c
+++ b/xc/extras/Mesa/src/blend.c
@@ -1,4 +1,4 @@
-/* $Id: blend.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: blend.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -41,7 +41,8 @@
#endif
-void _mesa_BlendFunc( GLenum sfactor, GLenum dfactor )
+void
+_mesa_BlendFunc( GLenum sfactor, GLenum dfactor )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glBlendFunc");
@@ -273,8 +274,9 @@ _mesa_BlendColorEXT( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha
/*
* Common transparency blending mode.
*/
-static void _BLENDAPI blend_transparency( GLcontext *ctx, GLuint n, const GLubyte mask[],
- GLubyte rgba[][4], CONST GLubyte dest[][4] )
+static void _BLENDAPI
+blend_transparency( GLcontext *ctx, GLuint n, const GLubyte mask[],
+ GLubyte rgba[][4], CONST GLubyte dest[][4] )
{
GLuint i;
ASSERT(ctx->Color.BlendEquation==GL_FUNC_ADD_EXT);
@@ -318,8 +320,9 @@ static void _BLENDAPI blend_transparency( GLcontext *ctx, GLuint n, const GLubyt
/*
* Add src and dest.
*/
-static void _BLENDAPI blend_add( GLcontext *ctx, GLuint n, const GLubyte mask[],
- GLubyte rgba[][4], CONST GLubyte dest[][4] )
+static void _BLENDAPI
+blend_add( GLcontext *ctx, GLuint n, const GLubyte mask[],
+ GLubyte rgba[][4], CONST GLubyte dest[][4] )
{
GLuint i;
ASSERT(ctx->Color.BlendEquation==GL_FUNC_ADD_EXT);
@@ -337,7 +340,7 @@ static void _BLENDAPI blend_add( GLcontext *ctx, GLuint n, const GLubyte mask[],
rgba[i][GCOMP] = (GLubyte) MIN2( g, 255 );
rgba[i][BCOMP] = (GLubyte) MIN2( b, 255 );
rgba[i][ACOMP] = (GLubyte) MIN2( a, 255 );
- }
+ }
}
}
@@ -346,20 +349,21 @@ static void _BLENDAPI blend_add( GLcontext *ctx, GLuint n, const GLubyte mask[],
/*
* Blend min function (for GL_EXT_blend_minmax)
*/
-static void _BLENDAPI blend_min( GLcontext *ctx, GLuint n, const GLubyte mask[],
- GLubyte rgba[][4], CONST GLubyte dest[][4] )
+static void _BLENDAPI
+blend_min( GLcontext *ctx, GLuint n, const GLubyte mask[],
+ GLubyte rgba[][4], CONST GLubyte dest[][4] )
{
GLuint i;
ASSERT(ctx->Color.BlendEquation==GL_MIN_EXT);
(void) ctx;
for (i=0;i<n;i++) {
- if (mask[i]) {
- rgba[i][RCOMP] = (GLubyte) MIN2( rgba[i][RCOMP], dest[i][RCOMP] );
- rgba[i][GCOMP] = (GLubyte) MIN2( rgba[i][GCOMP], dest[i][GCOMP] );
- rgba[i][BCOMP] = (GLubyte) MIN2( rgba[i][BCOMP], dest[i][BCOMP] );
- rgba[i][ACOMP] = (GLubyte) MIN2( rgba[i][ACOMP], dest[i][ACOMP] );
- }
+ if (mask[i]) {
+ rgba[i][RCOMP] = (GLubyte) MIN2( rgba[i][RCOMP], dest[i][RCOMP] );
+ rgba[i][GCOMP] = (GLubyte) MIN2( rgba[i][GCOMP], dest[i][GCOMP] );
+ rgba[i][BCOMP] = (GLubyte) MIN2( rgba[i][BCOMP], dest[i][BCOMP] );
+ rgba[i][ACOMP] = (GLubyte) MIN2( rgba[i][ACOMP], dest[i][ACOMP] );
+ }
}
}
@@ -368,8 +372,9 @@ static void _BLENDAPI blend_min( GLcontext *ctx, GLuint n, const GLubyte mask[],
/*
* Blend max function (for GL_EXT_blend_minmax)
*/
-static void _BLENDAPI blend_max( GLcontext *ctx, GLuint n, const GLubyte mask[],
- GLubyte rgba[][4], CONST GLubyte dest[][4] )
+static void _BLENDAPI
+blend_max( GLcontext *ctx, GLuint n, const GLubyte mask[],
+ GLubyte rgba[][4], CONST GLubyte dest[][4] )
{
GLuint i;
ASSERT(ctx->Color.BlendEquation==GL_MAX_EXT);
@@ -378,10 +383,10 @@ static void _BLENDAPI blend_max( GLcontext *ctx, GLuint n, const GLubyte mask[],
for (i=0;i<n;i++) {
if (mask[i]) {
rgba[i][RCOMP] = (GLubyte) MAX2( rgba[i][RCOMP], dest[i][RCOMP] );
- rgba[i][GCOMP] = (GLubyte) MAX2( rgba[i][GCOMP], dest[i][GCOMP] );
- rgba[i][BCOMP] = (GLubyte) MAX2( rgba[i][BCOMP], dest[i][BCOMP] );
- rgba[i][ACOMP] = (GLubyte) MAX2( rgba[i][ACOMP], dest[i][ACOMP] );
- }
+ rgba[i][GCOMP] = (GLubyte) MAX2( rgba[i][GCOMP], dest[i][GCOMP] );
+ rgba[i][BCOMP] = (GLubyte) MAX2( rgba[i][BCOMP], dest[i][BCOMP] );
+ rgba[i][ACOMP] = (GLubyte) MAX2( rgba[i][ACOMP], dest[i][ACOMP] );
+ }
}
}
@@ -390,8 +395,9 @@ static void _BLENDAPI blend_max( GLcontext *ctx, GLuint n, const GLubyte mask[],
/*
* Modulate: result = src * dest
*/
-static void _BLENDAPI blend_modulate( GLcontext *ctx, GLuint n, const GLubyte mask[],
- GLubyte rgba[][4], CONST GLubyte dest[][4] )
+static void _BLENDAPI
+blend_modulate( GLcontext *ctx, GLuint n, const GLubyte mask[],
+ GLubyte rgba[][4], CONST GLubyte dest[][4] )
{
GLuint i;
(void) ctx;
@@ -419,8 +425,9 @@ static void _BLENDAPI blend_modulate( GLcontext *ctx, GLuint n, const GLubyte ma
* In/Out: rgba - the incoming and modified pixels
* Input: dest - the pixels from the dest color buffer
*/
-static void _BLENDAPI blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[],
- GLubyte rgba[][4], CONST GLubyte dest[][4] )
+static void _BLENDAPI
+blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[],
+ GLubyte rgba[][4], CONST GLubyte dest[][4] )
{
GLfloat rscale = 1.0F / 255.0F;
GLfloat gscale = 1.0F / 255.0F;
@@ -732,7 +739,8 @@ static void set_blend_function( GLcontext *ctx )
*/
if (gl_x86_cpu_features & GL_CPU_MMX) {
gl_mmx_set_blend_function (ctx);
- } else
+ }
+ else
#endif
if (srcRGB != srcA || dstRGB != dstA) {
ctx->Color.BlendFunc = blend_general;
@@ -771,8 +779,9 @@ static void set_blend_function( GLcontext *ctx )
* mask - boolean mask indicating which pixels to blend.
* In/Out: rgba - pixel values
*/
-void gl_blend_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
- GLubyte rgba[][4], const GLubyte mask[] )
+void
+_mesa_blend_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
+ GLubyte rgba[][4], const GLubyte mask[] )
{
GLubyte dest[MAX_WIDTH][4];
@@ -801,9 +810,10 @@ void gl_blend_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
* mask - boolean mask indicating which pixels to blend.
* In/Out: rgba - pixel values
*/
-void gl_blend_pixels( GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- GLubyte rgba[][4], const GLubyte mask[] )
+void
+_mesa_blend_pixels( GLcontext *ctx,
+ GLuint n, const GLint x[], const GLint y[],
+ GLubyte rgba[][4], const GLubyte mask[] )
{
GLubyte dest[PB_SIZE][4];
diff --git a/xc/extras/Mesa/src/blend.h b/xc/extras/Mesa/src/blend.h
index 786f2da19..ca7e3e0ed 100644
--- a/xc/extras/Mesa/src/blend.h
+++ b/xc/extras/Mesa/src/blend.h
@@ -1,10 +1,10 @@
-/* $Id: blend.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: blend.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 2000 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,14 +34,14 @@
extern void
-gl_blend_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
- GLubyte rgba[][4], const GLubyte mask[] );
+_mesa_blend_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
+ GLubyte rgba[][4], const GLubyte mask[] );
extern void
-gl_blend_pixels( GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- GLubyte rgba[][4], const GLubyte mask[] );
+_mesa_blend_pixels( GLcontext *ctx,
+ GLuint n, const GLint x[], const GLint y[],
+ GLubyte rgba[][4], const GLubyte mask[] );
extern void
diff --git a/xc/extras/Mesa/src/glmisc.c b/xc/extras/Mesa/src/buffers.c
index 2e8d978de..284bf0d7c 100644
--- a/xc/extras/Mesa/src/glmisc.c
+++ b/xc/extras/Mesa/src/buffers.c
@@ -1,4 +1,4 @@
-/* $Id: glmisc.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: buffers.c,v 1.2 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -31,15 +31,15 @@
#include "glheader.h"
#include "accum.h"
#include "alphabuf.h"
+#include "buffers.h"
#include "context.h"
#include "depth.h"
#include "enums.h"
-#include "extensions.h"
-#include "glmisc.h"
#include "macros.h"
#include "masking.h"
#include "mem.h"
#include "stencil.h"
+#include "state.h"
#include "types.h"
#endif
@@ -292,8 +292,8 @@ _mesa_Clear( GLbitfield mask )
/* do software clearing here */
if (newMask) {
if (newMask & ctx->Color.DrawDestMask) clear_color_buffers( ctx );
- if (newMask & GL_DEPTH_BUFFER_BIT) gl_clear_depth_buffer( ctx );
- if (newMask & GL_ACCUM_BUFFER_BIT) gl_clear_accum_buffer( ctx );
+ if (newMask & GL_DEPTH_BUFFER_BIT) _mesa_clear_depth_buffer( ctx );
+ if (newMask & GL_ACCUM_BUFFER_BIT) _mesa_clear_accum_buffer( ctx );
if (newMask & GL_STENCIL_BUFFER_BIT) gl_clear_stencil_buffer( ctx );
}
@@ -311,170 +311,6 @@ _mesa_Clear( GLbitfield mask )
}
-
-void
-_mesa_Finish( void )
-{
- GET_CURRENT_CONTEXT(ctx);
- /* Don't compile into display list */
- ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glFinish");
- if (ctx->Driver.Finish) {
- (*ctx->Driver.Finish)( ctx );
- }
-}
-
-
-
-void
-_mesa_Flush( void )
-{
- GET_CURRENT_CONTEXT(ctx);
- /* Don't compile into display list */
- ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glFlush");
- if (ctx->Driver.Flush) {
- (*ctx->Driver.Flush)( ctx );
- }
-}
-
-
-void
-_mesa_Hint( GLenum target, GLenum mode )
-{
- GET_CURRENT_CONTEXT(ctx);
- (void) _mesa_try_Hint( ctx, target, mode );
-}
-
-
-GLboolean
-_mesa_try_Hint( GLcontext *ctx, GLenum target, GLenum mode )
-{
- ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx, "glHint", GL_FALSE);
-
- if (MESA_VERBOSE & VERBOSE_API)
- fprintf(stderr, "glHint %s %d\n", gl_lookup_enum_by_nr(target), mode);
-
- switch (target) {
- case GL_FOG_HINT:
- ctx->Hint.Fog = mode;
- break;
- case GL_LINE_SMOOTH_HINT:
- ctx->Hint.LineSmooth = mode;
- break;
- case GL_PERSPECTIVE_CORRECTION_HINT:
- ctx->Hint.PerspectiveCorrection = mode;
- break;
- case GL_POINT_SMOOTH_HINT:
- ctx->Hint.PointSmooth = mode;
- break;
- case GL_POLYGON_SMOOTH_HINT:
- ctx->Hint.PolygonSmooth = mode;
- break;
- case GL_PREFER_DOUBLEBUFFER_HINT_PGI:
- case GL_STRICT_DEPTHFUNC_HINT_PGI:
- break;
- case GL_STRICT_LIGHTING_HINT_PGI:
- ctx->Hint.StrictLighting = mode;
- break;
- case GL_STRICT_SCISSOR_HINT_PGI:
- case GL_FULL_STIPPLE_HINT_PGI:
- case GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI:
- case GL_NATIVE_GRAPHICS_END_HINT_PGI:
- case GL_CONSERVE_MEMORY_HINT_PGI:
- case GL_RECLAIM_MEMORY_HINT_PGI:
- break;
- case GL_ALWAYS_FAST_HINT_PGI:
- if (mode) {
- ctx->Hint.AllowDrawWin = GL_TRUE;
- ctx->Hint.AllowDrawSpn = GL_FALSE;
- ctx->Hint.AllowDrawMem = GL_FALSE;
- } else {
- ctx->Hint.AllowDrawWin = GL_TRUE;
- ctx->Hint.AllowDrawSpn = GL_TRUE;
- ctx->Hint.AllowDrawMem = GL_TRUE;
- }
- break;
- case GL_ALWAYS_SOFT_HINT_PGI:
- ctx->Hint.AllowDrawWin = GL_TRUE;
- ctx->Hint.AllowDrawSpn = GL_TRUE;
- ctx->Hint.AllowDrawMem = GL_TRUE;
- break;
- case GL_ALLOW_DRAW_OBJ_HINT_PGI:
- break;
- case GL_ALLOW_DRAW_WIN_HINT_PGI:
- ctx->Hint.AllowDrawWin = mode;
- break;
- case GL_ALLOW_DRAW_SPN_HINT_PGI:
- ctx->Hint.AllowDrawSpn = mode;
- break;
- case GL_ALLOW_DRAW_MEM_HINT_PGI:
- ctx->Hint.AllowDrawMem = mode;
- break;
- case GL_CLIP_NEAR_HINT_PGI:
- case GL_CLIP_FAR_HINT_PGI:
- case GL_WIDE_LINE_HINT_PGI:
- case GL_BACK_NORMALS_HINT_PGI:
- case GL_NATIVE_GRAPHICS_HANDLE_PGI:
- break;
-
- /* GL_EXT_clip_volume_hint */
- case GL_CLIP_VOLUME_CLIPPING_HINT_EXT:
- ctx->Hint.ClipVolumeClipping = mode;
- break;
-
- default:
- gl_error( ctx, GL_INVALID_ENUM, "glHint(target)" );
- return GL_FALSE;
- }
- ctx->NewState |= NEW_ALL; /* just to be safe */
-
- if (ctx->Driver.Hint) {
- (*ctx->Driver.Hint)( ctx, target, mode );
- }
-
- return GL_TRUE;
-}
-
-
-void
-_mesa_HintPGI( GLenum target, GLint mode )
-{
- GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glHintPGI");
-
- if (MESA_VERBOSE & VERBOSE_API)
- fprintf(stderr, "glHintPGI %s %d\n", gl_lookup_enum_by_nr(target), mode);
-
- switch (target) {
- case GL_PREFER_DOUBLEBUFFER_HINT_PGI:
- case GL_STRICT_DEPTHFUNC_HINT_PGI:
- case GL_STRICT_LIGHTING_HINT_PGI:
- case GL_STRICT_SCISSOR_HINT_PGI:
- case GL_FULL_STIPPLE_HINT_PGI:
- case GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI:
- case GL_NATIVE_GRAPHICS_END_HINT_PGI:
- case GL_CONSERVE_MEMORY_HINT_PGI:
- case GL_RECLAIM_MEMORY_HINT_PGI:
- case GL_ALWAYS_FAST_HINT_PGI:
- case GL_ALWAYS_SOFT_HINT_PGI:
- case GL_ALLOW_DRAW_OBJ_HINT_PGI:
- case GL_ALLOW_DRAW_WIN_HINT_PGI:
- case GL_ALLOW_DRAW_SPN_HINT_PGI:
- case GL_ALLOW_DRAW_MEM_HINT_PGI:
- case GL_CLIP_NEAR_HINT_PGI:
- case GL_CLIP_FAR_HINT_PGI:
- case GL_WIDE_LINE_HINT_PGI:
- case GL_BACK_NORMALS_HINT_PGI:
- case GL_NATIVE_GRAPHICS_HANDLE_PGI:
- (void) _mesa_try_Hint(ctx, target, (GLenum) mode);
- break;
- default:
- gl_error( ctx, GL_INVALID_ENUM, "glHintPGI(target)" );
- return;
- }
-}
-
-
-
void
_mesa_DrawBuffer( GLenum mode )
{
@@ -683,3 +519,46 @@ _mesa_ReadBuffer( GLenum mode )
ctx->Pixel.ReadBuffer = mode;
ctx->NewState |= NEW_RASTER_OPS;
}
+
+
+/*
+ * GL_MESA_resize_buffers extension
+ */
+void
+_mesa_ResizeBuffersMESA( void )
+{
+ GLcontext *ctx = gl_get_current_context();
+
+ GLuint buf_width, buf_height;
+
+ if (MESA_VERBOSE & VERBOSE_API)
+ fprintf(stderr, "glResizeBuffersMESA\n");
+
+ /* ask device driver for size of output buffer */
+ (*ctx->Driver.GetBufferSize)( ctx, &buf_width, &buf_height );
+
+ /* see if size of device driver's color buffer (window) has changed */
+ if (ctx->DrawBuffer->Width == (GLint) buf_width &&
+ ctx->DrawBuffer->Height == (GLint) buf_height)
+ return;
+
+ ctx->NewState |= NEW_RASTER_OPS; /* to update scissor / window bounds */
+
+ /* save buffer size */
+ ctx->DrawBuffer->Width = buf_width;
+ ctx->DrawBuffer->Height = buf_height;
+
+ /* Reallocate other buffers if needed. */
+ if (ctx->DrawBuffer->UseSoftwareDepthBuffer) {
+ _mesa_alloc_depth_buffer( ctx );
+ }
+ if (ctx->DrawBuffer->UseSoftwareStencilBuffer) {
+ gl_alloc_stencil_buffer( ctx );
+ }
+ if (ctx->DrawBuffer->UseSoftwareAccumBuffer) {
+ _mesa_alloc_accum_buffer( ctx );
+ }
+ if (ctx->Visual->SoftwareAlpha) {
+ gl_alloc_alpha_buffers( ctx );
+ }
+}
diff --git a/xc/extras/Mesa/src/glmisc.h b/xc/extras/Mesa/src/buffers.h
index a00203b35..a4179abd3 100644
--- a/xc/extras/Mesa/src/glmisc.h
+++ b/xc/extras/Mesa/src/buffers.h
@@ -1,4 +1,4 @@
-/* $Id: glmisc.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: buffers.h,v 1.2 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -25,8 +25,8 @@
*/
-#ifndef GLMISC_H
-#define GLMISC_H
+#ifndef BUFFERS_H
+#define BUFFERS_H
#include "types.h"
@@ -43,25 +43,13 @@ extern void
_mesa_Clear( GLbitfield mask );
extern void
-_mesa_Finish( void );
-
-extern void
-_mesa_Flush( void );
-
-extern GLboolean
-_mesa_try_Hint( GLcontext *ctx, GLenum target, GLenum mode );
-
-extern void
-_mesa_Hint( GLenum target, GLenum mode );
-
-extern void
-_mesa_HintPGI( GLenum target, GLint mode );
-
-extern void
_mesa_DrawBuffer( GLenum mode );
extern void
_mesa_ReadBuffer( GLenum mode );
+extern void
+_mesa_ResizeBuffersMESA( void );
+
#endif
diff --git a/xc/extras/Mesa/src/clip.c b/xc/extras/Mesa/src/clip.c
index 38c276e36..f76815daf 100644
--- a/xc/extras/Mesa/src/clip.c
+++ b/xc/extras/Mesa/src/clip.c
@@ -1,4 +1,4 @@
-/* $Id: clip.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: clip.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/clip.h b/xc/extras/Mesa/src/clip.h
index f93638716..917e2537c 100644
--- a/xc/extras/Mesa/src/clip.h
+++ b/xc/extras/Mesa/src/clip.h
@@ -1,4 +1,4 @@
-/* $Id: clip.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: clip.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/clip_funcs.h b/xc/extras/Mesa/src/clip_funcs.h
index 02bd0e632..f04ba2fc8 100644
--- a/xc/extras/Mesa/src/clip_funcs.h
+++ b/xc/extras/Mesa/src/clip_funcs.h
@@ -1,4 +1,4 @@
-/* $Id: clip_funcs.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: clip_funcs.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/clip_tmp.h b/xc/extras/Mesa/src/clip_tmp.h
index d86f46e37..46e883ca7 100644
--- a/xc/extras/Mesa/src/clip_tmp.h
+++ b/xc/extras/Mesa/src/clip_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: clip_tmp.h,v 1.5 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: clip_tmp.h,v 1.6 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/colortab.c b/xc/extras/Mesa/src/colortab.c
index 89dddd7b9..5dc91f321 100644
--- a/xc/extras/Mesa/src/colortab.c
+++ b/xc/extras/Mesa/src/colortab.c
@@ -1,4 +1,4 @@
-/* $Id: colortab.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: colortab.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/colortab.h b/xc/extras/Mesa/src/colortab.h
index c98874655..0b2b6fe9b 100644
--- a/xc/extras/Mesa/src/colortab.h
+++ b/xc/extras/Mesa/src/colortab.h
@@ -1,4 +1,4 @@
-/* $Id: colortab.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: colortab.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/config.c b/xc/extras/Mesa/src/config.c
index e10642f48..66aa9c605 100644
--- a/xc/extras/Mesa/src/config.c
+++ b/xc/extras/Mesa/src/config.c
@@ -1,10 +1,10 @@
-/* $Id: config.c,v 1.5 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: config.c,v 1.6 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -24,6 +24,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
+
/* Mesa config file parse and execute code.
* Copyright (C) 1999 Keith Whitwell.
*
@@ -39,7 +40,7 @@
#include "config.h"
#include "enums.h"
#include "extensions.h"
-#include "glmisc.h"
+#include "hint.h"
#include "simple_list.h"
#include "mem.h"
#include "types.h"
diff --git a/xc/extras/Mesa/src/config.h b/xc/extras/Mesa/src/config.h
index 297acc0b8..b8caabeee 100644
--- a/xc/extras/Mesa/src/config.h
+++ b/xc/extras/Mesa/src/config.h
@@ -1,4 +1,4 @@
-/* $Id: config.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: config.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -91,7 +91,7 @@
/* Min and Max line widths and granularity */
#define MIN_LINE_WIDTH 1.0
#define MAX_LINE_WIDTH 10.0
-#define LINE_WIDTH_GRANULARITY 1.0
+#define LINE_WIDTH_GRANULARITY 0.1
/* Max texture palette size */
#define MAX_TEXTURE_PALETTE_SIZE 256
@@ -109,6 +109,9 @@
/* Maxmimum size for CVA. May be overridden by the drivers. */
#define MAX_ARRAY_LOCK_SIZE 3000
+/* Subpixel precision for antialiasing, window coordinate snapping */
+#define SUB_PIXEL_BITS 4
+
/*
diff --git a/xc/extras/Mesa/src/context.c b/xc/extras/Mesa/src/context.c
index 00778331c..17bc23613 100644
--- a/xc/extras/Mesa/src/context.c
+++ b/xc/extras/Mesa/src/context.c
@@ -1,4 +1,4 @@
-/* $Id: context.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: context.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -35,7 +35,6 @@
#include "context.h"
#include "cva.h"
#include "depth.h"
-#include "dispatch.h"
#include "dlist.h"
#include "eval.h"
#include "enums.h"
@@ -44,23 +43,20 @@
#include "get.h"
#include "glapi.h"
#include "glapinoop.h"
+#include "glthread.h"
#include "hash.h"
#include "light.h"
-#include "lines.h"
-#include "dlist.h"
#include "macros.h"
#include "matrix.h"
#include "mem.h"
#include "mmath.h"
#include "pb.h"
#include "pipeline.h"
-#include "points.h"
-#include "quads.h"
#include "shade.h"
#include "simple_list.h"
#include "stencil.h"
#include "stages.h"
-#include "triangle.h"
+#include "state.h"
#include "translate.h"
#include "teximage.h"
#include "texobj.h"
@@ -70,7 +66,6 @@
#include "varray.h"
#include "vb.h"
#include "vbcull.h"
-#include "vbfill.h"
#include "vbrender.h"
#include "vbxform.h"
#include "vertices.h"
@@ -424,12 +419,16 @@ void gl_destroy_framebuffer( GLframebuffer *buffer )
/**********************************************************************/
+_glthread_DECLARE_STATIC_MUTEX(OneTimeLock);
+
+
/*
* This function just calls all the various one-time-init functions in Mesa.
*/
static void one_time_init( void )
{
static GLboolean alreadyCalled = GL_FALSE;
+ _glthread_LOCK_MUTEX(OneTimeLock);
if (!alreadyCalled) {
/* do some implementation tests */
assert( sizeof(GLbyte) == 1 );
@@ -441,7 +440,7 @@ static void one_time_init( void )
gl_init_clip();
gl_init_eval();
- gl_init_fog();
+ _mesa_init_fog();
gl_init_math();
gl_init_lists();
gl_init_shade();
@@ -465,6 +464,7 @@ static void one_time_init( void )
alreadyCalled = GL_TRUE;
}
+ _glthread_UNLOCK_MUTEX(OneTimeLock);
}
@@ -734,11 +734,23 @@ static void init_attrib_groups( GLcontext *ctx )
assert(ctx);
- /* Constants, may be overriden by device driver */
+ /* Constants, may be overriden by device drivers */
ctx->Const.MaxTextureLevels = MAX_TEXTURE_LEVELS;
ctx->Const.MaxTextureSize = 1 << (MAX_TEXTURE_LEVELS - 1);
ctx->Const.MaxTextureUnits = MAX_TEXTURE_UNITS;
ctx->Const.MaxArrayLockSize = MAX_ARRAY_LOCK_SIZE;
+ ctx->Const.SubPixelBits = SUB_PIXEL_BITS;
+ ctx->Const.MinPointSize = MIN_POINT_SIZE;
+ ctx->Const.MaxPointSize = MAX_POINT_SIZE;
+ ctx->Const.MinPointSizeAA = MIN_POINT_SIZE;
+ ctx->Const.MaxPointSizeAA = MAX_POINT_SIZE;
+ ctx->Const.PointSizeGranularity = POINT_SIZE_GRANULARITY;
+ ctx->Const.MinLineWidth = MIN_LINE_WIDTH;
+ ctx->Const.MaxLineWidth = MAX_LINE_WIDTH;
+ ctx->Const.MinLineWidthAA = MIN_LINE_WIDTH;
+ ctx->Const.MaxLineWidthAA = MAX_LINE_WIDTH;
+ ctx->Const.LineWidthGranularity = LINE_WIDTH_GRANULARITY;
+ ctx->Const.NumAuxBuffers = NUM_AUX_BUFFERS;
/* Modelview matrix */
gl_matrix_ctr( &ctx->ModelView );
@@ -1325,7 +1337,9 @@ GLboolean gl_initialize_context_data( GLcontext *ctx,
return GL_FALSE;
}
}
+ _glthread_LOCK_MUTEX(ctx->Shared->Mutex);
ctx->Shared->RefCount++;
+ _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex);
init_attrib_groups( ctx );
@@ -1360,9 +1374,19 @@ GLboolean gl_initialize_context_data( GLcontext *ctx,
}
/* setup API dispatch tables */
- _mesa_init_exec_table( &ctx->Exec );
- _mesa_init_dlist_table( &ctx->Save );
- ctx->CurrentDispatch = &ctx->Exec;
+ ctx->Exec = CALLOC(_glapi_get_dispatch_table_size() * sizeof(void *));
+ ctx->Save = CALLOC(_glapi_get_dispatch_table_size() * sizeof(void *));
+ if (!ctx->Exec || !ctx->Save) {
+ free_shared_state(ctx, ctx->Shared);
+ FREE(ctx->VB);
+ FREE(ctx->PB);
+ if (ctx->Exec)
+ FREE(ctx->Exec);
+ FREE(ctx);
+ }
+ _mesa_init_exec_table( ctx->Exec );
+ _mesa_init_dlist_table( ctx->Save );
+ ctx->CurrentDispatch = ctx->Exec;
return GL_TRUE;
}
@@ -1434,9 +1458,11 @@ void gl_free_context_data( GLcontext *ctx )
gl_vb_free( ctx->VB );
+ _glthread_LOCK_MUTEX(ctx->Shared->Mutex);
ctx->Shared->RefCount--;
- assert(ctx->Shared->RefCount>=0);
- if (ctx->Shared->RefCount==0) {
+ assert(ctx->Shared->RefCount >= 0);
+ _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex);
+ if (ctx->Shared->RefCount == 0) {
/* free shared state */
free_shared_state( ctx, ctx->Shared );
}
@@ -1497,6 +1523,9 @@ void gl_free_context_data( GLcontext *ctx )
ctx->freed_im_queue = next;
}
gl_extensions_dtr(ctx);
+
+ FREE(ctx->Exec);
+ FREE(ctx->Save);
}
@@ -1727,47 +1756,6 @@ _mesa_get_dispatch(GLcontext *ctx)
-void
-_mesa_ResizeBuffersMESA( void )
-{
- GLcontext *ctx = gl_get_current_context();
-
- GLuint buf_width, buf_height;
-
- if (MESA_VERBOSE & VERBOSE_API)
- fprintf(stderr, "glResizeBuffersMESA\n");
-
- /* ask device driver for size of output buffer */
- (*ctx->Driver.GetBufferSize)( ctx, &buf_width, &buf_height );
-
- /* see if size of device driver's color buffer (window) has changed */
- if (ctx->DrawBuffer->Width == (GLint) buf_width &&
- ctx->DrawBuffer->Height == (GLint) buf_height)
- return;
-
- ctx->NewState |= NEW_RASTER_OPS; /* to update scissor / window bounds */
-
- /* save buffer size */
- ctx->DrawBuffer->Width = buf_width;
- ctx->DrawBuffer->Height = buf_height;
-
- /* Reallocate other buffers if needed. */
- if (ctx->DrawBuffer->UseSoftwareDepthBuffer) {
- gl_alloc_depth_buffer( ctx );
- }
- if (ctx->DrawBuffer->UseSoftwareStencilBuffer) {
- gl_alloc_stencil_buffer( ctx );
- }
- if (ctx->DrawBuffer->UseSoftwareAccumBuffer) {
- gl_alloc_accum_buffer( ctx );
- }
- if (ctx->Visual->SoftwareAlpha) {
- gl_alloc_alpha_buffers( ctx );
- }
-}
-
-
-
/**********************************************************************/
/***** Miscellaneous functions *****/
/**********************************************************************/
@@ -1812,6 +1800,9 @@ void gl_warning( const GLcontext *ctx, const char *s )
+/*
+ * Compile an error into current display list.
+ */
void gl_compile_error( GLcontext *ctx, GLenum error, const char *s )
{
if (ctx->CompileFlag)
@@ -1822,6 +1813,7 @@ void gl_compile_error( GLcontext *ctx, GLenum error, const char *s )
}
+
/*
* This is Mesa's error handler. Normally, all that's done is the updating
* of the current error value. If Mesa is compiled with -DDEBUG or if the
@@ -1889,588 +1881,24 @@ void gl_error( GLcontext *ctx, GLenum error, const char *s )
-/**********************************************************************/
-/***** State update logic *****/
-/**********************************************************************/
-
-
-/*
- * Since the device driver may or may not support pixel logic ops we
- * have to make some extensive tests to determine whether or not
- * software-implemented logic operations have to be used.
- */
-static void update_pixel_logic( GLcontext *ctx )
-{
- if (ctx->Visual->RGBAflag) {
- /* RGBA mode blending w/ Logic Op */
- if (ctx->Color.ColorLogicOpEnabled) {
- if (ctx->Driver.LogicOp
- && (*ctx->Driver.LogicOp)( ctx, ctx->Color.LogicOp )) {
- /* Device driver can do logic, don't have to do it in software */
- ctx->Color.SWLogicOpEnabled = GL_FALSE;
- }
- else {
- /* Device driver can't do logic op so we do it in software */
- ctx->Color.SWLogicOpEnabled = GL_TRUE;
- }
- }
- else {
- /* no logic op */
- if (ctx->Driver.LogicOp) {
- (void) (*ctx->Driver.LogicOp)( ctx, GL_COPY );
- }
- ctx->Color.SWLogicOpEnabled = GL_FALSE;
- }
- }
- else {
- /* CI mode Logic Op */
- if (ctx->Color.IndexLogicOpEnabled) {
- if (ctx->Driver.LogicOp
- && (*ctx->Driver.LogicOp)( ctx, ctx->Color.LogicOp )) {
- /* Device driver can do logic, don't have to do it in software */
- ctx->Color.SWLogicOpEnabled = GL_FALSE;
- }
- else {
- /* Device driver can't do logic op so we do it in software */
- ctx->Color.SWLogicOpEnabled = GL_TRUE;
- }
- }
- else {
- /* no logic op */
- if (ctx->Driver.LogicOp) {
- (void) (*ctx->Driver.LogicOp)( ctx, GL_COPY );
- }
- ctx->Color.SWLogicOpEnabled = GL_FALSE;
- }
- }
-}
-
-
-
-/*
- * Check if software implemented RGBA or Color Index masking is needed.
- */
-static void update_pixel_masking( GLcontext *ctx )
-{
- if (ctx->Visual->RGBAflag) {
- GLuint *colorMask = (GLuint *) ctx->Color.ColorMask;
- if (*colorMask == 0xffffffff) {
- /* disable masking */
- if (ctx->Driver.ColorMask) {
- (void) (*ctx->Driver.ColorMask)( ctx, GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
- }
- ctx->Color.SWmasking = GL_FALSE;
- }
- else {
- /* Ask driver to do color masking, if it can't then
- * do it in software
- */
- GLboolean red = ctx->Color.ColorMask[RCOMP] ? GL_TRUE : GL_FALSE;
- GLboolean green = ctx->Color.ColorMask[GCOMP] ? GL_TRUE : GL_FALSE;
- GLboolean blue = ctx->Color.ColorMask[BCOMP] ? GL_TRUE : GL_FALSE;
- GLboolean alpha = ctx->Color.ColorMask[ACOMP] ? GL_TRUE : GL_FALSE;
- if (ctx->Driver.ColorMask
- && (*ctx->Driver.ColorMask)( ctx, red, green, blue, alpha )) {
- ctx->Color.SWmasking = GL_FALSE;
- }
- else {
- ctx->Color.SWmasking = GL_TRUE;
- }
- }
- }
- else {
- if (ctx->Color.IndexMask==0xffffffff) {
- /* disable masking */
- if (ctx->Driver.IndexMask) {
- (void) (*ctx->Driver.IndexMask)( ctx, 0xffffffff );
- }
- ctx->Color.SWmasking = GL_FALSE;
- }
- else {
- /* Ask driver to do index masking, if it can't then
- * do it in software
- */
- if (ctx->Driver.IndexMask
- && (*ctx->Driver.IndexMask)( ctx, ctx->Color.IndexMask )) {
- ctx->Color.SWmasking = GL_FALSE;
- }
- else {
- ctx->Color.SWmasking = GL_TRUE;
- }
- }
- }
-}
-
-
-static void update_fog_mode( GLcontext *ctx )
-{
- int old_mode = ctx->FogMode;
-
- if (ctx->Fog.Enabled) {
- if (ctx->Texture.Enabled)
- ctx->FogMode = FOG_FRAGMENT;
- else if (ctx->Hint.Fog == GL_NICEST)
- ctx->FogMode = FOG_FRAGMENT;
- else
- ctx->FogMode = FOG_VERTEX;
-
- if (ctx->Driver.GetParameteri)
- if ((ctx->Driver.GetParameteri)( ctx, DD_HAVE_HARDWARE_FOG ))
- ctx->FogMode = FOG_FRAGMENT;
- }
- else {
- ctx->FogMode = FOG_NONE;
- }
-
- if (old_mode != ctx->FogMode)
- ctx->NewState |= NEW_FOG;
-}
-
-
-/*
- * Recompute the value of ctx->RasterMask, etc. according to
- * the current context.
- */
-static void update_rasterflags( GLcontext *ctx )
+void
+_mesa_Finish( void )
{
- ctx->RasterMask = 0;
-
- if (ctx->Color.AlphaEnabled) ctx->RasterMask |= ALPHATEST_BIT;
- if (ctx->Color.BlendEnabled) ctx->RasterMask |= BLEND_BIT;
- if (ctx->Depth.Test) ctx->RasterMask |= DEPTH_BIT;
- if (ctx->FogMode==FOG_FRAGMENT) ctx->RasterMask |= FOG_BIT;
- if (ctx->Color.SWLogicOpEnabled) ctx->RasterMask |= LOGIC_OP_BIT;
- if (ctx->Scissor.Enabled) ctx->RasterMask |= SCISSOR_BIT;
- if (ctx->Stencil.Enabled) ctx->RasterMask |= STENCIL_BIT;
- if (ctx->Color.SWmasking) ctx->RasterMask |= MASKING_BIT;
-
- if (ctx->Visual->SoftwareAlpha && ctx->Color.ColorMask[ACOMP]
- && ctx->Color.DrawBuffer != GL_NONE)
- ctx->RasterMask |= ALPHABUF_BIT;
-
- if ( ctx->Viewport.X<0
- || ctx->Viewport.X + ctx->Viewport.Width > ctx->DrawBuffer->Width
- || ctx->Viewport.Y<0
- || ctx->Viewport.Y + ctx->Viewport.Height > ctx->DrawBuffer->Height) {
- ctx->RasterMask |= WINCLIP_BIT;
- }
-
- /* If we're not drawing to exactly one color buffer set the
- * MULTI_DRAW_BIT flag. Also set it if we're drawing to no
- * buffers or the RGBA or CI mask disables all writes.
- */
-
- ctx->TriangleCaps &= ~DD_MULTIDRAW;
-
- if (ctx->Color.MultiDrawBuffer) {
- ctx->RasterMask |= MULTI_DRAW_BIT;
- ctx->TriangleCaps |= DD_MULTIDRAW;
- }
- else if (ctx->Color.DrawBuffer==GL_NONE) {
- ctx->RasterMask |= MULTI_DRAW_BIT;
- ctx->TriangleCaps |= DD_MULTIDRAW;
- }
- else if (ctx->Visual->RGBAflag && ctx->Color.ColorMask==0) {
- /* all RGBA channels disabled */
- ctx->RasterMask |= MULTI_DRAW_BIT;
- ctx->TriangleCaps |= DD_MULTIDRAW;
- ctx->Color.DrawDestMask = 0;
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glFinish");
+ if (ctx->Driver.Finish) {
+ (*ctx->Driver.Finish)( ctx );
}
- else if (!ctx->Visual->RGBAflag && ctx->Color.IndexMask==0) {
- /* all color index bits disabled */
- ctx->RasterMask |= MULTI_DRAW_BIT;
- ctx->TriangleCaps |= DD_MULTIDRAW;
- ctx->Color.DrawDestMask = 0;
- }
-}
-
-
-void gl_print_state( const char *msg, GLuint state )
-{
- fprintf(stderr,
- "%s: (0x%x) %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
- msg,
- state,
- (state & NEW_LIGHTING) ? "lighting, " : "",
- (state & NEW_RASTER_OPS) ? "raster-ops, " : "",
- (state & NEW_TEXTURING) ? "texturing, " : "",
- (state & NEW_POLYGON) ? "polygon, " : "",
- (state & NEW_DRVSTATE0) ? "driver-0, " : "",
- (state & NEW_DRVSTATE1) ? "driver-1, " : "",
- (state & NEW_DRVSTATE2) ? "driver-2, " : "",
- (state & NEW_DRVSTATE3) ? "driver-3, " : "",
- (state & NEW_MODELVIEW) ? "modelview, " : "",
- (state & NEW_PROJECTION) ? "projection, " : "",
- (state & NEW_TEXTURE_MATRIX) ? "texture-matrix, " : "",
- (state & NEW_USER_CLIP) ? "user-clip, " : "",
- (state & NEW_TEXTURE_ENV) ? "texture-env, " : "",
- (state & NEW_CLIENT_STATE) ? "client-state, " : "",
- (state & NEW_FOG) ? "fog, " : "",
- (state & NEW_NORMAL_TRANSFORM) ? "normal-transform, " : "",
- (state & NEW_VIEWPORT) ? "viewport, " : "",
- (state & NEW_TEXTURE_ENABLE) ? "texture-enable, " : "");
}
-void gl_print_enable_flags( const char *msg, GLuint flags )
-{
- fprintf(stderr,
- "%s: (0x%x) %s%s%s%s%s%s%s%s%s%s%s\n",
- msg,
- flags,
- (flags & ENABLE_TEX0) ? "tex-0, " : "",
- (flags & ENABLE_TEX1) ? "tex-1, " : "",
- (flags & ENABLE_LIGHT) ? "light, " : "",
- (flags & ENABLE_FOG) ? "fog, " : "",
- (flags & ENABLE_USERCLIP) ? "userclip, " : "",
- (flags & ENABLE_TEXGEN0) ? "tex-gen-0, " : "",
- (flags & ENABLE_TEXGEN1) ? "tex-gen-1, " : "",
- (flags & ENABLE_TEXMAT0) ? "tex-mat-0, " : "",
- (flags & ENABLE_TEXMAT1) ? "tex-mat-1, " : "",
- (flags & ENABLE_NORMALIZE) ? "normalize, " : "",
- (flags & ENABLE_RESCALE) ? "rescale, " : "");
-}
-/*
- * If ctx->NewState is non-zero then this function MUST be called before
- * rendering any primitive. Basically, function pointers and miscellaneous
- * flags are updated to reflect the current state of the state machine.
- */
-void gl_update_state( GLcontext *ctx )
+void
+_mesa_Flush( void )
{
- GLuint i;
-
- if (MESA_VERBOSE & VERBOSE_STATE)
- gl_print_state("", ctx->NewState);
-
- if (ctx->NewState & NEW_CLIENT_STATE)
- gl_update_client_state( ctx );
-
- if ((ctx->NewState & NEW_TEXTURE_ENABLE) &&
- (ctx->Enabled & ENABLE_TEX_ANY) != ctx->Texture.Enabled)
- ctx->NewState |= NEW_TEXTURING | NEW_RASTER_OPS;
-
- if (ctx->NewState & NEW_TEXTURE_ENV) {
- if (ctx->Texture.Unit[0].EnvMode == ctx->Texture.Unit[0].LastEnvMode &&
- ctx->Texture.Unit[1].EnvMode == ctx->Texture.Unit[1].LastEnvMode)
- ctx->NewState &= ~NEW_TEXTURE_ENV;
- ctx->Texture.Unit[0].LastEnvMode = ctx->Texture.Unit[0].EnvMode;
- ctx->Texture.Unit[1].LastEnvMode = ctx->Texture.Unit[1].EnvMode;
- }
-
- if (ctx->NewState & NEW_TEXTURE_MATRIX) {
- ctx->Enabled &= ~(ENABLE_TEXMAT0|ENABLE_TEXMAT1);
-
- for (i=0; i < MAX_TEXTURE_UNITS; i++) {
- if (ctx->TextureMatrix[i].flags & MAT_DIRTY_ALL_OVER)
- {
- gl_matrix_analyze( &ctx->TextureMatrix[i] );
- ctx->TextureMatrix[i].flags &= ~MAT_DIRTY_DEPENDENTS;
-
- if (ctx->Texture.Unit[i].Enabled &&
- ctx->TextureMatrix[i].type != MATRIX_IDENTITY)
- ctx->Enabled |= ENABLE_TEXMAT0 << i;
- }
- }
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glFlush");
+ if (ctx->Driver.Flush) {
+ (*ctx->Driver.Flush)( ctx );
}
-
- if (ctx->NewState & (NEW_TEXTURING | NEW_TEXTURE_ENABLE)) {
- ctx->Texture.NeedNormals = GL_FALSE;
- gl_update_dirty_texobjs(ctx);
- ctx->Enabled &= ~(ENABLE_TEXGEN0|ENABLE_TEXGEN1);
- ctx->Texture.ReallyEnabled = 0;
-
- for (i=0; i < MAX_TEXTURE_UNITS; i++) {
- if (ctx->Texture.Unit[i].Enabled) {
- gl_update_texture_unit( ctx, &ctx->Texture.Unit[i] );
-
- ctx->Texture.ReallyEnabled |=
- ctx->Texture.Unit[i].ReallyEnabled<<(i*4);
-
- if (ctx->Texture.Unit[i].GenFlags != 0) {
- ctx->Enabled |= ENABLE_TEXGEN0 << i;
-
- if (ctx->Texture.Unit[i].GenFlags & TEXGEN_NEED_NORMALS)
- {
- ctx->Texture.NeedNormals = GL_TRUE;
- ctx->Texture.NeedEyeCoords = GL_TRUE;
- }
-
- if (ctx->Texture.Unit[i].GenFlags & TEXGEN_NEED_EYE_COORD)
- {
- ctx->Texture.NeedEyeCoords = GL_TRUE;
- }
- }
- }
- }
-
- ctx->Texture.Enabled = ctx->Enabled & ENABLE_TEX_ANY;
- ctx->NeedNormals = (ctx->Light.Enabled || ctx->Texture.NeedNormals);
- }
-
- if (ctx->NewState & (NEW_RASTER_OPS | NEW_LIGHTING | NEW_FOG)) {
-
-
- if (ctx->NewState & NEW_RASTER_OPS) {
- update_pixel_logic(ctx);
- update_pixel_masking(ctx);
- update_fog_mode(ctx);
- update_rasterflags(ctx);
- if (ctx->Driver.Dither) {
- (*ctx->Driver.Dither)( ctx, ctx->Color.DitherFlag );
- }
-
- /* Check if incoming colors can be modified during rasterization */
- if (ctx->Fog.Enabled ||
- ctx->Texture.Enabled ||
- ctx->Color.BlendEnabled ||
- ctx->Color.SWmasking ||
- ctx->Color.SWLogicOpEnabled) {
- ctx->MutablePixels = GL_TRUE;
- }
- else {
- ctx->MutablePixels = GL_FALSE;
- }
-
- /* update scissor region */
-
- ctx->DrawBuffer->Xmin = 0;
- ctx->DrawBuffer->Ymin = 0;
- ctx->DrawBuffer->Xmax = ctx->DrawBuffer->Width-1;
- ctx->DrawBuffer->Ymax = ctx->DrawBuffer->Height-1;
- if (ctx->Scissor.Enabled) {
- if (ctx->Scissor.X > ctx->DrawBuffer->Xmin) {
- ctx->DrawBuffer->Xmin = ctx->Scissor.X;
- }
- if (ctx->Scissor.Y > ctx->DrawBuffer->Ymin) {
- ctx->DrawBuffer->Ymin = ctx->Scissor.Y;
- }
- if (ctx->Scissor.X + ctx->Scissor.Width - 1 < ctx->DrawBuffer->Xmax) {
- ctx->DrawBuffer->Xmax = ctx->Scissor.X + ctx->Scissor.Width - 1;
- }
- if (ctx->Scissor.Y + ctx->Scissor.Height - 1 < ctx->DrawBuffer->Ymax) {
- ctx->DrawBuffer->Ymax = ctx->Scissor.Y + ctx->Scissor.Height - 1;
- }
- }
- }
-
- if (ctx->NewState & NEW_LIGHTING) {
- ctx->TriangleCaps &= ~(DD_TRI_LIGHT_TWOSIDE|DD_LIGHTING_CULL);
- if (ctx->Light.Enabled) {
- if (ctx->Light.Model.TwoSide)
- ctx->TriangleCaps |= (DD_TRI_LIGHT_TWOSIDE|DD_LIGHTING_CULL);
- gl_update_lighting(ctx);
- }
- }
- }
-
- if (ctx->NewState & (NEW_POLYGON | NEW_LIGHTING)) {
-
- ctx->TriangleCaps &= ~DD_TRI_CULL_FRONT_BACK;
-
- if (ctx->NewState & NEW_POLYGON) {
- /* Setup CullBits bitmask */
- if (ctx->Polygon.CullFlag) {
- ctx->backface_sign = 1;
- switch(ctx->Polygon.CullFaceMode) {
- case GL_BACK:
- if(ctx->Polygon.FrontFace==GL_CCW)
- ctx->backface_sign = -1;
- ctx->Polygon.CullBits = 1;
- break;
- case GL_FRONT:
- if(ctx->Polygon.FrontFace!=GL_CCW)
- ctx->backface_sign = -1;
- ctx->Polygon.CullBits = 2;
- break;
- default:
- case GL_FRONT_AND_BACK:
- ctx->backface_sign = 0;
- ctx->Polygon.CullBits = 0;
- ctx->TriangleCaps |= DD_TRI_CULL_FRONT_BACK;
- break;
- }
- }
- else {
- ctx->Polygon.CullBits = 3;
- ctx->backface_sign = 0;
- }
-
- /* Any Polygon offsets enabled? */
- ctx->TriangleCaps &= ~DD_TRI_OFFSET;
-
- if (ctx->Polygon.OffsetPoint ||
- ctx->Polygon.OffsetLine ||
- ctx->Polygon.OffsetFill)
- ctx->TriangleCaps |= DD_TRI_OFFSET;
-
- /* reset Z offsets now */
- ctx->PointZoffset = 0.0;
- ctx->LineZoffset = 0.0;
- ctx->PolygonZoffset = 0.0;
- }
- }
-
- if (ctx->NewState & ~(NEW_CLIENT_STATE|
- NEW_DRIVER_STATE|NEW_USER_CLIP|
- NEW_POLYGON))
- gl_update_clipmask(ctx);
-
- if (ctx->NewState & (NEW_LIGHTING|
- NEW_RASTER_OPS|
- NEW_TEXTURING|
- NEW_TEXTURE_ENABLE|
- NEW_TEXTURE_ENV|
- NEW_POLYGON|
- NEW_DRVSTATE0|
- NEW_DRVSTATE1|
- NEW_DRVSTATE2|
- NEW_DRVSTATE3|
- NEW_USER_CLIP))
- {
- ctx->IndirectTriangles = ctx->TriangleCaps & ~ctx->Driver.TriangleCaps;
- ctx->IndirectTriangles |= DD_SW_RASTERIZE;
-
- if (MESA_VERBOSE&VERBOSE_CULL)
- gl_print_tri_caps("initial indirect tris", ctx->IndirectTriangles);
-
- ctx->Driver.PointsFunc = NULL;
- ctx->Driver.LineFunc = NULL;
- ctx->Driver.TriangleFunc = NULL;
- ctx->Driver.QuadFunc = NULL;
- ctx->Driver.RectFunc = NULL;
- ctx->Driver.RenderVBClippedTab = NULL;
- ctx->Driver.RenderVBCulledTab = NULL;
- ctx->Driver.RenderVBRawTab = NULL;
-
- /*
- * Here the driver sets up all the ctx->Driver function pointers to
- * it's specific, private functions.
- */
- ctx->Driver.UpdateState(ctx);
-
- if (MESA_VERBOSE&VERBOSE_CULL)
- gl_print_tri_caps("indirect tris", ctx->IndirectTriangles);
-
- /*
- * In case the driver didn't hook in an optimized point, line or
- * triangle function we'll now select "core/fallback" point, line
- * and triangle functions.
- */
- if (ctx->IndirectTriangles & DD_SW_RASTERIZE) {
- gl_set_point_function(ctx);
- gl_set_line_function(ctx);
- gl_set_triangle_function(ctx);
- gl_set_quad_function(ctx);
-
- if ((ctx->IndirectTriangles &
- (DD_TRI_SW_RASTERIZE|DD_QUAD_SW_RASTERIZE|DD_TRI_CULL)) ==
- (DD_TRI_SW_RASTERIZE|DD_QUAD_SW_RASTERIZE|DD_TRI_CULL))
- ctx->IndirectTriangles &= ~DD_TRI_CULL;
- }
-
- if (MESA_VERBOSE&VERBOSE_CULL)
- gl_print_tri_caps("indirect tris 2", ctx->IndirectTriangles);
-
- gl_set_render_vb_function(ctx);
- }
-
- /* Should only be calc'd when !need_eye_coords and not culling.
- */
- if (ctx->NewState & (NEW_MODELVIEW|NEW_PROJECTION)) {
- if (ctx->NewState & NEW_MODELVIEW) {
- gl_matrix_analyze( &ctx->ModelView );
- ctx->ProjectionMatrix.flags &= ~MAT_DIRTY_DEPENDENTS;
- }
-
- if (ctx->NewState & NEW_PROJECTION) {
- gl_matrix_analyze( &ctx->ProjectionMatrix );
- ctx->ProjectionMatrix.flags &= ~MAT_DIRTY_DEPENDENTS;
-
- if (ctx->Transform.AnyClip) {
- gl_update_userclip( ctx );
- }
- }
-
- gl_calculate_model_project_matrix( ctx );
- ctx->ModelProjectWinMatrixUptodate = 0;
- }
-
- /* Figure out whether we can light in object space or not. If we
- * can, find the current positions of the lights in object space
- */
- if ((ctx->Enabled & (ENABLE_POINT_ATTEN | ENABLE_LIGHT | ENABLE_FOG |
- ENABLE_TEXGEN0 | ENABLE_TEXGEN1)) &&
- (ctx->NewState & (NEW_LIGHTING |
- NEW_FOG |
- NEW_MODELVIEW |
- NEW_PROJECTION |
- NEW_TEXTURING |
- NEW_RASTER_OPS |
- NEW_USER_CLIP)))
- {
- GLboolean oldcoord, oldnorm;
-
- oldcoord = ctx->NeedEyeCoords;
- oldnorm = ctx->NeedEyeNormals;
-
- ctx->NeedNormals = (ctx->Light.Enabled || ctx->Texture.NeedNormals);
- ctx->NeedEyeCoords = ((ctx->Fog.Enabled && ctx->Hint.Fog != GL_NICEST) ||
- ctx->Point.Attenuated);
- ctx->NeedEyeNormals = GL_FALSE;
-
- if (ctx->Light.Enabled) {
- if (ctx->Light.Flags & LIGHT_POSITIONAL) {
- /* Need length for attenuation */
- if (!TEST_MAT_FLAGS( &ctx->ModelView, MAT_FLAGS_LENGTH_PRESERVING))
- ctx->NeedEyeCoords = GL_TRUE;
- } else if (ctx->Light.NeedVertices) {
- /* Need angle for spot calculations */
- if (!TEST_MAT_FLAGS( &ctx->ModelView, MAT_FLAGS_ANGLE_PRESERVING))
- ctx->NeedEyeCoords = GL_TRUE;
- }
- ctx->NeedEyeNormals = ctx->NeedEyeCoords;
- }
- if (ctx->Texture.Enabled || ctx->RenderMode==GL_FEEDBACK) {
- if (ctx->Texture.NeedEyeCoords) ctx->NeedEyeCoords = GL_TRUE;
- if (ctx->Texture.NeedNormals)
- ctx->NeedNormals = ctx->NeedEyeNormals = GL_TRUE;
- }
-
- ctx->vb_proj_matrix = &ctx->ModelProjectMatrix;
-
- if (ctx->NeedEyeCoords)
- ctx->vb_proj_matrix = &ctx->ProjectionMatrix;
-
- if (ctx->Light.Enabled) {
- gl_update_lighting_function(ctx);
-
- if ( (ctx->NewState & NEW_LIGHTING) ||
- ((ctx->NewState & (NEW_MODELVIEW| NEW_PROJECTION)) &&
- !ctx->NeedEyeCoords) ||
- oldcoord != ctx->NeedEyeCoords ||
- oldnorm != ctx->NeedEyeNormals) {
- gl_compute_light_positions(ctx);
- }
-
- ctx->rescale_factor = 1.0F;
-
- if (ctx->ModelView.flags & (MAT_FLAG_UNIFORM_SCALE |
- MAT_FLAG_GENERAL_SCALE |
- MAT_FLAG_GENERAL_3D |
- MAT_FLAG_GENERAL) )
-
- {
- GLfloat *m = ctx->ModelView.inv;
- GLfloat f = m[2]*m[2] + m[6]*m[6] + m[10]*m[10];
- if (f > 1e-12 && (f-1)*(f-1) > 1e-12)
- ctx->rescale_factor = 1.0/GL_SQRT(f);
- }
- }
-
- gl_update_normal_transform( ctx );
- }
-
- gl_update_pipelines(ctx);
- ctx->NewState = 0;
}
diff --git a/xc/extras/Mesa/src/context.h b/xc/extras/Mesa/src/context.h
index ee8d74b6e..520ce7e1c 100644
--- a/xc/extras/Mesa/src/context.h
+++ b/xc/extras/Mesa/src/context.h
@@ -1,4 +1,4 @@
-/* $Id: context.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: context.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -166,13 +166,6 @@ _mesa_get_dispatch(GLcontext *ctx);
/*
- * GL_MESA_resize_buffers extension
- */
-extern void _mesa_ResizeBuffersMESA( void );
-
-
-
-/*
* Miscellaneous
*/
@@ -184,14 +177,22 @@ extern void gl_error( GLcontext *ctx, GLenum error, const char *s );
extern void gl_compile_error( GLcontext *ctx, GLenum error, const char *s );
-extern void gl_update_state( GLcontext *ctx );
-/* for debugging */
-extern void gl_print_state( const char *msg, GLuint state );
+extern void
+_mesa_Finish( void );
+
+extern void
+_mesa_Flush( void );
+
+
+
+extern void
+_mesa_init_no_op_table(struct _glapi_table *exec);
+
+extern void
+_mesa_init_exec_table(struct _glapi_table *exec);
-/* for debugging */
-extern void gl_print_enable_flags( const char *msg, GLuint flags );
#ifdef PROFILE
diff --git a/xc/extras/Mesa/src/copy_tmp.h b/xc/extras/Mesa/src/copy_tmp.h
index 821c1a2db..94700216b 100644
--- a/xc/extras/Mesa/src/copy_tmp.h
+++ b/xc/extras/Mesa/src/copy_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: copy_tmp.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: copy_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/copypix.c b/xc/extras/Mesa/src/copypix.c
index 192471bbe..52c5f16c9 100644
--- a/xc/extras/Mesa/src/copypix.c
+++ b/xc/extras/Mesa/src/copypix.c
@@ -1,4 +1,4 @@
-/* $Id: copypix.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: copypix.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -38,6 +38,7 @@
#include "mmath.h"
#include "pixel.h"
#include "span.h"
+#include "state.h"
#include "stencil.h"
#include "types.h"
#include "zoom.h"
@@ -380,7 +381,7 @@ static void copy_depth_pixels( GLcontext *ctx, GLint srcx, GLint srcy,
}
p = pdepth;
for (j = 0; j < height; j++, ssy += stepy) {
- gl_read_depth_span_float(ctx, width, srcx, ssy, p);
+ _mesa_read_depth_span_float(ctx, width, srcx, ssy, p);
p += width;
}
p = pdepth;
@@ -396,7 +397,7 @@ static void copy_depth_pixels( GLcontext *ctx, GLint srcx, GLint srcy,
p += width;
}
else {
- gl_read_depth_span_float(ctx, width, srcx, sy, depth);
+ _mesa_read_depth_span_float(ctx, width, srcx, sy, depth);
}
for (i = 0; i < width; i++) {
diff --git a/xc/extras/Mesa/src/copypix.h b/xc/extras/Mesa/src/copypix.h
index c81ca4ea4..2523c13c8 100644
--- a/xc/extras/Mesa/src/copypix.h
+++ b/xc/extras/Mesa/src/copypix.h
@@ -1,4 +1,4 @@
-/* $Id: copypix.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: copypix.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/cull_tmp.h b/xc/extras/Mesa/src/cull_tmp.h
index b0aa9aa18..c265fb1dd 100644
--- a/xc/extras/Mesa/src/cull_tmp.h
+++ b/xc/extras/Mesa/src/cull_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: cull_tmp.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: cull_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/cva.c b/xc/extras/Mesa/src/cva.c
index bffc9c411..16c98dbb3 100644
--- a/xc/extras/Mesa/src/cva.c
+++ b/xc/extras/Mesa/src/cva.c
@@ -1,4 +1,4 @@
-/* $Id: cva.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: cva.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/cva.h b/xc/extras/Mesa/src/cva.h
index ba0abf0a9..b0c4acd5a 100644
--- a/xc/extras/Mesa/src/cva.h
+++ b/xc/extras/Mesa/src/cva.h
@@ -1,4 +1,4 @@
-/* $Id: cva.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: cva.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/dd.h b/xc/extras/Mesa/src/dd.h
index e6e3e63c2..6e8fe2d02 100644
--- a/xc/extras/Mesa/src/dd.h
+++ b/xc/extras/Mesa/src/dd.h
@@ -1,4 +1,4 @@
-/* $Id: dd.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: dd.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/ddsample.c b/xc/extras/Mesa/src/ddsample.c
index c390f4c54..454ba4072 100644
--- a/xc/extras/Mesa/src/ddsample.c
+++ b/xc/extras/Mesa/src/ddsample.c
@@ -1,4 +1,4 @@
-/* $Id: ddsample.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: ddsample.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/debug_xform.c b/xc/extras/Mesa/src/debug_xform.c
index 245e733d6..dd784afdc 100644
--- a/xc/extras/Mesa/src/debug_xform.c
+++ b/xc/extras/Mesa/src/debug_xform.c
@@ -1,4 +1,4 @@
-/* $Id: debug_xform.c,v 1.5 2000/02/01 00:02:41 brianp Exp $ */
+/* $Id: debug_xform.c,v 1.6 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/debug_xform.h b/xc/extras/Mesa/src/debug_xform.h
index 4ea036959..14b39c954 100644
--- a/xc/extras/Mesa/src/debug_xform.h
+++ b/xc/extras/Mesa/src/debug_xform.h
@@ -1,4 +1,4 @@
-/* $Id: debug_xform.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: debug_xform.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/depth.c b/xc/extras/Mesa/src/depth.c
index c5d31766e..54397eaad 100644
--- a/xc/extras/Mesa/src/depth.c
+++ b/xc/extras/Mesa/src/depth.c
@@ -1,4 +1,4 @@
-/* $Id: depth.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: depth.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -370,8 +370,8 @@ depth_test_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
* Apply depth test to span of fragments. Hardware or software z buffer.
*/
GLuint
-gl_depth_test_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
- const GLdepth z[], GLubyte mask[] )
+_mesa_depth_test_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
+ const GLdepth z[], GLubyte mask[] )
{
GLdepth zbuffer[MAX_WIDTH];
GLdepth *zptr;
@@ -881,9 +881,10 @@ hardware_depth_test_pixels( GLcontext *ctx, GLuint n, GLdepth zbuffer[],
-void gl_depth_test_pixels( GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- const GLdepth z[], GLubyte mask[] )
+void
+_mesa_depth_test_pixels( GLcontext *ctx,
+ GLuint n, const GLint x[], const GLint y[],
+ const GLdepth z[], GLubyte mask[] )
{
if (ctx->Driver.ReadDepthPixels) {
/* read depth values from hardware Z buffer */
@@ -918,8 +919,9 @@ void gl_depth_test_pixels( GLcontext *ctx,
* x,y - location of first pixel
* Output: depth - the array of depth values
*/
-void gl_read_depth_span_float( GLcontext* ctx,
- GLuint n, GLint x, GLint y, GLfloat depth[] )
+void
+_mesa_read_depth_span_float( GLcontext* ctx,
+ GLuint n, GLint x, GLint y, GLfloat depth[] )
{
const GLfloat scale = 1.0F / DEPTH_SCALE;
@@ -960,7 +962,8 @@ void gl_read_depth_span_float( GLcontext* ctx,
* it will be free()'d. The new depth buffer will be uniniitalized.
* This function is only called through Driver.alloc_depth_buffer.
*/
-void gl_alloc_depth_buffer( GLcontext* ctx )
+void
+_mesa_alloc_depth_buffer( GLcontext* ctx )
{
/* deallocate current depth buffer if present */
if (ctx->DrawBuffer->UseSoftwareDepthBuffer) {
@@ -990,7 +993,8 @@ void gl_alloc_depth_buffer( GLcontext* ctx )
* allocate it now.
* This function is only called through Driver.clear_depth_buffer.
*/
-void gl_clear_depth_buffer( GLcontext* ctx )
+void
+_mesa_clear_depth_buffer( GLcontext* ctx )
{
GLdepth clear_value = (GLdepth) (ctx->Depth.Clear * DEPTH_SCALE);
diff --git a/xc/extras/Mesa/src/depth.h b/xc/extras/Mesa/src/depth.h
index 50bb74da7..199cb0538 100644
--- a/xc/extras/Mesa/src/depth.h
+++ b/xc/extras/Mesa/src/depth.h
@@ -1,4 +1,4 @@
-/* $Id: depth.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: depth.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -60,26 +60,26 @@ _mesa_DepthMask( GLboolean flag );
extern GLuint
-gl_depth_test_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
- const GLdepth z[], GLubyte mask[] );
+_mesa_depth_test_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
+ const GLdepth z[], GLubyte mask[] );
extern void
-gl_depth_test_pixels( GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- const GLdepth z[], GLubyte mask[] );
+_mesa_depth_test_pixels( GLcontext *ctx,
+ GLuint n, const GLint x[], const GLint y[],
+ const GLdepth z[], GLubyte mask[] );
extern void
-gl_read_depth_span_float( GLcontext *ctx, GLuint n, GLint x, GLint y,
- GLfloat depth[] );
+_mesa_read_depth_span_float( GLcontext *ctx, GLuint n, GLint x, GLint y,
+ GLfloat depth[] );
extern void
-gl_alloc_depth_buffer( GLcontext* ctx );
+_mesa_alloc_depth_buffer( GLcontext* ctx );
extern void
-gl_clear_depth_buffer( GLcontext* ctx );
+_mesa_clear_depth_buffer( GLcontext* ctx );
diff --git a/xc/extras/Mesa/src/dispatch.c b/xc/extras/Mesa/src/dispatch.c
index c2880e0e6..da0274d91 100644
--- a/xc/extras/Mesa/src/dispatch.c
+++ b/xc/extras/Mesa/src/dispatch.c
@@ -1,4 +1,4 @@
-/* $Id: dispatch.c,v 1.3 2000/02/01 23:53:31 brianp Exp $ */
+/* $Id: dispatch.c,v 1.4 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -25,71 +25,36 @@
*/
+/*
+ * This file generates all the gl* function entyrpoints.
+ * But if we're using X86-optimized dispatch (X86/glapi_x86.S) then
+ * each of the entrypoints will be prefixed with _glapi_fallback_*
+ * and will be called by the glapi_x86.S code when we're in thread-
+ * safe mode.
+ *
+ * Eventually this file may be replaced by automatically generated
+ * code from an API spec file.
+ *
+ * NOTE: This file should _not_ be used when compiling Mesa for a DRI-
+ * based device driver.
+ *
+ */
+
+
+
#ifdef PC_HEADER
#include "all.h"
#else
#include "glheader.h"
-#include "accum.h"
-#include "alpha.h"
-#include "attrib.h"
-#include "bitmap.h"
-#include "blend.h"
-#include "clip.h"
-#include "context.h"
-#include "colortab.h"
-#include "copypix.h"
-#include "cva.h"
-#include "depth.h"
-#include "dispatch.h"
-#include "dlist.h"
-#include "drawpix.h"
-#include "enable.h"
-#include "eval.h"
-#include "feedback.h"
-#include "fog.h"
-#include "get.h"
#include "glapi.h"
-#include "glmisc.h"
-#include "imaging.h"
-#include "light.h"
-#include "lines.h"
-#include "logic.h"
-#include "masking.h"
-#include "matrix.h"
-#include "pixel.h"
-#include "points.h"
-#include "polygon.h"
-#include "rastpos.h"
-#include "readpix.h"
-#include "rect.h"
-#include "scissor.h"
-#include "stencil.h"
-#include "teximage.h"
-#include "texobj.h"
-#include "texstate.h"
-#include "types.h"
-#include "varray.h"
-#include "vbfill.h"
-#include "winpos.h"
+#include "glapitable.h"
#endif
-/**********************************************************************
- * Generate the GL entrypoint functions here.
- */
-
-#if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server)
-
-/* We're building a DRI driver.
- * GL entrypoints will be in libGL.so, not in this rendering core.
- */
-
-#else
-
#define KEYWORD1
#define KEYWORD2 GLAPIENTRY
-#if defined(USE_X86_ASM) && !defined(__WIN32__)
+#if defined(USE_X86_ASM) && !defined(__WIN32__) && !defined(XF86DRI)
#define NAME(func) _glapi_fallback_##func
#elif defined(USE_MGL_NAMESPACE)
#define NAME(func) mgl##func
@@ -108,16 +73,24 @@ trace(void)
return trace > 0;
}
+#define F stderr
+
#define DISPATCH(FUNC, ARGS, MESSAGE) \
const struct _glapi_table *dispatch; \
dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
- if (trace()) printf MESSAGE; \
+ if (trace()) { \
+ fprintf MESSAGE; \
+ fprintf(F, "\n"); \
+ } \
(dispatch->FUNC) ARGS
#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
const struct _glapi_table *dispatch; \
dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
- if (trace()) printf MESSAGE; \
+ if (trace()) { \
+ fprintf MESSAGE; \
+ fprintf(F, "\n"); \
+ } \
return (dispatch->FUNC) ARGS
#else
@@ -141,510 +114,3 @@ trace(void)
#include "glapitemp.h"
-
-#endif /*GLX_DIRECT_RENDERING*/
-
-
-/**********************************************************************/
-
-
-static int
-generic_noop(void)
-{
-#ifdef DEBUG
- gl_problem(NULL, "undefined function dispatch");
-#endif
- return 0;
-}
-
-
-void
-_mesa_init_no_op_table(struct _glapi_table *table)
-{
- /* Check to be sure the dispatcher's table is at least as big as Mesa's. */
- const GLuint size = sizeof(struct _glapi_table) / sizeof(void *);
- assert(_glapi_get_dispatch_table_size() >= size);
-
- {
- const GLuint n = _glapi_get_dispatch_table_size();
- GLuint i;
- void **dispatch = (void **) table;
- for (i = 0; i < n; i++) {
- dispatch[i] = (void *) generic_noop;
- }
- }
-}
-
-
-/*
- * Initialize the given dispatch table with pointers to Mesa's
- * immediate-mode commands.
- */
-void
-_mesa_init_exec_table(struct _glapi_table *exec)
-{
- /* first initialize all dispatch slots to no-op */
- _mesa_init_no_op_table(exec);
-
- /* load the dispatch slots we understand */
- exec->Accum = _mesa_Accum;
- exec->AlphaFunc = _mesa_AlphaFunc;
- exec->Begin = _mesa_Begin;
- exec->Bitmap = _mesa_Bitmap;
- exec->BlendFunc = _mesa_BlendFunc;
- exec->CallList = _mesa_CallList;
- exec->CallLists = _mesa_CallLists;
- exec->Clear = _mesa_Clear;
- exec->ClearAccum = _mesa_ClearAccum;
- exec->ClearColor = _mesa_ClearColor;
- exec->ClearDepth = _mesa_ClearDepth;
- exec->ClearIndex = _mesa_ClearIndex;
- exec->ClearStencil = _mesa_ClearStencil;
- exec->ClipPlane = _mesa_ClipPlane;
- exec->Color3b = _mesa_Color3b;
- exec->Color3bv = _mesa_Color3bv;
- exec->Color3d = _mesa_Color3d;
- exec->Color3dv = _mesa_Color3dv;
- exec->Color3f = _mesa_Color3f;
- exec->Color3fv = _mesa_Color3fv;
- exec->Color3i = _mesa_Color3i;
- exec->Color3iv = _mesa_Color3iv;
- exec->Color3s = _mesa_Color3s;
- exec->Color3sv = _mesa_Color3sv;
- exec->Color3ub = _mesa_Color3ub;
- exec->Color3ubv = _mesa_Color3ubv;
- exec->Color3ui = _mesa_Color3ui;
- exec->Color3uiv = _mesa_Color3uiv;
- exec->Color3us = _mesa_Color3us;
- exec->Color3usv = _mesa_Color3usv;
- exec->Color4b = _mesa_Color4b;
- exec->Color4bv = _mesa_Color4bv;
- exec->Color4d = _mesa_Color4d;
- exec->Color4dv = _mesa_Color4dv;
- exec->Color4f = _mesa_Color4f;
- exec->Color4fv = _mesa_Color4fv;
- exec->Color4i = _mesa_Color4i;
- exec->Color4iv = _mesa_Color4iv;
- exec->Color4s = _mesa_Color4s;
- exec->Color4sv = _mesa_Color4sv;
- exec->Color4ub = _mesa_Color4ub;
- exec->Color4ubv = _mesa_Color4ubv;
- exec->Color4ui = _mesa_Color4ui;
- exec->Color4uiv = _mesa_Color4uiv;
- exec->Color4us = _mesa_Color4us;
- exec->Color4usv = _mesa_Color4usv;
- exec->ColorMask = _mesa_ColorMask;
- exec->ColorMaterial = _mesa_ColorMaterial;
- exec->CopyPixels = _mesa_CopyPixels;
- exec->CullFace = _mesa_CullFace;
- exec->DeleteLists = _mesa_DeleteLists;
- exec->DepthFunc = _mesa_DepthFunc;
- exec->DepthMask = _mesa_DepthMask;
- exec->DepthRange = _mesa_DepthRange;
- exec->Disable = _mesa_Disable;
- exec->DrawBuffer = _mesa_DrawBuffer;
- exec->DrawPixels = _mesa_DrawPixels;
- exec->EdgeFlag = _mesa_EdgeFlag;
- exec->EdgeFlagv = _mesa_EdgeFlagv;
- exec->Enable = _mesa_Enable;
- exec->End = _mesa_End;
- exec->EndList = _mesa_EndList;
- exec->EvalCoord1d = _mesa_EvalCoord1d;
- exec->EvalCoord1dv = _mesa_EvalCoord1dv;
- exec->EvalCoord1f = _mesa_EvalCoord1f;
- exec->EvalCoord1fv = _mesa_EvalCoord1fv;
- exec->EvalCoord2d = _mesa_EvalCoord2d;
- exec->EvalCoord2dv = _mesa_EvalCoord2dv;
- exec->EvalCoord2f = _mesa_EvalCoord2f;
- exec->EvalCoord2fv = _mesa_EvalCoord2fv;
- exec->EvalMesh1 = _mesa_EvalMesh1;
- exec->EvalMesh2 = _mesa_EvalMesh2;
- exec->EvalPoint1 = _mesa_EvalPoint1;
- exec->EvalPoint2 = _mesa_EvalPoint2;
- exec->FeedbackBuffer = _mesa_FeedbackBuffer;
- exec->Finish = _mesa_Finish;
- exec->Flush = _mesa_Flush;
- exec->Fogf = _mesa_Fogf;
- exec->Fogfv = _mesa_Fogfv;
- exec->Fogi = _mesa_Fogi;
- exec->Fogiv = _mesa_Fogiv;
- exec->FrontFace = _mesa_FrontFace;
- exec->Frustum = _mesa_Frustum;
- exec->GenLists = _mesa_GenLists;
- exec->GetBooleanv = _mesa_GetBooleanv;
- exec->GetClipPlane = _mesa_GetClipPlane;
- exec->GetDoublev = _mesa_GetDoublev;
- exec->GetError = _mesa_GetError;
- exec->GetFloatv = _mesa_GetFloatv;
- exec->GetIntegerv = _mesa_GetIntegerv;
- exec->GetLightfv = _mesa_GetLightfv;
- exec->GetLightiv = _mesa_GetLightiv;
- exec->GetMapdv = _mesa_GetMapdv;
- exec->GetMapfv = _mesa_GetMapfv;
- exec->GetMapiv = _mesa_GetMapiv;
- exec->GetMaterialfv = _mesa_GetMaterialfv;
- exec->GetMaterialiv = _mesa_GetMaterialiv;
- exec->GetPixelMapfv = _mesa_GetPixelMapfv;
- exec->GetPixelMapuiv = _mesa_GetPixelMapuiv;
- exec->GetPixelMapusv = _mesa_GetPixelMapusv;
- exec->GetPolygonStipple = _mesa_GetPolygonStipple;
- exec->GetString = _mesa_GetString;
- exec->GetTexEnvfv = _mesa_GetTexEnvfv;
- exec->GetTexEnviv = _mesa_GetTexEnviv;
- exec->GetTexGendv = _mesa_GetTexGendv;
- exec->GetTexGenfv = _mesa_GetTexGenfv;
- exec->GetTexGeniv = _mesa_GetTexGeniv;
- exec->GetTexImage = _mesa_GetTexImage;
- exec->GetTexLevelParameterfv = _mesa_GetTexLevelParameterfv;
- exec->GetTexLevelParameteriv = _mesa_GetTexLevelParameteriv;
- exec->GetTexParameterfv = _mesa_GetTexParameterfv;
- exec->GetTexParameteriv = _mesa_GetTexParameteriv;
- exec->Hint = _mesa_Hint;
- exec->IndexMask = _mesa_IndexMask;
- exec->Indexd = _mesa_Indexd;
- exec->Indexdv = _mesa_Indexdv;
- exec->Indexf = _mesa_Indexf;
- exec->Indexfv = _mesa_Indexfv;
- exec->Indexi = _mesa_Indexi;
- exec->Indexiv = _mesa_Indexiv;
- exec->Indexs = _mesa_Indexs;
- exec->Indexsv = _mesa_Indexsv;
- exec->InitNames = _mesa_InitNames;
- exec->IsEnabled = _mesa_IsEnabled;
- exec->IsList = _mesa_IsList;
- exec->LightModelf = _mesa_LightModelf;
- exec->LightModelfv = _mesa_LightModelfv;
- exec->LightModeli = _mesa_LightModeli;
- exec->LightModeliv = _mesa_LightModeliv;
- exec->Lightf = _mesa_Lightf;
- exec->Lightfv = _mesa_Lightfv;
- exec->Lighti = _mesa_Lighti;
- exec->Lightiv = _mesa_Lightiv;
- exec->LineStipple = _mesa_LineStipple;
- exec->LineWidth = _mesa_LineWidth;
- exec->ListBase = _mesa_ListBase;
- exec->LoadIdentity = _mesa_LoadIdentity;
- exec->LoadMatrixd = _mesa_LoadMatrixd;
- exec->LoadMatrixf = _mesa_LoadMatrixf;
- exec->LoadName = _mesa_LoadName;
- exec->LogicOp = _mesa_LogicOp;
- exec->Map1d = _mesa_Map1d;
- exec->Map1f = _mesa_Map1f;
- exec->Map2d = _mesa_Map2d;
- exec->Map2f = _mesa_Map2f;
- exec->MapGrid1d = _mesa_MapGrid1d;
- exec->MapGrid1f = _mesa_MapGrid1f;
- exec->MapGrid2d = _mesa_MapGrid2d;
- exec->MapGrid2f = _mesa_MapGrid2f;
- exec->Materialf = _mesa_Materialf;
- exec->Materialfv = _mesa_Materialfv;
- exec->Materiali = _mesa_Materiali;
- exec->Materialiv = _mesa_Materialiv;
- exec->MatrixMode = _mesa_MatrixMode;
- exec->MultMatrixd = _mesa_MultMatrixd;
- exec->MultMatrixf = _mesa_MultMatrixf;
- exec->NewList = _mesa_NewList;
- exec->Normal3b = _mesa_Normal3b;
- exec->Normal3bv = _mesa_Normal3bv;
- exec->Normal3d = _mesa_Normal3d;
- exec->Normal3dv = _mesa_Normal3dv;
- exec->Normal3f = _mesa_Normal3f;
- exec->Normal3fv = _mesa_Normal3fv;
- exec->Normal3i = _mesa_Normal3i;
- exec->Normal3iv = _mesa_Normal3iv;
- exec->Normal3s = _mesa_Normal3s;
- exec->Normal3sv = _mesa_Normal3sv;
- exec->Ortho = _mesa_Ortho;
- exec->PassThrough = _mesa_PassThrough;
- exec->PixelMapfv = _mesa_PixelMapfv;
- exec->PixelMapuiv = _mesa_PixelMapuiv;
- exec->PixelMapusv = _mesa_PixelMapusv;
- exec->PixelStoref = _mesa_PixelStoref;
- exec->PixelStorei = _mesa_PixelStorei;
- exec->PixelTransferf = _mesa_PixelTransferf;
- exec->PixelTransferi = _mesa_PixelTransferi;
- exec->PixelZoom = _mesa_PixelZoom;
- exec->PointSize = _mesa_PointSize;
- exec->PolygonMode = _mesa_PolygonMode;
- exec->PolygonOffset = _mesa_PolygonOffset;
- exec->PolygonStipple = _mesa_PolygonStipple;
- exec->PopAttrib = _mesa_PopAttrib;
- exec->PopMatrix = _mesa_PopMatrix;
- exec->PopName = _mesa_PopName;
- exec->PushAttrib = _mesa_PushAttrib;
- exec->PushMatrix = _mesa_PushMatrix;
- exec->PushName = _mesa_PushName;
- exec->RasterPos2d = _mesa_RasterPos2d;
- exec->RasterPos2dv = _mesa_RasterPos2dv;
- exec->RasterPos2f = _mesa_RasterPos2f;
- exec->RasterPos2fv = _mesa_RasterPos2fv;
- exec->RasterPos2i = _mesa_RasterPos2i;
- exec->RasterPos2iv = _mesa_RasterPos2iv;
- exec->RasterPos2s = _mesa_RasterPos2s;
- exec->RasterPos2sv = _mesa_RasterPos2sv;
- exec->RasterPos3d = _mesa_RasterPos3d;
- exec->RasterPos3dv = _mesa_RasterPos3dv;
- exec->RasterPos3f = _mesa_RasterPos3f;
- exec->RasterPos3fv = _mesa_RasterPos3fv;
- exec->RasterPos3i = _mesa_RasterPos3i;
- exec->RasterPos3iv = _mesa_RasterPos3iv;
- exec->RasterPos3s = _mesa_RasterPos3s;
- exec->RasterPos3sv = _mesa_RasterPos3sv;
- exec->RasterPos4d = _mesa_RasterPos4d;
- exec->RasterPos4dv = _mesa_RasterPos4dv;
- exec->RasterPos4f = _mesa_RasterPos4f;
- exec->RasterPos4fv = _mesa_RasterPos4fv;
- exec->RasterPos4i = _mesa_RasterPos4i;
- exec->RasterPos4iv = _mesa_RasterPos4iv;
- exec->RasterPos4s = _mesa_RasterPos4s;
- exec->RasterPos4sv = _mesa_RasterPos4sv;
- exec->ReadBuffer = _mesa_ReadBuffer;
- exec->ReadPixels = _mesa_ReadPixels;
- exec->Rectd = _mesa_Rectd;
- exec->Rectdv = _mesa_Rectdv;
- exec->Rectf = _mesa_Rectf;
- exec->Rectfv = _mesa_Rectfv;
- exec->Recti = _mesa_Recti;
- exec->Rectiv = _mesa_Rectiv;
- exec->Rects = _mesa_Rects;
- exec->Rectsv = _mesa_Rectsv;
- exec->RenderMode = _mesa_RenderMode;
- exec->Rotated = _mesa_Rotated;
- exec->Rotatef = _mesa_Rotatef;
- exec->Scaled = _mesa_Scaled;
- exec->Scalef = _mesa_Scalef;
- exec->Scissor = _mesa_Scissor;
- exec->SelectBuffer = _mesa_SelectBuffer;
- exec->ShadeModel = _mesa_ShadeModel;
- exec->StencilFunc = _mesa_StencilFunc;
- exec->StencilMask = _mesa_StencilMask;
- exec->StencilOp = _mesa_StencilOp;
- exec->TexCoord1d = _mesa_TexCoord1d;
- exec->TexCoord1dv = _mesa_TexCoord1dv;
- exec->TexCoord1f = _mesa_TexCoord1f;
- exec->TexCoord1fv = _mesa_TexCoord1fv;
- exec->TexCoord1i = _mesa_TexCoord1i;
- exec->TexCoord1iv = _mesa_TexCoord1iv;
- exec->TexCoord1s = _mesa_TexCoord1s;
- exec->TexCoord1sv = _mesa_TexCoord1sv;
- exec->TexCoord2d = _mesa_TexCoord2d;
- exec->TexCoord2dv = _mesa_TexCoord2dv;
- exec->TexCoord2f = _mesa_TexCoord2f;
- exec->TexCoord2fv = _mesa_TexCoord2fv;
- exec->TexCoord2i = _mesa_TexCoord2i;
- exec->TexCoord2iv = _mesa_TexCoord2iv;
- exec->TexCoord2s = _mesa_TexCoord2s;
- exec->TexCoord2sv = _mesa_TexCoord2sv;
- exec->TexCoord3d = _mesa_TexCoord3d;
- exec->TexCoord3dv = _mesa_TexCoord3dv;
- exec->TexCoord3f = _mesa_TexCoord3f;
- exec->TexCoord3fv = _mesa_TexCoord3fv;
- exec->TexCoord3i = _mesa_TexCoord3i;
- exec->TexCoord3iv = _mesa_TexCoord3iv;
- exec->TexCoord3s = _mesa_TexCoord3s;
- exec->TexCoord3sv = _mesa_TexCoord3sv;
- exec->TexCoord4d = _mesa_TexCoord4d;
- exec->TexCoord4dv = _mesa_TexCoord4dv;
- exec->TexCoord4f = _mesa_TexCoord4f;
- exec->TexCoord4fv = _mesa_TexCoord4fv;
- exec->TexCoord4i = _mesa_TexCoord4i;
- exec->TexCoord4iv = _mesa_TexCoord4iv;
- exec->TexCoord4s = _mesa_TexCoord4s;
- exec->TexCoord4sv = _mesa_TexCoord4sv;
- exec->TexEnvf = _mesa_TexEnvf;
- exec->TexEnvfv = _mesa_TexEnvfv;
- exec->TexEnvi = _mesa_TexEnvi;
- exec->TexEnviv = _mesa_TexEnviv;
- exec->TexGend = _mesa_TexGend;
- exec->TexGendv = _mesa_TexGendv;
- exec->TexGenf = _mesa_TexGenf;
- exec->TexGenfv = _mesa_TexGenfv;
- exec->TexGeni = _mesa_TexGeni;
- exec->TexGeniv = _mesa_TexGeniv;
- exec->TexImage1D = _mesa_TexImage1D;
- exec->TexImage2D = _mesa_TexImage2D;
- exec->TexParameterf = _mesa_TexParameterf;
- exec->TexParameterfv = _mesa_TexParameterfv;
- exec->TexParameteri = _mesa_TexParameteri;
- exec->TexParameteriv = _mesa_TexParameteriv;
- exec->Translated = _mesa_Translated;
- exec->Translatef = _mesa_Translatef;
- exec->Vertex2d = _mesa_Vertex2d;
- exec->Vertex2dv = _mesa_Vertex2dv;
- exec->Vertex2f = _mesa_Vertex2f;
- exec->Vertex2fv = _mesa_Vertex2fv;
- exec->Vertex2i = _mesa_Vertex2i;
- exec->Vertex2iv = _mesa_Vertex2iv;
- exec->Vertex2s = _mesa_Vertex2s;
- exec->Vertex2sv = _mesa_Vertex2sv;
- exec->Vertex3d = _mesa_Vertex3d;
- exec->Vertex3dv = _mesa_Vertex3dv;
- exec->Vertex3f = _mesa_Vertex3f;
- exec->Vertex3fv = _mesa_Vertex3fv;
- exec->Vertex3i = _mesa_Vertex3i;
- exec->Vertex3iv = _mesa_Vertex3iv;
- exec->Vertex3s = _mesa_Vertex3s;
- exec->Vertex3sv = _mesa_Vertex3sv;
- exec->Vertex4d = _mesa_Vertex4d;
- exec->Vertex4dv = _mesa_Vertex4dv;
- exec->Vertex4f = _mesa_Vertex4f;
- exec->Vertex4fv = _mesa_Vertex4fv;
- exec->Vertex4i = _mesa_Vertex4i;
- exec->Vertex4iv = _mesa_Vertex4iv;
- exec->Vertex4s = _mesa_Vertex4s;
- exec->Vertex4sv = _mesa_Vertex4sv;
- exec->Viewport = _mesa_Viewport;
-
- /* 1.1 */
- exec->AreTexturesResident = _mesa_AreTexturesResident;
- exec->ArrayElement = _mesa_ArrayElement;
- exec->BindTexture = _mesa_BindTexture;
- exec->ColorPointer = _mesa_ColorPointer;
- exec->CopyTexImage1D = _mesa_CopyTexImage1D;
- exec->CopyTexImage2D = _mesa_CopyTexImage2D;
- exec->CopyTexSubImage1D = _mesa_CopyTexSubImage1D;
- exec->CopyTexSubImage2D = _mesa_CopyTexSubImage2D;
- exec->DeleteTextures = _mesa_DeleteTextures;
- exec->DisableClientState = _mesa_DisableClientState;
- exec->DrawArrays = _mesa_DrawArrays;
- exec->DrawElements = _mesa_DrawElements;
- exec->EdgeFlagPointer = _mesa_EdgeFlagPointer;
- exec->EnableClientState = _mesa_EnableClientState;
- exec->GenTextures = _mesa_GenTextures;
- exec->GetPointerv = _mesa_GetPointerv;
- exec->IndexPointer = _mesa_IndexPointer;
- exec->Indexub = _mesa_Indexub;
- exec->Indexubv = _mesa_Indexubv;
- exec->InterleavedArrays = _mesa_InterleavedArrays;
- exec->IsTexture = _mesa_IsTexture;
- exec->NormalPointer = _mesa_NormalPointer;
- exec->PopClientAttrib = _mesa_PopClientAttrib;
- exec->PrioritizeTextures = _mesa_PrioritizeTextures;
- exec->PushClientAttrib = _mesa_PushClientAttrib;
- exec->TexCoordPointer = _mesa_TexCoordPointer;
- exec->TexSubImage1D = _mesa_TexSubImage1D;
- exec->TexSubImage2D = _mesa_TexSubImage2D;
- exec->VertexPointer = _mesa_VertexPointer;
-
- /* 1.2 */
- exec->CopyTexSubImage3D = _mesa_CopyTexSubImage3D;
- exec->DrawRangeElements = _mesa_DrawRangeElements;
- exec->TexImage3D = _mesa_TexImage3D;
- exec->TexSubImage3D = _mesa_TexSubImage3D;
-
-
- /* OpenGL 1.2 GL_ARB_imaging */
- exec->BlendColor = _mesa_BlendColor;
- exec->BlendEquation = _mesa_BlendEquation;
- exec->ColorSubTable = _mesa_ColorSubTable;
- exec->ColorTable = _mesa_ColorTable;
- exec->ColorTableParameterfv = _mesa_ColorTableParameterfv;
- exec->ColorTableParameteriv = _mesa_ColorTableParameteriv;
- exec->ConvolutionFilter1D = _mesa_ConvolutionFilter1D;
- exec->ConvolutionFilter2D = _mesa_ConvolutionFilter2D;
- exec->ConvolutionParameterf = _mesa_ConvolutionParameterf;
- exec->ConvolutionParameterfv = _mesa_ConvolutionParameterfv;
- exec->ConvolutionParameteri = _mesa_ConvolutionParameteri;
- exec->ConvolutionParameteriv = _mesa_ConvolutionParameteriv;
- exec->CopyColorSubTable = _mesa_CopyColorSubTable;
- exec->CopyColorTable = _mesa_CopyColorTable;
- exec->CopyConvolutionFilter1D = _mesa_CopyConvolutionFilter1D;
- exec->CopyConvolutionFilter2D = _mesa_CopyConvolutionFilter2D;
- exec->GetColorTable = _mesa_GetColorTable;
- exec->GetColorTableParameterfv = _mesa_GetColorTableParameterfv;
- exec->GetColorTableParameteriv = _mesa_GetColorTableParameteriv;
- exec->GetConvolutionFilter = _mesa_GetConvolutionFilter;
- exec->GetConvolutionParameterfv = _mesa_GetConvolutionParameterfv;
- exec->GetConvolutionParameteriv = _mesa_GetConvolutionParameteriv;
- exec->GetHistogram = _mesa_GetHistogram;
- exec->GetHistogramParameterfv = _mesa_GetHistogramParameterfv;
- exec->GetHistogramParameteriv = _mesa_GetHistogramParameteriv;
- exec->GetMinmax = _mesa_GetMinmax;
- exec->GetMinmaxParameterfv = _mesa_GetMinmaxParameterfv;
- exec->GetMinmaxParameteriv = _mesa_GetMinmaxParameteriv;
- exec->GetSeparableFilter = _mesa_GetSeparableFilter;
- exec->Histogram = _mesa_Histogram;
- exec->Minmax = _mesa_Minmax;
- exec->ResetHistogram = _mesa_ResetHistogram;
- exec->ResetMinmax = _mesa_ResetMinmax;
- exec->SeparableFilter2D = _mesa_SeparableFilter2D;
-
- /* GL_EXT_paletted_texture */
- exec->ColorTableEXT = _mesa_ColorTableEXT;
- exec->ColorSubTableEXT = _mesa_ColorSubTableEXT;
- exec->GetColorTableEXT = _mesa_GetColorTableEXT;
- exec->GetColorTableParameterfvEXT = _mesa_GetColorTableParameterfvEXT;
- exec->GetColorTableParameterivEXT = _mesa_GetColorTableParameterivEXT;
-
- /* GL_EXT_compiled_vertex_array */
- exec->LockArraysEXT = _mesa_LockArraysEXT;
- exec->UnlockArraysEXT = _mesa_UnlockArraysEXT;
-
- /* GL_EXT_point_parameters */
- exec->PointParameterfEXT = _mesa_PointParameterfEXT;
- exec->PointParameterfvEXT = _mesa_PointParameterfvEXT;
-
- /* 77. GL_PGI_misc_hints */
- exec->HintPGI = _mesa_HintPGI;
-
- /* GL_EXT_polygon_offset */
- exec->PolygonOffsetEXT = _mesa_PolygonOffsetEXT;
-
- /* GL_EXT_blend_minmax */
- exec->BlendEquationEXT = _mesa_BlendEquationEXT;
-
- /* GL_EXT_blend_color */
- exec->BlendColorEXT = _mesa_BlendColorEXT;
-
- /* GL_ARB_multitexture */
- exec->ActiveTextureARB = _mesa_ActiveTextureARB;
- exec->ClientActiveTextureARB = _mesa_ClientActiveTextureARB;
- exec->MultiTexCoord1dARB = _mesa_MultiTexCoord1dARB;
- exec->MultiTexCoord1dvARB = _mesa_MultiTexCoord1dvARB;
- exec->MultiTexCoord1fARB = _mesa_MultiTexCoord1fARB;
- exec->MultiTexCoord1fvARB = _mesa_MultiTexCoord1fvARB;
- exec->MultiTexCoord1iARB = _mesa_MultiTexCoord1iARB;
- exec->MultiTexCoord1ivARB = _mesa_MultiTexCoord1ivARB;
- exec->MultiTexCoord1sARB = _mesa_MultiTexCoord1sARB;
- exec->MultiTexCoord1svARB = _mesa_MultiTexCoord1svARB;
- exec->MultiTexCoord2dARB = _mesa_MultiTexCoord2dARB;
- exec->MultiTexCoord2dvARB = _mesa_MultiTexCoord2dvARB;
- exec->MultiTexCoord2fARB = _mesa_MultiTexCoord2fARB;
- exec->MultiTexCoord2fvARB = _mesa_MultiTexCoord2fvARB;
- exec->MultiTexCoord2iARB = _mesa_MultiTexCoord2iARB;
- exec->MultiTexCoord2ivARB = _mesa_MultiTexCoord2ivARB;
- exec->MultiTexCoord2sARB = _mesa_MultiTexCoord2sARB;
- exec->MultiTexCoord2svARB = _mesa_MultiTexCoord2svARB;
- exec->MultiTexCoord3dARB = _mesa_MultiTexCoord3dARB;
- exec->MultiTexCoord3dvARB = _mesa_MultiTexCoord3dvARB;
- exec->MultiTexCoord3fARB = _mesa_MultiTexCoord3fARB;
- exec->MultiTexCoord3fvARB = _mesa_MultiTexCoord3fvARB;
- exec->MultiTexCoord3iARB = _mesa_MultiTexCoord3iARB;
- exec->MultiTexCoord3ivARB = _mesa_MultiTexCoord3ivARB;
- exec->MultiTexCoord3sARB = _mesa_MultiTexCoord3sARB;
- exec->MultiTexCoord3svARB = _mesa_MultiTexCoord3svARB;
- exec->MultiTexCoord4dARB = _mesa_MultiTexCoord4dARB;
- exec->MultiTexCoord4dvARB = _mesa_MultiTexCoord4dvARB;
- exec->MultiTexCoord4fARB = _mesa_MultiTexCoord4fARB;
- exec->MultiTexCoord4fvARB = _mesa_MultiTexCoord4fvARB;
- exec->MultiTexCoord4iARB = _mesa_MultiTexCoord4iARB;
- exec->MultiTexCoord4ivARB = _mesa_MultiTexCoord4ivARB;
- exec->MultiTexCoord4sARB = _mesa_MultiTexCoord4sARB;
- exec->MultiTexCoord4svARB = _mesa_MultiTexCoord4svARB;
-
- /* GL_INGR_blend_func_separate */
- exec->BlendFuncSeparateINGR = _mesa_BlendFuncSeparateINGR;
-
- /* GL_MESA_window_pos */
- exec->WindowPos4fMESA = _mesa_WindowPos4fMESA;
-
- /* GL_MESA_resize_buffers */
- exec->ResizeBuffersMESA = _mesa_ResizeBuffersMESA;
-
- /* GL_ARB_transpose_matrix */
- exec->LoadTransposeMatrixdARB = _mesa_LoadTransposeMatrixdARB;
- exec->LoadTransposeMatrixfARB = _mesa_LoadTransposeMatrixfARB;
- exec->MultTransposeMatrixdARB = _mesa_MultTransposeMatrixdARB;
- exec->MultTransposeMatrixfARB = _mesa_MultTransposeMatrixfARB;
-}
-
diff --git a/xc/extras/Mesa/src/dlist.c b/xc/extras/Mesa/src/dlist.c
index ec5ac2e3e..71faa1890 100644
--- a/xc/extras/Mesa/src/dlist.c
+++ b/xc/extras/Mesa/src/dlist.c
@@ -1,4 +1,4 @@
-/* $Id: dlist.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: dlist.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -30,48 +30,39 @@
#else
#include "glheader.h"
#include "accum.h"
-#include "alpha.h"
#include "attrib.h"
#include "bitmap.h"
#include "bbox.h"
-#include "blend.h"
+#include "buffers.h"
#include "clip.h"
#include "colortab.h"
#include "context.h"
#include "copypix.h"
#include "cva.h"
#include "depth.h"
-#include "dispatch.h"
-#include "drawpix.h"
#include "enable.h"
#include "enums.h"
#include "eval.h"
#include "extensions.h"
#include "feedback.h"
-#include "fog.h"
#include "get.h"
#include "glapi.h"
-#include "glmisc.h"
#include "hash.h"
#include "image.h"
#include "imaging.h"
#include "light.h"
#include "lines.h"
#include "dlist.h"
-#include "logic.h"
#include "macros.h"
-#include "masking.h"
#include "matrix.h"
#include "mem.h"
#include "pipeline.h"
#include "pixel.h"
#include "points.h"
#include "polygon.h"
-#include "rastpos.h"
#include "readpix.h"
#include "rect.h"
-#include "scissor.h"
-#include "stencil.h"
+#include "state.h"
#include "texobj.h"
#include "teximage.h"
#include "texstate.h"
@@ -80,7 +71,6 @@
#include "vb.h"
#include "vbfill.h"
#include "vbxform.h"
-#include "winpos.h"
#include "xform.h"
#endif
@@ -620,7 +610,7 @@ static void save_Accum( GLenum op, GLfloat value )
n[2].f = value;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Accum)( op, value );
+ (*ctx->Exec->Accum)( op, value );
}
}
@@ -636,7 +626,7 @@ static void save_AlphaFunc( GLenum func, GLclampf ref )
n[2].f = (GLfloat) ref;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.AlphaFunc)( func, ref );
+ (*ctx->Exec->AlphaFunc)( func, ref );
}
}
@@ -658,7 +648,7 @@ static void save_BindTexture( GLenum target, GLuint texture )
n[2].ui = texture;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.BindTexture)( target, texture );
+ (*ctx->Exec->BindTexture)( target, texture );
}
}
@@ -686,7 +676,7 @@ static void save_Bitmap( GLsizei width, GLsizei height,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Bitmap)( width, height,
+ (*ctx->Exec->Bitmap)( width, height,
xorig, yorig, xmove, ymove, pixels );
}
}
@@ -702,7 +692,7 @@ static void save_BlendEquation( GLenum mode )
n[1].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.BlendEquationEXT)( mode );
+ (*ctx->Exec->BlendEquationEXT)( mode );
}
}
@@ -718,7 +708,7 @@ static void save_BlendFunc( GLenum sfactor, GLenum dfactor )
n[2].e = dfactor;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.BlendFunc)( sfactor, dfactor );
+ (*ctx->Exec->BlendFunc)( sfactor, dfactor );
}
}
@@ -737,7 +727,7 @@ static void save_BlendFuncSeparateINGR(GLenum sfactorRGB, GLenum dfactorRGB,
n[4].e = dfactorA;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.BlendFuncSeparateINGR)( sfactorRGB, dfactorRGB,
+ (*ctx->Exec->BlendFuncSeparateINGR)( sfactorRGB, dfactorRGB,
sfactorA, dfactorA);
}
}
@@ -757,7 +747,7 @@ static void save_BlendColor( GLfloat red, GLfloat green,
n[4].f = alpha;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.BlendColorEXT)( red, green, blue, alpha );
+ (*ctx->Exec->BlendColorEXT)( red, green, blue, alpha );
}
}
@@ -772,7 +762,7 @@ static void save_CallList( GLuint list )
n[1].ui = list;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.CallList)( list );
+ (*ctx->Exec->CallList)( list );
}
}
@@ -791,7 +781,7 @@ static void save_CallLists( GLsizei n, GLenum type, const GLvoid *lists )
}
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.CallLists)( n, type, lists );
+ (*ctx->Exec->CallLists)( n, type, lists );
}
}
@@ -806,7 +796,7 @@ static void save_Clear( GLbitfield mask )
n[1].bf = mask;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Clear)( mask );
+ (*ctx->Exec->Clear)( mask );
}
}
@@ -825,7 +815,7 @@ static void save_ClearAccum( GLfloat red, GLfloat green,
n[4].f = alpha;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ClearAccum)( red, green, blue, alpha );
+ (*ctx->Exec->ClearAccum)( red, green, blue, alpha );
}
}
@@ -844,7 +834,7 @@ static void save_ClearColor( GLclampf red, GLclampf green,
n[4].f = alpha;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ClearColor)( red, green, blue, alpha );
+ (*ctx->Exec->ClearColor)( red, green, blue, alpha );
}
}
@@ -859,7 +849,7 @@ static void save_ClearDepth( GLclampd depth )
n[1].f = (GLfloat) depth;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ClearDepth)( depth );
+ (*ctx->Exec->ClearDepth)( depth );
}
}
@@ -874,7 +864,7 @@ static void save_ClearIndex( GLfloat c )
n[1].f = c;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ClearIndex)( c );
+ (*ctx->Exec->ClearIndex)( c );
}
}
@@ -889,7 +879,7 @@ static void save_ClearStencil( GLint s )
n[1].i = s;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ClearStencil)( s );
+ (*ctx->Exec->ClearStencil)( s );
}
}
@@ -908,7 +898,7 @@ static void save_ClipPlane( GLenum plane, const GLdouble *equ )
n[5].f = equ[3];
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ClipPlane)( plane, equ );
+ (*ctx->Exec->ClipPlane)( plane, equ );
}
}
@@ -928,7 +918,7 @@ static void save_ColorMask( GLboolean red, GLboolean green,
n[4].b = alpha;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ColorMask)( red, green, blue, alpha );
+ (*ctx->Exec->ColorMask)( red, green, blue, alpha );
}
}
@@ -944,7 +934,7 @@ static void save_ColorMaterial( GLenum face, GLenum mode )
n[2].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ColorMaterial)( face, mode );
+ (*ctx->Exec->ColorMaterial)( face, mode );
}
}
@@ -958,7 +948,7 @@ static void save_ColorTableEXT( GLenum target, GLenum internalFormat,
target == GL_PROXY_TEXTURE_2D ||
target == GL_PROXY_TEXTURE_3D) {
/* execute immediately */
- (*ctx->Exec.ColorTableEXT)( target, internalFormat, width,
+ (*ctx->Exec->ColorTableEXT)( target, internalFormat, width,
format, type, table );
}
else {
@@ -979,7 +969,7 @@ static void save_ColorTableEXT( GLenum target, GLenum internalFormat,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ColorTableEXT)( target, internalFormat, width,
+ (*ctx->Exec->ColorTableEXT)( target, internalFormat, width,
format, type, table );
}
}
@@ -1008,7 +998,7 @@ static void save_ColorSubTableEXT( GLenum target, GLsizei start, GLsizei count,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ColorSubTableEXT)(target, start, count, format, type, table);
+ (*ctx->Exec->ColorSubTableEXT)(target, start, count, format, type, table);
}
}
@@ -1029,7 +1019,7 @@ static void save_CopyPixels( GLint x, GLint y,
n[5].e = type;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.CopyPixels)( x, y, width, height, type );
+ (*ctx->Exec->CopyPixels)( x, y, width, height, type );
}
}
@@ -1053,7 +1043,7 @@ save_CopyTexImage1D( GLenum target, GLint level, GLenum internalformat,
n[7].i = border;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.CopyTexImage1D)( target, level, internalformat,
+ (*ctx->Exec->CopyTexImage1D)( target, level, internalformat,
x, y, width, border );
}
}
@@ -1080,7 +1070,7 @@ save_CopyTexImage2D( GLenum target, GLint level,
n[8].i = border;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.CopyTexImage2D)( target, level, internalformat,
+ (*ctx->Exec->CopyTexImage2D)( target, level, internalformat,
x, y, width, height, border );
}
}
@@ -1105,7 +1095,7 @@ save_CopyTexSubImage1D( GLenum target, GLint level,
n[6].i = width;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.CopyTexSubImage1D)( target, level, xoffset, x, y, width );
+ (*ctx->Exec->CopyTexSubImage1D)( target, level, xoffset, x, y, width );
}
}
@@ -1131,7 +1121,7 @@ save_CopyTexSubImage2D( GLenum target, GLint level,
n[8].i = height;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.CopyTexSubImage2D)( target, level, xoffset, yoffset,
+ (*ctx->Exec->CopyTexSubImage2D)( target, level, xoffset, yoffset,
x, y, width, height );
}
}
@@ -1159,7 +1149,7 @@ save_CopyTexSubImage3D( GLenum target, GLint level,
n[9].i = height;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.CopyTexSubImage3D)( target, level,
+ (*ctx->Exec->CopyTexSubImage3D)( target, level,
xoffset, yoffset, zoffset,
x, y, width, height );
}
@@ -1176,7 +1166,7 @@ static void save_CullFace( GLenum mode )
n[1].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.CullFace)( mode );
+ (*ctx->Exec->CullFace)( mode );
}
}
@@ -1191,7 +1181,7 @@ static void save_DepthFunc( GLenum func )
n[1].e = func;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.DepthFunc)( func );
+ (*ctx->Exec->DepthFunc)( func );
}
}
@@ -1206,7 +1196,7 @@ static void save_DepthMask( GLboolean mask )
n[1].b = mask;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.DepthMask)( mask );
+ (*ctx->Exec->DepthMask)( mask );
}
}
@@ -1222,7 +1212,7 @@ static void save_DepthRange( GLclampd nearval, GLclampd farval )
n[2].f = (GLfloat) farval;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.DepthRange)( nearval, farval );
+ (*ctx->Exec->DepthRange)( nearval, farval );
}
}
@@ -1237,7 +1227,7 @@ static void save_Disable( GLenum cap )
n[1].e = cap;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Disable)( cap );
+ (*ctx->Exec->Disable)( cap );
}
}
@@ -1252,7 +1242,7 @@ static void save_DrawBuffer( GLenum mode )
n[1].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.DrawBuffer)( mode );
+ (*ctx->Exec->DrawBuffer)( mode );
}
}
@@ -1278,7 +1268,7 @@ static void save_DrawPixels( GLsizei width, GLsizei height,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.DrawPixels)( width, height, format, type, pixels );
+ (*ctx->Exec->DrawPixels)( width, height, format, type, pixels );
}
}
@@ -1294,7 +1284,7 @@ static void save_Enable( GLenum cap )
n[1].e = cap;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Enable)( cap );
+ (*ctx->Exec->Enable)( cap );
}
}
@@ -1312,7 +1302,7 @@ static void save_EvalMesh1( GLenum mode, GLint i1, GLint i2 )
n[3].i = i2;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.EvalMesh1)( mode, i1, i2 );
+ (*ctx->Exec->EvalMesh1)( mode, i1, i2 );
}
}
@@ -1332,7 +1322,7 @@ static void save_EvalMesh2(
n[5].i = j2;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.EvalMesh2)( mode, i1, i2, j1, j2 );
+ (*ctx->Exec->EvalMesh2)( mode, i1, i2, j1, j2 );
}
}
@@ -1353,7 +1343,7 @@ static void save_Fogfv( GLenum pname, const GLfloat *params )
n[5].f = params[3];
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Fogfv)( pname, params );
+ (*ctx->Exec->Fogfv)( pname, params );
}
}
@@ -1405,7 +1395,7 @@ static void save_FrontFace( GLenum mode )
n[1].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.FrontFace)( mode );
+ (*ctx->Exec->FrontFace)( mode );
}
}
@@ -1427,7 +1417,7 @@ static void save_Frustum( GLdouble left, GLdouble right,
n[6].f = farval;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Frustum)( left, right, bottom, top, nearval, farval );
+ (*ctx->Exec->Frustum)( left, right, bottom, top, nearval, farval );
}
}
@@ -1443,7 +1433,7 @@ static void save_Hint( GLenum target, GLenum mode )
n[2].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Hint)( target, mode );
+ (*ctx->Exec->Hint)( target, mode );
}
}
@@ -1460,7 +1450,7 @@ static void save_HintPGI( GLenum target, GLint mode )
n[2].i = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.HintPGI)( target, mode );
+ (*ctx->Exec->HintPGI)( target, mode );
}
}
@@ -1475,7 +1465,7 @@ static void save_IndexMask( GLuint mask )
n[1].ui = mask;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.IndexMask)( mask );
+ (*ctx->Exec->IndexMask)( mask );
}
}
@@ -1486,7 +1476,7 @@ static void save_InitNames( void )
FLUSH_VB(ctx, "dlist");
(void) alloc_instruction( ctx, OPCODE_INIT_NAMES, 0 );
if (ctx->ExecuteFlag) {
- (*ctx->Exec.InitNames)();
+ (*ctx->Exec->InitNames)();
}
}
@@ -1540,7 +1530,7 @@ static void save_Lightfv( GLenum light, GLenum pname, const GLfloat *params )
}
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Lightfv)( light, pname, params );
+ (*ctx->Exec->Lightfv)( light, pname, params );
}
}
@@ -1609,7 +1599,7 @@ static void save_LightModelfv( GLenum pname, const GLfloat *params )
n[5].f = params[3];
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.LightModelfv)( pname, params );
+ (*ctx->Exec->LightModelfv)( pname, params );
}
}
@@ -1660,7 +1650,7 @@ static void save_LineStipple( GLint factor, GLushort pattern )
n[2].us = pattern;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.LineStipple)( factor, pattern );
+ (*ctx->Exec->LineStipple)( factor, pattern );
}
}
@@ -1675,7 +1665,7 @@ static void save_LineWidth( GLfloat width )
n[1].f = width;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.LineWidth)( width );
+ (*ctx->Exec->LineWidth)( width );
}
}
@@ -1690,7 +1680,7 @@ static void save_ListBase( GLuint base )
n[1].ui = base;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ListBase)( base );
+ (*ctx->Exec->ListBase)( base );
}
}
@@ -1701,7 +1691,7 @@ static void save_LoadIdentity( void )
FLUSH_VB(ctx, "dlist");
(void) alloc_instruction( ctx, OPCODE_LOAD_IDENTITY, 0 );
if (ctx->ExecuteFlag) {
- (*ctx->Exec.LoadIdentity)();
+ (*ctx->Exec->LoadIdentity)();
}
}
@@ -1719,7 +1709,7 @@ static void save_LoadMatrixf( const GLfloat *m )
}
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.LoadMatrixf)( m );
+ (*ctx->Exec->LoadMatrixf)( m );
}
}
@@ -1745,7 +1735,7 @@ static void save_LoadName( GLuint name )
n[1].ui = name;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.LoadName)( name );
+ (*ctx->Exec->LoadName)( name );
}
}
@@ -1760,7 +1750,7 @@ static void save_LogicOp( GLenum opcode )
n[1].e = opcode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.LogicOp)( opcode );
+ (*ctx->Exec->LogicOp)( opcode );
}
}
@@ -1782,7 +1772,7 @@ static void save_Map1d( GLenum target, GLdouble u1, GLdouble u2, GLint stride,
n[6].data = (void *) pnts;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Map1d)( target, u1, u2, stride, order, points );
+ (*ctx->Exec->Map1d)( target, u1, u2, stride, order, points );
}
}
@@ -1803,7 +1793,7 @@ static void save_Map1f( GLenum target, GLfloat u1, GLfloat u2, GLint stride,
n[6].data = (void *) pnts;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Map1f)( target, u1, u2, stride, order, points );
+ (*ctx->Exec->Map1f)( target, u1, u2, stride, order, points );
}
}
@@ -1833,7 +1823,7 @@ static void save_Map2d( GLenum target,
n[10].data = (void *) pnts;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Map2d)( target,
+ (*ctx->Exec->Map2d)( target,
u1, u2, ustride, uorder,
v1, v2, vstride, vorder, points );
}
@@ -1865,7 +1855,7 @@ static void save_Map2f( GLenum target,
n[10].data = (void *) pnts;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Map2f)( target, u1, u2, ustride, uorder,
+ (*ctx->Exec->Map2f)( target, u1, u2, ustride, uorder,
v1, v2, vstride, vorder, points );
}
}
@@ -1883,7 +1873,7 @@ static void save_MapGrid1f( GLint un, GLfloat u1, GLfloat u2 )
n[3].f = u2;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.MapGrid1f)( un, u1, u2 );
+ (*ctx->Exec->MapGrid1f)( un, u1, u2 );
}
}
@@ -1910,7 +1900,7 @@ static void save_MapGrid2f( GLint un, GLfloat u1, GLfloat u2,
n[6].f = v2;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.MapGrid2f)( un, u1, u2, vn, v1, v2 );
+ (*ctx->Exec->MapGrid2f)( un, u1, u2, vn, v1, v2 );
}
}
@@ -1933,7 +1923,7 @@ static void save_MatrixMode( GLenum mode )
n[1].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.MatrixMode)( mode );
+ (*ctx->Exec->MatrixMode)( mode );
}
}
@@ -1951,7 +1941,7 @@ static void save_MultMatrixf( const GLfloat *m )
}
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.MultMatrixf)( m );
+ (*ctx->Exec->MultMatrixf)( m );
}
}
@@ -1995,7 +1985,7 @@ static void save_Ortho( GLdouble left, GLdouble right,
n[6].f = farval;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Ortho)( left, right, bottom, top, nearval, farval );
+ (*ctx->Exec->Ortho)( left, right, bottom, top, nearval, farval );
}
}
@@ -2013,7 +2003,7 @@ static void save_PixelMapfv( GLenum map, GLint mapsize, const GLfloat *values )
MEMCPY( n[3].data, (void *) values, mapsize * sizeof(GLfloat) );
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PixelMapfv)( map, mapsize, values );
+ (*ctx->Exec->PixelMapfv)( map, mapsize, values );
}
}
@@ -2065,7 +2055,7 @@ static void save_PixelTransferf( GLenum pname, GLfloat param )
n[2].f = param;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PixelTransferf)( pname, param );
+ (*ctx->Exec->PixelTransferf)( pname, param );
}
}
@@ -2087,7 +2077,7 @@ static void save_PixelZoom( GLfloat xfactor, GLfloat yfactor )
n[2].f = yfactor;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PixelZoom)( xfactor, yfactor );
+ (*ctx->Exec->PixelZoom)( xfactor, yfactor );
}
}
@@ -2105,7 +2095,7 @@ static void save_PointParameterfvEXT( GLenum pname, const GLfloat *params )
n[4].f = params[2];
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PointParameterfvEXT)( pname, params );
+ (*ctx->Exec->PointParameterfvEXT)( pname, params );
}
}
@@ -2126,7 +2116,7 @@ static void save_PointSize( GLfloat size )
n[1].f = size;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PointSize)( size );
+ (*ctx->Exec->PointSize)( size );
}
}
@@ -2142,7 +2132,7 @@ static void save_PolygonMode( GLenum face, GLenum mode )
n[2].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PolygonMode)( face, mode );
+ (*ctx->Exec->PolygonMode)( face, mode );
}
}
@@ -2163,7 +2153,7 @@ static void save_PolygonStipple( const GLubyte *pattern )
MEMCPY( data, pattern, 32 * 4 );
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PolygonStipple)( (GLubyte*) pattern );
+ (*ctx->Exec->PolygonStipple)( (GLubyte*) pattern );
}
}
@@ -2179,7 +2169,7 @@ static void save_PolygonOffset( GLfloat factor, GLfloat units )
n[2].f = units;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PolygonOffset)( factor, units );
+ (*ctx->Exec->PolygonOffset)( factor, units );
}
}
@@ -2196,7 +2186,7 @@ static void save_PopAttrib( void )
FLUSH_VB(ctx, "dlist");
(void) alloc_instruction( ctx, OPCODE_POP_ATTRIB, 0 );
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PopAttrib)();
+ (*ctx->Exec->PopAttrib)();
}
}
@@ -2207,7 +2197,7 @@ static void save_PopMatrix( void )
FLUSH_VB(ctx, "dlist");
(void) alloc_instruction( ctx, OPCODE_POP_MATRIX, 0 );
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PopMatrix)();
+ (*ctx->Exec->PopMatrix)();
}
}
@@ -2218,7 +2208,7 @@ static void save_PopName( void )
FLUSH_VB(ctx, "dlist");
(void) alloc_instruction( ctx, OPCODE_POP_NAME, 0 );
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PopName)();
+ (*ctx->Exec->PopName)();
}
}
@@ -2239,7 +2229,7 @@ static void save_PrioritizeTextures( GLsizei num, const GLuint *textures,
}
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PrioritizeTextures)( num, textures, priorities );
+ (*ctx->Exec->PrioritizeTextures)( num, textures, priorities );
}
}
@@ -2254,7 +2244,7 @@ static void save_PushAttrib( GLbitfield mask )
n[1].bf = mask;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PushAttrib)( mask );
+ (*ctx->Exec->PushAttrib)( mask );
}
}
@@ -2265,7 +2255,7 @@ static void save_PushMatrix( void )
FLUSH_VB(ctx, "dlist");
(void) alloc_instruction( ctx, OPCODE_PUSH_MATRIX, 0 );
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PushMatrix)();
+ (*ctx->Exec->PushMatrix)();
}
}
@@ -2280,7 +2270,7 @@ static void save_PushName( GLuint name )
n[1].ui = name;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PushName)( name );
+ (*ctx->Exec->PushName)( name );
}
}
@@ -2298,7 +2288,7 @@ static void save_RasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w )
n[4].f = w;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.RasterPos4f)( x, y, z, w );
+ (*ctx->Exec->RasterPos4f)( x, y, z, w );
}
}
@@ -2428,7 +2418,7 @@ static void save_PassThrough( GLfloat token )
n[1].f = token;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.PassThrough)( token );
+ (*ctx->Exec->PassThrough)( token );
}
}
@@ -2443,7 +2433,7 @@ static void save_ReadBuffer( GLenum mode )
n[1].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ReadBuffer)( mode );
+ (*ctx->Exec->ReadBuffer)( mode );
}
}
@@ -2461,7 +2451,7 @@ static void save_Rectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 )
n[4].f = y2;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Rectf)( x1, y1, x2, y2 );
+ (*ctx->Exec->Rectf)( x1, y1, x2, y2 );
}
}
@@ -2527,7 +2517,7 @@ static void save_Scalef( GLfloat x, GLfloat y, GLfloat z )
n[3].f = z;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Scalef)( x, y, z );
+ (*ctx->Exec->Scalef)( x, y, z );
}
}
@@ -2551,7 +2541,7 @@ static void save_Scissor( GLint x, GLint y, GLsizei width, GLsizei height )
n[4].i = height;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Scissor)( x, y, width, height );
+ (*ctx->Exec->Scissor)( x, y, width, height );
}
}
@@ -2566,7 +2556,7 @@ static void save_ShadeModel( GLenum mode )
n[1].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ShadeModel)( mode );
+ (*ctx->Exec->ShadeModel)( mode );
}
}
@@ -2583,7 +2573,7 @@ static void save_StencilFunc( GLenum func, GLint ref, GLuint mask )
n[3].ui = mask;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.StencilFunc)( func, ref, mask );
+ (*ctx->Exec->StencilFunc)( func, ref, mask );
}
}
@@ -2598,7 +2588,7 @@ static void save_StencilMask( GLuint mask )
n[1].ui = mask;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.StencilMask)( mask );
+ (*ctx->Exec->StencilMask)( mask );
}
}
@@ -2615,7 +2605,7 @@ static void save_StencilOp( GLenum fail, GLenum zfail, GLenum zpass )
n[3].e = zpass;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.StencilOp)( fail, zfail, zpass );
+ (*ctx->Exec->StencilOp)( fail, zfail, zpass );
}
}
@@ -2635,7 +2625,7 @@ static void save_TexEnvfv( GLenum target, GLenum pname, const GLfloat *params )
n[6].f = params[3];
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.TexEnvfv)( target, pname, params );
+ (*ctx->Exec->TexEnvfv)( target, pname, params );
}
}
@@ -2681,7 +2671,7 @@ static void save_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params )
n[6].f = params[3];
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.TexGenfv)( coord, pname, params );
+ (*ctx->Exec->TexGenfv)( coord, pname, params );
}
}
@@ -2743,7 +2733,7 @@ static void save_TexParameterfv( GLenum target,
n[6].f = params[3];
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.TexParameterfv)( target, pname, params );
+ (*ctx->Exec->TexParameterfv)( target, pname, params );
}
}
@@ -2781,7 +2771,7 @@ static void save_TexImage1D( GLenum target,
GET_CURRENT_CONTEXT(ctx);
if (target == GL_PROXY_TEXTURE_1D) {
/* don't compile, execute immediately */
- (*ctx->Exec.TexImage1D)( target, level, components, width,
+ (*ctx->Exec->TexImage1D)( target, level, components, width,
border, format, type, pixels );
}
else {
@@ -2804,7 +2794,7 @@ static void save_TexImage1D( GLenum target,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.TexImage1D)( target, level, components, width,
+ (*ctx->Exec->TexImage1D)( target, level, components, width,
border, format, type, pixels );
}
}
@@ -2820,7 +2810,7 @@ static void save_TexImage2D( GLenum target,
GET_CURRENT_CONTEXT(ctx);
if (target == GL_PROXY_TEXTURE_2D) {
/* don't compile, execute immediately */
- (*ctx->Exec.TexImage2D)( target, level, components, width,
+ (*ctx->Exec->TexImage2D)( target, level, components, width,
height, border, format, type, pixels );
}
else {
@@ -2844,7 +2834,7 @@ static void save_TexImage2D( GLenum target,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.TexImage2D)( target, level, components, width,
+ (*ctx->Exec->TexImage2D)( target, level, components, width,
height, border, format, type, pixels );
}
}
@@ -2861,7 +2851,7 @@ static void save_TexImage3D( GLenum target,
GET_CURRENT_CONTEXT(ctx);
if (target == GL_PROXY_TEXTURE_3D) {
/* don't compile, execute immediately */
- (*ctx->Exec.TexImage3D)( target, level, components, width,
+ (*ctx->Exec->TexImage3D)( target, level, components, width,
height, depth, border, format, type, pixels );
}
else {
@@ -2886,13 +2876,24 @@ static void save_TexImage3D( GLenum target,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.TexImage3D)( target, level, components, width,
+ (*ctx->Exec->TexImage3D)( target, level, components, width,
height, depth, border, format, type, pixels );
}
}
}
+static void save_TexImage3DEXT( GLenum target,
+ GLint level, GLenum components,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLint border, GLenum format, GLenum type,
+ const GLvoid *pixels )
+{
+ save_TexImage3D(target, level, (GLint) components, width, height,
+ depth, border, format, type, pixels);
+}
+
+
static void save_TexSubImage1D( GLenum target, GLint level, GLint xoffset,
GLsizei width, GLenum format, GLenum type,
const GLvoid *pixels )
@@ -2916,7 +2917,7 @@ static void save_TexSubImage1D( GLenum target, GLint level, GLint xoffset,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.TexSubImage1D)( target, level, xoffset, width,
+ (*ctx->Exec->TexSubImage1D)( target, level, xoffset, width,
format, type, pixels );
}
}
@@ -2949,7 +2950,7 @@ static void save_TexSubImage2D( GLenum target, GLint level,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.TexSubImage2D)( target, level, xoffset, yoffset,
+ (*ctx->Exec->TexSubImage2D)( target, level, xoffset, yoffset,
width, height, format, type, pixels );
}
}
@@ -2984,7 +2985,7 @@ static void save_TexSubImage3D( GLenum target, GLint level,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.TexSubImage3D)( target, level,
+ (*ctx->Exec->TexSubImage3D)( target, level,
xoffset, yoffset, zoffset,
width, height, depth, format, type, pixels );
}
@@ -3003,7 +3004,7 @@ static void save_Translatef( GLfloat x, GLfloat y, GLfloat z )
n[3].f = z;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Translatef)( x, y, z );
+ (*ctx->Exec->Translatef)( x, y, z );
}
}
@@ -3028,7 +3029,7 @@ static void save_Viewport( GLint x, GLint y, GLsizei width, GLsizei height )
n[4].i = (GLint) height;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.Viewport)( x, y, width, height );
+ (*ctx->Exec->Viewport)( x, y, width, height );
}
}
@@ -3046,10 +3047,124 @@ static void save_WindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w )
n[4].f = w;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.WindowPos4fMESA)( x, y, z, w );
+ (*ctx->Exec->WindowPos4fMESA)( x, y, z, w );
}
}
+static void save_WindowPos2dMESA(GLdouble x, GLdouble y)
+{
+ save_WindowPos4fMESA(x, y, 0.0F, 1.0F);
+}
+
+static void save_WindowPos2fMESA(GLfloat x, GLfloat y)
+{
+ save_WindowPos4fMESA(x, y, 0.0F, 1.0F);
+}
+
+static void save_WindowPos2iMESA(GLint x, GLint y)
+{
+ save_WindowPos4fMESA(x, y, 0.0F, 1.0F);
+}
+
+static void save_WindowPos2sMESA(GLshort x, GLshort y)
+{
+ save_WindowPos4fMESA(x, y, 0.0F, 1.0F);
+}
+
+static void save_WindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z)
+{
+ save_WindowPos4fMESA(x, y, z, 1.0F);
+}
+
+static void save_WindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z)
+{
+ save_WindowPos4fMESA(x, y, z, 1.0F);
+}
+
+static void save_WindowPos3iMESA(GLint x, GLint y, GLint z)
+{
+ save_WindowPos4fMESA(x, y, z, 1.0F);
+}
+
+static void save_WindowPos3sMESA(GLshort x, GLshort y, GLshort z)
+{
+ save_WindowPos4fMESA(x, y, z, 1.0F);
+}
+
+static void save_WindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ save_WindowPos4fMESA(x, y, z, w);
+}
+
+static void save_WindowPos4iMESA(GLint x, GLint y, GLint z, GLint w)
+{
+ save_WindowPos4fMESA(x, y, z, w);
+}
+
+static void save_WindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ save_WindowPos4fMESA(x, y, z, w);
+}
+
+static void save_WindowPos2dvMESA(const GLdouble *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
+}
+
+static void save_WindowPos2fvMESA(const GLfloat *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
+}
+
+static void save_WindowPos2ivMESA(const GLint *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
+}
+
+static void save_WindowPos2svMESA(const GLshort *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
+}
+
+static void save_WindowPos3dvMESA(const GLdouble *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
+}
+
+static void save_WindowPos3fvMESA(const GLfloat *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
+}
+
+static void save_WindowPos3ivMESA(const GLint *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
+}
+
+static void save_WindowPos3svMESA(const GLshort *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
+}
+
+static void save_WindowPos4dvMESA(const GLdouble *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
+}
+
+static void save_WindowPos4fvMESA(const GLfloat *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
+}
+
+static void save_WindowPos4ivMESA(const GLint *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
+}
+
+static void save_WindowPos4svMESA(const GLshort *v)
+{
+ save_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
+}
@@ -3064,7 +3179,7 @@ static void save_ActiveTextureARB( GLenum target )
n[1].e = target;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ActiveTextureARB)( target );
+ (*ctx->Exec->ActiveTextureARB)( target );
}
}
@@ -3080,7 +3195,7 @@ static void save_ClientActiveTextureARB( GLenum target )
n[1].e = target;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec.ClientActiveTextureARB)( target );
+ (*ctx->Exec->ClientActiveTextureARB)( target );
}
}
@@ -3270,34 +3385,34 @@ static void execute_list( GLcontext *ctx, GLuint list )
break;
}
case OPCODE_ACCUM:
- (*ctx->Exec.Accum)( n[1].e, n[2].f );
+ (*ctx->Exec->Accum)( n[1].e, n[2].f );
break;
case OPCODE_ALPHA_FUNC:
- (*ctx->Exec.AlphaFunc)( n[1].e, n[2].f );
+ (*ctx->Exec->AlphaFunc)( n[1].e, n[2].f );
break;
case OPCODE_BIND_TEXTURE:
- (*ctx->Exec.BindTexture)( n[1].e, n[2].ui );
+ (*ctx->Exec->BindTexture)( n[1].e, n[2].ui );
break;
case OPCODE_BITMAP:
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec.Bitmap)( (GLsizei) n[1].i, (GLsizei) n[2].i,
+ (*ctx->Exec->Bitmap)( (GLsizei) n[1].i, (GLsizei) n[2].i,
n[3].f, n[4].f, n[5].f, n[6].f, n[7].data );
ctx->Unpack = save; /* restore */
}
break;
case OPCODE_BLEND_COLOR:
- (*ctx->Exec.BlendColorEXT)( n[1].f, n[2].f, n[3].f, n[4].f );
+ (*ctx->Exec->BlendColorEXT)( n[1].f, n[2].f, n[3].f, n[4].f );
break;
case OPCODE_BLEND_EQUATION:
- (*ctx->Exec.BlendEquationEXT)( n[1].e );
+ (*ctx->Exec->BlendEquationEXT)( n[1].e );
break;
case OPCODE_BLEND_FUNC:
- (*ctx->Exec.BlendFunc)( n[1].e, n[2].e );
+ (*ctx->Exec->BlendFunc)( n[1].e, n[2].e );
break;
case OPCODE_BLEND_FUNC_SEPARATE:
- (*ctx->Exec.BlendFuncSeparateINGR)(n[1].e, n[2].e, n[3].e, n[4].e);
+ (*ctx->Exec->BlendFuncSeparateINGR)(n[1].e, n[2].e, n[3].e, n[4].e);
break;
case OPCODE_CALL_LIST:
/* Generated by glCallList(), don't add ListBase */
@@ -3312,22 +3427,22 @@ static void execute_list( GLcontext *ctx, GLuint list )
}
break;
case OPCODE_CLEAR:
- (*ctx->Exec.Clear)( n[1].bf );
+ (*ctx->Exec->Clear)( n[1].bf );
break;
case OPCODE_CLEAR_COLOR:
- (*ctx->Exec.ClearColor)( n[1].f, n[2].f, n[3].f, n[4].f );
+ (*ctx->Exec->ClearColor)( n[1].f, n[2].f, n[3].f, n[4].f );
break;
case OPCODE_CLEAR_ACCUM:
- (*ctx->Exec.ClearAccum)( n[1].f, n[2].f, n[3].f, n[4].f );
+ (*ctx->Exec->ClearAccum)( n[1].f, n[2].f, n[3].f, n[4].f );
break;
case OPCODE_CLEAR_DEPTH:
- (*ctx->Exec.ClearDepth)( (GLclampd) n[1].f );
+ (*ctx->Exec->ClearDepth)( (GLclampd) n[1].f );
break;
case OPCODE_CLEAR_INDEX:
- (*ctx->Exec.ClearIndex)( n[1].ui );
+ (*ctx->Exec->ClearIndex)( n[1].ui );
break;
case OPCODE_CLEAR_STENCIL:
- (*ctx->Exec.ClearStencil)( n[1].i );
+ (*ctx->Exec->ClearStencil)( n[1].i );
break;
case OPCODE_CLIP_PLANE:
{
@@ -3336,20 +3451,20 @@ static void execute_list( GLcontext *ctx, GLuint list )
eq[1] = n[3].f;
eq[2] = n[4].f;
eq[3] = n[5].f;
- (*ctx->Exec.ClipPlane)( n[1].e, eq );
+ (*ctx->Exec->ClipPlane)( n[1].e, eq );
}
break;
case OPCODE_COLOR_MASK:
- (*ctx->Exec.ColorMask)( n[1].b, n[2].b, n[3].b, n[4].b );
+ (*ctx->Exec->ColorMask)( n[1].b, n[2].b, n[3].b, n[4].b );
break;
case OPCODE_COLOR_MATERIAL:
- (*ctx->Exec.ColorMaterial)( n[1].e, n[2].e );
+ (*ctx->Exec->ColorMaterial)( n[1].e, n[2].e );
break;
case OPCODE_COLOR_TABLE:
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec.ColorTableEXT)( n[1].e, n[2].e, n[3].i, n[4].e,
+ (*ctx->Exec->ColorTableEXT)( n[1].e, n[2].e, n[3].i, n[4].e,
n[5].e, n[6].data );
ctx->Unpack = save; /* restore */
}
@@ -3358,70 +3473,70 @@ static void execute_list( GLcontext *ctx, GLuint list )
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec.ColorSubTableEXT)( n[1].e, n[2].i, n[3].i,
+ (*ctx->Exec->ColorSubTableEXT)( n[1].e, n[2].i, n[3].i,
n[4].e, n[5].e, n[6].data );
ctx->Unpack = save; /* restore */
}
break;
case OPCODE_COPY_PIXELS:
- (*ctx->Exec.CopyPixels)( n[1].i, n[2].i,
+ (*ctx->Exec->CopyPixels)( n[1].i, n[2].i,
(GLsizei) n[3].i, (GLsizei) n[4].i, n[5].e );
break;
case OPCODE_COPY_TEX_IMAGE1D:
- (*ctx->Exec.CopyTexImage1D)( n[1].e, n[2].i, n[3].e, n[4].i,
+ (*ctx->Exec->CopyTexImage1D)( n[1].e, n[2].i, n[3].e, n[4].i,
n[5].i, n[6].i, n[7].i );
break;
case OPCODE_COPY_TEX_IMAGE2D:
- (*ctx->Exec.CopyTexImage2D)( n[1].e, n[2].i, n[3].e, n[4].i,
+ (*ctx->Exec->CopyTexImage2D)( n[1].e, n[2].i, n[3].e, n[4].i,
n[5].i, n[6].i, n[7].i, n[8].i );
break;
case OPCODE_COPY_TEX_SUB_IMAGE1D:
- (*ctx->Exec.CopyTexSubImage1D)( n[1].e, n[2].i, n[3].i,
+ (*ctx->Exec->CopyTexSubImage1D)( n[1].e, n[2].i, n[3].i,
n[4].i, n[5].i, n[6].i );
break;
case OPCODE_COPY_TEX_SUB_IMAGE2D:
- (*ctx->Exec.CopyTexSubImage2D)( n[1].e, n[2].i, n[3].i,
+ (*ctx->Exec->CopyTexSubImage2D)( n[1].e, n[2].i, n[3].i,
n[4].i, n[5].i, n[6].i, n[7].i, n[8].i );
break;
case OPCODE_COPY_TEX_SUB_IMAGE3D:
- (*ctx->Exec.CopyTexSubImage3D)( n[1].e, n[2].i, n[3].i,
+ (*ctx->Exec->CopyTexSubImage3D)( n[1].e, n[2].i, n[3].i,
n[4].i, n[5].i, n[6].i, n[7].i, n[8].i , n[9].i);
break;
case OPCODE_CULL_FACE:
- (*ctx->Exec.CullFace)( n[1].e );
+ (*ctx->Exec->CullFace)( n[1].e );
break;
case OPCODE_DEPTH_FUNC:
- (*ctx->Exec.DepthFunc)( n[1].e );
+ (*ctx->Exec->DepthFunc)( n[1].e );
break;
case OPCODE_DEPTH_MASK:
- (*ctx->Exec.DepthMask)( n[1].b );
+ (*ctx->Exec->DepthMask)( n[1].b );
break;
case OPCODE_DEPTH_RANGE:
- (*ctx->Exec.DepthRange)( (GLclampd) n[1].f, (GLclampd) n[2].f );
+ (*ctx->Exec->DepthRange)( (GLclampd) n[1].f, (GLclampd) n[2].f );
break;
case OPCODE_DISABLE:
- (*ctx->Exec.Disable)( n[1].e );
+ (*ctx->Exec->Disable)( n[1].e );
break;
case OPCODE_DRAW_BUFFER:
- (*ctx->Exec.DrawBuffer)( n[1].e );
+ (*ctx->Exec->DrawBuffer)( n[1].e );
break;
case OPCODE_DRAW_PIXELS:
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec.DrawPixels)( n[1].i, n[2].i, n[3].e, n[4].e,
+ (*ctx->Exec->DrawPixels)( n[1].i, n[2].i, n[3].e, n[4].e,
n[5].data );
ctx->Unpack = save; /* restore */
}
break;
case OPCODE_ENABLE:
- (*ctx->Exec.Enable)( n[1].e );
+ (*ctx->Exec->Enable)( n[1].e );
break;
case OPCODE_EVALMESH1:
- (*ctx->Exec.EvalMesh1)( n[1].e, n[2].i, n[3].i );
+ (*ctx->Exec->EvalMesh1)( n[1].e, n[2].i, n[3].i );
break;
case OPCODE_EVALMESH2:
- (*ctx->Exec.EvalMesh2)( n[1].e, n[2].i, n[3].i, n[4].i, n[5].i );
+ (*ctx->Exec->EvalMesh2)( n[1].e, n[2].i, n[3].i, n[4].i, n[5].i );
break;
case OPCODE_FOG:
{
@@ -3430,26 +3545,26 @@ static void execute_list( GLcontext *ctx, GLuint list )
p[1] = n[3].f;
p[2] = n[4].f;
p[3] = n[5].f;
- (*ctx->Exec.Fogfv)( n[1].e, p );
+ (*ctx->Exec->Fogfv)( n[1].e, p );
}
break;
case OPCODE_FRONT_FACE:
- (*ctx->Exec.FrontFace)( n[1].e );
+ (*ctx->Exec->FrontFace)( n[1].e );
break;
case OPCODE_FRUSTUM:
- (*ctx->Exec.Frustum)( n[1].f, n[2].f, n[3].f, n[4].f, n[5].f, n[6].f );
+ (*ctx->Exec->Frustum)( n[1].f, n[2].f, n[3].f, n[4].f, n[5].f, n[6].f );
break;
case OPCODE_HINT:
- (*ctx->Exec.Hint)( n[1].e, n[2].e );
+ (*ctx->Exec->Hint)( n[1].e, n[2].e );
break;
case OPCODE_HINT_PGI:
- (*ctx->Exec.HintPGI)( n[1].e, n[2].i );
+ (*ctx->Exec->HintPGI)( n[1].e, n[2].i );
break;
case OPCODE_INDEX_MASK:
- (*ctx->Exec.IndexMask)( n[1].ui );
+ (*ctx->Exec->IndexMask)( n[1].ui );
break;
case OPCODE_INIT_NAMES:
- (*ctx->Exec.InitNames)();
+ (*ctx->Exec->InitNames)();
break;
case OPCODE_LIGHT:
{
@@ -3458,7 +3573,7 @@ static void execute_list( GLcontext *ctx, GLuint list )
p[1] = n[4].f;
p[2] = n[5].f;
p[3] = n[6].f;
- (*ctx->Exec.Lightfv)( n[1].e, n[2].e, p );
+ (*ctx->Exec->Lightfv)( n[1].e, n[2].e, p );
}
break;
case OPCODE_LIGHT_MODEL:
@@ -3468,24 +3583,24 @@ static void execute_list( GLcontext *ctx, GLuint list )
p[1] = n[3].f;
p[2] = n[4].f;
p[3] = n[5].f;
- (*ctx->Exec.LightModelfv)( n[1].e, p );
+ (*ctx->Exec->LightModelfv)( n[1].e, p );
}
break;
case OPCODE_LINE_STIPPLE:
- (*ctx->Exec.LineStipple)( n[1].i, n[2].us );
+ (*ctx->Exec->LineStipple)( n[1].i, n[2].us );
break;
case OPCODE_LINE_WIDTH:
- (*ctx->Exec.LineWidth)( n[1].f );
+ (*ctx->Exec->LineWidth)( n[1].f );
break;
case OPCODE_LIST_BASE:
- (*ctx->Exec.ListBase)( n[1].ui );
+ (*ctx->Exec->ListBase)( n[1].ui );
break;
case OPCODE_LOAD_IDENTITY:
- (*ctx->Exec.LoadIdentity)();
+ (*ctx->Exec->LoadIdentity)();
break;
case OPCODE_LOAD_MATRIX:
if (sizeof(Node)==sizeof(GLfloat)) {
- (*ctx->Exec.LoadMatrixf)( &n[1].f );
+ (*ctx->Exec->LoadMatrixf)( &n[1].f );
}
else {
GLfloat m[16];
@@ -3493,14 +3608,14 @@ static void execute_list( GLcontext *ctx, GLuint list )
for (i=0;i<16;i++) {
m[i] = n[1+i].f;
}
- (*ctx->Exec.LoadMatrixf)( m );
+ (*ctx->Exec->LoadMatrixf)( m );
}
break;
case OPCODE_LOAD_NAME:
- (*ctx->Exec.LoadName)( n[1].ui );
+ (*ctx->Exec->LoadName)( n[1].ui );
break;
case OPCODE_LOGIC_OP:
- (*ctx->Exec.LogicOp)( n[1].e );
+ (*ctx->Exec->LogicOp)( n[1].e );
break;
case OPCODE_MAP1:
{
@@ -3509,7 +3624,7 @@ static void execute_list( GLcontext *ctx, GLuint list )
GLint uorder = n[5].i;
GLfloat u1 = n[2].f;
GLfloat u2 = n[3].f;
- (*ctx->Exec.Map1f)( target, u1, u2, ustride, uorder,
+ (*ctx->Exec->Map1f)( target, u1, u2, ustride, uorder,
(GLfloat *) n[6].data );
}
break;
@@ -3524,23 +3639,23 @@ static void execute_list( GLcontext *ctx, GLuint list )
GLint vstride = n[7].i;
GLint uorder = n[8].i;
GLint vorder = n[9].i;
- (*ctx->Exec.Map2f)( target, u1, u2, ustride, uorder,
+ (*ctx->Exec->Map2f)( target, u1, u2, ustride, uorder,
v1, v2, vstride, vorder,
(GLfloat *) n[10].data );
}
break;
case OPCODE_MAPGRID1:
- (*ctx->Exec.MapGrid1f)( n[1].i, n[2].f, n[3].f );
+ (*ctx->Exec->MapGrid1f)( n[1].i, n[2].f, n[3].f );
break;
case OPCODE_MAPGRID2:
- (*ctx->Exec.MapGrid2f)( n[1].i, n[2].f, n[3].f, n[4].i, n[5].f, n[6].f);
+ (*ctx->Exec->MapGrid2f)( n[1].i, n[2].f, n[3].f, n[4].i, n[5].f, n[6].f);
break;
case OPCODE_MATRIX_MODE:
- (*ctx->Exec.MatrixMode)( n[1].e );
+ (*ctx->Exec->MatrixMode)( n[1].e );
break;
case OPCODE_MULT_MATRIX:
if (sizeof(Node)==sizeof(GLfloat)) {
- (*ctx->Exec.MultMatrixf)( &n[1].f );
+ (*ctx->Exec->MultMatrixf)( &n[1].f );
}
else {
GLfloat m[16];
@@ -3548,26 +3663,26 @@ static void execute_list( GLcontext *ctx, GLuint list )
for (i=0;i<16;i++) {
m[i] = n[1+i].f;
}
- (*ctx->Exec.MultMatrixf)( m );
+ (*ctx->Exec->MultMatrixf)( m );
}
break;
case OPCODE_ORTHO:
- (*ctx->Exec.Ortho)( n[1].f, n[2].f, n[3].f, n[4].f, n[5].f, n[6].f );
+ (*ctx->Exec->Ortho)( n[1].f, n[2].f, n[3].f, n[4].f, n[5].f, n[6].f );
break;
case OPCODE_PASSTHROUGH:
- (*ctx->Exec.PassThrough)( n[1].f );
+ (*ctx->Exec->PassThrough)( n[1].f );
break;
case OPCODE_PIXEL_MAP:
- (*ctx->Exec.PixelMapfv)( n[1].e, n[2].i, (GLfloat *) n[3].data );
+ (*ctx->Exec->PixelMapfv)( n[1].e, n[2].i, (GLfloat *) n[3].data );
break;
case OPCODE_PIXEL_TRANSFER:
- (*ctx->Exec.PixelTransferf)( n[1].e, n[2].f );
+ (*ctx->Exec->PixelTransferf)( n[1].e, n[2].f );
break;
case OPCODE_PIXEL_ZOOM:
- (*ctx->Exec.PixelZoom)( n[1].f, n[2].f );
+ (*ctx->Exec->PixelZoom)( n[1].f, n[2].f );
break;
case OPCODE_POINT_SIZE:
- (*ctx->Exec.PointSize)( n[1].f );
+ (*ctx->Exec->PointSize)( n[1].f );
break;
case OPCODE_POINT_PARAMETERS:
{
@@ -3575,65 +3690,65 @@ static void execute_list( GLcontext *ctx, GLuint list )
params[0] = n[2].f;
params[1] = n[3].f;
params[2] = n[4].f;
- (*ctx->Exec.PointParameterfvEXT)( n[1].e, params );
+ (*ctx->Exec->PointParameterfvEXT)( n[1].e, params );
}
break;
case OPCODE_POLYGON_MODE:
- (*ctx->Exec.PolygonMode)( n[1].e, n[2].e );
+ (*ctx->Exec->PolygonMode)( n[1].e, n[2].e );
break;
case OPCODE_POLYGON_STIPPLE:
- (*ctx->Exec.PolygonStipple)( (GLubyte *) n[1].data );
+ (*ctx->Exec->PolygonStipple)( (GLubyte *) n[1].data );
break;
case OPCODE_POLYGON_OFFSET:
- (*ctx->Exec.PolygonOffset)( n[1].f, n[2].f );
+ (*ctx->Exec->PolygonOffset)( n[1].f, n[2].f );
break;
case OPCODE_POP_ATTRIB:
- (*ctx->Exec.PopAttrib)();
+ (*ctx->Exec->PopAttrib)();
break;
case OPCODE_POP_MATRIX:
- (*ctx->Exec.PopMatrix)();
+ (*ctx->Exec->PopMatrix)();
break;
case OPCODE_POP_NAME:
- (*ctx->Exec.PopName)();
+ (*ctx->Exec->PopName)();
break;
case OPCODE_PRIORITIZE_TEXTURE:
- (*ctx->Exec.PrioritizeTextures)( 1, &n[1].ui, &n[2].f );
+ (*ctx->Exec->PrioritizeTextures)( 1, &n[1].ui, &n[2].f );
break;
case OPCODE_PUSH_ATTRIB:
- (*ctx->Exec.PushAttrib)( n[1].bf );
+ (*ctx->Exec->PushAttrib)( n[1].bf );
break;
case OPCODE_PUSH_MATRIX:
- (*ctx->Exec.PushMatrix)();
+ (*ctx->Exec->PushMatrix)();
break;
case OPCODE_PUSH_NAME:
- (*ctx->Exec.PushName)( n[1].ui );
+ (*ctx->Exec->PushName)( n[1].ui );
break;
case OPCODE_RASTER_POS:
- (*ctx->Exec.RasterPos4f)( n[1].f, n[2].f, n[3].f, n[4].f );
+ (*ctx->Exec->RasterPos4f)( n[1].f, n[2].f, n[3].f, n[4].f );
break;
case OPCODE_READ_BUFFER:
- (*ctx->Exec.ReadBuffer)( n[1].e );
+ (*ctx->Exec->ReadBuffer)( n[1].e );
break;
case OPCODE_RECTF:
- (*ctx->Exec.Rectf)( n[1].f, n[2].f, n[3].f, n[4].f );
+ (*ctx->Exec->Rectf)( n[1].f, n[2].f, n[3].f, n[4].f );
break;
case OPCODE_SCALE:
- (*ctx->Exec.Scalef)( n[1].f, n[2].f, n[3].f );
+ (*ctx->Exec->Scalef)( n[1].f, n[2].f, n[3].f );
break;
case OPCODE_SCISSOR:
- (*ctx->Exec.Scissor)( n[1].i, n[2].i, n[3].i, n[4].i );
+ (*ctx->Exec->Scissor)( n[1].i, n[2].i, n[3].i, n[4].i );
break;
case OPCODE_SHADE_MODEL:
- (*ctx->Exec.ShadeModel)( n[1].e );
+ (*ctx->Exec->ShadeModel)( n[1].e );
break;
case OPCODE_STENCIL_FUNC:
- (*ctx->Exec.StencilFunc)( n[1].e, n[2].i, n[3].ui );
+ (*ctx->Exec->StencilFunc)( n[1].e, n[2].i, n[3].ui );
break;
case OPCODE_STENCIL_MASK:
- (*ctx->Exec.StencilMask)( n[1].ui );
+ (*ctx->Exec->StencilMask)( n[1].ui );
break;
case OPCODE_STENCIL_OP:
- (*ctx->Exec.StencilOp)( n[1].e, n[2].e, n[3].e );
+ (*ctx->Exec->StencilOp)( n[1].e, n[2].e, n[3].e );
break;
case OPCODE_TEXENV:
{
@@ -3642,7 +3757,7 @@ static void execute_list( GLcontext *ctx, GLuint list )
params[1] = n[4].f;
params[2] = n[5].f;
params[3] = n[6].f;
- (*ctx->Exec.TexEnvfv)( n[1].e, n[2].e, params );
+ (*ctx->Exec->TexEnvfv)( n[1].e, n[2].e, params );
}
break;
case OPCODE_TEXGEN:
@@ -3652,7 +3767,7 @@ static void execute_list( GLcontext *ctx, GLuint list )
params[1] = n[4].f;
params[2] = n[5].f;
params[3] = n[6].f;
- (*ctx->Exec.TexGenfv)( n[1].e, n[2].e, params );
+ (*ctx->Exec->TexGenfv)( n[1].e, n[2].e, params );
}
break;
case OPCODE_TEXPARAMETER:
@@ -3662,14 +3777,14 @@ static void execute_list( GLcontext *ctx, GLuint list )
params[1] = n[4].f;
params[2] = n[5].f;
params[3] = n[6].f;
- (*ctx->Exec.TexParameterfv)( n[1].e, n[2].e, params );
+ (*ctx->Exec->TexParameterfv)( n[1].e, n[2].e, params );
}
break;
case OPCODE_TEX_IMAGE1D:
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec.TexImage1D)(
+ (*ctx->Exec->TexImage1D)(
n[1].e, /* target */
n[2].i, /* level */
n[3].i, /* components */
@@ -3685,7 +3800,7 @@ static void execute_list( GLcontext *ctx, GLuint list )
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec.TexImage2D)(
+ (*ctx->Exec->TexImage2D)(
n[1].e, /* target */
n[2].i, /* level */
n[3].i, /* components */
@@ -3702,7 +3817,7 @@ static void execute_list( GLcontext *ctx, GLuint list )
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec.TexImage3D)(
+ (*ctx->Exec->TexImage3D)(
n[1].e, /* target */
n[2].i, /* level */
n[3].i, /* components */
@@ -3720,7 +3835,7 @@ static void execute_list( GLcontext *ctx, GLuint list )
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec.TexSubImage1D)( n[1].e, n[2].i, n[3].i,
+ (*ctx->Exec->TexSubImage1D)( n[1].e, n[2].i, n[3].i,
n[4].i, n[5].e,
n[6].e, n[7].data );
ctx->Unpack = save; /* restore */
@@ -3730,7 +3845,7 @@ static void execute_list( GLcontext *ctx, GLuint list )
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec.TexSubImage2D)( n[1].e, n[2].i, n[3].i,
+ (*ctx->Exec->TexSubImage2D)( n[1].e, n[2].i, n[3].i,
n[4].i, n[5].e,
n[6].i, n[7].e, n[8].e, n[9].data );
ctx->Unpack = save; /* restore */
@@ -3740,7 +3855,7 @@ static void execute_list( GLcontext *ctx, GLuint list )
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec.TexSubImage3D)( n[1].e, n[2].i, n[3].i,
+ (*ctx->Exec->TexSubImage3D)( n[1].e, n[2].i, n[3].i,
n[4].i, n[5].i, n[6].i, n[7].i,
n[8].i, n[9].e, n[10].e,
n[11].data );
@@ -3748,20 +3863,20 @@ static void execute_list( GLcontext *ctx, GLuint list )
}
break;
case OPCODE_TRANSLATE:
- (*ctx->Exec.Translatef)( n[1].f, n[2].f, n[3].f );
+ (*ctx->Exec->Translatef)( n[1].f, n[2].f, n[3].f );
break;
case OPCODE_VIEWPORT:
- (*ctx->Exec.Viewport)(n[1].i, n[2].i,
+ (*ctx->Exec->Viewport)(n[1].i, n[2].i,
(GLsizei) n[3].i, (GLsizei) n[4].i);
break;
case OPCODE_WINDOW_POS:
- (*ctx->Exec.WindowPos4fMESA)( n[1].f, n[2].f, n[3].f, n[4].f );
+ (*ctx->Exec->WindowPos4fMESA)( n[1].f, n[2].f, n[3].f, n[4].f );
break;
case OPCODE_ACTIVE_TEXTURE: /* GL_ARB_multitexture */
- (*ctx->Exec.ActiveTextureARB)( n[1].e );
+ (*ctx->Exec->ActiveTextureARB)( n[1].e );
break;
case OPCODE_CLIENT_ACTIVE_TEXTURE: /* GL_ARB_multitexture */
- (*ctx->Exec.ClientActiveTextureARB)( n[1].e );
+ (*ctx->Exec->ClientActiveTextureARB)( n[1].e );
break;
case OPCODE_CONTINUE:
n = (Node *) n[1].next;
@@ -3905,7 +4020,7 @@ _mesa_NewList( GLuint list, GLenum mode )
ctx->CompileCVAFlag = GL_FALSE;
ctx->ExecuteFlag = (mode == GL_COMPILE_AND_EXECUTE);
- ctx->CurrentDispatch = &ctx->Save;
+ ctx->CurrentDispatch = ctx->Save;
_glapi_set_dispatch( ctx->CurrentDispatch );
}
@@ -3958,7 +4073,7 @@ _mesa_EndList( void )
*/
ctx->NewState = ~0;
- ctx->CurrentDispatch = &ctx->Exec;
+ ctx->CurrentDispatch = ctx->Exec;
_glapi_set_dispatch( ctx->CurrentDispatch );
}
@@ -3986,7 +4101,7 @@ _mesa_CallList( GLuint list )
/* also restore API function pointers to point to "save" versions */
if (save_compile_flag) {
- ctx->CurrentDispatch = &ctx->Save;
+ ctx->CurrentDispatch = ctx->Save;
_glapi_set_dispatch( ctx->CurrentDispatch );
}
}
@@ -4021,7 +4136,7 @@ _mesa_CallLists( GLsizei n, GLenum type, const GLvoid *lists )
/* also restore API function pointers to point to "save" versions */
if (save_compile_flag) {
- ctx->CurrentDispatch = &ctx->Save;
+ ctx->CurrentDispatch = ctx->Save;
_glapi_set_dispatch( ctx->CurrentDispatch );
}
@@ -4436,6 +4551,11 @@ _mesa_init_dlist_table( struct _glapi_table *table )
table->ResetMinmax = _mesa_ResetMinmax;
table->SeparableFilter2D = _mesa_SeparableFilter2D;
+ /* 6. GL_EXT_texture3d */
+ table->CopyTexSubImage3DEXT = save_CopyTexSubImage3D;
+ table->TexImage3DEXT = save_TexImage3DEXT;
+ table->TexSubImage3DEXT = save_TexSubImage3D;
+
/* GL_EXT_paletted_texture */
table->ColorTableEXT = save_ColorTableEXT;
table->ColorSubTableEXT = save_ColorSubTableEXT;
@@ -4503,7 +4623,30 @@ _mesa_init_dlist_table( struct _glapi_table *table )
table->BlendFuncSeparateINGR = save_BlendFuncSeparateINGR;
/* GL_MESA_window_pos */
+ table->WindowPos2dMESA = save_WindowPos2dMESA;
+ table->WindowPos2dvMESA = save_WindowPos2dvMESA;
+ table->WindowPos2fMESA = save_WindowPos2fMESA;
+ table->WindowPos2fvMESA = save_WindowPos2fvMESA;
+ table->WindowPos2iMESA = save_WindowPos2iMESA;
+ table->WindowPos2ivMESA = save_WindowPos2ivMESA;
+ table->WindowPos2sMESA = save_WindowPos2sMESA;
+ table->WindowPos2svMESA = save_WindowPos2svMESA;
+ table->WindowPos3dMESA = save_WindowPos3dMESA;
+ table->WindowPos3dvMESA = save_WindowPos3dvMESA;
+ table->WindowPos3fMESA = save_WindowPos3fMESA;
+ table->WindowPos3fvMESA = save_WindowPos3fvMESA;
+ table->WindowPos3iMESA = save_WindowPos3iMESA;
+ table->WindowPos3ivMESA = save_WindowPos3ivMESA;
+ table->WindowPos3sMESA = save_WindowPos3sMESA;
+ table->WindowPos3svMESA = save_WindowPos3svMESA;
+ table->WindowPos4dMESA = save_WindowPos4dMESA;
+ table->WindowPos4dvMESA = save_WindowPos4dvMESA;
table->WindowPos4fMESA = save_WindowPos4fMESA;
+ table->WindowPos4fvMESA = save_WindowPos4fvMESA;
+ table->WindowPos4iMESA = save_WindowPos4iMESA;
+ table->WindowPos4ivMESA = save_WindowPos4ivMESA;
+ table->WindowPos4sMESA = save_WindowPos4sMESA;
+ table->WindowPos4svMESA = save_WindowPos4svMESA;
/* GL_MESA_resize_buffers */
table->ResizeBuffersMESA = _mesa_ResizeBuffersMESA;
diff --git a/xc/extras/Mesa/src/dlist.h b/xc/extras/Mesa/src/dlist.h
index 282238bb4..b0e15cd0e 100644
--- a/xc/extras/Mesa/src/dlist.h
+++ b/xc/extras/Mesa/src/dlist.h
@@ -1,4 +1,4 @@
-/* $Id: dlist.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: dlist.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/dotprod_tmp.h b/xc/extras/Mesa/src/dotprod_tmp.h
index 28e4fb5fb..964191811 100644
--- a/xc/extras/Mesa/src/dotprod_tmp.h
+++ b/xc/extras/Mesa/src/dotprod_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: dotprod_tmp.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: dotprod_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/drawpix.c b/xc/extras/Mesa/src/drawpix.c
index d02ea8605..bc947def1 100644
--- a/xc/extras/Mesa/src/drawpix.c
+++ b/xc/extras/Mesa/src/drawpix.c
@@ -1,10 +1,10 @@
-/* $Id: drawpix.c,v 1.5 2000/02/12 21:54:10 daryll Exp $ */
+/* $Id: drawpix.c,v 1.6 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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,6 +37,7 @@
#include "mmath.h"
#include "pixel.h"
#include "span.h"
+#include "state.h"
#include "stencil.h"
#include "types.h"
#include "zoom.h"
@@ -704,7 +705,7 @@ _mesa_DrawPixels( GLsizei width, GLsizei height,
if (ctx->Visual->RGBAflag)
draw_rgba_pixels(ctx, x,y, width, height, format, type, pixels);
else
- draw_rgba_pixels(ctx, x,y, width, height, format, type, pixels);
+ draw_index_pixels(ctx, x, y, width, height, type, pixels);
break;
case GL_RED:
case GL_GREEN:
diff --git a/xc/extras/Mesa/src/drawpix.h b/xc/extras/Mesa/src/drawpix.h
index 2d2fc2190..7a7e1fd51 100644
--- a/xc/extras/Mesa/src/drawpix.h
+++ b/xc/extras/Mesa/src/drawpix.h
@@ -1,4 +1,4 @@
-/* $Id: drawpix.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: drawpix.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/enable.c b/xc/extras/Mesa/src/enable.c
index e8067b15b..c21ab93b3 100644
--- a/xc/extras/Mesa/src/enable.c
+++ b/xc/extras/Mesa/src/enable.c
@@ -1,4 +1,4 @@
-/* $Id: enable.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: enable.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/enable.h b/xc/extras/Mesa/src/enable.h
index d52684708..fdfd7d946 100644
--- a/xc/extras/Mesa/src/enable.h
+++ b/xc/extras/Mesa/src/enable.h
@@ -1,4 +1,4 @@
-/* $Id: enable.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: enable.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/enums.c b/xc/extras/Mesa/src/enums.c
index 1979abd3f..b9fa93ddb 100644
--- a/xc/extras/Mesa/src/enums.c
+++ b/xc/extras/Mesa/src/enums.c
@@ -1,10 +1,10 @@
-/* $Id: enums.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: enums.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -795,8 +795,8 @@ enum_elt all_enums[] =
{ "GL_NATIVE_GRAPHICS_HANDLE_PGI", 107010 },
/* GL_EXT_compiled_vertex_array */
- { "GL_ARRAY_ELEMENT_LOCK_FIRST_SGI", 0x81A8},
- { "GL_ARRAY_ELEMENT_LOCK_COUNT_SGI", 0x81A9},
+ { "GL_ARRAY_ELEMENT_LOCK_FIRST_EXT", 0x81A8},
+ { "GL_ARRAY_ELEMENT_LOCK_COUNT_EXT", 0x81A9},
/* GL_EXT_clip_volume_hint */
{ "GL_CLIP_VOLUME_CLIPPING_HINT_EXT", 0x80F0}
diff --git a/xc/extras/Mesa/src/enums.h b/xc/extras/Mesa/src/enums.h
index 87d5dd77c..f83915dfd 100644
--- a/xc/extras/Mesa/src/enums.h
+++ b/xc/extras/Mesa/src/enums.h
@@ -1,4 +1,4 @@
-/* $Id: enums.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: enums.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/eval.c b/xc/extras/Mesa/src/eval.c
index 0e7f32f72..fbbb80184 100644
--- a/xc/extras/Mesa/src/eval.c
+++ b/xc/extras/Mesa/src/eval.c
@@ -1,4 +1,4 @@
-/* $Id: eval.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: eval.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/eval.h b/xc/extras/Mesa/src/eval.h
index e745f1098..108e30f98 100644
--- a/xc/extras/Mesa/src/eval.h
+++ b/xc/extras/Mesa/src/eval.h
@@ -1,4 +1,4 @@
-/* $Id: eval.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: eval.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/extensions.c b/xc/extras/Mesa/src/extensions.c
index 13f252755..a7fc189d7 100644
--- a/xc/extras/Mesa/src/extensions.c
+++ b/xc/extras/Mesa/src/extensions.c
@@ -1,4 +1,4 @@
-/* $Id: extensions.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: extensions.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/extensions.h b/xc/extras/Mesa/src/extensions.h
index 763b74157..8e5407a6d 100644
--- a/xc/extras/Mesa/src/extensions.h
+++ b/xc/extras/Mesa/src/extensions.h
@@ -1,4 +1,4 @@
-/* $Id: extensions.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: extensions.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/feedback.c b/xc/extras/Mesa/src/feedback.c
index b9a2b8e98..9e7d59841 100644
--- a/xc/extras/Mesa/src/feedback.c
+++ b/xc/extras/Mesa/src/feedback.c
@@ -1,4 +1,4 @@
-/* $Id: feedback.c,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: feedback.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/feedback.h b/xc/extras/Mesa/src/feedback.h
index e7a09f84a..a6d1b865c 100644
--- a/xc/extras/Mesa/src/feedback.h
+++ b/xc/extras/Mesa/src/feedback.h
@@ -1,4 +1,4 @@
-/* $Id: feedback.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: feedback.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/fixed.h b/xc/extras/Mesa/src/fixed.h
index 33a33d4c0..cd4589564 100644
--- a/xc/extras/Mesa/src/fixed.h
+++ b/xc/extras/Mesa/src/fixed.h
@@ -1,4 +1,4 @@
-/* $Id: fixed.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: fixed.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/fog.c b/xc/extras/Mesa/src/fog.c
index 6223a564a..c98c0a059 100644
--- a/xc/extras/Mesa/src/fog.c
+++ b/xc/extras/Mesa/src/fog.c
@@ -1,10 +1,10 @@
-/* $Id: fog.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: fog.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -72,7 +72,7 @@ _mesa_Fogiv(GLenum pname, const GLint *params )
p[3] = INT_TO_FLOAT( params[3] );
break;
default:
- /* Error will be caught later in gl_Fogfv */
+ /* Error will be caught later in _mesa_Fogfv */
;
}
_mesa_Fogfv(pname, p);
@@ -172,16 +172,20 @@ static fog_func fog_rgba_tab[2];
#define IDX 1
#include "fog_tmp.h"
-void gl_init_fog( void )
+
+void
+_mesa_init_fog( void )
{
init_fog_tab_masked();
init_fog_tab_raw();
}
+
/*
* Compute fog for the vertices in the vertex buffer.
*/
-void gl_fog_vertices( struct vertex_buffer *VB )
+void
+_mesa_fog_vertices( struct vertex_buffer *VB )
{
GLcontext *ctx = VB->ctx;
GLuint i = VB->CullMode & 1;
@@ -213,8 +217,9 @@ void gl_fog_vertices( struct vertex_buffer *VB )
* red, green, blue, alpha - pixel colors
* Output: red, green, blue, alpha - fogged pixel colors
*/
-void gl_fog_rgba_pixels( const GLcontext *ctx,
- GLuint n, const GLdepth z[], GLubyte rgba[][4] )
+void
+_mesa_fog_rgba_pixels( const GLcontext *ctx,
+ GLuint n, const GLdepth z[], GLubyte rgba[][4] )
{
GLfloat c = ctx->ProjectionMatrix.m[10];
GLfloat d = ctx->ProjectionMatrix.m[14];
@@ -283,7 +288,7 @@ void gl_fog_rgba_pixels( const GLcontext *ctx,
}
break;
default:
- gl_problem(ctx, "Bad fog mode in gl_fog_rgba_pixels");
+ gl_problem(ctx, "Bad fog mode in _mesa_fog_rgba_pixels");
return;
}
}
@@ -298,8 +303,9 @@ void gl_fog_rgba_pixels( const GLcontext *ctx,
* index - pixel color indexes
* Output: index - fogged pixel color indexes
*/
-void gl_fog_ci_pixels( const GLcontext *ctx,
- GLuint n, const GLdepth z[], GLuint index[] )
+void
+_mesa_fog_ci_pixels( const GLcontext *ctx,
+ GLuint n, const GLdepth z[], GLuint index[] )
{
GLfloat c = ctx->ProjectionMatrix.m[10];
GLfloat d = ctx->ProjectionMatrix.m[14];
@@ -359,7 +365,7 @@ void gl_fog_ci_pixels( const GLcontext *ctx,
}
break;
default:
- gl_problem(ctx, "Bad fog mode in gl_fog_ci_pixels");
+ gl_problem(ctx, "Bad fog mode in _mesa_fog_ci_pixels");
return;
}
}
diff --git a/xc/extras/Mesa/src/fog.h b/xc/extras/Mesa/src/fog.h
index c187a1821..076924d15 100644
--- a/xc/extras/Mesa/src/fog.h
+++ b/xc/extras/Mesa/src/fog.h
@@ -1,10 +1,10 @@
-/* $Id: fog.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: fog.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -49,16 +49,21 @@ _mesa_Fogiv(GLenum pname, const GLint *params );
-extern void gl_fog_vertices( struct vertex_buffer *VB );
+extern void
+_mesa_fog_vertices( struct vertex_buffer *VB );
-extern void gl_fog_rgba_pixels( const GLcontext *ctx,
- GLuint n, const GLdepth z[],
- GLubyte rgba[][4] );
+extern void
+_mesa_fog_rgba_pixels( const GLcontext *ctx,
+ GLuint n, const GLdepth z[],
+ GLubyte rgba[][4] );
-extern void gl_fog_ci_pixels( const GLcontext *ctx,
- GLuint n, const GLdepth z[], GLuint indx[] );
+extern void
+_mesa_fog_ci_pixels( const GLcontext *ctx,
+ GLuint n, const GLdepth z[], GLuint indx[] );
-extern void gl_init_fog( void );
+extern void
+_mesa_init_fog( void );
+
#endif
diff --git a/xc/extras/Mesa/src/fog_tmp.h b/xc/extras/Mesa/src/fog_tmp.h
index 033f61a17..517527742 100644
--- a/xc/extras/Mesa/src/fog_tmp.h
+++ b/xc/extras/Mesa/src/fog_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: fog_tmp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: fog_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/general_clip.h b/xc/extras/Mesa/src/general_clip.h
index 7ca7513a0..c2bd2aee5 100644
--- a/xc/extras/Mesa/src/general_clip.h
+++ b/xc/extras/Mesa/src/general_clip.h
@@ -1,4 +1,4 @@
-/* $Id: general_clip.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: general_clip.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/get.c b/xc/extras/Mesa/src/get.c
index 8222366ad..d3c6e1396 100644
--- a/xc/extras/Mesa/src/get.c
+++ b/xc/extras/Mesa/src/get.c
@@ -1,4 +1,4 @@
-/* $Id: get.c,v 1.5 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: get.c,v 1.6 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -111,7 +111,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
*params = ctx->Eval.AutoNormal;
break;
case GL_AUX_BUFFERS:
- *params = (NUM_AUX_BUFFERS) ? GL_TRUE : GL_FALSE;
+ *params = (ctx->Const.NumAuxBuffers) ? GL_TRUE : GL_FALSE;
break;
case GL_BLEND:
*params = ctx->Color.BlendEnabled;
@@ -275,7 +275,6 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
*params = ctx->Current.EdgeFlag;
break;
case GL_FEEDBACK_BUFFER_SIZE:
- /* TODO: is this right? Or, return number of entries in buffer? */
*params = INT_TO_BOOL(ctx->Feedback.BufferSize);
break;
case GL_FEEDBACK_BUFFER_TYPE:
@@ -385,12 +384,15 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
*params = FLOAT_TO_BOOL(ctx->Line.Width);
break;
case GL_LINE_WIDTH_GRANULARITY:
- *params = FLOAT_TO_BOOL(LINE_WIDTH_GRANULARITY);
+ *params = FLOAT_TO_BOOL(ctx->Const.LineWidthGranularity);
break;
case GL_LINE_WIDTH_RANGE:
+ params[0] = FLOAT_TO_BOOL(ctx->Const.MinLineWidthAA);
+ params[1] = FLOAT_TO_BOOL(ctx->Const.MaxLineWidthAA);
+ break;
case GL_ALIASED_LINE_WIDTH_RANGE:
- params[0] = FLOAT_TO_BOOL(MIN_LINE_WIDTH);
- params[1] = FLOAT_TO_BOOL(MAX_LINE_WIDTH);
+ params[0] = FLOAT_TO_BOOL(ctx->Const.MinLineWidth);
+ params[1] = FLOAT_TO_BOOL(ctx->Const.MaxLineWidth);
break;
case GL_LIST_BASE:
*params = INT_TO_BOOL(ctx->List.ListBase);
@@ -613,12 +615,15 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
*params = FLOAT_TO_BOOL(ctx->Point.Size );
break;
case GL_POINT_SIZE_GRANULARITY:
- *params = FLOAT_TO_BOOL(POINT_SIZE_GRANULARITY );
+ *params = FLOAT_TO_BOOL(ctx->Const.PointSizeGranularity );
break;
case GL_POINT_SIZE_RANGE:
+ params[0] = FLOAT_TO_BOOL(ctx->Const.MinPointSizeAA);
+ params[1] = FLOAT_TO_BOOL(ctx->Const.MaxPointSizeAA);
+ break;
case GL_ALIASED_POINT_SIZE_RANGE:
- params[0] = FLOAT_TO_BOOL(MIN_POINT_SIZE );
- params[1] = FLOAT_TO_BOOL(MAX_POINT_SIZE );
+ params[0] = FLOAT_TO_BOOL(ctx->Const.MinPointSize);
+ params[1] = FLOAT_TO_BOOL(ctx->Const.MaxPointSize);
break;
case GL_POINT_SMOOTH:
*params = ctx->Point.SmoothFlag;
@@ -644,11 +649,9 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
params[0] = ENUM_TO_BOOL(ctx->Polygon.FrontMode);
params[1] = ENUM_TO_BOOL(ctx->Polygon.BackMode);
break;
-#ifdef GL_EXT_polygon_offset
- case GL_POLYGON_OFFSET_BIAS_EXT:
+ case GL_POLYGON_OFFSET_BIAS_EXT: /* GL_EXT_polygon_offset */
*params = FLOAT_TO_BOOL( ctx->Polygon.OffsetUnits );
break;
-#endif
case GL_POLYGON_OFFSET_FACTOR:
*params = FLOAT_TO_BOOL( ctx->Polygon.OffsetFactor );
break;
@@ -742,7 +745,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
*params = ctx->Visual->StereoFlag;
break;
case GL_SUBPIXEL_BITS:
- *params = INT_TO_BOOL(0); /* TODO */
+ *params = INT_TO_BOOL(ctx->Const.SubPixelBits);
break;
case GL_TEXTURE_1D:
*params = _mesa_IsEnabled(GL_TEXTURE_1D );
@@ -916,7 +919,6 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
*params = INT_TO_BOOL(GL_TEXTURE0_ARB + ctx->Array.ActiveTexture);
break;
-
/* GL_PGI_misc_hints */
case GL_STRICT_DEPTHFUNC_HINT_PGI:
*params = ENUM_TO_BOOL(GL_NICEST);
@@ -967,6 +969,14 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
*params = 0;
break;
+ /* GL_EXT_compiled_vertex_array */
+ case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
+ *params = ctx->Array.LockFirst ? GL_TRUE : GL_FALSE;
+ break;
+ case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
+ *params = ctx->Array.LockCount ? GL_TRUE : GL_FALSE;
+ break;
+
/* GL_ARB_transpose_matrix */
case GL_TRANSPOSE_COLOR_MATRIX_ARB:
/* don't have a color matrix */
@@ -1063,7 +1073,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
*params = (GLdouble) ctx->Eval.AutoNormal;
break;
case GL_AUX_BUFFERS:
- *params = (GLdouble) NUM_AUX_BUFFERS;
+ *params = (GLdouble) ctx->Const.NumAuxBuffers;
break;
case GL_BLEND:
*params = (GLdouble) ctx->Color.BlendEnabled;
@@ -1227,7 +1237,6 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
*params = (GLdouble) ctx->Current.EdgeFlag;
break;
case GL_FEEDBACK_BUFFER_SIZE:
- /* TODO: is this right? Or, return number of entries in buffer? */
*params = (GLdouble) ctx->Feedback.BufferSize;
break;
case GL_FEEDBACK_BUFFER_TYPE:
@@ -1337,12 +1346,15 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
*params = (GLdouble) ctx->Line.Width;
break;
case GL_LINE_WIDTH_GRANULARITY:
- *params = (GLdouble) LINE_WIDTH_GRANULARITY;
+ *params = (GLdouble) ctx->Const.LineWidthGranularity;
break;
case GL_LINE_WIDTH_RANGE:
+ params[0] = (GLdouble) ctx->Const.MinLineWidthAA;
+ params[1] = (GLdouble) ctx->Const.MaxLineWidthAA;
+ break;
case GL_ALIASED_LINE_WIDTH_RANGE:
- params[0] = (GLdouble) MIN_LINE_WIDTH;
- params[1] = (GLdouble) MAX_LINE_WIDTH;
+ params[0] = (GLdouble) ctx->Const.MinLineWidth;
+ params[1] = (GLdouble) ctx->Const.MaxLineWidth;
break;
case GL_LIST_BASE:
*params = (GLdouble) ctx->List.ListBase;
@@ -1565,12 +1577,15 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
*params = (GLdouble) ctx->Point.Size;
break;
case GL_POINT_SIZE_GRANULARITY:
- *params = (GLdouble) POINT_SIZE_GRANULARITY;
+ *params = (GLdouble) ctx->Const.PointSizeGranularity;
break;
case GL_POINT_SIZE_RANGE:
+ params[0] = (GLdouble) ctx->Const.MinPointSizeAA;
+ params[1] = (GLdouble) ctx->Const.MaxPointSizeAA;
+ break;
case GL_ALIASED_POINT_SIZE_RANGE:
- params[0] = (GLdouble) MIN_POINT_SIZE;
- params[1] = (GLdouble) MAX_POINT_SIZE;
+ params[0] = (GLdouble) ctx->Const.MinPointSize;
+ params[1] = (GLdouble) ctx->Const.MaxPointSize;
break;
case GL_POINT_SMOOTH:
*params = (GLdouble) ctx->Point.SmoothFlag;
@@ -1596,11 +1611,9 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
params[0] = ENUM_TO_DOUBLE(ctx->Polygon.FrontMode);
params[1] = ENUM_TO_DOUBLE(ctx->Polygon.BackMode);
break;
-#ifdef GL_EXT_polygon_offset
- case GL_POLYGON_OFFSET_BIAS_EXT:
+ case GL_POLYGON_OFFSET_BIAS_EXT: /* GL_EXT_polygon_offset */
*params = (GLdouble) ctx->Polygon.OffsetUnits;
break;
-#endif
case GL_POLYGON_OFFSET_FACTOR:
*params = (GLdouble) ctx->Polygon.OffsetFactor;
break;
@@ -1694,7 +1707,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
*params = (GLdouble) ctx->Visual->StereoFlag;
break;
case GL_SUBPIXEL_BITS:
- *params = 0.0; /* TODO */
+ *params = (GLdouble) ctx->Const.SubPixelBits;
break;
case GL_TEXTURE_1D:
*params = _mesa_IsEnabled(GL_TEXTURE_1D) ? 1.0 : 0.0;
@@ -1919,6 +1932,14 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
*params = 0;
break;
+ /* GL_EXT_compiled_vertex_array */
+ case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
+ *params = (GLdouble) ctx->Array.LockFirst;
+ break;
+ case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
+ *params = (GLdouble) ctx->Array.LockCount;
+ break;
+
/* GL_ARB_transpose_matrix */
case GL_TRANSPOSE_COLOR_MATRIX_ARB:
/* don't have a color matrix */
@@ -2015,7 +2036,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
*params = (GLfloat) ctx->Eval.AutoNormal;
break;
case GL_AUX_BUFFERS:
- *params = (GLfloat) NUM_AUX_BUFFERS;
+ *params = (GLfloat) ctx->Const.NumAuxBuffers;
break;
case GL_BLEND:
*params = (GLfloat) ctx->Color.BlendEnabled;
@@ -2176,7 +2197,6 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
*params = (GLfloat) ctx->Current.EdgeFlag;
break;
case GL_FEEDBACK_BUFFER_SIZE:
- /* TODO: is this right? Or, return number of entries in buffer? */
*params = (GLfloat) ctx->Feedback.BufferSize;
break;
case GL_FEEDBACK_BUFFER_TYPE:
@@ -2286,12 +2306,15 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
*params = (GLfloat) ctx->Line.Width;
break;
case GL_LINE_WIDTH_GRANULARITY:
- *params = (GLfloat) LINE_WIDTH_GRANULARITY;
+ *params = (GLfloat) ctx->Const.LineWidthGranularity;
break;
case GL_LINE_WIDTH_RANGE:
+ params[0] = (GLfloat) ctx->Const.MinLineWidthAA;
+ params[1] = (GLfloat) ctx->Const.MaxLineWidthAA;
+ break;
case GL_ALIASED_LINE_WIDTH_RANGE:
- params[0] = (GLfloat) MIN_LINE_WIDTH;
- params[1] = (GLfloat) MAX_LINE_WIDTH;
+ params[0] = (GLfloat) ctx->Const.MinLineWidth;
+ params[1] = (GLfloat) ctx->Const.MaxLineWidth;
break;
case GL_LIST_BASE:
*params = (GLfloat) ctx->List.ListBase;
@@ -2514,12 +2537,15 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
*params = (GLfloat) ctx->Point.Size;
break;
case GL_POINT_SIZE_GRANULARITY:
- *params = (GLfloat) POINT_SIZE_GRANULARITY;
+ *params = (GLfloat) ctx->Const.PointSizeGranularity;
break;
case GL_POINT_SIZE_RANGE:
+ params[0] = (GLfloat) ctx->Const.MinPointSizeAA;
+ params[1] = (GLfloat) ctx->Const.MaxPointSizeAA;
+ break;
case GL_ALIASED_POINT_SIZE_RANGE:
- params[0] = (GLfloat) MIN_POINT_SIZE;
- params[1] = (GLfloat) MAX_POINT_SIZE;
+ params[0] = (GLfloat) ctx->Const.MinPointSize;
+ params[1] = (GLfloat) ctx->Const.MaxPointSize;
break;
case GL_POINT_SMOOTH:
*params = (GLfloat) ctx->Point.SmoothFlag;
@@ -2643,7 +2669,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
*params = (GLfloat) ctx->Visual->StereoFlag;
break;
case GL_SUBPIXEL_BITS:
- *params = 0.0F; /* TODO */
+ *params = (GLfloat) ctx->Const.SubPixelBits;
break;
case GL_TEXTURE_1D:
*params = _mesa_IsEnabled(GL_TEXTURE_1D) ? 1.0 : 0.0;
@@ -2867,6 +2893,14 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
*params = 0;
break;
+ /* GL_EXT_compiled_vertex_array */
+ case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
+ *params = (GLfloat) ctx->Array.LockFirst;
+ break;
+ case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
+ *params = (GLfloat) ctx->Array.LockCount;
+ break;
+
/* GL_ARB_transpose_matrix */
case GL_TRANSPOSE_COLOR_MATRIX_ARB:
/* don't have a color matrix */
@@ -2942,7 +2976,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
*params = (GLint) ctx->Eval.AutoNormal;
break;
case GL_AUX_BUFFERS:
- *params = (GLint) NUM_AUX_BUFFERS;
+ *params = (GLint) ctx->Const.NumAuxBuffers;
break;
case GL_BLEND:
*params = (GLint) ctx->Color.BlendEnabled;
@@ -3107,7 +3141,6 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
*params = (GLint) ctx->Current.EdgeFlag;
break;
case GL_FEEDBACK_BUFFER_SIZE:
- /* TODO: is this right? Or, return number of entries in buffer? */
*params = ctx->Feedback.BufferSize;
break;
case GL_FEEDBACK_BUFFER_TYPE:
@@ -3217,12 +3250,15 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
*params = (GLint) ctx->Line.Width;
break;
case GL_LINE_WIDTH_GRANULARITY:
- *params = (GLint) LINE_WIDTH_GRANULARITY;
+ *params = (GLint) ctx->Const.LineWidthGranularity;
break;
case GL_LINE_WIDTH_RANGE:
+ params[0] = (GLint) ctx->Const.MinLineWidthAA;
+ params[1] = (GLint) ctx->Const.MaxLineWidthAA;
+ break;
case GL_ALIASED_LINE_WIDTH_RANGE:
- params[0] = (GLint) MIN_LINE_WIDTH;
- params[1] = (GLint) MAX_LINE_WIDTH;
+ params[0] = (GLint) ctx->Const.MinLineWidth;
+ params[1] = (GLint) ctx->Const.MaxLineWidth;
break;
case GL_LIST_BASE:
*params = (GLint) ctx->List.ListBase;
@@ -3445,12 +3481,15 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
*params = (GLint) ctx->Point.Size;
break;
case GL_POINT_SIZE_GRANULARITY:
- *params = (GLint) POINT_SIZE_GRANULARITY;
+ *params = (GLint) ctx->Const.PointSizeGranularity;
break;
case GL_POINT_SIZE_RANGE:
+ params[0] = (GLint) ctx->Const.MinPointSizeAA;
+ params[1] = (GLint) ctx->Const.MaxPointSizeAA;
+ break;
case GL_ALIASED_POINT_SIZE_RANGE:
- params[0] = (GLint) MIN_POINT_SIZE;
- params[1] = (GLint) MAX_POINT_SIZE;
+ params[0] = (GLint) ctx->Const.MinPointSize;
+ params[1] = (GLint) ctx->Const.MaxPointSize;
break;
case GL_POINT_SMOOTH:
*params = (GLint) ctx->Point.SmoothFlag;
@@ -3476,11 +3515,9 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
params[0] = (GLint) ctx->Polygon.FrontMode;
params[1] = (GLint) ctx->Polygon.BackMode;
break;
-#ifdef GL_EXT_polygon_offset
- case GL_POLYGON_OFFSET_BIAS_EXT:
+ case GL_POLYGON_OFFSET_BIAS_EXT: /* GL_EXT_polygon_offset */
*params = (GLint) ctx->Polygon.OffsetUnits;
break;
-#endif
case GL_POLYGON_OFFSET_FACTOR:
*params = (GLint) ctx->Polygon.OffsetFactor;
break;
@@ -3574,7 +3611,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
*params = (GLint) ctx->Visual->StereoFlag;
break;
case GL_SUBPIXEL_BITS:
- *params = 0; /* TODO */
+ *params = ctx->Const.SubPixelBits;
break;
case GL_TEXTURE_1D:
*params = _mesa_IsEnabled(GL_TEXTURE_1D) ? 1 : 0;
@@ -3748,7 +3785,6 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
*params = GL_TEXTURE0_ARB + ctx->Array.ActiveTexture;
break;
-
/* GL_PGI_misc_hints */
case GL_STRICT_DEPTHFUNC_HINT_PGI:
*params = (GL_NICEST);
@@ -3799,13 +3835,11 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
*params = 0;
break;
- /* GL_EXT_compiled_vertex_array
- */
- case GL_ARRAY_ELEMENT_LOCK_FIRST_SGI:
+ /* GL_EXT_compiled_vertex_array */
+ case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
*params = ctx->Array.LockFirst;
break;
-
- case GL_ARRAY_ELEMENT_LOCK_COUNT_SGI:
+ case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
*params = ctx->Array.LockCount;
break;
diff --git a/xc/extras/Mesa/src/get.h b/xc/extras/Mesa/src/get.h
index 199914cf4..25fd8ac01 100644
--- a/xc/extras/Mesa/src/get.h
+++ b/xc/extras/Mesa/src/get.h
@@ -1,4 +1,4 @@
-/* $Id: get.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: get.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/glapi.c b/xc/extras/Mesa/src/glapi.c
index 0fa74e01e..04380753d 100644
--- a/xc/extras/Mesa/src/glapi.c
+++ b/xc/extras/Mesa/src/glapi.c
@@ -1,4 +1,4 @@
-/* $Id: glapi.c,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: glapi.c,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -42,16 +42,12 @@
-#include <assert.h>
-#include <stdlib.h> /* to get NULL */
-#include <string.h>
+#include "glheader.h"
#include "glapi.h"
#include "glapinoop.h"
#include "glapioffsets.h"
#include "glapitable.h"
-#if defined(THREADS)
#include "glthread.h"
-#endif
/* This is used when thread safety is disabled */
@@ -68,19 +64,8 @@ static GLboolean ThreadSafe = GL_FALSE;
static _glthread_TSD DispatchTSD;
-static void dispatch_thread_init()
-{
- _glthread_InitTSD(&DispatchTSD);
-}
-
-
static _glthread_TSD ContextTSD;
-static void context_thread_init()
-{
- _glthread_InitTSD(&ContextTSD);
-}
-
#endif
@@ -130,7 +115,7 @@ void
_glapi_set_context(void *context)
{
#if defined(THREADS)
- _glthread_SetTSD(&ContextTSD, context, context_thread_init);
+ _glthread_SetTSD(&ContextTSD, context);
if (ThreadSafe)
_glapi_Context = NULL;
else
@@ -181,7 +166,7 @@ _glapi_set_dispatch(struct _glapi_table *dispatch)
#endif
#if defined(THREADS)
- _glthread_SetTSD(&DispatchTSD, (void*) dispatch, dispatch_thread_init);
+ _glthread_SetTSD(&DispatchTSD, (void*) dispatch);
if (ThreadSafe)
_glapi_Dispatch = NULL;
else
@@ -285,13 +270,16 @@ get_static_proc_address(const char *funcName)
*/
+#define MAX_EXTENSION_FUNCS 1000
+
+
struct _glapi_ext_entrypoint {
const char *Name; /* the extension function's name */
GLuint Offset; /* relative to start of dispatch table */
GLvoid *Address; /* address of dispatch function */
};
-static struct _glapi_ext_entrypoint ExtEntryTable[_GLAPI_EXTRA_SLOTS];
+static struct _glapi_ext_entrypoint ExtEntryTable[MAX_EXTENSION_FUNCS];
static GLuint NumExtEntryPoints = 0;
@@ -299,13 +287,51 @@ static GLuint NumExtEntryPoints = 0;
/*
* Generate a dispatch function (entrypoint) which jumps through
* the given slot number (offset) in the current dispatch table.
+ * We need assembly language in order to accomplish this.
*/
static void *
-generate_entrypoint(GLuint offset)
+generate_entrypoint(GLuint functionOffset)
{
- /* XXX need to generate some assembly code here */
-
+#if defined(USE_X86_ASM)
+ /*
+ * This x86 code contributed by Josh Vanderhoof.
+ *
+ * 0: a1 10 32 54 76 movl __glapi_Dispatch,%eax
+ * 00 01 02 03 04
+ * 5: 85 c0 testl %eax,%eax
+ * 05 06
+ * 7: 74 06 je f <entrypoint+0xf>
+ * 07 08
+ * 9: ff a0 10 32 54 76 jmp *0x76543210(%eax)
+ * 09 0a 0b 0c 0d 0e
+ * f: e8 fc ff ff ff call __glapi_get_dispatch
+ * 0f 10 11 12 13
+ * 14: ff a0 10 32 54 76 jmp *0x76543210(%eax)
+ * 14 15 16 17 18 19
+ */
+ static const unsigned char temp[] = {
+ 0xa1, 0x00, 0x00, 0x00, 0x00,
+ 0x85, 0xc0,
+ 0x74, 0x06,
+ 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00,
+ 0xe8, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00
+ };
+ unsigned char *code = malloc(sizeof(temp));
+ unsigned int next_insn;
+ if (code) {
+ memcpy(code, temp, sizeof(temp));
+
+ *(unsigned int *)(code + 0x01) = (unsigned int)&_glapi_Dispatch;
+ *(unsigned int *)(code + 0x0b) = (unsigned int)functionOffset * 4;
+ next_insn = (unsigned int)(code + 0x14);
+ *(unsigned int *)(code + 0x10) = (unsigned int)_glapi_get_dispatch - next_insn;
+ *(unsigned int *)(code + 0x16) = (unsigned int)functionOffset * 4;
+ }
+ return code;
+#else
return NULL;
+#endif
}
@@ -317,8 +343,6 @@ generate_entrypoint(GLuint offset)
GLboolean
_glapi_add_entrypoint(const char *funcName, GLuint offset)
{
- GLint index;
-
/* Make sure we don't try to add a new entrypoint after someone
* has already called _glapi_get_dispatch_table_size()! If that's
* happened the caller's information will now be out of date.
@@ -326,14 +350,21 @@ _glapi_add_entrypoint(const char *funcName, GLuint offset)
assert(!GetSizeCalled);
/* first check if the named function is already statically present */
- index = get_static_proc_offset(funcName);
+ {
+ GLint index = get_static_proc_offset(funcName);
+ if (index >= 0) {
+ return (GLboolean) (index == offset); /* bad offset! */
+ }
+ }
- if (index >= 0) {
- assert(index == offset);
- return GL_TRUE;
+ {
+ /* make sure this offset/name pair is legal */
+ const char *name = _glapi_get_proc_name(offset);
+ if (name && strcmp(name, funcName) != 0)
+ return GL_FALSE; /* bad name! */
}
- /* else if (offset < _glapi_get_dispatch_table_size()) { */
- else {
+
+ {
/* be sure index and name match known data */
GLuint i;
for (i = 0; i < NumExtEntryPoints; i++) {
@@ -347,24 +378,73 @@ _glapi_add_entrypoint(const char *funcName, GLuint offset)
}
}
}
- assert(NumExtEntryPoints < _GLAPI_EXTRA_SLOTS);
- ExtEntryTable[NumExtEntryPoints].Name = strdup(funcName);
- ExtEntryTable[NumExtEntryPoints].Offset = offset;
- ExtEntryTable[NumExtEntryPoints].Address = generate_entrypoint(offset);
- NumExtEntryPoints++;
- if (offset > MaxDispatchOffset)
- MaxDispatchOffset = offset;
+ /* make sure we have space */
+ if (NumExtEntryPoints >= MAX_EXTENSION_FUNCS) {
+ return GL_FALSE;
+ }
+ else {
+ void *entrypoint = generate_entrypoint(offset);
+ if (!entrypoint)
+ return GL_FALSE;
+
+ ExtEntryTable[NumExtEntryPoints].Name = strdup(funcName);
+ ExtEntryTable[NumExtEntryPoints].Offset = offset;
+ ExtEntryTable[NumExtEntryPoints].Address = entrypoint;
+ NumExtEntryPoints++;
+
+ if (offset > MaxDispatchOffset)
+ MaxDispatchOffset = offset;
- return GL_TRUE;
+ return GL_TRUE; /* success */
+ }
}
+
+ /* should never get here, but play it safe */
+ return GL_FALSE;
+}
+
+
+
+#if 0000 /* prototype code for dynamic extension slot allocation */
+
+static int NextFreeOffset = 409; /*XXX*/
+#define MAX_DISPATCH_TABLE_SIZE 1000
+
/*
- else {
- return GL_FALSE;
+ * Dynamically allocate a dispatch slot for an extension entrypoint
+ * and generate the assembly language dispatch stub.
+ * Return the dispatch offset for the function or -1 if no room or error.
+ */
+GLint
+_glapi_add_entrypoint2(const char *funcName)
+{
+ int offset;
+
+ /* first see if extension func is already known */
+ offset = _glapi_get_proc_offset(funcName);
+ if (offset >= 0)
+ return offset;
+
+ if (NumExtEntryPoints < MAX_EXTENSION_FUNCS
+ && NextFreeOffset < MAX_DISPATCH_TABLE_SIZE) {
+ void *entryPoint;
+ offset = NextFreeOffset;
+ entryPoint = generate_entrypoint(offset);
+ if (entryPoint) {
+ NextFreeOffset++;
+ ExtEntryTable[NumExtEntryPoints].Name = strdup(funcName);
+ ExtEntryTable[NumExtEntryPoints].Offset = offset;
+ ExtEntryTable[NumExtEntryPoints].Address = entryPoint;
+ NumExtEntryPoints++;
+ return offset;
+ }
}
-*/
+ return -1;
}
+#endif
+
/*
diff --git a/xc/extras/Mesa/src/glapi.h b/xc/extras/Mesa/src/glapi.h
index 0a4f8dcc9..e0d2f4593 100644
--- a/xc/extras/Mesa/src/glapi.h
+++ b/xc/extras/Mesa/src/glapi.h
@@ -1,4 +1,4 @@
-/* $Id: glapi.h,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: glapi.h,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/glapinoop.c b/xc/extras/Mesa/src/glapinoop.c
index f8be80cbc..1e571f66a 100644
--- a/xc/extras/Mesa/src/glapinoop.c
+++ b/xc/extras/Mesa/src/glapinoop.c
@@ -1,4 +1,4 @@
-/* $Id: glapinoop.c,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: glapinoop.c,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -30,7 +30,7 @@
*/
-#include <stdio.h>
+#include "glheader.h"
#include "glapi.h"
#include "glapinoop.h"
#include "glapitable.h"
@@ -46,4202 +46,38 @@ _glapi_noop_enable_warnings(GLboolean enable)
}
-static void
-warning(const char *funcName)
+static GLboolean
+warn(void)
{
- if (WarnFlag) {
- fprintf(stderr, "GL User Error: calling %s without a current context\n",
- funcName);
- }
-}
-
-
-
-static void NoOpAccum(GLenum op, GLfloat value)
-{
- (void) op;
- (void) value;
- warning("glAccum");
-}
-
-static void NoOpAlphaFunc(GLenum func, GLclampf ref)
-{
- (void) func;
- (void) ref;
- warning("glAlphaFunc");
-}
-
-static void NoOpBegin(GLenum mode)
-{
- (void) mode;
- warning("glBegin");
-}
-
-static void NoOpBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)
-{
- (void) width;
- (void) height;
- (void) xorig;
- (void) yorig;
- (void) xmove;
- (void) ymove;
- (void) bitmap;
- warning("glBitmap");
-}
-
-static void NoOpBlendFunc(GLenum sfactor, GLenum dfactor)
-{
- (void) sfactor;
- (void) dfactor;
- warning("glBlendFunc");
-}
-
-static void NoOpCallList(GLuint list)
-{
- (void) list;
- warning("glCallList");
-}
-
-static void NoOpCallLists(GLsizei n, GLenum type, const GLvoid *lists)
-{
- (void) n;
- (void) type;
- (void) lists;
- warning("glCallLists");
-}
-
-static void NoOpClear(GLbitfield mask)
-{
- (void) mask;
- warning("glClear");
-}
-
-static void NoOpClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glClearAccum");
-}
-
-static void NoOpClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glClearColor");
-}
-
-static void NoOpClearDepth(GLclampd depth)
-{
- (void) depth;
- warning("gl");
-}
-
-static void NoOpClearIndex(GLfloat c)
-{
- (void) c;
- warning("glClearIndex");
-}
-
-static void NoOpClearStencil(GLint s)
-{
- (void) s;
- warning("glStencil");
-}
-
-static void NoOpClipPlane(GLenum plane, const GLdouble *equation)
-{
- (void) plane;
- (void) equation;
- warning("glClipPlane");
-}
-
-static void NoOpColor3b(GLbyte red, GLbyte green, GLbyte blue)
-{
- (void) red;
- (void) green;
- (void) blue;
- warning("glColor3b");
-}
-
-static void NoOpColor3d(GLdouble red, GLdouble green, GLdouble blue)
-{
- (void) red;
- (void) green;
- (void) blue;
- warning("glColor3d");
-}
-
-static void NoOpColor3f(GLfloat red, GLfloat green, GLfloat blue)
-{
- (void) red;
- (void) green;
- (void) blue;
- warning("glColor3f");
-}
-
-static void NoOpColor3i(GLint red, GLint green, GLint blue)
-{
- (void) red;
- (void) green;
- (void) blue;
- warning("glColor3i");
-}
-
-static void NoOpColor3s(GLshort red, GLshort green, GLshort blue)
-{
- (void) red;
- (void) green;
- (void) blue;
- warning("glColor3s");
-}
-
-static void NoOpColor3ub(GLubyte red, GLubyte green, GLubyte blue)
-{
- (void) red;
- (void) green;
- (void) blue;
- warning("glColor3ub");
-}
-
-static void NoOpColor3ui(GLuint red, GLuint green, GLuint blue)
-{
- (void) red;
- (void) green;
- (void) blue;
- warning("glColor3ui");
-}
-
-static void NoOpColor3us(GLushort red, GLushort green, GLushort blue)
-{
- (void) red;
- (void) green;
- (void) blue;
- warning("glColor3us");
-}
-
-static void NoOpColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glColor4b");
-}
-
-static void NoOpColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glColor4d");
-}
-
-static void NoOpColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glColor4f");
-}
-
-static void NoOpColor4i(GLint red, GLint green, GLint blue, GLint alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glColor4i");
-}
-
-static void NoOpColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glColor4s");
-}
-
-static void NoOpColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glColor4ub");
-}
-
-static void NoOpColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glColor4ui");
-}
-
-static void NoOpColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glColor4us");
-}
-
-static void NoOpColor3bv(const GLbyte *v)
-{
- (void) v;
- warning("glColor3bv");
-}
-
-static void NoOpColor3dv(const GLdouble *v)
-{
- (void) v;
- warning("glColor3dv");
-}
-
-static void NoOpColor3fv(const GLfloat *v)
-{
- (void) v;
- warning("glColor3fv");
-}
-
-static void NoOpColor3iv(const GLint *v)
-{
- (void) v;
- warning("glColor3iv");
+ if (WarnFlag || getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG"))
+ return GL_TRUE;
+ else
+ return GL_FALSE;
}
-static void NoOpColor3sv(const GLshort *v)
-{
- (void) v;
- warning("glColor3sv");
-}
-
-static void NoOpColor3ubv(const GLubyte *v)
-{
- (void) v;
- warning("glColor3ubv");
-}
-
-static void NoOpColor3uiv(const GLuint *v)
-{
- (void) v;
- warning("glColor3uiv");
-}
-static void NoOpColor3usv(const GLushort *v)
-{
- (void) v;
- warning("glColor3usv");
-}
+#define KEYWORD1 static
+#define KEYWORD2
+#define NAME(func) NoOp##func
-static void NoOpColor4bv(const GLbyte *v)
-{
- (void) v;
- warning("glColor4bv");
-}
-
-static void NoOpColor4dv(const GLdouble *v)
-{
- (void) v;
- warning("glColor4dv");
-}
-
-static void NoOpColor4fv(const GLfloat *v)
-{
- (void) v;
- warning("glColor4fv");
-}
-
-static void NoOpColor4iv(const GLint *v)
-{
- (void) v;
- warning("glColor4iv");
-}
-
-static void NoOpColor4sv(const GLshort *v)
-{
- (void) v;
- warning("glColor4sv");
-}
-
-static void NoOpColor4ubv(const GLubyte *v)
-{
- (void) v;
- warning("glColor4ubv");
-}
-
-static void NoOpColor4uiv(const GLuint *v)
-{
- (void) v;
- warning("glColor4uiv");
-}
-
-static void NoOpColor4usv(const GLushort *v)
-{
- (void) v;
- warning("glColor4usv");
-}
-
-static void NoOpColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
-{
- (void) red;
- (void) green;
- (void) blue;
- (void) alpha;
- warning("glColorMask");
-}
-
-static void NoOpColorMaterial(GLenum face, GLenum mode)
-{
- (void) face;
- (void) mode;
- warning("glColorMaterial");
-}
-
-static void NoOpCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)
-{
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- (void) type;
- warning("glCopyPixels");
-}
-
-static void NoOpCullFace(GLenum mode)
-{
- (void) mode;
- warning("glCullFace");
-}
-
-static void NoOpDepthFunc(GLenum func)
-{
- (void) func;
- warning("glDepthFunc");
-}
-
-static void NoOpDepthMask(GLboolean flag)
-{
- (void) flag;
- warning("glDepthMask");
-}
-
-static void NoOpDepthRange(GLclampd nearVal, GLclampd farVal)
-{
- (void) nearVal;
- (void) farVal;
- warning("glDepthRange");
-}
-
-static void NoOpDeleteLists(GLuint list, GLsizei range)
-{
- (void) list;
- (void) range;
- warning("glDeleteLists");
-}
-
-static void NoOpDisable(GLenum cap)
-{
- (void) cap;
- warning("glDisable");
-}
-
-static void NoOpDisableClientState(GLenum cap)
-{
- (void) cap;
- warning("glDisableClientState");
-}
-
-static void NoOpDrawBuffer(GLenum mode)
-{
- (void) mode;
- warning("glDrawBuffer");
-}
-
-static void NoOpDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) width;
- (void) height;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glDrawPixels");
-}
-
-static void NoOpEnable(GLenum mode)
-{
- (void) mode;
- warning("glEnable");
-}
-
-static void NoOpEnd(void)
-{
- warning("glEnd");
-}
-
-static void NoOpEndList(void)
-{
- warning("glEndList");
-}
-
-static void NoOpEvalCoord1d(GLdouble u)
-{
- (void) u;
- warning("glEvalCoord1d");
-}
-
-static void NoOpEvalCoord1f(GLfloat u)
-{
- (void) u;
- warning("glEvalCoord1f");
-}
-
-static void NoOpEvalCoord1dv(const GLdouble *u)
-{
- (void) u;
- warning("glEvalCoord1dv");
-}
-
-static void NoOpEvalCoord1fv(const GLfloat *u)
-{
- (void) u;
- warning("glEvalCoord1fv");
-}
-
-static void NoOpEvalCoord2d(GLdouble u, GLdouble v)
-{
- (void) u;
- (void) v;
- warning("glEvalCoord2d");
-}
-
-static void NoOpEvalCoord2f(GLfloat u, GLfloat v)
-{
- (void) u;
- (void) v;
- warning("glEvalCoord2f");
-}
-
-static void NoOpEvalCoord2dv(const GLdouble *u)
-{
- (void) u;
- warning("glEvalCoord2dv");
-}
-
-static void NoOpEvalCoord2fv(const GLfloat *u)
-{
- (void) u;
- warning("glEvalCoord2fv");
-}
-
-static void NoOpEvalPoint1(GLint i)
-{
- (void) i;
- warning("glEvalPoint1");
-}
+#define F stderr
-static void NoOpEvalPoint2(GLint i, GLint j)
-{
- (void) i;
- (void) j;
- warning("glEvalPoint2");
-}
-
-static void NoOpEvalMesh1(GLenum mode, GLint i1, GLint i2)
-{
- (void) mode;
- (void) i1;
- (void) i2;
- warning("glEvalMesh1");
-}
-
-static void NoOpEdgeFlag(GLboolean flag)
-{
- (void) flag;
- warning("glEdgeFlag");
-}
-
-static void NoOpEdgeFlagv(const GLboolean *flag)
-{
- (void) flag;
- warning("glEdgeFlagv");
-}
-
-static void NoOpEdgeFlagPointer(GLsizei stride, const GLvoid *ptr)
-{
- (void) stride;
- (void) ptr;
- warning("glEdgeFlagPointer");
-}
-
-static void NoOpEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
-{
- (void) mode;
- (void) i1;
- (void) i2;
- (void) j1;
- (void) j2;
- warning("glEvalMesh2");
-}
-
-static void NoOpFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer)
-{
- (void) size;
- (void) type;
- (void) buffer;
- warning("glFeedbackBuffer");
-}
-
-static void NoOpFinish(void)
-{
- warning("glFinish");
-}
-
-static void NoOpFlush(void)
-{
- warning("glFlush");
-}
-
-static void NoOpFogf(GLenum pname, GLfloat param)
-{
- (void) pname;
- (void) param;
- warning("glFogf");
-}
-
-static void NoOpFogi(GLenum pname, GLint param)
-{
- (void) pname;
- (void) param;
- warning("glFogi");
-}
-
-static void NoOpFogfv(GLenum pname, const GLfloat *params)
-{
- (void) pname;
- (void) params;
- warning("glFogfv");
-}
-
-static void NoOpFogiv(GLenum pname, const GLint *params)
-{
- (void) pname;
- (void) params;
- warning("glFogiv");
-}
-
-static void NoOpFrontFace(GLenum mode)
-{
- (void) mode;
- warning("glFrontFace");
-}
-
-static void NoOpFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearval, GLdouble farval)
-{
- (void) left;
- (void) right;
- (void) bottom;
- (void) top;
- (void) nearval;
- (void) farval;
- warning("glFrustum");
-}
-
-static GLuint NoOpGenLists(GLsizei range)
-{
- (void) range;
- warning("glGenLists");
- return 0;
-}
-
-static void NoOpGetBooleanv(GLenum pname, GLboolean *params)
-{
- (void) pname;
- (void) params;
- warning("glGetBooleanv");
-}
-
-static void NoOpGetClipPlane(GLenum plane, GLdouble *equation)
-{
- (void) plane;
- (void) equation;
- warning("glGetClipPlane");
-}
-
-static void NoOpGetDoublev(GLenum pname, GLdouble *params)
-{
- (void) pname;
- (void) params;
- warning("glGetDoublev");
-}
-
-static GLenum NoOpGetError(void)
-{
- warning("glGetError");
- return (GLenum) 0;
-}
-
-static void NoOpGetFloatv(GLenum pname, GLfloat *params)
-{
- (void) pname;
- (void) params;
- warning("glGetFloatv");
-}
-
-static void NoOpGetIntegerv(GLenum pname, GLint *params)
-{
- (void) pname;
- (void) params;
- warning("glGetIntegerv");
-}
-
-static void NoOpGetLightfv(GLenum light, GLenum pname, GLfloat *params)
-{
- (void) light;
- (void) pname;
- (void) params;
- warning("glGetLightfv");
-}
-
-static void NoOpGetLightiv(GLenum light, GLenum pname, GLint *params)
-{
- (void) light;
- (void) pname;
- (void) params;
- warning("glGetLightiv");
-}
-
-static void NoOpGetMapdv(GLenum target, GLenum query, GLdouble *v)
-{
- (void) target;
- (void) query;
- (void) v;
- warning("glGetMapdv");
-}
-
-static void NoOpGetMapfv(GLenum target, GLenum query, GLfloat *v)
-{
- (void) target;
- (void) query;
- (void) v;
- warning("glGetMapfv");
-}
-
-static void NoOpGetMapiv(GLenum target, GLenum query, GLint *v)
-{
- (void) target;
- (void) query;
- (void) v;
- warning("glGetMapiv");
-}
-
-static void NoOpGetMaterialfv(GLenum face, GLenum pname, GLfloat *params)
-{
- (void) face;
- (void) pname;
- (void) params;
- warning("glGetMaterialfv");
-}
-
-static void NoOpGetMaterialiv(GLenum face, GLenum pname, GLint *params)
-{
- (void) face;
- (void) pname;
- (void) params;
- warning("glGetMaterialiv");
-}
-
-static void NoOpGetPixelMapfv(GLenum map, GLfloat *values)
-{
- (void) map;
- (void) values;
- warning("glGetPixelMapfv");
-}
-
-static void NoOpGetPixelMapuiv(GLenum map, GLuint *values)
-{
- (void) map;
- (void) values;
- warning("glGetPixelMapuiv");
-}
-
-static void NoOpGetPixelMapusv(GLenum map, GLushort *values)
-{
- (void) map;
- (void) values;
- warning("glGetPixelMapusv");
-}
-
-static void NoOpGetPolygonStipple(GLubyte *mask)
-{
- (void) mask;
- warning("glGetPolygonStipple");
-}
-
-static const GLubyte * NoOpGetString(GLenum name)
-{
- (void) name;
- warning("glGetString");
- return NULL;
-}
-
-static void NoOpGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetTexEnvfv");
-}
-
-static void NoOpGetTexEnviv(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetTexEnviv");
-}
-
-static void NoOpGetTexGeniv(GLenum coord, GLenum pname, GLint *params)
-{
- (void) coord;
- (void) pname;
- (void) params;
- warning("glGetTexGeniv");
-}
-
-static void NoOpGetTexGendv(GLenum coord, GLenum pname, GLdouble *params)
-{
- (void) coord;
- (void) pname;
- (void) params;
- warning("glGetTexGendv");
-}
-
-static void NoOpGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params)
-{
- (void) coord;
- (void) pname;
- (void) params;
- warning("glGetTexGenfv");
-}
-
-static void NoOpGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glGetTexImage");
-}
-
-static void NoOpGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) level;
- (void) pname;
- (void) params;
- warning("glGetTexLevelParameterfv");
-}
-
-static void NoOpGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params)
-{
- (void) target;
- (void) level;
- (void) pname;
- (void) params;
- warning("glGetTexLevelParameteriv");
-}
-
-static void NoOpGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetTexParameterfv");
-}
-
-static void NoOpGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetTexParameteriv");
-}
-
-static void NoOpHint(GLenum target, GLenum mode)
-{
- (void) target;
- (void) mode;
- warning("glHint");
-}
-
-static void NoOpIndexd(GLdouble c)
-{
- (void) c;
- warning("glIndexd");
-}
-
-static void NoOpIndexdv(const GLdouble *c)
-{
- (void) c;
- warning("glIndexdv");
-}
-
-static void NoOpIndexf(GLfloat c)
-{
- (void) c;
- warning("glIndexf");
-}
-
-static void NoOpIndexfv(const GLfloat *c)
-{
- (void) c;
- warning("glIndexfv");
-}
-
-static void NoOpIndexi(GLint c)
-{
- (void) c;
- warning("glIndexi");
-}
-
-static void NoOpIndexiv(const GLint *c)
-{
- (void) c;
- warning("glIndexiv");
-}
-
-static void NoOpIndexs(GLshort c)
-{
- (void) c;
- warning("glIndexs");
-}
-
-static void NoOpIndexsv(const GLshort *c)
-{
- (void) c;
- warning("glIndexsv");
-}
-
-static void NoOpIndexMask(GLuint mask)
-{
- (void) mask;
- warning("glIndexMask");
-}
-
-static void NoOpInitNames(void)
-{
- warning("glInitNames");
-}
-
-static GLboolean NoOpIsList(GLuint list)
-{
- (void) list;
- warning("glIsList");
- return GL_FALSE;
-}
-
-static void NoOpLightf(GLenum light, GLenum pname, GLfloat param)
-{
- (void) light;
- (void) pname;
- (void) param;
- warning("glLightf");
-}
-
-static void NoOpLighti(GLenum light, GLenum pname, GLint param)
-{
- (void) light;
- (void) pname;
- (void) param;
- warning("glLighti");
-}
-
-static void NoOpLightfv(GLenum light, GLenum pname, const GLfloat *params)
-{
- (void) light;
- (void) pname;
- (void) params;
- warning("glLightfv");
-}
-
-static void NoOpLightiv(GLenum light, GLenum pname, const GLint *params)
-{
- (void) light;
- (void) pname;
- (void) params;
- warning("glLightiv");
-}
-
-static void NoOpLightModelf(GLenum pname, GLfloat param)
-{
- (void) pname;
- (void) param;
- warning("glLightModelf");
-}
-
-static void NoOpLightModeli(GLenum pname, GLint param)
-{
- (void) pname;
- (void) param;
- warning("glLightModeli");
-}
-
-static void NoOpLightModelfv(GLenum pname, const GLfloat *params)
-{
- (void) pname;
- (void) params;
- warning("glLightModelfv");
-}
-
-static void NoOpLightModeliv(GLenum pname, const GLint *params)
-{
- (void) pname;
- (void) params;
- warning("glLightModeliv");
-}
-
-static void NoOpLineWidth(GLfloat width)
-{
- (void) width;
- warning("glLineWidth");
-}
-
-static void NoOpLineStipple(GLint factor, GLushort pattern)
-{
- (void) factor;
- (void) pattern;
- warning("glLineStipple");
-}
-
-static void NoOpListBase(GLuint base)
-{
- (void) base;
- warning("glListBase");
-}
-
-static void NoOpLoadIdentity(void)
-{
- warning("glLoadIdentity");
-}
-
-static void NoOpLoadMatrixd(const GLdouble *m)
-{
- (void) m;
- warning("glLoadMatrixd");
-}
-
-static void NoOpLoadMatrixf(const GLfloat *m)
-{
- (void) m;
- warning("glLoadMatrixf");
-}
-
-static void NoOpLoadName(GLuint name)
-{
- (void) name;
- warning("glLoadName");
-}
-
-static void NoOpLogicOp(GLenum opcode)
-{
- (void) opcode;
- warning("glLogicOp");
-}
-
-static void NoOpMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points)
-{
- (void) target;
- (void) u1;
- (void) u2;
- (void) stride;
- (void) order;
- (void) points;
- warning("glMap1d");
-}
-
-static void NoOpMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points)
-{
- (void) target;
- (void) u1;
- (void) u2;
- (void) stride;
- (void) order;
- (void) points;
- warning("glMap1f");
-}
-
-static void NoOpMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points)
-{
- (void) target;
- (void) u1;
- (void) u2;
- (void) ustride;
- (void) uorder;
- (void) v1;
- (void) v2;
- (void) vstride;
- (void) vorder;
- (void) points;
- warning("glMap2d");
-}
-
-static void NoOpMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points)
-{
- (void) target;
- (void) u1;
- (void) u2;
- (void) ustride;
- (void) uorder;
- (void) v1;
- (void) v2;
- (void) vstride;
- (void) vorder;
- (void) points;
- warning("glMap2f");
-}
-
-static void NoOpMapGrid1d(GLint un, GLdouble u1, GLdouble u2)
-{
- (void) un;
- (void) u1;
- (void) u2;
- warning("glMapGrid1d");
-}
-
-static void NoOpMapGrid1f(GLint un, GLfloat u1, GLfloat u2)
-{
- (void) un;
- (void) u1;
- (void) u2;
- warning("glMapGrid1f");
-}
-
-static void NoOpMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
-{
- (void) un;
- (void) u1;
- (void) u2;
- (void) vn;
- (void) v1;
- (void) v2;
- warning("glMapGrid2d");
-}
-
-static void NoOpMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
-{
- (void) un;
- (void) u1;
- (void) u2;
- (void) vn;
- (void) v1;
- (void) v2;
- warning("glMapGrid2f");
-}
-
-static void NoOpMaterialf(GLenum face, GLenum pname, GLfloat param)
-{
- (void) face;
- (void) pname;
- (void) param;
- warning("glMaterialf");
-}
-
-static void NoOpMateriali(GLenum face, GLenum pname, GLint param)
-{
- (void) face;
- (void) pname;
- (void) param;
- warning("glMateriali");
-}
-
-static void NoOpMaterialfv(GLenum face, GLenum pname, const GLfloat *params)
-{
- (void) face;
- (void) pname;
- (void) params;
- warning("glMaterialfv");
-}
-
-static void NoOpMaterialiv(GLenum face, GLenum pname, const GLint *params)
-{
- (void) face;
- (void) pname;
- (void) params;
- warning("glMaterialiv");
-}
-
-static void NoOpMatrixMode(GLenum mode)
-{
- (void) mode;
- warning("glMatrixMode");
-}
-
-static void NoOpMultMatrixd(const GLdouble *m)
-{
- (void) m;
- warning("glMultMatrixd");
-}
-
-static void NoOpMultMatrixf(const GLfloat *m)
-{
- (void) m;
- warning("glMultMatrixf");
-}
-
-static void NoOpNewList(GLuint list, GLenum mode)
-{
- (void) list;
- (void) mode;
- warning("glNewList");
-}
-
-static void NoOpNormal3b(GLbyte nx, GLbyte ny, GLbyte nz)
-{
- (void) nx;
- (void) ny;
- (void) nz;
- warning("glNormal3b");
-}
-
-static void NoOpNormal3bv(const GLbyte *v)
-{
- (void) v;
- warning("glNormal3bv");
-}
-
-static void NoOpNormal3d(GLdouble nx, GLdouble ny, GLdouble nz)
-{
- (void) nx;
- (void) ny;
- (void) nz;
- warning("glNormal3d");
-}
-
-static void NoOpNormal3dv(const GLdouble *v)
-{
- (void) v;
- warning("glNormal3dv");
-}
-
-static void NoOpNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
-{
- (void) nx;
- (void) ny;
- (void) nz;
- warning("glNormal3f");
-}
-
-static void NoOpNormal3fv(const GLfloat *v)
-{
- (void) v;
- warning("glNormal3fv");
-}
-
-static void NoOpNormal3i(GLint nx, GLint ny, GLint nz)
-{
- (void) nx;
- (void) ny;
- (void) nz;
- warning("glNormal3i");
-}
-
-static void NoOpNormal3iv(const GLint *v)
-{
- (void) v;
- warning("glNormal3iv");
-}
-
-static void NoOpNormal3s(GLshort nx, GLshort ny, GLshort nz)
-{
- (void) nx;
- (void) ny;
- (void) nz;
- warning("glNormal3s");
-}
-
-static void NoOpNormal3sv(const GLshort *v)
-{
- (void) v;
- warning("glNormal3sv");
-}
-
-static void NoOpOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearval, GLdouble farval)
-{
- (void) left;
- (void) right;
- (void) bottom;
- (void) top;
- (void) nearval;
- (void) farval;
- warning("glOrtho");
-}
-
-static void NoOpPassThrough(GLfloat token)
-{
- (void) token;
- warning("glPassThrough");
-}
-
-static void NoOpPixelMapfv(GLenum map, GLint mapsize, const GLfloat *values)
-{
- (void) map;
- (void) mapsize;
- (void) values;
- warning("glPixelMapfv");
-}
-
-static void NoOpPixelMapuiv(GLenum map, GLint mapsize, const GLuint *values)
-{
- (void) map;
- (void) mapsize;
- (void) values;
- warning("glPixelMapuiv");
-}
-
-static void NoOpPixelMapusv(GLenum map, GLint mapsize, const GLushort *values)
-{
- (void) map;
- (void) mapsize;
- (void) values;
- warning("glPixelMapusv");
-}
-
-static void NoOpPixelStoref(GLenum pname, GLfloat param)
-{
- (void) pname;
- (void) param;
- warning("glPixelStoref");
-}
-
-static void NoOpPixelStorei(GLenum pname, GLint param)
-{
- (void) pname;
- (void) param;
- warning("glPixelStorei");
-}
-
-static void NoOpPixelTransferf(GLenum pname, GLfloat param)
-{
- (void) pname;
- (void) param;
- warning("glPixelTransferf");
-}
-
-static void NoOpPixelTransferi(GLenum pname, GLint param)
-{
- (void) pname;
- (void) param;
- warning("glPixelTransferi");
-}
-
-static void NoOpPixelZoom(GLfloat xfactor, GLfloat yfactor)
-{
- (void) xfactor;
- (void) yfactor;
- warning("glPixelZoom");
-}
-
-static void NoOpPointSize(GLfloat size)
-{
- (void) size;
- warning("glPointSize");
-}
-
-static void NoOpPolygonMode(GLenum face, GLenum mode)
-{
- (void) face;
- (void) mode;
- warning("glPolygonMode");
-}
-
-static void NoOpPolygonStipple(const GLubyte *pattern)
-{
- (void) pattern;
- warning("glPolygonStipple");
-}
-
-static void NoOpPopAttrib(void)
-{
- warning("glPopAttrib");
-}
-
-static void NoOpPopMatrix(void)
-{
- warning("glPopMatrix");
-}
-
-static void NoOpPopName(void)
-{
- warning("glPopName");
-}
-
-static void NoOpPushMatrix(void)
-{
- warning("glPushMatrix");
-}
-
-static void NoOpRasterPos2d(GLdouble x, GLdouble y)
-{
- (void) x;
- (void) y;
- warning("glRasterPos2d");
-}
-
-static void NoOpRasterPos2f(GLfloat x, GLfloat y)
-{
- (void) x;
- (void) y;
- warning("glRasterPos2f");
-}
-
-static void NoOpRasterPos2i(GLint x, GLint y)
-{
- (void) x;
- (void) y;
- warning("glRasterPos2i");
-}
-
-static void NoOpRasterPos2s(GLshort x, GLshort y)
-{
- (void) x;
- (void) y;
- warning("glRasterPos2s");
-}
-
-static void NoOpRasterPos3d(GLdouble x, GLdouble y, GLdouble z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glRasterPos3d");
-}
-
-static void NoOpRasterPos3f(GLfloat x, GLfloat y, GLfloat z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glRasterPos3f");
-}
-
-static void NoOpRasterPos3i(GLint x, GLint y, GLint z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glRasterPos3i");
-}
-
-static void NoOpRasterPos3s(GLshort x, GLshort y, GLshort z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glRasterPos3s");
-}
-
-static void NoOpRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
-{
- (void) x;
- (void) y;
- (void) z;
- (void) w;
- warning("glRasterPos4d");
-}
-
-static void NoOpRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
-{
- (void) x;
- (void) y;
- (void) z;
- (void) w;
- warning("glRasterPos4f");
-}
-
-static void NoOpRasterPos4i(GLint x, GLint y, GLint z, GLint w)
-{
- (void) x;
- (void) y;
- (void) z;
- (void) w;
- warning("glRasterPos4i");
-}
-
-static void NoOpRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w)
-{
- (void) x;
- (void) y;
- (void) z;
- (void) w;
- warning("glRasterPos4s");
-}
-
-static void NoOpRasterPos2dv(const GLdouble *v)
-{
- (void) v;
- warning("glRasterPos2dv");
-}
-
-static void NoOpRasterPos2fv(const GLfloat *v)
-{
- (void) v;
- warning("glRasterPos2fv");
-}
-
-static void NoOpRasterPos2iv(const GLint *v)
-{
- (void) v;
- warning("glRasterPos2iv");
-}
-
-static void NoOpRasterPos2sv(const GLshort *v)
-{
- (void) v;
- warning("glRasterPos2sv");
-}
-
-static void NoOpRasterPos3dv(const GLdouble *v)
-{
- (void) v;
- warning("glRasterPos3dv");
-}
-
-static void NoOpRasterPos3fv(const GLfloat *v)
-{
- (void) v;
- warning("glRasterPos3fv");
-}
-
-static void NoOpRasterPos3iv(const GLint *v)
-{
- (void) v;
- warning("glRasterPos3iv");
-}
-
-static void NoOpRasterPos3sv(const GLshort *v)
-{
- (void) v;
- warning("glRasterPos3sv");
-}
-
-static void NoOpRasterPos4dv(const GLdouble *v)
-{
- (void) v;
- warning("glRasterPos4dv");
-}
-
-static void NoOpRasterPos4fv(const GLfloat *v)
-{
- (void) v;
- warning("glRasterPos4fv");
-}
-
-static void NoOpRasterPos4iv(const GLint *v)
-{
- (void) v;
- warning("glRasterPos4iv");
-}
-
-static void NoOpRasterPos4sv(const GLshort *v)
-{
- (void) v;
- warning("glRasterPos4sv");
-}
-
-static void NoOpReadBuffer(GLenum mode)
-{
- (void) mode;
- warning("glReadBuffer");
-}
-
-static void NoOpReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
-{
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glReadPixels");
-}
-
-static void NoOpRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
-{
- (void) x1;
- (void) y1;
- (void) x2;
- (void) y2;
- warning("glRectd");
-}
-
-static void NoOpRectdv(const GLdouble *v1, const GLdouble *v2)
-{
- (void) v1;
- (void) v2;
- warning("glRectdv");
-}
-
-static void NoOpRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
-{
- (void) x1;
- (void) y1;
- (void) x2;
- (void) y2;
- warning("glRectf");
-}
-
-static void NoOpRectfv(const GLfloat *v1, const GLfloat *v2)
-{
- (void) v1;
- (void) v2;
- warning("glRectfv");
-}
-
-static void NoOpRecti(GLint x1, GLint y1, GLint x2, GLint y2)
-{
- (void) x1;
- (void) y1;
- (void) x2;
- (void) y2;
- warning("glRecti");
-}
-
-static void NoOpRectiv(const GLint *v1, const GLint *v2)
-{
- (void) v1;
- (void) v2;
- warning("glRectiv");
-}
-
-static void NoOpRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
-{
- (void) x1;
- (void) y1;
- (void) x2;
- (void) y2;
- warning("glRects");
-}
-
-static void NoOpRectsv(const GLshort *v1, const GLshort *v2)
-{
- (void) v1;
- (void) v2;
- warning("glRectsv");
-}
-
-static void NoOpScissor(GLint x, GLint y, GLsizei width, GLsizei height)
-{
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- warning("glScissor");
-}
-
-static GLboolean NoOpIsEnabled(GLenum cap)
-{
- (void) cap;
- warning("glIsEnabled");
- return GL_FALSE;
-}
-
-static void NoOpPushAttrib(GLbitfield mask)
-{
- (void) mask;
- warning("glPushAttrib");
-}
-
-static void NoOpPushName(GLuint name)
-{
- (void) name;
- warning("glPushName");
-}
-
-static GLint NoOpRenderMode(GLenum mode)
-{
- (void) mode;
- warning("glRenderMode");
- return 0;
-}
-
-static void NoOpRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
-{
- (void) angle;
- (void) x;
- (void) y;
- (void) z;
- warning("glRotated");
-}
-
-static void NoOpRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
-{
- (void) angle;
- (void) x;
- (void) y;
- (void) z;
- warning("glRotatef");
-}
-
-static void NoOpSelectBuffer(GLsizei size, GLuint *buffer)
-{
- (void) size;
- (void) buffer;
- warning("glSelectBuffer");
-}
-
-static void NoOpScaled(GLdouble x, GLdouble y, GLdouble z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glScaled");
-}
-
-static void NoOpScalef(GLfloat x, GLfloat y, GLfloat z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glScalef");
-}
-
-static void NoOpShadeModel(GLenum mode)
-{
- (void) mode;
- warning("glShadeModel");
-}
-
-static void NoOpStencilFunc(GLenum func, GLint ref, GLuint mask)
-{
- (void) func;
- (void) ref;
- (void) mask;
- warning("glStencilFunc");
-}
-
-static void NoOpStencilMask(GLuint mask)
-{
- (void) mask;
- warning("glStencilMask");
-}
-
-static void NoOpStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
-{
- (void) fail;
- (void) zfail;
- (void) zpass;
- warning("glStencilOp");
-}
-
-static void NoOpTexCoord1d(GLdouble s)
-{
- (void) s;
- warning("glTexCoord1d");
-}
-
-static void NoOpTexCoord1dv(const GLdouble *v)
-{
- (void) v;
- warning("glTexCoord1dv");
-}
-
-static void NoOpTexCoord1f(GLfloat s)
-{
- (void) s;
- warning("glTexCoord1f");
-}
-
-static void NoOpTexCoord1fv(const GLfloat *v)
-{
- (void) v;
- warning("glTexCoord1fv");
-}
-
-static void NoOpTexCoord1i(GLint s)
-{
- (void) s;
- warning("glTexCoord1i");
-}
-
-static void NoOpTexCoord1iv(const GLint *v)
-{
- (void) v;
- warning("glTexCoord1iv");
-}
-
-static void NoOpTexCoord1s(GLshort s)
-{
- (void) s;
- warning("glTexCoord1s");
-}
-
-static void NoOpTexCoord1sv(const GLshort *v)
-{
- (void) v;
- warning("glTexCoord1sv");
-}
-
-static void NoOpTexCoord2d(GLdouble s, GLdouble t)
-{
- (void) s;
- (void) t;
- warning("glTexCoord2d");
-}
-
-static void NoOpTexCoord2dv(const GLdouble *v)
-{
- (void) v;
- warning("glTexCoord2dv");
-}
-
-static void NoOpTexCoord2f(GLfloat s, GLfloat t)
-{
- (void) s;
- (void) t;
- warning("glTexCoord2f");
-}
-
-static void NoOpTexCoord2fv(const GLfloat *v)
-{
- (void) v;
- warning("glTexCoord2fv");
-}
-
-static void NoOpTexCoord2s(GLshort s, GLshort t)
-{
- (void) s;
- (void) t;
- warning("glTexCoord2s");
-}
-
-static void NoOpTexCoord2sv(const GLshort *v)
-{
- (void) v;
- warning("glTexCoord2sv");
-}
-
-static void NoOpTexCoord2i(GLint s, GLint t)
-{
- (void) s;
- (void) t;
- warning("glTexCoord2i");
-}
-
-static void NoOpTexCoord2iv(const GLint *v)
-{
- (void) v;
- warning("glTexCoord2iv");
-}
-
-static void NoOpTexCoord3d(GLdouble s, GLdouble t, GLdouble r)
-{
- (void) s;
- (void) t;
- (void) r;
- warning("glTexCoord3d");
-}
-
-static void NoOpTexCoord3dv(const GLdouble *v)
-{
- (void) v;
- warning("glTexCoord3dv");
-}
-
-static void NoOpTexCoord3f(GLfloat s, GLfloat t, GLfloat r)
-{
- (void) s;
- (void) t;
- (void) r;
- warning("glTexCoord3f");
-}
-
-static void NoOpTexCoord3fv(const GLfloat *v)
-{
- (void) v;
- warning("glTexCoord3fv");
-}
-
-static void NoOpTexCoord3i(GLint s, GLint t, GLint r)
-{
- (void) s;
- (void) t;
- (void) r;
- warning("glTexCoord3i");
-}
-
-static void NoOpTexCoord3iv(const GLint *v)
-{
- (void) v;
- warning("glTexCoord3iv");
-}
-
-static void NoOpTexCoord3s(GLshort s, GLshort t, GLshort r)
-{
- (void) s;
- (void) t;
- (void) r;
- warning("glTexCoord3s");
-}
-
-static void NoOpTexCoord3sv(const GLshort *v)
-{
- (void) v;
- warning("glTexCoord3sv");
-}
-
-static void NoOpTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q)
-{
- (void) s;
- (void) t;
- (void) r;
- warning("glTexCoord4d");
-}
-
-static void NoOpTexCoord4dv(const GLdouble *v)
-{
- (void) v;
- warning("glTexCoord4dv");
-}
-
-static void NoOpTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q)
-{
- (void) s;
- (void) t;
- (void) r;
- (void) q;
- warning("glTexCoord4f");
-}
-
-static void NoOpTexCoord4fv(const GLfloat *v)
-{
- (void) v;
- warning("glTexCoord4fv");
-}
-
-static void NoOpTexCoord4i(GLint s, GLint t, GLint r, GLint q)
-{
- (void) s;
- (void) t;
- (void) r;
- (void) q;
- warning("glTexCoord4i");
-}
-
-static void NoOpTexCoord4iv(const GLint *v)
-{
- (void) v;
- warning("glTexCoord4iv");
-}
-
-static void NoOpTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q)
-{
- (void) s;
- (void) t;
- (void) r;
- (void) q;
- warning("glTexCoord4s");
-}
-
-static void NoOpTexCoord4sv(const GLshort *v)
-{
- (void) v;
- warning("glTexCoord4sv");
-}
-
-static void NoOpTexGend(GLenum coord, GLenum pname, GLdouble param)
-{
- (void) coord;
- (void) pname;
- (void) param;
- warning("glTexGend");
-}
-
-static void NoOpTexGenf(GLenum coord, GLenum pname, GLfloat param)
-{
- (void) coord;
- (void) pname;
- (void) param;
- warning("glTexGenf");
-}
-
-static void NoOpTexGeni(GLenum coord, GLenum pname, GLint param)
-{
- (void) coord;
- (void) pname;
- (void) param;
- warning("glTexGeni");
-}
-
-static void NoOpTexGendv(GLenum coord, GLenum pname, const GLdouble *params)
-{
- (void) coord;
- (void) pname;
- (void) params;
- warning("glTexGendv");
-}
-
-static void NoOpTexGeniv(GLenum coord, GLenum pname, const GLint *params)
-{
- (void) coord;
- (void) pname;
- (void) params;
- warning("glTexGeniv");
-}
-
-static void NoOpTexGenfv(GLenum coord, GLenum pname, const GLfloat *params)
-{
- (void) coord;
- (void) pname;
- (void) params;
- warning("glTexGenfv");
-}
-
-static void NoOpTexEnvf(GLenum target, GLenum pname, GLfloat param)
-{
- (void) target;
- (void) pname;
- (void) param;
- warning("glTexEnvf");
-}
-
-static void NoOpTexEnvi(GLenum target, GLenum pname, GLint param)
-{
- (void) target;
- (void) pname;
- (void) param;
- warning("glTexEnvi");
-}
-
-static void NoOpTexEnvfv(GLenum target, GLenum pname, const GLfloat *param)
-{
- (void) target;
- (void) pname;
- (void) param;
- warning("glTexEnvfv");
-}
-
-static void NoOpTexEnviv(GLenum target, GLenum pname, const GLint *param)
-{
- (void) target;
- (void) pname;
- (void) param;
- warning("glTexEnviv");
-}
-
-static void NoOpTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) internalformat;
- (void) width;
- (void) border;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexImage1D");
-}
-
-static void NoOpTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) internalformat;
- (void) width;
- (void) height;
- (void) border;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexImage2D");
-}
-
-static void NoOpTexParameterf(GLenum target, GLenum pname, GLfloat param)
-{
- (void) target;
- (void) pname;
- (void) param;
- warning("glTexParameterf");
-}
-
-static void NoOpTexParameteri(GLenum target, GLenum pname, GLint param)
-{
- (void) target;
- (void) pname;
- (void) param;
- warning("glTexParameteri");
-}
-
-static void NoOpTexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glTexParameterfv");
-}
-
-static void NoOpTexParameteriv(GLenum target, GLenum pname, const GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glTexParameteriv");
-}
-
-static void NoOpTranslated(GLdouble x, GLdouble y, GLdouble z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glTranslated");
-}
-
-static void NoOpTranslatef(GLfloat x, GLfloat y, GLfloat z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glTranslatef");
-}
-
-static void NoOpVertex2d(GLdouble x, GLdouble y)
-{
- (void) x;
- (void) y;
- warning("glVertex2d");
-}
-
-static void NoOpVertex2dv(const GLdouble *v)
-{
- (void) v;
- warning("glVertex2dv");
-}
-
-static void NoOpVertex2f(GLfloat x, GLfloat y)
-{
- (void) x;
- (void) y;
- warning("glVertex2f");
-}
-
-static void NoOpVertex2fv(const GLfloat *v)
-{
- (void) v;
- warning("glVertex2fv");
-}
-
-static void NoOpVertex2i(GLint x, GLint y)
-{
- (void) x;
- (void) y;
- warning("glVertex2i");
-}
-
-static void NoOpVertex2iv(const GLint *v)
-{
- (void) v;
- warning("glVertex2iv");
-}
-
-static void NoOpVertex2s(GLshort x, GLshort y)
-{
- (void) x;
- (void) y;
- warning("glVertex2s");
-}
-
-static void NoOpVertex2sv(const GLshort *v)
-{
- (void) v;
- warning("glVertex2sv");
-}
-
-static void NoOpVertex3d(GLdouble x, GLdouble y, GLdouble z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glVertex3d");
-}
-
-static void NoOpVertex3dv(const GLdouble *v)
-{
- (void) v;
- warning("glVertex3dv");
-}
-
-static void NoOpVertex3f(GLfloat x, GLfloat y, GLfloat z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glVertex3f");
-}
-
-static void NoOpVertex3fv(const GLfloat *v)
-{
- (void) v;
- warning("glVertex3fv");
-}
-
-static void NoOpVertex3i(GLint x, GLint y, GLint z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glVertex3i");
-}
-
-static void NoOpVertex3iv(const GLint *v)
-{
- (void) v;
- warning("glVertex3iv");
-}
-
-static void NoOpVertex3s(GLshort x, GLshort y, GLshort z)
-{
- (void) x;
- (void) y;
- (void) z;
- warning("glVertex3s");
-}
-
-static void NoOpVertex3sv(const GLshort *v)
-{
- (void) v;
- warning("glVertex3sv");
-}
-
-static void NoOpVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
-{
- (void) x;
- (void) y;
- (void) z;
- (void) w;
- warning("glVertex4d");
-}
-
-static void NoOpVertex4dv(const GLdouble *v)
-{
- (void) v;
- warning("glVertex4dv");
-}
-
-static void NoOpVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
-{
- (void) x;
- (void) y;
- (void) z;
- (void) w;
- warning("glVertex4f");
-}
-
-static void NoOpVertex4fv(const GLfloat *v)
-{
- (void) v;
- warning("glVertex4fv");
-}
-
-static void NoOpVertex4i(GLint x, GLint y, GLint z, GLint w)
-{
- (void) x;
- (void) y;
- (void) z;
- (void) w;
- warning("glVertex4i");
-}
-
-static void NoOpVertex4iv(const GLint *v)
-{
- (void) v;
- warning("glVertex4iv");
-}
-
-static void NoOpVertex4s(GLshort x, GLshort y, GLshort z, GLshort w)
-{
- (void) x;
- (void) y;
- (void) z;
- (void) w;
- warning("glVertex4s");
-}
-
-static void NoOpVertex4sv(const GLshort *v)
-{
- (void) v;
- warning("glVertex4sv");
-}
-
-static void NoOpViewport(GLint x, GLint y, GLsizei width, GLsizei height)
-{
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- warning("glViewport");
-}
-
-
-/* GL 1.1 */
-
-static GLboolean NoOpAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences)
-{
- (void) n;
- (void) textures;
- (void) residences;
- warning("glAreTexturesResident");
- return GL_FALSE;
-}
-
-static void NoOpArrayElement(GLint i)
-{
- (void) i;
- warning("glArrayElement");
-}
-
-static void NoOpBindTexture(GLenum target, GLuint texture)
-{
- (void) target;
- (void) texture;
- warning("glBindTexture");
-}
-
-static void NoOpColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
-{
- (void) size;
- (void) type;
- (void) stride;
- (void) ptr;
- warning("glColorPointer");
-}
-
-static void NoOpCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
-{
- (void) target;
- (void) level;
- (void) internalformat;
- (void) x;
- (void) y;
- (void) width;
- (void) border;
- warning("glCopyTexImage1D");
-}
-
-static void NoOpCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
-{
- (void) target;
- (void) level;
- (void) internalformat;
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- (void) border;
- warning("glCopyTexImage2D");
-}
-
-static void NoOpCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) x;
- (void) y;
- (void) width;
- warning("glCopyTexSubImage1D");
-}
-
-static void NoOpCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) yoffset;
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- warning("glCopyTexSubImage2D");
-}
-
-static void NoOpDeleteTextures(GLsizei n, const GLuint *textures)
-{
- (void) n;
- (void) textures;
- warning("glDeleteTextures");
-}
-
-static void NoOpDrawArrays(GLenum mode, GLint first, GLsizei count)
-{
- (void) mode;
- (void) first;
- (void) count;
- warning("glDrawArrays");
-}
-
-static void NoOpDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
-{
- (void) mode;
- (void) type;
- (void) indices;
- warning("glDrawElements");
-}
-
-static void NoOpEnableClientState(GLenum cap)
-{
- (void) cap;
- warning("glEnableClientState");
-}
-
-static void NoOpGenTextures(GLsizei n, GLuint *textures)
-{
- (void) n;
- (void) textures;
- warning("glGenTextures");
-}
-
-static void NoOpGetPointerv(GLenum pname, GLvoid **params)
-{
- (void) pname;
- (void) params;
- warning("glGetPointerv");
-}
-
-static void NoOpIndexub(GLubyte c)
-{
- (void) c;
- warning("glIndexub");
-}
-
-static void NoOpIndexubv(const GLubyte *c)
-{
- (void) c;
- warning("glIndexubv");
-}
-
-static void NoOpIndexPointer(GLenum type, GLsizei stride, const GLvoid *ptr)
-{
- (void) type;
- (void) stride;
- (void) ptr;
- warning("glIndexPointer");
-}
-
-static void NoOpInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer)
-{
- (void) format;
- (void) stride;
- (void) pointer;
- warning("glInterleavedArrays");
-}
-
-static GLboolean NoOpIsTexture(GLuint texture)
-{
- (void) texture;
- warning("glIsTexture");
- return GL_FALSE;
-}
-
-static void NoOpNormalPointer(GLenum type, GLsizei stride, const GLvoid *ptr)
-{
- (void) type;
- (void) stride;
- (void) ptr;
- warning("glNormalPointer");
-}
-
-static void NoOpPolygonOffset(GLfloat factor, GLfloat units)
-{
- (void) factor;
- (void) units;
- warning("glPolygonOffset");
-}
-
-static void NoOpPopClientAttrib(void)
-{
- warning("glPopClientAttrib");
-}
-
-static void NoOpPrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities)
-{
- (void) n;
- (void) textures;
- (void) priorities;
- warning("glPrioritizeTextures");
-}
-
-static void NoOpPushClientAttrib(GLbitfield mask)
-{
- (void) mask;
- warning("glPushClientAttrib");
-}
-
-static void NoOpTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
-{
- (void) size;
- (void) type;
- (void) stride;
- (void) ptr;
- warning("glTexCoordPointer");
-}
-
-static void NoOpTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) width;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexSubImage1D");
-}
-
-static void NoOpTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) yoffset;
- (void) width;
- (void) height;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexSubImage2D");
-}
-
-static void NoOpVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
-{
- (void) size;
- (void) type;
- (void) stride;
- (void) ptr;
- warning("glVertexPointer");
-}
-
-
-
-/* GL 1.2 */
-
-static void NoOpCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) yoffset;
- (void) zoffset;
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- warning("glCopyTexSubImage3D");
-}
-
-static void NoOpDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices)
-{
- (void) mode;
- (void) start;
- (void) end;
- (void) count;
- (void) type;
- (void) indices;
- warning("glDrawRangeElements");
-}
-
-static void NoOpTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) internalformat;
- (void) width;
- (void) height;
- (void) depth;
- (void) border;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexImage3D");
-}
-
-static void NoOpTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) yoffset;
- (void) zoffset;
- (void) width;
- (void) height;
- (void) depth;
- (void) depth;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexSubImage3D");
-}
-
-
-
-/* GL_ARB_imaging */
-
-static void NoOpBlendColor(GLclampf r, GLclampf g, GLclampf b, GLclampf a)
-{
- (void) r;
- (void) g;
- (void) b;
- (void) a;
- warning("glBlendColor");
-}
-
-static void NoOpBlendEquation(GLenum eq)
-{
- (void) eq;
- warning("glBlendEquation");
-}
-
-static void NoOpColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data)
-{
- (void) target;
- (void) start;
- (void) count;
- (void) format;
- (void) type;
- (void) data;
- warning("glColorSubTable");
-}
-
-static void NoOpColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
-{
- (void) target;
- (void) internalformat;
- (void) width;
- (void) format;
- (void) type;
- (void) table;
- warning("glColorTable");
-}
-
-static void NoOpColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glColorTableParameterfv");
-}
-
-static void NoOpColorTableParameteriv(GLenum target, GLenum pname, const GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glColorTableParameteriv");
-}
-
-static void NoOpConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)
-{
- (void) target;
- (void) internalformat;
- (void) width;
- (void) format;
- (void) type;
- (void) image;
- warning("glConvolutionFilter1D");
-}
-
-static void NoOpConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)
-{
- (void) target;
- (void) internalformat;
- (void) width;
- (void) height;
- (void) format;
- (void) type;
- (void) image;
- warning("glConvolutionFilter2D");
-}
-
-static void NoOpConvolutionParameterf(GLenum target, GLenum pname, GLfloat params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glConvolutionParameterf");
-}
-
-static void NoOpConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glConvolutionParameterfv");
-}
-
-static void NoOpConvolutionParameteri(GLenum target, GLenum pname, GLint params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glConvolutionParameteri");
-}
-
-static void NoOpConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glConvolutionParameteriv");
-}
-
-static void NoOpCopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
-{
- (void) target;
- (void) start;
- (void) x;
- (void) y;
- (void) width;
- warning("glCopyColorSubTable");
-}
-
-static void NoOpCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
-{
- (void) target;
- (void) internalformat;
- (void) x;
- (void) y;
- (void) width;
- warning("glCopyColorTable");
-}
-
-static void NoOpCopyConvolutionFilter1D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
-{
- (void) target;
- (void) internalformat;
- (void) x;
- (void) y;
- (void) width;
- warning("glCopyConvolutionFilter1D");
-}
-
-static void NoOpCopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
-{
- (void) target;
- (void) internalformat;
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- warning("glCopyConvolutionFilter2D");
-}
-
-static void NoOpGetColorTable(GLenum target, GLenum format, GLenum type, GLvoid *table)
-{
- (void) target;
- (void) format;
- (void) type;
- (void) table;
- warning("glGetColorTable");
-}
-
-static void NoOpGetColorTableParameterfv(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetColorTableParameterfv");
-}
-
-static void NoOpGetColorTableParameteriv(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetColorTableParameteriv");
-}
-
-static void NoOpGetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *image)
-{
- (void) target;
- (void) format;
- (void) type;
- (void) image;
- warning("glGetConvolutionFilter");
-}
-
-static void NoOpGetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetConvolutionParameterfv");
-}
-
-static void NoOpGetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetConvolutionParameteriv");
-}
-
-static void NoOpGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values)
-{
- (void) target;
- (void) reset;
- (void) format;
- (void) types;
- (void) values;
- warning("glGetMinmax");
-}
-
-static void NoOpGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
-{
- (void) target;
- (void) reset;
- (void) format;
- (void) type;
- (void) values;
- warning("glGetHistogram");
-}
-
-static void NoOpGetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetHistogramParameterfv");
-}
-
-static void NoOpGetHistogramParameteriv(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetHistogramParameteriv");
-}
-
-static void NoOpGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetMinmaxParameterfv");
-}
-
-static void NoOpGetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetMinmaxParameteriv");
-}
-
-static void NoOpGetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span)
-{
- (void) target;
- (void) format;
- (void) type;
- (void) row;
- (void) column;
- (void) span;
- warning("glGetSeperableFilter");
-}
-
-static void NoOpHistogram(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
-{
- (void) target;
- (void) width;
- (void) internalformat;
- (void) sink;
- warning("glHistogram");
-}
-
-static void NoOpMinmax(GLenum target, GLenum internalformat, GLboolean sink)
-{
- (void) target;
- (void) internalformat;
- (void) sink;
- warning("glMinmax");
-}
-
-static void NoOpResetHistogram(GLenum target)
-{
- (void) target;
- warning("glResetHistogram");
-}
-
-static void NoOpResetMinmax(GLenum target)
-{
- (void) target;
- warning("glResetMinmax");
-}
-
-static void NoOpSeparableFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
-{
- (void) target;
- (void) internalformat;
- (void) width;
- (void) height;
- (void) format;
- (void) type;
- (void) row;
- (void) column;
- warning("glSeparableFilter2D");
-}
-
-
-
-
-/* GL_ARB_multitexture */
-
-static void NoOpActiveTextureARB(GLenum texture)
-{
- (void) texture;
- warning("glActiveTextureARB");
-}
-
-static void NoOpClientActiveTextureARB(GLenum texture)
-{
- (void) texture;
- warning("glClientActiveTextureARB");
-}
-
-static void NoOpMultiTexCoord1dARB(GLenum target, GLdouble s)
-{
- (void) target;
- (void) s;
- warning("glMultiTexCoord1dARB");
-}
-
-static void NoOpMultiTexCoord1dvARB(GLenum target, const GLdouble *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord1dvARB");
-}
-
-static void NoOpMultiTexCoord1fARB(GLenum target, GLfloat s)
-{
- (void) target;
- (void) s;
- warning("glMultiTexCoord1fARB");
-}
-
-static void NoOpMultiTexCoord1fvARB(GLenum target, const GLfloat *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord1fvARB");
-}
-
-static void NoOpMultiTexCoord1iARB(GLenum target, GLint s)
-{
- (void) target;
- (void) s;
- warning("glMultiTexCoord1iARB");
-}
-
-static void NoOpMultiTexCoord1ivARB(GLenum target, const GLint *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord1ivARB");
-}
-
-static void NoOpMultiTexCoord1sARB(GLenum target, GLshort s)
-{
- (void) target;
- (void) s;
- warning("glMultiTexCoord1sARB");
-}
-
-static void NoOpMultiTexCoord1svARB(GLenum target, const GLshort *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord1svARB");
-}
-
-static void NoOpMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t)
-{
- (void) target;
- (void) s;
- (void) t;
- warning("glMultiTexCoord2dARB");
-}
-
-static void NoOpMultiTexCoord2dvARB(GLenum target, const GLdouble *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord2dvARB");
-}
-
-static void NoOpMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t)
-{
- (void) target;
- (void) s;
- (void) t;
- warning("glMultiTexCoord2fARB");
-}
-
-static void NoOpMultiTexCoord2fvARB(GLenum target, const GLfloat *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord2fvARB");
-}
-
-static void NoOpMultiTexCoord2iARB(GLenum target, GLint s, GLint t)
-{
- (void) target;
- (void) s;
- (void) t;
- warning("glMultiTexCoord2iARB");
-}
-
-static void NoOpMultiTexCoord2ivARB(GLenum target, const GLint *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord2ivARB");
-}
-
-static void NoOpMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t)
-{
- (void) target;
- (void) s;
- (void) t;
- warning("glMultiTexCoord2sARB");
-}
-
-static void NoOpMultiTexCoord2svARB(GLenum target, const GLshort *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord2svARB");
-}
-
-static void NoOpMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r)
-{
- (void) target;
- (void) s;
- (void) t;
- (void) r;
- warning("glMultiTexCoord3dARB");
-}
-
-static void NoOpMultiTexCoord3dvARB(GLenum target, const GLdouble *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord3dvARB");
-}
-
-static void NoOpMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r)
-{
- (void) target;
- (void) s;
- (void) t;
- (void) r;
- warning("glMultiTexCoord3fARB");
-}
-
-static void NoOpMultiTexCoord3fvARB(GLenum target, const GLfloat *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord3fvARB");
-}
-
-static void NoOpMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r)
-{
- (void) target;
- (void) s;
- (void) t;
- (void) r;
- warning("glMultiTexCoord3iARB");
-}
-
-static void NoOpMultiTexCoord3ivARB(GLenum target, const GLint *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord3ivARB");
-}
-
-static void NoOpMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r)
-{
- (void) target;
- (void) s;
- (void) t;
- (void) r;
- warning("glMultiTexCoord3sARB");
-}
-
-static void NoOpMultiTexCoord3svARB(GLenum target, const GLshort *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord3svARB");
-}
-
-static void NoOpMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
-{
- (void) target;
- (void) s;
- (void) t;
- (void) r;
- (void) q;
- warning("glMultiTexCoord4dARB");
-}
-
-static void NoOpMultiTexCoord4dvARB(GLenum target, const GLdouble *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord4dvARB");
-}
-
-static void NoOpMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
-{
- (void) target;
- (void) s;
- (void) t;
- (void) r;
- (void) q;
- warning("glMultiTexCoord4fARB");
-}
-
-static void NoOpMultiTexCoord4fvARB(GLenum target, const GLfloat *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord4fvARB");
-}
-
-static void NoOpMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q)
-{
- (void) target;
- (void) s;
- (void) t;
- (void) r;
- (void) q;
- warning("glMultiTexCoord4iARB");
-}
-
-static void NoOpMultiTexCoord4ivARB(GLenum target, const GLint *v)
-{
- (void) target;
- (void) v;
- warning("glMultiTexCoord4ivARB");
-}
-
-static void NoOpMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
-{
- (void) target;
- (void) s;
- (void) t;
- (void) r;
- (void) q;
- warning("glMultiTexCoord4sARB");
-}
-
-static void NoOpMultiTexCoord4svARB(GLenum target, const GLshort *v)
-{
- (void) v;
- warning("glMultiTexCoord4svARB");
-}
-
-
-
-
-/***
- *** Extension functions
- ***/
-
-
-/* 2. GL_EXT_blend_color */
-static void NoOpBlendColorEXT(GLclampf r, GLclampf g, GLclampf b, GLclampf a)
-{
- (void) r;
- (void) g;
- (void) b;
- (void) a;
- warning("glBlendColor");
-}
-
-
-/* 3. GL_EXT_polygon_offset */
-static void NoOpPolygonOffsetEXT(GLfloat factor, GLfloat bias)
-{
- (void) factor;
- (void) bias;
- warning("glPolygonOffsetEXT");
-}
-
-
-
-/* 6. GL_EXT_texture3D */
-
-static void NoOpTexImage3DEXT(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) internalformat;
- (void) width;
- (void) height;
- (void) depth;
- (void) border;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexImage3DEXT");
-}
-
-static void NoOpTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) yoffset;
- (void) zoffset;
- (void) width;
- (void) height;
- (void) depth;
- (void) depth;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexSubImage3DEXT");
-}
-
-static void NoOpCopyTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) yoffset;
- (void) zoffset;
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- warning("glCopyTexSubImage3DEXT");
-}
-
-
-
-/* 7. GL_SGI_texture_filter4 */
-
-static void NoOpGetTexFilterFuncSGIS(GLenum target, GLenum filter, GLsizei n, const GLfloat *weights)
-{
- (void) target;
- (void) filter;
- (void) n;
- (void) weights;
- warning("glGetTexFilterFuncSGIS");
-}
-
-static void NoOpTexFilterFuncSGIS(GLenum target, GLenum filter, GLfloat *weights)
-{
- (void) target;
- (void) filter;
- (void) weights;
- warning("glTexFilterFuncSGIS");
-}
-
-
-
-/* 9. GL_EXT_subtexture */
-
-static void NoOpCopyTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) x;
- (void) y;
- (void) width;
- warning("glCopyTexSubImage1DEXT");
-}
-
-static void NoOpTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) width;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexSubImage2DEXT");
-}
-static void NoOpTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) yoffset;
- (void) width;
- (void) height;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexSubImage2DEXT");
-}
-
-
-/* 10. GL_EXT_copy_texture */
-
-static void NoOpCopyTexImage1DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
-{
- (void) target;
- (void) level;
- (void) internalformat;
- (void) x;
- (void) y;
- (void) width;
- (void) border;
- warning("glCopyTexImage1DEXT");
-}
-
-static void NoOpCopyTexImage2DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
-{
- (void) target;
- (void) level;
- (void) internalformat;
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- (void) border;
- warning("glCopyTexImage2DEXT");
-}
-
-
-static void NoOpCopyTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) yoffset;
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- warning("glCopyTexSubImage2DEXT");
-}
-
-
-
-/* 11. GL_EXT_histogram */
-static void NoOpGetHistogramEXT(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
-{
- (void) target;
- (void) reset;
- (void) format;
- (void) type;
- (void) values;
- warning("glGetHistogramEXT");
-}
-
-static void NoOpGetHistogramParameterfvEXT(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetHistogramParameterfvEXT");
-}
-
-static void NoOpGetHistogramParameterivEXT(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetHistogramParameterivEXT");
-}
-
-static void NoOpGetMinmaxEXT(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values)
-{
- (void) target;
- (void) reset;
- (void) format;
- (void) types;
- (void) values;
- warning("glGetMinmaxEXT");
-}
-
-static void NoOpGetMinmaxParameterfvEXT(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetMinmaxParameterfvEXT");
-}
-
-static void NoOpGetMinmaxParameterivEXT(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetMinmaxParameterivEXT");
-}
-
-static void NoOpHistogramEXT(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
-{
- (void) target;
- (void) width;
- (void) internalformat;
- (void) sink;
- warning("glHistogramEXT");
-}
-
-static void NoOpMinmaxEXT(GLenum target, GLenum internalformat, GLboolean sink)
-{
- (void) target;
- (void) internalformat;
- (void) sink;
- warning("glMinmaxEXT");
-}
-
-static void NoOpResetHistogramEXT(GLenum target)
-{
- (void) target;
- warning("glResetHistogramEXT");
-}
-
-static void NoOpResetMinmaxEXT(GLenum target)
-{
- (void) target;
- warning("glResetMinmaxEXT");
-}
-
-
-
-/* 12. GL_EXT_convolution */
-
-static void NoOpConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)
-{
- (void) target;
- (void) internalformat;
- (void) width;
- (void) format;
- (void) type;
- (void) image;
- warning("glConvolutionFilter1DEXT");
-}
-
-static void NoOpConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)
-{
- (void) target;
- (void) internalformat;
- (void) width;
- (void) height;
- (void) format;
- (void) type;
- (void) image;
- warning("glConvolutionFilter2DEXT");
-}
-
-static void NoOpConvolutionParameterfEXT(GLenum target, GLenum pname, GLfloat params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glConvolutionParameterfEXT");
-}
-
-static void NoOpConvolutionParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glConvolutionParameterfvEXT");
-}
-
-static void NoOpConvolutionParameteriEXT(GLenum target, GLenum pname, GLint params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glConvolutionParameteriEXT");
-}
-
-static void NoOpConvolutionParameterivEXT(GLenum target, GLenum pname, const GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glConvolutionParameterivEXT");
-}
-
-static void NoOpCopyConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
-{
- (void) target;
- (void) internalformat;
- (void) x;
- (void) y;
- (void) width;
- warning("glCopyConvolutionFilter1DEXT");
-}
-
-static void NoOpCopyConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
-{
- (void) target;
- (void) internalformat;
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- warning("glCopyConvolutionFilter2DEXT");
-}
-
-static void NoOpGetConvolutionFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *image)
-{
- (void) target;
- (void) format;
- (void) type;
- (void) image;
- warning("glGetConvolutionFilterEXT");
-}
-
-static void NoOpGetConvolutionParameterfvEXT(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetConvolutionParameterfvEXT");
-}
-
-static void NoOpGetConvolutionParameterivEXT(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetConvolutionParameterivEXT");
-}
-
-static void NoOpGetSeparableFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span)
-{
- (void) target;
- (void) format;
- (void) type;
- (void) row;
- (void) column;
- (void) span;
- warning("glGetSeperableFilterEXT");
-}
-
-static void NoOpSeparableFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
-{
- (void) target;
- (void) internalformat;
- (void) width;
- (void) height;
- (void) format;
- (void) type;
- (void) row;
- (void) column;
- warning("glSeparableFilter2DEXT");
-}
-
-
-/* 14. GL_SGI_color_table */
-
-static void NoOpColorTableSGI(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
-{
- (void) target;
- (void) internalformat;
- (void) width;
- (void) format;
- (void) type;
- (void) table;
- warning("glColorTableSGI");
-}
-
-static void NoOpColorTableParameterfvSGI(GLenum target, GLenum pname, const GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glColorTableParameterfvSGI");
-}
-
-static void NoOpColorTableParameterivSGI(GLenum target, GLenum pname, const GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glColorTableParameterivSGI");
-}
-
-static void NoOpCopyColorTableSGI(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
-{
- (void) target;
- (void) internalformat;
- (void) x;
- (void) y;
- (void) width;
- warning("glCopyColorTableSGI");
-}
-
-static void NoOpGetColorTableSGI(GLenum target, GLenum format, GLenum type, GLvoid *table)
-{
- (void) target;
- (void) format;
- (void) type;
- (void) table;
- warning("glGetColorTableSGI");
-}
-
-static void NoOpGetColorTableParameterfvSGI(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetColorTableParameterfvSGI");
-}
-
-static void NoOpGetColorTableParameterivSGI(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetColorTableParameterivSGI");
-}
-
-
-/* 15. GL_SGIS_pixel_texture */
-static void NoOpPixelTexGenParameterfSGIS(GLenum pname, GLfloat value)
-{
- (void) pname;
- (void) value;
- warning("glPixelTexGenParameterfSGIS");
-}
-
-static void NoOpGetPixelTexGenParameterfvSGIS(GLenum pname, GLfloat *value)
-{
- (void) pname;
- (void) value;
- warning("glGetPixelTexGenParameterfvSGIS");
-}
-
-static void NoOpPixelTexGenParameteriSGIS(GLenum pname, GLint value)
-{
- (void) pname;
- (void) value;
- warning("glPixelTexGenParameteriSGIS");
-}
-
-static void NoOpGetPixelTexGenParameterivSGIS(GLenum pname, GLint *value)
-{
- (void) pname;
- (void) value;
- warning("glGetPixelTexGenParameterivSGIS");
-}
-
-
-
-/* 16. GL_SGIS_texture4D */
-
-static void NoOpTexImage4DSGIS(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels)
-{
- (void) target;
- (void) level;
- (void) internalformat;
- (void) width;
- (void) height;
- (void) depth;
- (void) extent;
- (void) border;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexImage4DSGIS");
-}
-
-static void NoOpTexSubImage4DSGIS(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void *pixels)
-{
- (void) target;
- (void) level;
- (void) xoffset;
- (void) yoffset;
- (void) zoffset;
- (void) woffset;
- (void) width;
- (void) height;
- (void) depth;
- (void) extent;
- (void) format;
- (void) type;
- (void) pixels;
- warning("glTexSubImage4DSGIS");
-}
-
-
-/* 20. GL_EXT_texture_object */
-
-static GLboolean NoOpAreTexturesResidentEXT(GLsizei n, const GLuint *textures, GLboolean *residences)
-{
- (void) n;
- (void) textures;
- (void) residences;
- warning("glAreTexturesResidentEXT");
- return GL_FALSE;
-}
-
-static void NoOpBindTextureEXT(GLenum target, GLuint texture)
-{
- (void) target;
- (void) texture;
- warning("glBindTextureEXT");
-}
-
-static void NoOpDeleteTexturesEXT(GLsizei n, const GLuint *textures)
-{
- (void) n;
- (void) textures;
- warning("glDeleteTexturesEXT");
-}
-
-static void NoOpGenTexturesEXT(GLsizei n, GLuint *textures)
-{
- (void) n;
- (void) textures;
- warning("glGenTexturesEXT");
-}
-
-static GLboolean NoOpIsTextureEXT(GLuint texture)
-{
- (void) texture;
- warning("glIsTextureEXT");
- return GL_FALSE;
-}
-
-static void NoOpPrioritizeTexturesEXT(GLsizei n, const GLuint *textures, const GLclampf *priorities)
-{
- (void) n;
- (void) textures;
- (void) priorities;
- warning("glPrioritizeTexturesEXT");
-}
-
-
-
-/* 21. GL_SGIS_detail_texture */
-
-static void NoOpDetailTexFuncSGIS(GLenum target, GLsizei n, const GLfloat *value)
-{
- (void) target;
- (void) n;
- (void) value;
- warning("glDetailTexFuncSGIS");
-}
-
-static void NoOpGetDetailTexFuncSGIS(GLenum target, GLfloat *value)
-{
- (void) target;
- (void) value;
- warning("glGetDetailTexFuncSGIS");
-}
-
-
-
-/* 22. GL_SGIS_sharpen_texture */
-
-static void NoOpGetSharpenTexFuncSGIS(GLenum target, GLfloat *value)
-{
- (void) target;
- (void) value;
- warning("glGetSharpenTexFuncSGIS");
-}
-
-static void NoOpSharpenTexFuncSGIS(GLenum target, GLsizei n, const GLfloat *value)
-{
- (void) target;
- (void) n;
- (void) value;
- warning("glSharpenTexFuncSGIS");
-}
-
-
-
-/* 25. GL_SGIS_multisample */
-
-static void NoOpSampleMaskSGIS(GLclampf range, GLboolean invert)
-{
- (void) range;
- (void) invert;
- warning("glSampleMaskSGIS");
-}
-
-static void NoOpSamplePatternSGIS(GLenum pattern)
-{
- (void) pattern;
- warning("glSamplePatternSGIS");
-}
-
-
-
-/* 30. GL_EXT_vertex_array */
-
-static void NoOpArrayElementEXT(GLint i)
-{
- (void) i;
- warning("glArrayElementEXT");
-}
-
-static void NoOpColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer)
-{
- (void) size;
- (void) type;
- (void) stride;
- (void) count;
- (void) pointer;
- warning("glColorPointerEXT");
-}
-
-static void NoOpDrawArraysEXT(GLenum mode, GLint first, GLsizei count)
-{
- (void) mode;
- (void) first;
- (void) count;
- warning("glDrawArraysEXT");
-}
-
-static void NoOpEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *pointer)
-{
- (void) stride;
- (void) count;
- (void) pointer;
- warning("glEdgeFlagPointerEXT");
-}
-
-static void NoOpGetPointervEXT(GLenum pname, void **params)
-{
- (void) pname;
- (void) params;
- warning("glGetPointervEXT");
-}
-
-static void NoOpIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const void *pointer)
-{
- (void) type;
- (void) stride;
- (void) count;
- (void) pointer;
- warning("glIndexPointerEXT");
-}
-
-static void NoOpNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const void *pointer)
-{
- (void) type;
- (void) stride;
- (void) count;
- (void) pointer;
- warning("glNormalPointerEXT");
-}
-
-static void NoOpTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer)
-{
- (void) size;
- (void) type;
- (void) stride;
- (void) count;
- (void) pointer;
- warning("glTexCoordPointerEXT");
-}
-
-static void NoOpVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer)
-{
- (void) size;
- (void) type;
- (void) stride;
- (void) count;
- (void) pointer;
- warning("glVertexPointerEXT");
-}
-
-
-/* 52. GL_SGIX_sprite */
-static void NoOpSpriteParameterfSGIX(GLenum target, GLfloat value)
-{
- warning("glSpriteParameterfSGIX");
-}
-
-static void NoOpSpriteParameterfvSGIX(GLenum target, const GLfloat *value)
-{
- warning("glSpriteParameterfvSGIX");
-}
-
-static void NoOpSpriteParameteriSGIX(GLenum target, GLint value)
-{
- warning("glSpriteParameteriSGIX");
-}
-
-static void NoOpSpriteParameterivSGIX(GLenum target, const GLint *value)
-{
- warning("glSpriteParameterivSGIX");
-}
-
-
-
-/* 54. GL_EXT_point_parameters */
-
-static void NoOpPointParameterfEXT(GLenum target, GLfloat param)
-{
- (void) target;
- (void) param;
- warning("glPointParameterfEXT");
-}
-
-static void NoOpPointParameterfvEXT(GLenum target, const GLfloat *param)
-{
- (void) target;
- (void) param;
- warning("glPointParameterfvEXT");
-}
-
-
-
-/* 55. GL_SGIX_instruments */
-
-static GLint NoOpGetInstrumentsSGIX(void)
-{
- warning("glGetInstrumentsSGIX");
- return 0;
-}
-
-static void NoOpInstrumentsBufferSGIX(GLsizei n, GLint *values)
-{
- (void) n;
- (void) values;
- warning("glInstrumentsBufferSGIX");
-}
-
-static GLint NoOpPollInstrumentsSGIX(GLint *values)
-{
- (void) values;
- warning("glPollInstrumentsSGIX");
- return 0;
-}
-
-static void NoOpReadInstrumentsSGIX(GLint value)
-{
- (void) value;
- warning("glReadInstrumentsSGIX");
-}
-
-static void NoOpStartInstrumentsSGIX(void)
-{
- warning("glStartInstrumentsSGIX");
-}
-
-static void NoOpStopInstrumentsSGIX(GLint value)
-{
- (void) value;
- warning("glStopInstrumentsSGIX");
-}
-
-
-
-/* 57. GL_SGIX_framezoom */
-static void NoOpFrameZoomSGIX(GLint factor)
-{
- (void) factor;
- warning("glFrameZoomSGIX");
-}
-
-
-
-/* 60. GL_SGIX_reference_plane */
-static void NoOpReferencePlaneSGIX(const GLdouble *equation)
-{
- (void) equation;
- warning("glReferencePlaneSGIX");
-}
-
-
-
-/* 61. GL_SGIX_flush_raster */
-static void NoOpFlushRasterSGIX(void)
-{
- warning("glFlushRasterSGIX");
-}
-
-
-/* 66. GL_HP_image_transform */
-static void NoOpGetImageTransformParameterfvHP(GLenum target, GLenum pname, GLfloat *param)
-{
- warning("glGetImageTransformParameterfvHP");
-}
-
-static void NoOpGetImageTransformParameterivHP(GLenum target, GLenum pname, GLint *param)
-{
- warning("glGetImageTransformParameterivHP");
-}
-
-static void NoOpImageTransformParameterfHP(GLenum target, GLenum pname, GLfloat param)
-{
- warning("glImageTransformParameterfHP");
-}
-
-static void NoOpImageTransformParameterfvHP(GLenum target, GLenum pname, const GLfloat *params)
-{
- warning("glImageTransformParameterfvHP");
-}
-
-static void NoOpImageTransformParameteriHP(GLenum target, GLenum pname, GLint param)
-{
- warning("glImageTransformParameteriHP");
-}
-
-static void NoOpImageTransformParameterivHP(GLenum target, GLenum pname, const GLint *params)
-{
- warning("glImageTransformParameterivHP");
-}
-
-
-
-/* 74. GL_EXT_color_subtable */
-
-static void NoOpColorSubTableEXT(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data)
-{
- (void) target;
- (void) start;
- (void) count;
- (void) format;
- (void) type;
- (void) data;
- warning("glColorSubTableEXT");
-}
-
-static void NoOpCopyColorSubTableEXT(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
-{
- (void) target;
- (void) start;
- (void) x;
- (void) y;
- (void) width;
- warning("glCopyColorSubTableEXT");
-}
-
-
-
-/* 77. GL_PGI_misc_hints */
-static void NoOpHintPGI(GLenum target, GLint mode)
-{
- (void) target;
- (void) mode;
- warning("glHintPGI");
-}
-
-
-
-/* 78. GL_EXT_paletted_texture */
-
-static void NoOpColorTableEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
-{
- (void) target;
- (void) internalformat;
- (void) width;
- (void) format;
- (void) type;
- (void) table;
- warning("glColorTableEXT");
-}
-
-static void NoOpGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid *table)
-{
- (void) target;
- (void) format;
- (void) type;
- (void) table;
- warning("glGetColorTableEXT");
-}
-
-static void NoOpGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetColorTableParameterfvEXT");
-}
-
-static void NoOpGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint *params)
-{
- (void) target;
- (void) pname;
- (void) params;
- warning("glGetColorTableParameterivEXT");
-}
-
-
-
-
-/* 80. GL_SGIX_list_priority */
-static void NoOpGetListParameterfvSGIX(GLuint list, GLenum pname, GLfloat *param)
-{
- warning("glGetListParameterfvSGIX");
-}
-
-static void NoOpGetListParameterivSGIX(GLuint list, GLenum pname, GLint *param)
-{
- warning("glGetListParameterivSGIX");
-}
-
-static void NoOpListParameterfSGIX(GLuint list, GLenum pname, GLfloat param)
-{
- warning("glListParameterfSGIX");
-}
-
-static void NoOpListParameterfvSGIX(GLuint list, GLenum pname, const GLfloat *params)
-{
- warning("glListParameterfvSGIX");
-}
-
-static void NoOpListParameteriSGIX(GLuint list, GLenum pname, GLint param)
-{
- warning("glListParameteriSGIX");
-}
-
-static void NoOpListParameterivSGIX(GLuint list, GLenum pname, const GLint *params)
-{
- warning("glListParameterivSGIX");
-}
-
-
-/* 94. GL_EXT_index_material */
-static void NoOpIndexMaterialEXT(GLenum face, GLenum mode)
-{
- (void) face;
- (void) mode;
- warning("glIndexMaterialEXT");
-}
-
-
-/* 95. GL_EXT_index_func */
-static void NoOpIndexFuncEXT(GLenum pname, GLfloat value)
-{
- (void) pname;
- (void) value;
- warning("glIndexFuncEXT");
-}
-
-
-/* 97. GL_EXT_compiled_vertex_array */
-
-static void NoOpLockArraysEXT(GLint first, GLsizei count)
-{
- (void) first;
- (void) count;
- warning("glLockArraysEXT");
-}
-
-static void NoOpUnlockArraysEXT(void)
-{
- warning("glUnlockArraysEXT");
-}
-
-
-
-/* 98. GL_EXT_cull_vertex */
-
-static void NoOpCullParameterfvEXT(GLenum pname, const GLfloat *values)
-{
- (void) pname;
- (void) values;
- warning("glCullParameterfvEXT");
-}
-
-static void NoOpCullParameterdvEXT(GLenum pname, const GLdouble *values)
-{
- (void) pname;
- (void) values;
- warning("glCullParameterdvEXT");
-}
-
-
-
-/* 37. GL_EXT_blend_minmax */
-
-static void NoOpBlendEquationEXT(GLenum mode)
-{
- (void) mode;
- warning("glBlendEuqationEXT");
-}
-
-
-
-/* GL_EXT/INGR_blend_func_separate */
-static void NoOpBlendFuncSeparateINGR(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
-{
- (void) sfactorRGB;
- (void) dfactorRGB;
- (void) sfactorAlpha;
- (void) dfactorAlpha;
- warning("glBlendFuncSeparateINGR");
-}
-
-
-
-/* GL_MESA_window_pos */
-static void NoOpWindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
-{
- (void) x;
- (void) y;
- (void) z;
- (void) w;
- warning("glWindowPos[234][ifdv][v]MESA");
-}
-
-
-
-/* GL_MESA_resize_buffers */
-static void NoOpResizeBuffersMESA(void)
-{
- warning("glResizeBuffersMESA");
-}
-
-
-
-/* GL_ARB_transpose_matrix */
-
-static void NoOpLoadTransposeMatrixdARB(const GLdouble mat[16])
-{
- (void) mat;
- warning("glLoadTransposeMatrixdARB");
-}
-
-static void NoOpLoadTransposeMatrixfARB(const GLfloat mat[16])
-{
- (void) mat;
- warning("glLoadTransposeMatrixfARB");
-}
+#define DISPATCH(func, args, msg) \
+ if (warn()) { \
+ fprintf(stderr, "GL User Error: calling "); \
+ fprintf msg; \
+ fprintf(stderr, " without a current context\n"); \
+ }
-static void NoOpMultTransposeMatrixdARB(const GLdouble mat[16])
-{
- (void) mat;
- warning("glMultTransposeMatrixdARB");
-}
+#define RETURN_DISPATCH(func, args, msg) \
+ if (warn()) { \
+ fprintf(stderr, "GL User Error: calling "); \
+ fprintf msg; \
+ fprintf(stderr, " without a current context\n"); \
+ } \
+ return 0
-static void NoOpMultTransposeMatrixfARB(const GLfloat mat[16])
-{
- (void) mat;
- warning("glMultTransposeMatrixfARB");
-}
+#include "glapitemp.h"
@@ -4854,7 +690,30 @@ struct _glapi_table __glapi_noop_table = {
NoOpBlendFuncSeparateINGR,
/* GL_MESA_window_pos */
+ NoOpWindowPos2dMESA,
+ NoOpWindowPos2dvMESA,
+ NoOpWindowPos2fMESA,
+ NoOpWindowPos2fvMESA,
+ NoOpWindowPos2iMESA,
+ NoOpWindowPos2ivMESA,
+ NoOpWindowPos2sMESA,
+ NoOpWindowPos2svMESA,
+ NoOpWindowPos3dMESA,
+ NoOpWindowPos3dvMESA,
+ NoOpWindowPos3fMESA,
+ NoOpWindowPos3fvMESA,
+ NoOpWindowPos3iMESA,
+ NoOpWindowPos3ivMESA,
+ NoOpWindowPos3sMESA,
+ NoOpWindowPos3svMESA,
+ NoOpWindowPos4dMESA,
+ NoOpWindowPos4dvMESA,
NoOpWindowPos4fMESA,
+ NoOpWindowPos4fvMESA,
+ NoOpWindowPos4iMESA,
+ NoOpWindowPos4ivMESA,
+ NoOpWindowPos4sMESA,
+ NoOpWindowPos4svMESA,
/* GL_MESA_resize_buffers */
NoOpResizeBuffersMESA,
diff --git a/xc/extras/Mesa/src/glapinoop.h b/xc/extras/Mesa/src/glapinoop.h
index 87ae28279..d2cf212b4 100644
--- a/xc/extras/Mesa/src/glapinoop.h
+++ b/xc/extras/Mesa/src/glapinoop.h
@@ -1,4 +1,4 @@
-/* $Id: glapinoop.h,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: glapinoop.h,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/glapioffsets.h b/xc/extras/Mesa/src/glapioffsets.h
index 7e25737b8..67cdc6e1c 100644
--- a/xc/extras/Mesa/src/glapioffsets.h
+++ b/xc/extras/Mesa/src/glapioffsets.h
@@ -1,4 +1,4 @@
-/* $Id: glapioffsets.h,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: glapioffsets.h,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -784,16 +784,39 @@
#define _gloffset_BlendFuncSeparateINGR (_EXTBASE + 107)
/* GL_MESA_window_pos */
-#define _gloffset_WindowPos4fMESA (_EXTBASE + 108)
+#define _gloffset_WindowPos2dMESA (_EXTBASE + 108)
+#define _gloffset_WindowPos2dvMESA (_EXTBASE + 109)
+#define _gloffset_WindowPos2fMESA (_EXTBASE + 110)
+#define _gloffset_WindowPos2fvMESA (_EXTBASE + 111)
+#define _gloffset_WindowPos2iMESA (_EXTBASE + 112)
+#define _gloffset_WindowPos2ivMESA (_EXTBASE + 113)
+#define _gloffset_WindowPos2sMESA (_EXTBASE + 114)
+#define _gloffset_WindowPos2svMESA (_EXTBASE + 115)
+#define _gloffset_WindowPos3dMESA (_EXTBASE + 116)
+#define _gloffset_WindowPos3dvMESA (_EXTBASE + 117)
+#define _gloffset_WindowPos3fMESA (_EXTBASE + 118)
+#define _gloffset_WindowPos3fvMESA (_EXTBASE + 119)
+#define _gloffset_WindowPos3iMESA (_EXTBASE + 120)
+#define _gloffset_WindowPos3ivMESA (_EXTBASE + 121)
+#define _gloffset_WindowPos3sMESA (_EXTBASE + 122)
+#define _gloffset_WindowPos3svMESA (_EXTBASE + 123)
+#define _gloffset_WindowPos4dMESA (_EXTBASE + 124)
+#define _gloffset_WindowPos4dvMESA (_EXTBASE + 125)
+#define _gloffset_WindowPos4fMESA (_EXTBASE + 126)
+#define _gloffset_WindowPos4fvMESA (_EXTBASE + 127)
+#define _gloffset_WindowPos4iMESA (_EXTBASE + 128)
+#define _gloffset_WindowPos4ivMESA (_EXTBASE + 129)
+#define _gloffset_WindowPos4sMESA (_EXTBASE + 130)
+#define _gloffset_WindowPos4svMESA (_EXTBASE + 131)
/* GL_MESA_resize_buffers */
-#define _gloffset_ResizeBuffersMESA (_EXTBASE + 109)
+#define _gloffset_ResizeBuffersMESA (_EXTBASE + 132)
/* GL_ARB_transpose_matrix */
-#define _gloffset_LoadTransposeMatrixdARB (_EXTBASE + 110)
-#define _gloffset_LoadTransposeMatrixfARB (_EXTBASE + 111)
-#define _gloffset_MultTransposeMatrixdARB (_EXTBASE + 112)
-#define _gloffset_MultTransposeMatrixfARB (_EXTBASE + 113)
+#define _gloffset_LoadTransposeMatrixdARB (_EXTBASE + 133)
+#define _gloffset_LoadTransposeMatrixfARB (_EXTBASE + 134)
+#define _gloffset_MultTransposeMatrixdARB (_EXTBASE + 135)
+#define _gloffset_MultTransposeMatrixfARB (_EXTBASE + 136)
diff --git a/xc/extras/Mesa/src/glapitable.h b/xc/extras/Mesa/src/glapitable.h
index 63c34eb1a..12ae34f6d 100644
--- a/xc/extras/Mesa/src/glapitable.h
+++ b/xc/extras/Mesa/src/glapitable.h
@@ -1,4 +1,4 @@
-/* $Id: glapitable.h,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: glapitable.h,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -44,9 +44,6 @@
#include "GL/gl.h"
-#define _GLAPI_EXTRA_SLOTS 1000
-
-
/*
* This struct contains pointers for all the GL API entrypoints
* plus some reserved slots for dynamic extensions.
@@ -511,7 +508,7 @@ struct _glapi_table
/* 6. GL_EXT_texture3D */
void (*CopyTexSubImage3DEXT)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
- void (*TexImage3DEXT)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+ void (*TexImage3DEXT)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
void (*TexSubImage3DEXT)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
/* 7. GL_SGI_texture_filter4 */
@@ -594,7 +591,7 @@ struct _glapi_table
/* 21. GL_SGIS_detail_texture */
void (*DetailTexFuncSGIS)(GLenum, GLsizei, const GLfloat *);
- void (*GetDetailTexFuncSGIS)(GLenum target, GLfloat *);
+ void (*GetDetailTexFuncSGIS)(GLenum, GLfloat *);
/* 22. GL_SGIS_sharpen_texture */
void (*GetSharpenTexFuncSGIS)(GLenum, GLfloat *);
@@ -714,6 +711,10 @@ struct _glapi_table
/* 65. GL_SGIX_fog_offset - no functions */
/* 66. GL_HP_image_transform */
+#ifdef VMS
+#define glGetImageTransformParameterfvHP glGetImageTransformParameterfvH
+#define glGetImageTransformParameterivHP glGetImageTransformParameterivH
+#endif
void (*GetImageTransformParameterfvHP)(GLenum, GLenum, GLfloat *);
void (*GetImageTransformParameterivHP)(GLenum, GLenum, GLint *);
void (*ImageTransformParameterfHP)(GLenum, GLenum, const GLfloat);
@@ -813,7 +814,30 @@ struct _glapi_table
void (*BlendFuncSeparateINGR)(GLenum, GLenum, GLenum, GLenum);
/* GL_MESA_window_pos */
- void (*WindowPos4fMESA)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+ void (*WindowPos2dMESA)(GLdouble, GLdouble);
+ void (*WindowPos2dvMESA)(const GLdouble *);
+ void (*WindowPos2fMESA)(GLfloat, GLfloat);
+ void (*WindowPos2fvMESA)(const GLfloat *);
+ void (*WindowPos2iMESA)(GLint, GLint);
+ void (*WindowPos2ivMESA)(const GLint *);
+ void (*WindowPos2sMESA)(GLshort, GLshort);
+ void (*WindowPos2svMESA)(const GLshort *);
+ void (*WindowPos3dMESA)(GLdouble, GLdouble, GLdouble);
+ void (*WindowPos3dvMESA)(const GLdouble *);
+ void (*WindowPos3fMESA)(GLfloat, GLfloat, GLfloat);
+ void (*WindowPos3fvMESA)(const GLfloat *);
+ void (*WindowPos3iMESA)(GLint, GLint, GLint);
+ void (*WindowPos3ivMESA)(const GLint *);
+ void (*WindowPos3sMESA)(GLshort, GLshort, GLshort);
+ void (*WindowPos3svMESA)(const GLshort *);
+ void (*WindowPos4dMESA)(GLdouble, GLdouble, GLdouble, GLdouble);
+ void (*WindowPos4dvMESA)(const GLdouble *);
+ void (*WindowPos4fMESA)(GLfloat, GLfloat, GLfloat, GLfloat);
+ void (*WindowPos4fvMESA)(const GLfloat *);
+ void (*WindowPos4iMESA)(GLint, GLint, GLint, GLint);
+ void (*WindowPos4ivMESA)(const GLint *);
+ void (*WindowPos4sMESA)(GLshort, GLshort, GLshort, GLshort);
+ void (*WindowPos4svMESA)(const GLshort *);
/* GL_MESA_resize_buffers */
void (*ResizeBuffersMESA)(void);
@@ -824,9 +848,6 @@ struct _glapi_table
void (*MultTransposeMatrixdARB)(const GLdouble m[16]);
void (*MultTransposeMatrixfARB)(const GLfloat m[16]);
-#if 0
- void *ExtensionFuncs[_GLAPI_EXTRA_SLOTS];
-#endif
};
diff --git a/xc/extras/Mesa/src/glapitemp.h b/xc/extras/Mesa/src/glapitemp.h
index b0d5d74f0..fab94e312 100644
--- a/xc/extras/Mesa/src/glapitemp.h
+++ b/xc/extras/Mesa/src/glapitemp.h
@@ -1,4 +1,4 @@
-/* $Id: glapitemp.h,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: glapitemp.h,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -80,7 +80,13 @@
/*
* XXX
* Most functions need the msg (printf-message) parameter to be finished.
- * I.e. replace ";\n" with the real info.
+ * I.e. replace ";" with the real info.
+ */
+
+/*
+ * XXX
+ * Someday this code should be automatically generated from a spec file
+ * like that used in the SGI OpenGL SI.
*/
@@ -89,1537 +95,1537 @@
KEYWORD1 void KEYWORD2 NAME(Accum)(GLenum op, GLfloat value)
{
- DISPATCH(Accum, (op, value), ("glAccum(0x%x, %g);\n", op, value));
+ DISPATCH(Accum, (op, value), (F, "glAccum(0x%x, %g);", op, value));
}
KEYWORD1 void KEYWORD2 NAME(AlphaFunc)(GLenum func, GLclampf ref)
{
- DISPATCH(AlphaFunc, (func, ref), ("glAlphaFunc(0x%x, %g);\n", func, ref));
+ DISPATCH(AlphaFunc, (func, ref), (F, "glAlphaFunc(0x%x, %g);", func, ref));
}
KEYWORD1 void KEYWORD2 NAME(Begin)(GLenum mode)
{
- DISPATCH(Begin, (mode), ("glBegin(0x%x);\n", mode));
+ DISPATCH(Begin, (mode), (F, "glBegin(0x%x);", mode));
}
KEYWORD1 void KEYWORD2 NAME(Bitmap)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)
{
- DISPATCH(Bitmap, (width, height, xorig, yorig, xmove, ymove, bitmap), (";\n"));
+ DISPATCH(Bitmap, (width, height, xorig, yorig, xmove, ymove, bitmap), (F, "glBitmap(%d %d %g %g %g %g %p;", width, height, xorig, yorig, xmove, ymove, bitmap));
}
KEYWORD1 void KEYWORD2 NAME(BlendFunc)(GLenum sfactor, GLenum dfactor)
{
- DISPATCH(BlendFunc, (sfactor, dfactor), (";\n"));
+ DISPATCH(BlendFunc, (sfactor, dfactor), (F, "glBlendFunc(0x%x, 0x%x);", sfactor, dfactor));
}
KEYWORD1 void KEYWORD2 NAME(CallList)(GLuint list)
{
- DISPATCH(CallList, (list), ("glCallList(%u);\n", list));
+ DISPATCH(CallList, (list), (F, "glCallList(%u);", list));
}
KEYWORD1 void KEYWORD2 NAME(CallLists)(GLsizei n, GLenum type, const GLvoid *lists)
{
- DISPATCH(CallLists, (n, type, lists), (";\n"));
+ DISPATCH(CallLists, (n, type, lists), (F, "glCallLists(%d, 0x%x, %p);", n, type, lists));
}
KEYWORD1 void KEYWORD2 NAME(Clear)(GLbitfield mask)
{
- DISPATCH(Clear, (mask), ("glClear(0x%x);\n", mask));
+ DISPATCH(Clear, (mask), (F, "glClear(0x%x);", mask));
}
KEYWORD1 void KEYWORD2 NAME(ClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
- DISPATCH(ClearAccum, (red, green, blue, alpha), (";\n"));
+ DISPATCH(ClearAccum, (red, green, blue, alpha), (F, "glClearAccum(%g, %g, %g, %g);", red, green, blue, alpha));
}
KEYWORD1 void KEYWORD2 NAME(ClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
{
- DISPATCH(ClearColor, (red, green, blue, alpha), (";\n"));
+ DISPATCH(ClearColor, (red, green, blue, alpha), (F, "glClearColor(%g, %g, %g, %g);", red, green, blue, alpha));
}
KEYWORD1 void KEYWORD2 NAME(ClearDepth)(GLclampd depth)
{
- DISPATCH(ClearDepth, (depth), (";\n"));
+ DISPATCH(ClearDepth, (depth), (F, "glClearDepth(%g);", depth));
}
KEYWORD1 void KEYWORD2 NAME(ClearIndex)(GLfloat c)
{
- DISPATCH(ClearIndex, (c), (";\n"));
+ DISPATCH(ClearIndex, (c), (F, "glClearIndex(%g);", c));
}
KEYWORD1 void KEYWORD2 NAME(ClearStencil)(GLint s)
{
- DISPATCH(ClearStencil, (s), (";\n"));
+ DISPATCH(ClearStencil, (s), (F, "glClearStencil(%d);", s));
}
KEYWORD1 void KEYWORD2 NAME(ClipPlane)(GLenum plane, const GLdouble *equation)
{
- DISPATCH(ClipPlane, (plane, equation), (";\n"));
+ DISPATCH(ClipPlane, (plane, equation), (F, "glClipPlane(%p);", equation));
}
KEYWORD1 void KEYWORD2 NAME(Color3b)(GLbyte red, GLbyte green, GLbyte blue)
{
- DISPATCH(Color3b, (red, green, blue), (";\n"));
+ DISPATCH(Color3b, (red, green, blue), (F, "glColor3b(%d, %d, %d);", red, green, blue));
}
KEYWORD1 void KEYWORD2 NAME(Color3d)(GLdouble red, GLdouble green, GLdouble blue)
{
- DISPATCH(Color3d, (red, green, blue), (";\n"));
+ DISPATCH(Color3d, (red, green, blue), (F, "glColor3d(%g, %g, %g);", red, green, blue));
}
KEYWORD1 void KEYWORD2 NAME(Color3f)(GLfloat red, GLfloat green, GLfloat blue)
{
- DISPATCH(Color3f, (red, green, blue), ("glColor3f(%g, %g, %g);\n", red, green, blue));
+ DISPATCH(Color3f, (red, green, blue), (F, "glColor3f(%g, %g, %g);", red, green, blue));
}
KEYWORD1 void KEYWORD2 NAME(Color3i)(GLint red, GLint green, GLint blue)
{
- DISPATCH(Color3i, (red, green, blue), (";\n"));
+ DISPATCH(Color3i, (red, green, blue), (F, "glColor3i(%d, %d, %d);", red, green, blue));
}
KEYWORD1 void KEYWORD2 NAME(Color3s)(GLshort red, GLshort green, GLshort blue)
{
- DISPATCH(Color3s, (red, green, blue), (";\n"));
+ DISPATCH(Color3s, (red, green, blue), (F, "glColor3s(%d, %d, %d);", red, green, blue));
}
KEYWORD1 void KEYWORD2 NAME(Color3ub)(GLubyte red, GLubyte green, GLubyte blue)
{
- DISPATCH(Color3ub, (red, green, blue), (";\n"));
+ DISPATCH(Color3ub, (red, green, blue), (F, "glColor3ub(%u, %u, %u);", red, green, blue));
}
KEYWORD1 void KEYWORD2 NAME(Color3ui)(GLuint red, GLuint green, GLuint blue)
{
- DISPATCH(Color3ui, (red, green, blue), (";\n"));
+ DISPATCH(Color3ui, (red, green, blue), (F, "glColor3ui(%u, %u, %u);", red, green, blue));
}
KEYWORD1 void KEYWORD2 NAME(Color3us)(GLushort red, GLushort green, GLushort blue)
{
- DISPATCH(Color3us, (red, green, blue), (";\n"));
+ DISPATCH(Color3us, (red, green, blue), (F, "glColor3us(%u, %u, %u);", red, green, blue));
}
KEYWORD1 void KEYWORD2 NAME(Color4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
{
- DISPATCH(Color4b, (red, green, blue, alpha), (";\n"));
+ DISPATCH(Color4b, (red, green, blue, alpha), (F, "glColor4b(%d, %d, %d, %d);", red, green, blue, alpha));
}
KEYWORD1 void KEYWORD2 NAME(Color4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
{
- DISPATCH(Color4d, (red, green, blue, alpha), (";\n"));
+ DISPATCH(Color4d, (red, green, blue, alpha), (F, "glColor4d(%g, %g, %g, %g);", red, green, blue, alpha));
}
KEYWORD1 void KEYWORD2 NAME(Color4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
- DISPATCH(Color4f, (red, green, blue, alpha), (";\n"));
+ DISPATCH(Color4f, (red, green, blue, alpha), (F, "glColor4b(%g, %g, %g, %g);", red, green, blue, alpha));
}
KEYWORD1 void KEYWORD2 NAME(Color4i)(GLint red, GLint green, GLint blue, GLint alpha)
{
- DISPATCH(Color4i, (red, green, blue, alpha), (";\n"));
+ DISPATCH(Color4i, (red, green, blue, alpha), (F, "glColor4i(%d, %d, %d);", red, green, blue));
}
KEYWORD1 void KEYWORD2 NAME(Color4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha)
{
- DISPATCH(Color4s, (red, green, blue, alpha), (";\n"));
+ DISPATCH(Color4s, (red, green, blue, alpha), (F, "glColor4s(%d, %d, %d, %d);", red, green, blue, alpha));
}
KEYWORD1 void KEYWORD2 NAME(Color4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
{
- DISPATCH(Color4ub, (red, green, blue, alpha), (";\n"));
+ DISPATCH(Color4ub, (red, green, blue, alpha), (F, "glColor4ub(%u, %u, %u, %u);", red, green, blue, alpha));
}
KEYWORD1 void KEYWORD2 NAME(Color4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha)
{
- DISPATCH(Color4ui, (red, green, blue, alpha), (";\n"));
+ DISPATCH(Color4ui, (red, green, blue, alpha), (F, "glColor4ui(%u, %u, %u, %u);", red, green, blue, alpha));
}
KEYWORD1 void KEYWORD2 NAME(Color4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha)
{
- DISPATCH(Color4us, (red, green, blue, alpha), (";\n"));
+ DISPATCH(Color4us, (red, green, blue, alpha), (F, "glColor4us(%u, %u, %u, %u);", red, green, blue, alpha));
}
KEYWORD1 void KEYWORD2 NAME(Color3bv)(const GLbyte *v)
{
- DISPATCH(Color3bv, (v), (";\n"));
+ DISPATCH(Color3bv, (v), (F, "glColor3bf(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color3dv)(const GLdouble *v)
{
- DISPATCH(Color3dv, (v), (";\n"));
+ DISPATCH(Color3dv, (v), (F, "glColor3dv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color3fv)(const GLfloat *v)
{
- DISPATCH(Color3fv, (v), (";\n"));
+ DISPATCH(Color3fv, (v), (F, "glColor3fv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color3iv)(const GLint *v)
{
- DISPATCH(Color3iv, (v), (";\n"));
+ DISPATCH(Color3iv, (v), (F, "glColor3iv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color3sv)(const GLshort *v)
{
- DISPATCH(Color3sv, (v), (";\n"));
+ DISPATCH(Color3sv, (v), (F, "glColor3sv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color3ubv)(const GLubyte *v)
{
- DISPATCH(Color3ubv, (v), (";\n"));
+ DISPATCH(Color3ubv, (v), (F, "glColor3ubv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color3uiv)(const GLuint *v)
{
- DISPATCH(Color3uiv, (v), (";\n"));
+ DISPATCH(Color3uiv, (v), (F, "glColor3uiv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color3usv)(const GLushort *v)
{
- DISPATCH(Color3usv, (v), (";\n"));
+ DISPATCH(Color3usv, (v), (F, "glColor3usv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color4bv)(const GLbyte *v)
{
- DISPATCH(Color4bv, (v), (";\n"));
+ DISPATCH(Color4bv, (v), (F, "glColor3bv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color4dv)(const GLdouble *v)
{
- DISPATCH(Color4dv, (v), (";\n"));
+ DISPATCH(Color4dv, (v), (F, "glColor4dv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color4fv)(const GLfloat *v)
{
- DISPATCH(Color4fv, (v), (";\n"));
+ DISPATCH(Color4fv, (v), (F, "glColor4fv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color4iv)(const GLint *v)
{
- DISPATCH(Color4iv, (v), (";\n"));
+ DISPATCH(Color4iv, (v), (F, "glColor4iv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color4sv)(const GLshort *v)
{
- DISPATCH(Color4sv, (v), (";\n"));
+ DISPATCH(Color4sv, (v), (F, "glColor4sv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color4ubv)(const GLubyte *v)
{
- DISPATCH(Color4ubv, (v), (";\n"));
+ DISPATCH(Color4ubv, (v), (F, "glColor4ubv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color4uiv)(const GLuint *v)
{
- DISPATCH(Color4uiv, (v), (";\n"));
+ DISPATCH(Color4uiv, (v), (F, "glColor4uiv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Color4usv)(const GLushort *v)
{
- DISPATCH(Color4usv, (v), (";\n"));
+ DISPATCH(Color4usv, (v), (F, "glColor4usv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(ColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
{
- DISPATCH(ColorMask, (red, green, blue, alpha), (";\n"));
+ DISPATCH(ColorMask, (red, green, blue, alpha), (F, "glColorMask(%d, %d, %d, %d);", red, green, blue, alpha));
}
KEYWORD1 void KEYWORD2 NAME(ColorMaterial)(GLenum face, GLenum mode)
{
- DISPATCH(ColorMaterial, (face, mode), (";\n"));
+ DISPATCH(ColorMaterial, (face, mode), (F, "glColorMaterial(0x%x, 0x%x);", face, mode));
}
KEYWORD1 void KEYWORD2 NAME(CopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)
{
- DISPATCH(CopyPixels, (x, y, width, height, type), (";\n"));
+ DISPATCH(CopyPixels, (x, y, width, height, type), (F, "glCopyPixels(%d, %d, %d, %d, 0x%x;", x, y, width, height, type));
}
KEYWORD1 void KEYWORD2 NAME(CullFace)(GLenum mode)
{
- DISPATCH(CullFace, (mode), (";\n"));
+ DISPATCH(CullFace, (mode), (F, "glCullFace(0x%x);", mode));
}
KEYWORD1 void KEYWORD2 NAME(DepthFunc)(GLenum func)
{
- DISPATCH(DepthFunc, (func), (";\n"));
+ DISPATCH(DepthFunc, (func), (F, "glDepthFunc(0x%x);", func));
}
KEYWORD1 void KEYWORD2 NAME(DepthMask)(GLboolean flag)
{
- DISPATCH(DepthMask, (flag), (";\n"));
+ DISPATCH(DepthMask, (flag), (F, "glDepthMask(%d);", flag));
}
KEYWORD1 void KEYWORD2 NAME(DepthRange)(GLclampd nearVal, GLclampd farVal)
{
- DISPATCH(DepthRange, (nearVal, farVal), (";\n"));
+ DISPATCH(DepthRange, (nearVal, farVal), (F, "glDepthRange(%g, %g;", nearVal, farVal));
}
KEYWORD1 void KEYWORD2 NAME(DeleteLists)(GLuint list, GLsizei range)
{
- DISPATCH(DeleteLists, (list, range), (";\n"));
+ DISPATCH(DeleteLists, (list, range), (F, "glDeleteLists(%u, %d);", list, range));
}
KEYWORD1 void KEYWORD2 NAME(Disable)(GLenum cap)
{
- DISPATCH(Disable, (cap), ("glDisable(0x%x);\n", cap));
+ DISPATCH(Disable, (cap), (F, "glDisable(0x%x);", cap));
}
KEYWORD1 void KEYWORD2 NAME(DrawBuffer)(GLenum mode)
{
- DISPATCH(DrawBuffer, (mode), (";\n"));
+ DISPATCH(DrawBuffer, (mode), (F, "glDrawBuffer(0x%x);", mode));
}
KEYWORD1 void KEYWORD2 NAME(DrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
{
- DISPATCH(DrawElements, (mode, count, type, indices), (";\n"));
+ DISPATCH(DrawElements, (mode, count, type, indices), (F, "glDrawElements(0x%x, %d, 0x%x, %p;", mode, count, type, indices));
}
KEYWORD1 void KEYWORD2 NAME(DrawPixels)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(DrawPixels, (width, height, format, type, pixels), (";\n"));
+ DISPATCH(DrawPixels, (width, height, format, type, pixels), (F, "glDrawPixels(%d, %d, 0x%x, 0x%x, %p);", width, height, format, type, pixels));
}
KEYWORD1 void KEYWORD2 NAME(Enable)(GLenum cap)
{
- DISPATCH(Enable, (cap), ("glEnable(0x%x);\n", cap));
+ DISPATCH(Enable, (cap), (F, "glEnable(0x%x);", cap));
}
KEYWORD1 void KEYWORD2 NAME(End)(void)
{
- DISPATCH(End, (), ("glEnd();\n"));
+ DISPATCH(End, (), (F, "glEnd();"));
}
KEYWORD1 void KEYWORD2 NAME(EndList)(void)
{
- DISPATCH(EndList, (), (";\n"));
+ DISPATCH(EndList, (), (F, "glEndList();"));
}
KEYWORD1 void KEYWORD2 NAME(EvalCoord1d)(GLdouble u)
{
- DISPATCH(EvalCoord1d, (u), (";\n"));
+ DISPATCH(EvalCoord1d, (u), (F, "glEvalCoord1d(%g);", u));
}
KEYWORD1 void KEYWORD2 NAME(EvalCoord1f)(GLfloat u)
{
- DISPATCH(EvalCoord1f, (u), (";\n"));
+ DISPATCH(EvalCoord1f, (u), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EvalCoord1dv)(const GLdouble *u)
{
- DISPATCH(EvalCoord1dv, (u), (";\n"));
+ DISPATCH(EvalCoord1dv, (u), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EvalCoord1fv)(const GLfloat *u)
{
- DISPATCH(EvalCoord1fv, (u), (";\n"));
+ DISPATCH(EvalCoord1fv, (u), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EvalCoord2d)(GLdouble u, GLdouble v)
{
- DISPATCH(EvalCoord2d, (u, v), (";\n"));
+ DISPATCH(EvalCoord2d, (u, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EvalCoord2f)(GLfloat u, GLfloat v)
{
- DISPATCH(EvalCoord2f, (u, v), (";\n"));
+ DISPATCH(EvalCoord2f, (u, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EvalCoord2dv)(const GLdouble *u)
{
- DISPATCH(EvalCoord2dv, (u), (";\n"));
+ DISPATCH(EvalCoord2dv, (u), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EvalCoord2fv)(const GLfloat *u)
{
- DISPATCH(EvalCoord2fv, (u), (";\n"));
+ DISPATCH(EvalCoord2fv, (u), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EvalPoint1)(GLint i)
{
- DISPATCH(EvalPoint1, (i), (";\n"));
+ DISPATCH(EvalPoint1, (i), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EvalPoint2)(GLint i, GLint j)
{
- DISPATCH(EvalPoint2, (i, j), (";\n"));
+ DISPATCH(EvalPoint2, (i, j), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EvalMesh1)(GLenum mode, GLint i1, GLint i2)
{
- DISPATCH(EvalMesh1, (mode, i1, i2), (";\n"));
+ DISPATCH(EvalMesh1, (mode, i1, i2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EdgeFlag)(GLboolean flag)
{
- DISPATCH(EdgeFlag, (flag), (";\n"));
+ DISPATCH(EdgeFlag, (flag), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EdgeFlagv)(const GLboolean *flag)
{
- DISPATCH(EdgeFlagv, (flag), (";\n"));
+ DISPATCH(EdgeFlagv, (flag), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
{
- DISPATCH(EvalMesh2, (mode, i1, i2, j1, j2), (";\n"));
+ DISPATCH(EvalMesh2, (mode, i1, i2, j1, j2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(FeedbackBuffer)(GLsizei size, GLenum type, GLfloat *buffer)
{
- DISPATCH(FeedbackBuffer, (size, type, buffer), (";\n"));
+ DISPATCH(FeedbackBuffer, (size, type, buffer), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Finish)(void)
{
- DISPATCH(Finish, (), (";\n"));
+ DISPATCH(Finish, (), (F, "glFinish();"));
}
KEYWORD1 void KEYWORD2 NAME(Flush)(void)
{
- DISPATCH(Flush, (), (";\n"));
+ DISPATCH(Flush, (), (F, "glFlush();"));
}
KEYWORD1 void KEYWORD2 NAME(Fogf)(GLenum pname, GLfloat param)
{
- DISPATCH(Fogf, (pname, param), (";\n"));
+ DISPATCH(Fogf, (pname, param), (F, "glFogf(0x%x, %g);", pname, param));
}
KEYWORD1 void KEYWORD2 NAME(Fogi)(GLenum pname, GLint param)
{
- DISPATCH(Fogi, (pname, param), (";\n"));
+ DISPATCH(Fogi, (pname, param), (F, "glFogi(0x%x, %d);", pname, param));
}
KEYWORD1 void KEYWORD2 NAME(Fogfv)(GLenum pname, const GLfloat *params)
{
- DISPATCH(Fogfv, (pname, params), (";\n"));
+ DISPATCH(Fogfv, (pname, params), (F, "glFogfv(0x%x, %p);", pname, params));
}
KEYWORD1 void KEYWORD2 NAME(Fogiv)(GLenum pname, const GLint *params)
{
- DISPATCH(Fogiv, (pname, params), (";\n"));
+ DISPATCH(Fogiv, (pname, params), (F, "glFogiv(0x%x, %p);", pname, params));
}
KEYWORD1 void KEYWORD2 NAME(FrontFace)(GLenum mode)
{
- DISPATCH(FrontFace, (mode), (";\n"));
+ DISPATCH(FrontFace, (mode), (F, "glFrontFace(0x%x);", mode));
}
KEYWORD1 void KEYWORD2 NAME(Frustum)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearval, GLdouble farval)
{
- DISPATCH(Frustum, (left, right, bottom, top, nearval, farval), (";\n"));
+ DISPATCH(Frustum, (left, right, bottom, top, nearval, farval), (F, "glFrustum(%f, %f, %f, %f, %f, %f);", left, right, bottom, top, nearval, farval));
}
KEYWORD1 GLuint KEYWORD2 NAME(GenLists)(GLsizei range)
{
- RETURN_DISPATCH(GenLists, (range), ("glGenLists(%d);\n", range));
+ RETURN_DISPATCH(GenLists, (range), (F, "glGenLists(%d);", range));
}
KEYWORD1 void KEYWORD2 NAME(GetBooleanv)(GLenum pname, GLboolean *params)
{
- DISPATCH(GetBooleanv, (pname, params), (";\n"));
+ DISPATCH(GetBooleanv, (pname, params), (F, "glGetBooleanv(0x%x, %p);", pname, params));
}
KEYWORD1 void KEYWORD2 NAME(GetClipPlane)(GLenum plane, GLdouble *equation)
{
- DISPATCH(GetClipPlane, (plane, equation), (";\n"));
+ DISPATCH(GetClipPlane, (plane, equation), (F, "glGetClipPlane(x0%x, %p);", plane, equation));
}
KEYWORD1 void KEYWORD2 NAME(GetDoublev)(GLenum pname, GLdouble *params)
{
- DISPATCH(GetDoublev, (pname, params), (";\n"));
+ DISPATCH(GetDoublev, (pname, params), (F, "glGetDoublev(0x%x, %p);", pname, params));
}
KEYWORD1 GLenum KEYWORD2 NAME(GetError)(void)
{
- RETURN_DISPATCH(GetError, (), ("glGetError();\n"));
+ RETURN_DISPATCH(GetError, (), (F, "glGetError();"));
}
KEYWORD1 void KEYWORD2 NAME(GetFloatv)(GLenum pname, GLfloat *params)
{
- DISPATCH(GetFloatv, (pname, params), (";\n"));
+ DISPATCH(GetFloatv, (pname, params), (F, "glGetFloatv(0x%x, %p);", pname, params));
}
KEYWORD1 void KEYWORD2 NAME(GetIntegerv)(GLenum pname, GLint *params)
{
- DISPATCH(GetIntegerv, (pname, params), (";\n"));
+ DISPATCH(GetIntegerv, (pname, params), (F, "glGetIntegerv(0x%x, %p);", pname, params));
}
KEYWORD1 void KEYWORD2 NAME(GetLightfv)(GLenum light, GLenum pname, GLfloat *params)
{
- DISPATCH(GetLightfv, (light, pname, params), (";\n"));
+ DISPATCH(GetLightfv, (light, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetLightiv)(GLenum light, GLenum pname, GLint *params)
{
- DISPATCH(GetLightiv, (light, pname, params), (";\n"));
+ DISPATCH(GetLightiv, (light, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMapdv)(GLenum target, GLenum query, GLdouble *v)
{
- DISPATCH(GetMapdv, (target, query, v), (";\n"));
+ DISPATCH(GetMapdv, (target, query, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMapfv)(GLenum target, GLenum query, GLfloat *v)
{
- DISPATCH(GetMapfv, (target, query, v), (";\n"));
+ DISPATCH(GetMapfv, (target, query, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMapiv)(GLenum target, GLenum query, GLint *v)
{
- DISPATCH(GetMapiv, (target, query, v), (";\n"));
+ DISPATCH(GetMapiv, (target, query, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMaterialfv)(GLenum face, GLenum pname, GLfloat *params)
{
- DISPATCH(GetMaterialfv, (face, pname, params), (";\n"));
+ DISPATCH(GetMaterialfv, (face, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMaterialiv)(GLenum face, GLenum pname, GLint *params)
{
- DISPATCH(GetMaterialiv, (face, pname, params), (";\n"));
+ DISPATCH(GetMaterialiv, (face, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetPixelMapfv)(GLenum map, GLfloat *values)
{
- DISPATCH(GetPixelMapfv, (map, values), (";\n"));
+ DISPATCH(GetPixelMapfv, (map, values), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetPixelMapuiv)(GLenum map, GLuint *values)
{
- DISPATCH(GetPixelMapuiv, (map, values), (";\n"));
+ DISPATCH(GetPixelMapuiv, (map, values), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetPixelMapusv)(GLenum map, GLushort *values)
{
- DISPATCH(GetPixelMapusv, (map, values), (";\n"));
+ DISPATCH(GetPixelMapusv, (map, values), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetPolygonStipple)(GLubyte *mask)
{
- DISPATCH(GetPolygonStipple, (mask), (";\n"));
+ DISPATCH(GetPolygonStipple, (mask), (F, ";"));
}
KEYWORD1 const GLubyte * KEYWORD2 NAME(GetString)(GLenum name)
{
- RETURN_DISPATCH(GetString, (name), ("glGetString(0x%x);\n", name));
+ RETURN_DISPATCH(GetString, (name), (F, "glGetString(0x%x);", name));
}
KEYWORD1 void KEYWORD2 NAME(GetTexEnvfv)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetTexEnvfv, (target, pname, params), (";\n"));
+ DISPATCH(GetTexEnvfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetTexEnviv)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetTexEnviv, (target, pname, params), (";\n"));
+ DISPATCH(GetTexEnviv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetTexGeniv)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetTexGeniv, (target, pname, params), (";\n"));
+ DISPATCH(GetTexGeniv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetTexGendv)(GLenum target, GLenum pname, GLdouble *params)
{
- DISPATCH(GetTexGendv, (target, pname, params), (";\n"));
+ DISPATCH(GetTexGendv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetTexGenfv)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetTexGenfv, (target, pname, params), (";\n"));
+ DISPATCH(GetTexGenfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels)
{
- DISPATCH(GetTexImage, (target, level, format, type, pixels), (";\n"));
+ DISPATCH(GetTexImage, (target, level, format, type, pixels), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params)
{
- DISPATCH(GetTexLevelParameterfv, (target, level, pname, params), (";\n"));
+ DISPATCH(GetTexLevelParameterfv, (target, level, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params)
{
- DISPATCH(GetTexLevelParameteriv, (target, level, pname, params), (";\n"));
+ DISPATCH(GetTexLevelParameteriv, (target, level, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetTexParameterfv, (target, pname, params), (";\n"));
+ DISPATCH(GetTexParameterfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetTexParameteriv)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetTexParameteriv, (target, pname, params), (";\n"));
+ DISPATCH(GetTexParameteriv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Hint)(GLenum target, GLenum mode)
{
- DISPATCH(Hint, (target, mode), (";\n"));
+ DISPATCH(Hint, (target, mode), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Indexd)(GLdouble c)
{
- DISPATCH(Indexd, (c), (";\n"));
+ DISPATCH(Indexd, (c), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Indexdv)(const GLdouble *c)
{
- DISPATCH(Indexdv, (c), (";\n"));
+ DISPATCH(Indexdv, (c), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Indexf)(GLfloat c)
{
- DISPATCH(Indexf, (c), (";\n"));
+ DISPATCH(Indexf, (c), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Indexfv)(const GLfloat *c)
{
- DISPATCH(Indexfv, (c), (";\n"));
+ DISPATCH(Indexfv, (c), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Indexi)(GLint c)
{
- DISPATCH(Indexi, (c), (";\n"));
+ DISPATCH(Indexi, (c), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Indexiv)(const GLint *c)
{
- DISPATCH(Indexiv, (c), (";\n"));
+ DISPATCH(Indexiv, (c), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Indexs)(GLshort c)
{
- DISPATCH(Indexs, (c), (";\n"));
+ DISPATCH(Indexs, (c), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Indexsv)(const GLshort *c)
{
- DISPATCH(Indexsv, (c), (";\n"));
+ DISPATCH(Indexsv, (c), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(IndexMask)(GLuint mask)
{
- DISPATCH(IndexMask, (mask), (";\n"));
+ DISPATCH(IndexMask, (mask), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(InitNames)(void)
{
- DISPATCH(InitNames, (), (";\n"));
+ DISPATCH(InitNames, (), (F, ";"));
}
KEYWORD1 GLboolean KEYWORD2 NAME(IsEnabled)(GLenum cap)
{
- RETURN_DISPATCH(IsEnabled, (cap), ("glIsEnabled(0x%x);\n", cap));
+ RETURN_DISPATCH(IsEnabled, (cap), (F, "glIsEnabled(0x%x);", cap));
}
KEYWORD1 GLboolean KEYWORD2 NAME(IsList)(GLuint list)
{
- RETURN_DISPATCH(IsList, (list), ("glIsList(%u);\n", list));
+ RETURN_DISPATCH(IsList, (list), (F, "glIsList(%u);", list));
}
KEYWORD1 void KEYWORD2 NAME(Lightf)(GLenum light, GLenum pname, GLfloat param)
{
- DISPATCH(Lightf, (light, pname, param), (";\n"));
+ DISPATCH(Lightf, (light, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Lighti)(GLenum light, GLenum pname, GLint param)
{
- DISPATCH(Lighti, (light, pname, param), (";\n"));
+ DISPATCH(Lighti, (light, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Lightfv)(GLenum light, GLenum pname, const GLfloat *params)
{
- DISPATCH(Lightfv, (light, pname, params), (";\n"));
+ DISPATCH(Lightfv, (light, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Lightiv)(GLenum light, GLenum pname, const GLint *params)
{
- DISPATCH(Lightiv, (light, pname, params), (";\n"));
+ DISPATCH(Lightiv, (light, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LightModelf)(GLenum pname, GLfloat param)
{
- DISPATCH(LightModelf, (pname, param), (";\n"));
+ DISPATCH(LightModelf, (pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LightModeli)(GLenum pname, GLint param)
{
- DISPATCH(LightModeli, (pname, param), (";\n"));
+ DISPATCH(LightModeli, (pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LightModelfv)(GLenum pname, const GLfloat *params)
{
- DISPATCH(LightModelfv, (pname, params), (";\n"));
+ DISPATCH(LightModelfv, (pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LightModeliv)(GLenum pname, const GLint *params)
{
- DISPATCH(LightModeliv, (pname, params), (";\n"));
+ DISPATCH(LightModeliv, (pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LineWidth)(GLfloat width)
{
- DISPATCH(LineWidth, (width), (";\n"));
+ DISPATCH(LineWidth, (width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LineStipple)(GLint factor, GLushort pattern)
{
- DISPATCH(LineStipple, (factor, pattern), (";\n"));
+ DISPATCH(LineStipple, (factor, pattern), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ListBase)(GLuint base)
{
- DISPATCH(ListBase, (base), (";\n"));
+ DISPATCH(ListBase, (base), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LoadIdentity)(void)
{
- DISPATCH(LoadIdentity, (), (";\n"));
+ DISPATCH(LoadIdentity, (), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LoadMatrixd)(const GLdouble *m)
{
- DISPATCH(LoadMatrixd, (m), (";\n"));
+ DISPATCH(LoadMatrixd, (m), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LoadMatrixf)(const GLfloat *m)
{
- DISPATCH(LoadMatrixf, (m), (";\n"));
+ DISPATCH(LoadMatrixf, (m), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LoadName)(GLuint name)
{
- DISPATCH(LoadName, (name), (";\n"));
+ DISPATCH(LoadName, (name), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(LogicOp)(GLenum opcode)
{
- DISPATCH(LogicOp, (opcode), (";\n"));
+ DISPATCH(LogicOp, (opcode), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Map1d)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points)
{
- DISPATCH(Map1d, (target, u1, u2, stride, order, points), (";\n"));
+ DISPATCH(Map1d, (target, u1, u2, stride, order, points), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Map1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points)
{
- DISPATCH(Map1f, (target, u1, u2, stride, order, points), (";\n"));
+ DISPATCH(Map1f, (target, u1, u2, stride, order, points), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Map2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points)
{
- DISPATCH(Map2d, (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points), (";\n"));
+ DISPATCH(Map2d, (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Map2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points)
{
- DISPATCH(Map2f, (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points), (";\n"));
+ DISPATCH(Map2f, (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MapGrid1d)(GLint un, GLdouble u1, GLdouble u2)
{
- DISPATCH(MapGrid1d, (un, u1, u2), (";\n"));
+ DISPATCH(MapGrid1d, (un, u1, u2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MapGrid1f)(GLint un, GLfloat u1, GLfloat u2)
{
- DISPATCH(MapGrid1f, (un, u1, u2), (";\n"));
+ DISPATCH(MapGrid1f, (un, u1, u2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
{
- DISPATCH(MapGrid2d, (un, u1, u2, vn, v1, v2), (";\n"));
+ DISPATCH(MapGrid2d, (un, u1, u2, vn, v1, v2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
{
- DISPATCH(MapGrid2f, (un, u1, u2, vn, v1, v2), (";\n"));
+ DISPATCH(MapGrid2f, (un, u1, u2, vn, v1, v2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Materialf)(GLenum face, GLenum pname, GLfloat param)
{
- DISPATCH(Materialf, (face, pname, param), (";\n"));
+ DISPATCH(Materialf, (face, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Materiali)(GLenum face, GLenum pname, GLint param)
{
- DISPATCH(Materiali, (face, pname, param), (";\n"));
+ DISPATCH(Materiali, (face, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Materialfv)(GLenum face, GLenum pname, const GLfloat *params)
{
- DISPATCH(Materialfv, (face, pname, params), (";\n"));
+ DISPATCH(Materialfv, (face, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Materialiv)(GLenum face, GLenum pname, const GLint *params)
{
- DISPATCH(Materialiv, (face, pname, params), (";\n"));
+ DISPATCH(Materialiv, (face, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MatrixMode)(GLenum mode)
{
- DISPATCH(MatrixMode, (mode), (";\n"));
+ DISPATCH(MatrixMode, (mode), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultMatrixd)(const GLdouble *m)
{
- DISPATCH(MultMatrixd, (m), (";\n"));
+ DISPATCH(MultMatrixd, (m), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultMatrixf)(const GLfloat *m)
{
- DISPATCH(MultMatrixf, (m), (";\n"));
+ DISPATCH(MultMatrixf, (m), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(NewList)(GLuint list, GLenum mode)
{
- DISPATCH(NewList, (list, mode), (";\n"));
+ DISPATCH(NewList, (list, mode), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Normal3b)(GLbyte nx, GLbyte ny, GLbyte nz)
{
- DISPATCH(Normal3b, (nx, ny, nz), (";\n"));
+ DISPATCH(Normal3b, (nx, ny, nz), (F, "glNormal3b(%d, %d, %d);", nx, ny, nz));
}
KEYWORD1 void KEYWORD2 NAME(Normal3bv)(const GLbyte *v)
{
- DISPATCH(Normal3bv, (v), (";\n"));
+ DISPATCH(Normal3bv, (v), (F, "glNormal3bv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Normal3d)(GLdouble nx, GLdouble ny, GLdouble nz)
{
- DISPATCH(Normal3d, (nx, ny, nz), (";\n"));
+ DISPATCH(Normal3d, (nx, ny, nz), (F, "glNormal3d(%f, %f, %f);", nx, ny, nz));
}
KEYWORD1 void KEYWORD2 NAME(Normal3dv)(const GLdouble *v)
{
- DISPATCH(Normal3dv, (v), (";\n"));
+ DISPATCH(Normal3dv, (v), (F, "glNormal3dv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Normal3f)(GLfloat nx, GLfloat ny, GLfloat nz)
{
- DISPATCH(Normal3f, (nx, ny, nz), ("glNormal3f(%g, %g, %g);\n", nx, ny, nz));
+ DISPATCH(Normal3f, (nx, ny, nz), (F, "glNormal3f(%g, %g, %g);", nx, ny, nz));
}
KEYWORD1 void KEYWORD2 NAME(Normal3fv)(const GLfloat *v)
{
- DISPATCH(Normal3fv, (v), (";\n"));
+ DISPATCH(Normal3fv, (v), (F, "glNormal3fv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Normal3i)(GLint nx, GLint ny, GLint nz)
{
- DISPATCH(Normal3i, (nx, ny, nz), (";\n"));
+ DISPATCH(Normal3i, (nx, ny, nz), (F, "glNormal3i(%d, %d, %d);", nx, ny, nz));
}
KEYWORD1 void KEYWORD2 NAME(Normal3iv)(const GLint *v)
{
- DISPATCH(Normal3iv, (v), (";\n"));
+ DISPATCH(Normal3iv, (v), (F, "glNormal3iv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Normal3s)(GLshort nx, GLshort ny, GLshort nz)
{
- DISPATCH(Normal3s, (nx, ny, nz), (";\n"));
+ DISPATCH(Normal3s, (nx, ny, nz), (F, "glNormal3s(%d, %d, %d);", nx, ny, nz));
}
KEYWORD1 void KEYWORD2 NAME(Normal3sv)(const GLshort *v)
{
- DISPATCH(Normal3sv, (v), (";\n"));
+ DISPATCH(Normal3sv, (v), (F, "glNormal3sv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Ortho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearval, GLdouble farval)
{
- DISPATCH(Ortho, (left, right, bottom, top, nearval, farval), (";\n"));
+ DISPATCH(Ortho, (left, right, bottom, top, nearval, farval), (F, "glOrtho(%f, %f, %f, %f, %f, %f);", left, right, bottom, top, nearval, farval));
}
KEYWORD1 void KEYWORD2 NAME(PassThrough)(GLfloat token)
{
- DISPATCH(PassThrough, (token), (";\n"));
+ DISPATCH(PassThrough, (token), (F, "glPassThrough(%f);", token));
}
KEYWORD1 void KEYWORD2 NAME(PixelMapfv)(GLenum map, GLint mapsize, const GLfloat *values)
{
- DISPATCH(PixelMapfv, (map, mapsize, values), (";\n"));
+ DISPATCH(PixelMapfv, (map, mapsize, values), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PixelMapuiv)(GLenum map, GLint mapsize, const GLuint *values)
{
- DISPATCH(PixelMapuiv, (map, mapsize, values), (";\n"));
+ DISPATCH(PixelMapuiv, (map, mapsize, values), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PixelMapusv)(GLenum map, GLint mapsize, const GLushort *values)
{
- DISPATCH(PixelMapusv, (map, mapsize, values), (";\n"));
+ DISPATCH(PixelMapusv, (map, mapsize, values), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PixelStoref)(GLenum pname, GLfloat param)
{
- DISPATCH(PixelStoref, (pname, param), (";\n"));
+ DISPATCH(PixelStoref, (pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PixelStorei)(GLenum pname, GLint param)
{
- DISPATCH(PixelStorei, (pname, param), (";\n"));
+ DISPATCH(PixelStorei, (pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PixelTransferf)(GLenum pname, GLfloat param)
{
- DISPATCH(PixelTransferf, (pname, param), (";\n"));
+ DISPATCH(PixelTransferf, (pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PixelTransferi)(GLenum pname, GLint param)
{
- DISPATCH(PixelTransferi, (pname, param), (";\n"));
+ DISPATCH(PixelTransferi, (pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PixelZoom)(GLfloat xfactor, GLfloat yfactor)
{
- DISPATCH(PixelZoom, (xfactor, yfactor), (";\n"));
+ DISPATCH(PixelZoom, (xfactor, yfactor), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PointSize)(GLfloat size)
{
- DISPATCH(PointSize, (size), (";\n"));
+ DISPATCH(PointSize, (size), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PolygonMode)(GLenum face, GLenum mode)
{
- DISPATCH(PolygonMode, (face, mode), (";\n"));
+ DISPATCH(PolygonMode, (face, mode), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PolygonStipple)(const GLubyte *pattern)
{
- DISPATCH(PolygonStipple, (pattern), (";\n"));
+ DISPATCH(PolygonStipple, (pattern), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PopAttrib)(void)
{
- DISPATCH(PopAttrib, (), (";\n"));
+ DISPATCH(PopAttrib, (), (F, "glPopAttrib();"));
}
KEYWORD1 void KEYWORD2 NAME(PopMatrix)(void)
{
- DISPATCH(PopMatrix, (), ("glPopMatrix();\n"));
+ DISPATCH(PopMatrix, (), (F, "glPopMatrix();"));
}
KEYWORD1 void KEYWORD2 NAME(PopName)(void)
{
- DISPATCH(PopName, (), (";\n"));
+ DISPATCH(PopName, (), (F, "glPopName();"));
}
KEYWORD1 void KEYWORD2 NAME(PushAttrib)(GLbitfield mask)
{
- DISPATCH(PushAttrib, (mask), (";\n"));
+ DISPATCH(PushAttrib, (mask), (F, "glPushAttrib(0x%x)", mask));
}
KEYWORD1 void KEYWORD2 NAME(PushMatrix)(void)
{
- DISPATCH(PushMatrix, (), ("glPushMatrix();\n"));
+ DISPATCH(PushMatrix, (), (F, "glPushMatrix();"));
}
KEYWORD1 void KEYWORD2 NAME(PushName)(GLuint name)
{
- DISPATCH(PushName, (name), (";\n"));
+ DISPATCH(PushName, (name), (F, "glPushName(%u)", name));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos2d)(GLdouble x, GLdouble y)
{
- DISPATCH(RasterPos2d, (x, y), (";\n"));
+ DISPATCH(RasterPos2d, (x, y), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos2f)(GLfloat x, GLfloat y)
{
- DISPATCH(RasterPos2f, (x, y), (";\n"));
+ DISPATCH(RasterPos2f, (x, y), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos2i)(GLint x, GLint y)
{
- DISPATCH(RasterPos2i, (x, y), (";\n"));
+ DISPATCH(RasterPos2i, (x, y), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos2s)(GLshort x, GLshort y)
{
- DISPATCH(RasterPos2s, (x, y), (";\n"));
+ DISPATCH(RasterPos2s, (x, y), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos3d)(GLdouble x, GLdouble y, GLdouble z)
{
- DISPATCH(RasterPos3d, (x, y, z), (";\n"));
+ DISPATCH(RasterPos3d, (x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos3f)(GLfloat x, GLfloat y, GLfloat z)
{
- DISPATCH(RasterPos3f, (x, y, z), (";\n"));
+ DISPATCH(RasterPos3f, (x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos3i)(GLint x, GLint y, GLint z)
{
- DISPATCH(RasterPos3i, (x, y, z), (";\n"));
+ DISPATCH(RasterPos3i, (x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos3s)(GLshort x, GLshort y, GLshort z)
{
- DISPATCH(RasterPos3s, (x, y, z), (";\n"));
+ DISPATCH(RasterPos3s, (x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
{
- DISPATCH(RasterPos4d, (x, y, z, w), (";\n"));
+ DISPATCH(RasterPos4d, (x, y, z, w), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
{
- DISPATCH(RasterPos4f, (x, y, z, w), (";\n"));
+ DISPATCH(RasterPos4f, (x, y, z, w), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos4i)(GLint x, GLint y, GLint z, GLint w)
{
- DISPATCH(RasterPos4i, (x, y, z, w), (";\n"));
+ DISPATCH(RasterPos4i, (x, y, z, w), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w)
{
- DISPATCH(RasterPos4s, (x, y, z, w), (";\n"));
+ DISPATCH(RasterPos4s, (x, y, z, w), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos2dv)(const GLdouble *v)
{
- DISPATCH(RasterPos2dv, (v), (";\n"));
+ DISPATCH(RasterPos2dv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos2fv)(const GLfloat *v)
{
- DISPATCH(RasterPos2fv, (v), (";\n"));
+ DISPATCH(RasterPos2fv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos2iv)(const GLint *v)
{
- DISPATCH(RasterPos2iv, (v), (";\n"));
+ DISPATCH(RasterPos2iv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos2sv)(const GLshort *v)
{
- DISPATCH(RasterPos2sv, (v), (";\n"));
+ DISPATCH(RasterPos2sv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos3dv)(const GLdouble *v)
{
- DISPATCH(RasterPos3dv, (v), (";\n"));
+ DISPATCH(RasterPos3dv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos3fv)(const GLfloat *v)
{
- DISPATCH(RasterPos3fv, (v), (";\n"));
+ DISPATCH(RasterPos3fv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos3iv)(const GLint *v)
{
- DISPATCH(RasterPos3iv, (v), (";\n"));
+ DISPATCH(RasterPos3iv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos3sv)(const GLshort *v)
{
- DISPATCH(RasterPos3sv, (v), (";\n"));
+ DISPATCH(RasterPos3sv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos4dv)(const GLdouble *v)
{
- DISPATCH(RasterPos4dv, (v), (";\n"));
+ DISPATCH(RasterPos4dv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos4fv)(const GLfloat *v)
{
- DISPATCH(RasterPos4fv, (v), (";\n"));
+ DISPATCH(RasterPos4fv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos4iv)(const GLint *v)
{
- DISPATCH(RasterPos4iv, (v), (";\n"));
+ DISPATCH(RasterPos4iv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(RasterPos4sv)(const GLshort *v)
{
- DISPATCH(RasterPos4sv, (v), (";\n"));
+ DISPATCH(RasterPos4sv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ReadBuffer)(GLenum mode)
{
- DISPATCH(ReadBuffer, (mode), (";\n"));
+ DISPATCH(ReadBuffer, (mode), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
{
- DISPATCH(ReadPixels, (x, y, width, height, format, type, pixels), (";\n"));
+ DISPATCH(ReadPixels, (x, y, width, height, format, type, pixels), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Rectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
{
- DISPATCH(Rectd, (x1, y1, x2, y2), (";\n"));
+ DISPATCH(Rectd, (x1, y1, x2, y2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Rectdv)(const GLdouble *v1, const GLdouble *v2)
{
- DISPATCH(Rectdv, (v1, v2), (";\n"));
+ DISPATCH(Rectdv, (v1, v2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Rectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
{
- DISPATCH(Rectf, (x1, y1, x2, y2), (";\n"));
+ DISPATCH(Rectf, (x1, y1, x2, y2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Rectfv)(const GLfloat *v1, const GLfloat *v2)
{
- DISPATCH(Rectfv, (v1, v2), (";\n"));
+ DISPATCH(Rectfv, (v1, v2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Recti)(GLint x1, GLint y1, GLint x2, GLint y2)
{
- DISPATCH(Recti, (x1, y1, x2, y2), (";\n"));
+ DISPATCH(Recti, (x1, y1, x2, y2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Rectiv)(const GLint *v1, const GLint *v2)
{
- DISPATCH(Rectiv, (v1, v2), (";\n"));
+ DISPATCH(Rectiv, (v1, v2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Rects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
{
- DISPATCH(Rects, (x1, y1, x2, y2), (";\n"));
+ DISPATCH(Rects, (x1, y1, x2, y2), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Rectsv)(const GLshort *v1, const GLshort *v2)
{
- DISPATCH(Rectsv, (v1, v2), (";\n"));
+ DISPATCH(Rectsv, (v1, v2), (F, ";"));
}
KEYWORD1 GLint KEYWORD2 NAME(RenderMode)(GLenum mode)
{
- RETURN_DISPATCH(RenderMode, (mode), ("glRenderMode(0x%x);\n", mode));
+ RETURN_DISPATCH(RenderMode, (mode), (F, "glRenderMode(0x%x);", mode));
}
KEYWORD1 void KEYWORD2 NAME(Rotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
{
- DISPATCH(Rotated, (angle, x, y, z), (";\n"));
+ DISPATCH(Rotated, (angle, x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Rotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
{
- DISPATCH(Rotatef, (angle, x, y, z), ("glRotatef(%g, %g, %g, %g);\n", angle, x, y, z));
+ DISPATCH(Rotatef, (angle, x, y, z), (F, "glRotatef(%g, %g, %g, %g);", angle, x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(SelectBuffer)(GLsizei size, GLuint *buffer)
{
- DISPATCH(SelectBuffer, (size, buffer), (";\n"));
+ DISPATCH(SelectBuffer, (size, buffer), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Scaled)(GLdouble x, GLdouble y, GLdouble z)
{
- DISPATCH(Scaled, (x, y, z), (";\n"));
+ DISPATCH(Scaled, (x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Scalef)(GLfloat x, GLfloat y, GLfloat z)
{
- DISPATCH(Scalef, (x, y, z), ("glScalef(%g, %g, %g);\n", x, y, z));
+ DISPATCH(Scalef, (x, y, z), (F, "glScalef(%g, %g, %g);", x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(Scissor)(GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(Scissor, (x, y, width, height), ("glScissor(%d, %d, %d, %d);\n", x, y, width, height));
+ DISPATCH(Scissor, (x, y, width, height), (F, "glScissor(%d, %d, %d, %d);", x, y, width, height));
}
KEYWORD1 void KEYWORD2 NAME(ShadeModel)(GLenum mode)
{
- DISPATCH(ShadeModel, (mode), ("glShadeModel(0x%x);\n", mode));
+ DISPATCH(ShadeModel, (mode), (F, "glShadeModel(0x%x);", mode));
}
KEYWORD1 void KEYWORD2 NAME(StencilFunc)(GLenum func, GLint ref, GLuint mask)
{
- DISPATCH(StencilFunc, (func, ref, mask), (";\n"));
+ DISPATCH(StencilFunc, (func, ref, mask), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(StencilMask)(GLuint mask)
{
- DISPATCH(StencilMask, (mask), (";\n"));
+ DISPATCH(StencilMask, (mask), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(StencilOp)(GLenum fail, GLenum zfail, GLenum zpass)
{
- DISPATCH(StencilOp, (fail, zfail, zpass), (";\n"));
+ DISPATCH(StencilOp, (fail, zfail, zpass), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord1d)(GLdouble s)
{
- DISPATCH(TexCoord1d, (s), (";\n"));
+ DISPATCH(TexCoord1d, (s), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord1f)(GLfloat s)
{
- DISPATCH(TexCoord1f, (s), (";\n"));
+ DISPATCH(TexCoord1f, (s), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord1i)(GLint s)
{
- DISPATCH(TexCoord1i, (s), (";\n"));
+ DISPATCH(TexCoord1i, (s), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord1s)(GLshort s)
{
- DISPATCH(TexCoord1s, (s), (";\n"));
+ DISPATCH(TexCoord1s, (s), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord2d)(GLdouble s, GLdouble t)
{
- DISPATCH(TexCoord2d, (s, t), (";\n"));
+ DISPATCH(TexCoord2d, (s, t), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord2f)(GLfloat s, GLfloat t)
{
- DISPATCH(TexCoord2f, (s, t), (";\n"));
+ DISPATCH(TexCoord2f, (s, t), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord2s)(GLshort s, GLshort t)
{
- DISPATCH(TexCoord2s, (s, t), (";\n"));
+ DISPATCH(TexCoord2s, (s, t), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord2i)(GLint s, GLint t)
{
- DISPATCH(TexCoord2i, (s, t), (";\n"));
+ DISPATCH(TexCoord2i, (s, t), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord3d)(GLdouble s, GLdouble t, GLdouble r)
{
- DISPATCH(TexCoord3d, (s, t, r), (";\n"));
+ DISPATCH(TexCoord3d, (s, t, r), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord3f)(GLfloat s, GLfloat t, GLfloat r)
{
- DISPATCH(TexCoord3f, (s, t, r), (";\n"));
+ DISPATCH(TexCoord3f, (s, t, r), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord3i)(GLint s, GLint t, GLint r)
{
- DISPATCH(TexCoord3i, (s, t, r), (";\n"));
+ DISPATCH(TexCoord3i, (s, t, r), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord3s)(GLshort s, GLshort t, GLshort r)
{
- DISPATCH(TexCoord3s, (s, t, r), (";\n"));
+ DISPATCH(TexCoord3s, (s, t, r), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q)
{
- DISPATCH(TexCoord4d, (s, t, r, q), (";\n"));
+ DISPATCH(TexCoord4d, (s, t, r, q), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q)
{
- DISPATCH(TexCoord4f, (s, t, r, q), (";\n"));
+ DISPATCH(TexCoord4f, (s, t, r, q), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord4i)(GLint s, GLint t, GLint r, GLint q)
{
- DISPATCH(TexCoord4i, (s, t, r, q), (";\n"));
+ DISPATCH(TexCoord4i, (s, t, r, q), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q)
{
- DISPATCH(TexCoord4s, (s, t, r, q), (";\n"));
+ DISPATCH(TexCoord4s, (s, t, r, q), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord1dv)(const GLdouble *v)
{
- DISPATCH(TexCoord1dv, (v), (";\n"));
+ DISPATCH(TexCoord1dv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord1fv)(const GLfloat *v)
{
- DISPATCH(TexCoord1fv, (v), (";\n"));
+ DISPATCH(TexCoord1fv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord1iv)(const GLint *v)
{
- DISPATCH(TexCoord1iv, (v), (";\n"));
+ DISPATCH(TexCoord1iv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord1sv)(const GLshort *v)
{
- DISPATCH(TexCoord1sv, (v), (";\n"));
+ DISPATCH(TexCoord1sv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord2dv)(const GLdouble *v)
{
- DISPATCH(TexCoord2dv, (v), (";\n"));
+ DISPATCH(TexCoord2dv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord2fv)(const GLfloat *v)
{
- DISPATCH(TexCoord2fv, (v), (";\n"));
+ DISPATCH(TexCoord2fv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord2iv)(const GLint *v)
{
- DISPATCH(TexCoord2iv, (v), (";\n"));
+ DISPATCH(TexCoord2iv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord2sv)(const GLshort *v)
{
- DISPATCH(TexCoord2sv, (v), (";\n"));
+ DISPATCH(TexCoord2sv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord3dv)(const GLdouble *v)
{
- DISPATCH(TexCoord3dv, (v), (";\n"));
+ DISPATCH(TexCoord3dv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord3fv)(const GLfloat *v)
{
- DISPATCH(TexCoord3fv, (v), (";\n"));
+ DISPATCH(TexCoord3fv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord3iv)(const GLint *v)
{
- DISPATCH(TexCoord3iv, (v), (";\n"));
+ DISPATCH(TexCoord3iv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord3sv)(const GLshort *v)
{
- DISPATCH(TexCoord3sv, (v), (";\n"));
+ DISPATCH(TexCoord3sv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord4dv)(const GLdouble *v)
{
- DISPATCH(TexCoord4dv, (v), (";\n"));
+ DISPATCH(TexCoord4dv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord4fv)(const GLfloat *v)
{
- DISPATCH(TexCoord4fv, (v), (";\n"));
+ DISPATCH(TexCoord4fv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord4iv)(const GLint *v)
{
- DISPATCH(TexCoord4iv, (v), (";\n"));
+ DISPATCH(TexCoord4iv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoord4sv)(const GLshort *v)
{
- DISPATCH(TexCoord4sv, (v), (";\n"));
+ DISPATCH(TexCoord4sv, (v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexGend)(GLenum coord, GLenum pname, GLdouble param)
{
- DISPATCH(TexGend, (coord, pname, param), (";\n"));
+ DISPATCH(TexGend, (coord, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexGendv)(GLenum coord, GLenum pname, const GLdouble *params)
{
- DISPATCH(TexGendv, (coord, pname, params), (";\n"));
+ DISPATCH(TexGendv, (coord, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexGenf)(GLenum coord, GLenum pname, GLfloat param)
{
- DISPATCH(TexGenf, (coord, pname, param), (";\n"));
+ DISPATCH(TexGenf, (coord, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexGenfv)(GLenum coord, GLenum pname, const GLfloat *params)
{
- DISPATCH(TexGenfv, (coord, pname, params), (";\n"));
+ DISPATCH(TexGenfv, (coord, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexGeni)(GLenum coord, GLenum pname, GLint param)
{
- DISPATCH(TexGeni, (coord, pname, param), (";\n"));
+ DISPATCH(TexGeni, (coord, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexGeniv)(GLenum coord, GLenum pname, const GLint *params)
{
- DISPATCH(TexGeniv, (coord, pname, params), (";\n"));
+ DISPATCH(TexGeniv, (coord, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexEnvf)(GLenum target, GLenum pname, GLfloat param)
{
- DISPATCH(TexEnvf, (target, pname, param), (";\n"));
+ DISPATCH(TexEnvf, (target, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexEnvfv)(GLenum target, GLenum pname, const GLfloat *param)
{
- DISPATCH(TexEnvfv, (target, pname, param), (";\n"));
+ DISPATCH(TexEnvfv, (target, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexEnvi)(GLenum target, GLenum pname, GLint param)
{
- DISPATCH(TexEnvi, (target, pname, param), (";\n"));
+ DISPATCH(TexEnvi, (target, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexEnviv)(GLenum target, GLenum pname, const GLint *param)
{
- DISPATCH(TexEnviv, (target, pname, param), (";\n"));
+ DISPATCH(TexEnviv, (target, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexImage1D, (target, level, internalformat, width, border, format, type, pixels), (";\n"));
+ DISPATCH(TexImage1D, (target, level, internalformat, width, border, format, type, pixels), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexImage2D, (target, level, internalformat, width, height, border, format, type, pixels), (";\n"));
+ DISPATCH(TexImage2D, (target, level, internalformat, width, height, border, format, type, pixels), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexParameterf)(GLenum target, GLenum pname, GLfloat param)
{
- DISPATCH(TexParameterf, (target, pname, param), (";\n"));
+ DISPATCH(TexParameterf, (target, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexParameterfv)(GLenum target, GLenum pname, const GLfloat *params)
{
- DISPATCH(TexParameterfv, (target, pname, params), (";\n"));
+ DISPATCH(TexParameterfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexParameteri)(GLenum target, GLenum pname, GLint param)
{
- DISPATCH(TexParameteri, (target, pname, param), (";\n"));
+ DISPATCH(TexParameteri, (target, pname, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexParameteriv)(GLenum target, GLenum pname, const GLint *params)
{
- DISPATCH(TexParameteriv, (target, pname, params), (";\n"));
+ DISPATCH(TexParameteriv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Translated)(GLdouble x, GLdouble y, GLdouble z)
{
- DISPATCH(Translated, (x, y, z), (";\n"));
+ DISPATCH(Translated, (x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Translatef)(GLfloat x, GLfloat y, GLfloat z)
{
- DISPATCH(Translatef, (x, y, z), ("glTranslatef(%g, %g, %g);\n", x, y, z));
+ DISPATCH(Translatef, (x, y, z), (F, "glTranslatef(%g, %g, %g);", x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2d)(GLdouble x, GLdouble y)
{
- DISPATCH(Vertex2d, (x, y), (";\n"));
+ DISPATCH(Vertex2d, (x, y), (F, "glVertex2d(%f, %f);", x, y));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2dv)(const GLdouble *v)
{
- DISPATCH(Vertex2dv, (v), (";\n"));
+ DISPATCH(Vertex2dv, (v), (F, "glVertex2dv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2f)(GLfloat x, GLfloat y)
{
- DISPATCH(Vertex2f, (x, y), (";\n"));
+ DISPATCH(Vertex2f, (x, y), (F, "glVertex2f(%g, %g);", x, y));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2fv)(const GLfloat *v)
{
- DISPATCH(Vertex2fv, (v), (";\n"));
+ DISPATCH(Vertex2fv, (v), (F, "glVertex2fv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2i)(GLint x, GLint y)
{
- DISPATCH(Vertex2i, (x, y), (";\n"));
+ DISPATCH(Vertex2i, (x, y), (F, "glVertex2i(%d, %d);", x, y));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2iv)(const GLint *v)
{
- DISPATCH(Vertex2iv, (v), (";\n"));
+ DISPATCH(Vertex2iv, (v), (F, "glVertex2iv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2s)(GLshort x, GLshort y)
{
- DISPATCH(Vertex2s, (x, y), (";\n"));
+ DISPATCH(Vertex2s, (x, y), (F, "glVertex2s(%d, %d);", x, y));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2sv)(const GLshort *v)
{
- DISPATCH(Vertex2sv, (v), (";\n"));
+ DISPATCH(Vertex2sv, (v), (F, "glVertex2sv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3d)(GLdouble x, GLdouble y, GLdouble z)
{
- DISPATCH(Vertex3d, (x, y, z), (";\n"));
+ DISPATCH(Vertex3d, (x, y, z), (F, "glVertex3d(%f, %f, %f);", x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3dv)(const GLdouble *v)
{
- DISPATCH(Vertex3dv, (v), (";\n"));
+ DISPATCH(Vertex3dv, (v), (F, "glVertex3dv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3f)(GLfloat x, GLfloat y, GLfloat z)
{
- DISPATCH(Vertex3f, (x, y, z), ("glVertex3f(%g, %g, %g);\n", x, y, z));
+ DISPATCH(Vertex3f, (x, y, z), (F, "glVertex3f(%g, %g, %g);", x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3fv)(const GLfloat *v)
{
- DISPATCH(Vertex3fv, (v), (";\n"));
+ DISPATCH(Vertex3fv, (v), (F, "glVertex3fv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3i)(GLint x, GLint y, GLint z)
{
- DISPATCH(Vertex3i, (x, y, z), (";\n"));
+ DISPATCH(Vertex3i, (x, y, z), (F, "glVertex3i(%d, %d, %d);", x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3iv)(const GLint *v)
{
- DISPATCH(Vertex3iv, (v), (";\n"));
+ DISPATCH(Vertex3iv, (v), (F, "glVertex3iv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3s)(GLshort x, GLshort y, GLshort z)
{
- DISPATCH(Vertex3s, (x, y, z), (";\n"));
+ DISPATCH(Vertex3s, (x, y, z), (F, "glVertex3s(%d, %d, %d);", x, y, z));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3sv)(const GLshort *v)
{
- DISPATCH(Vertex3sv, (v), (";\n"));
+ DISPATCH(Vertex3sv, (v), (F, "glVertex3sv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
{
- DISPATCH(Vertex4d, (x, y, z, w), (";\n"));
+ DISPATCH(Vertex4d, (x, y, z, w), (F, "glVertex4d(%f, %f, %f, %f);", x, y, z, w));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4dv)(const GLdouble *v)
{
- DISPATCH(Vertex4dv, (v), (";\n"));
+ DISPATCH(Vertex4dv, (v), (F, "glVertex4dv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
{
- DISPATCH(Vertex4f, (x, y, z, w), (";\n"));
+ DISPATCH(Vertex4f, (x, y, z, w), (F, "glVertex4f(%f, %f, %f, %f);", x, y, z, w));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4fv)(const GLfloat *v)
{
- DISPATCH(Vertex4fv, (v), (";\n"));
+ DISPATCH(Vertex4fv, (v), (F, "glVertex4fv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4i)(GLint x, GLint y, GLint z, GLint w)
{
- DISPATCH(Vertex4i, (x, y, z, w), (";\n"));
+ DISPATCH(Vertex4i, (x, y, z, w), (F, "glVertex4i(%d, %d, %d, %d);", x, y, z, w));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4iv)(const GLint *v)
{
- DISPATCH(Vertex4iv, (v), (";\n"));
+ DISPATCH(Vertex4iv, (v), (F, "glVertex4iv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4s)(GLshort x, GLshort y, GLshort z, GLshort w)
{
- DISPATCH(Vertex4s, (x, y, z, w), (";\n"));
+ DISPATCH(Vertex4s, (x, y, z, w), (F, "glVertex4s(%d, %d, %d, %d);", x, y, z, w));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4sv)(const GLshort *v)
{
- DISPATCH(Vertex4sv, (v), (";\n"));
+ DISPATCH(Vertex4sv, (v), (F, "glVertex4sv(%p);", v));
}
KEYWORD1 void KEYWORD2 NAME(Viewport)(GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(Viewport, (x, y, width, height), (";\n"));
+ DISPATCH(Viewport, (x, y, width, height), (F, "glViewport(%d, %d, %d, %d);", x, y, width, height));
}
@@ -1629,147 +1635,147 @@ KEYWORD1 void KEYWORD2 NAME(Viewport)(GLint x, GLint y, GLsizei width, GLsizei h
KEYWORD1 GLboolean KEYWORD2 NAME(AreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences)
{
- RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), ("glAreTexturesResident(%d, %p, %p);\n", n, textures, residences));
+ RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), (F, "glAreTexturesResident(%d, %p, %p);", n, textures, residences));
}
KEYWORD1 void KEYWORD2 NAME(ArrayElement)(GLint i)
{
- DISPATCH(ArrayElement, (i), (";\n"));
+ DISPATCH(ArrayElement, (i), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(BindTexture)(GLenum target, GLuint texture)
{
- DISPATCH(BindTexture, (target, texture), (";\n"));
+ DISPATCH(BindTexture, (target, texture), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
{
- DISPATCH(ColorPointer, (size, type, stride, ptr), (";\n"));
+ DISPATCH(ColorPointer, (size, type, stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
{
- DISPATCH(CopyTexImage1D, (target, level, internalformat, x, y, width, border), (";\n"));
+ DISPATCH(CopyTexImage1D, (target, level, internalformat, x, y, width, border), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
{
- DISPATCH(CopyTexImage2D, (target, level, internalformat, x, y, width, height, border), (";\n"));
+ DISPATCH(CopyTexImage2D, (target, level, internalformat, x, y, width, height, border), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyTexSubImage1D, (target, level, xoffset, x, y, width), (";\n"));
+ DISPATCH(CopyTexSubImage1D, (target, level, xoffset, x, y, width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(CopyTexSubImage2D, (target, level, xoffset, yoffset, x, y, width, height), (";\n"));
+ DISPATCH(CopyTexSubImage2D, (target, level, xoffset, yoffset, x, y, width, height), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(DeleteTextures)(GLsizei n, const GLuint *textures)
{
- DISPATCH(DeleteTextures, (n, textures), (";\n"));
+ DISPATCH(DeleteTextures, (n, textures), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(DisableClientState)(GLenum cap)
{
- DISPATCH(DisableClientState, (cap), (";\n"));
+ DISPATCH(DisableClientState, (cap), (F, "glDisableClientState(0x%x);", cap));
}
KEYWORD1 void KEYWORD2 NAME(DrawArrays)(GLenum mode, GLint first, GLsizei count)
{
- DISPATCH(DrawArrays, (mode, first, count), (";\n"));
+ DISPATCH(DrawArrays, (mode, first, count), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EdgeFlagPointer)(GLsizei stride, const GLvoid *ptr)
{
- DISPATCH(EdgeFlagPointer, (stride, ptr), (";\n"));
+ DISPATCH(EdgeFlagPointer, (stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EnableClientState)(GLenum cap)
{
- DISPATCH(EnableClientState, (cap), (";\n"));
+ DISPATCH(EnableClientState, (cap), (F, "glEnableClientState(0x%x)", cap));
}
KEYWORD1 void KEYWORD2 NAME(GenTextures)(GLsizei n, GLuint *textures)
{
- DISPATCH(GenTextures, (n, textures), (";\n"));
+ DISPATCH(GenTextures, (n, textures), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetPointerv)(GLenum pname, GLvoid **params)
{
- DISPATCH(GetPointerv, (pname, params), (";\n"));
+ DISPATCH(GetPointerv, (pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(IndexPointer)(GLenum type, GLsizei stride, const GLvoid *ptr)
{
- DISPATCH(IndexPointer, (type, stride, ptr), (";\n"));
+ DISPATCH(IndexPointer, (type, stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Indexub)(GLubyte c)
{
- DISPATCH(Indexub, (c), (";\n"));
+ DISPATCH(Indexub, (c), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Indexubv)(const GLubyte *c)
{
- DISPATCH(Indexubv, (c), (";\n"));
+ DISPATCH(Indexubv, (c), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(InterleavedArrays)(GLenum format, GLsizei stride, const GLvoid *pointer)
{
- DISPATCH(InterleavedArrays, (format, stride, pointer), (";\n"));
+ DISPATCH(InterleavedArrays, (format, stride, pointer), (F, ";"));
}
KEYWORD1 GLboolean KEYWORD2 NAME(IsTexture)(GLuint texture)
{
- RETURN_DISPATCH(IsTexture, (texture), ("glIsTexture(%u);\n", texture));
+ RETURN_DISPATCH(IsTexture, (texture), (F, "glIsTexture(%u);", texture));
}
KEYWORD1 void KEYWORD2 NAME(NormalPointer)(GLenum type, GLsizei stride, const GLvoid *ptr)
{
- DISPATCH(NormalPointer, (type, stride, ptr), (";\n"));
+ DISPATCH(NormalPointer, (type, stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PolygonOffset)(GLfloat factor, GLfloat units)
{
- DISPATCH(PolygonOffset, (factor, units), (";\n"));
+ DISPATCH(PolygonOffset, (factor, units), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PopClientAttrib)(void)
{
- DISPATCH(PopClientAttrib, (), (";\n"));
+ DISPATCH(PopClientAttrib, (), (F, "glPopClientAttrib();"));
}
KEYWORD1 void KEYWORD2 NAME(PrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities)
{
- DISPATCH(PrioritizeTextures, (n, textures, priorities), (";\n"));
+ DISPATCH(PrioritizeTextures, (n, textures, priorities), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PushClientAttrib)(GLbitfield mask)
{
- DISPATCH(PushClientAttrib, (mask), (";\n"));
+ DISPATCH(PushClientAttrib, (mask), (F, "glPushClientAttrib(0x%x)", mask));
}
KEYWORD1 void KEYWORD2 NAME(TexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
{
- DISPATCH(TexCoordPointer, (size, type, stride, ptr), (";\n"));
+ DISPATCH(TexCoordPointer, (size, type, stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexSubImage1D, (target, level, xoffset, width, format, type, pixels), (";\n"));
+ DISPATCH(TexSubImage1D, (target, level, xoffset, width, format, type, pixels), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexSubImage2D, (target, level, xoffset, yoffset, width, height, format, type, pixels), (";\n"));
+ DISPATCH(TexSubImage2D, (target, level, xoffset, yoffset, width, height, format, type, pixels), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(VertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
{
- DISPATCH(VertexPointer, (size, type, stride, ptr), (";\n"));
+ DISPATCH(VertexPointer, (size, type, stride, ptr), (F, ";"));
}
@@ -1779,22 +1785,22 @@ KEYWORD1 void KEYWORD2 NAME(VertexPointer)(GLint size, GLenum type, GLsizei stri
KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(CopyTexSubImage3D, (target, level, xoffset, yoffset, zoffset, x, y, width, height), (";\n"));
+ DISPATCH(CopyTexSubImage3D, (target, level, xoffset, yoffset, zoffset, x, y, width, height), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(DrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices)
{
- DISPATCH(DrawRangeElements, (mode, start, end, count, type, indices), (";\n"));
+ DISPATCH(DrawRangeElements, (mode, start, end, count, type, indices), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexImage3D, (target, level, internalformat, width, height, depth, border, format, type, pixels), (";\n"));
+ DISPATCH(TexImage3D, (target, level, internalformat, width, height, depth, border, format, type, pixels), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexSubImage3D, (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels), (";\n"));
+ DISPATCH(TexSubImage3D, (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels), (F, ";"));
}
@@ -1803,172 +1809,172 @@ KEYWORD1 void KEYWORD2 NAME(TexSubImage3D)(GLenum target, GLint level, GLint xof
KEYWORD1 void KEYWORD2 NAME(BlendColor)(GLclampf r, GLclampf g, GLclampf b, GLclampf a)
{
- DISPATCH(BlendColor, (r, g, b, a), (";\n"));
+ DISPATCH(BlendColor, (r, g, b, a), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(BlendEquation)(GLenum mode)
{
- DISPATCH(BlendEquation, (mode), (";\n"));
+ DISPATCH(BlendEquation, (mode), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ColorSubTable)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data)
{
- DISPATCH(ColorSubTable, (target, start, count, format, type, data), (";\n"));
+ DISPATCH(ColorSubTable, (target, start, count, format, type, data), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ColorTable)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
{
- DISPATCH(ColorTable, (target, internalformat, width, format, type, table), (";\n"));
+ DISPATCH(ColorTable, (target, internalformat, width, format, type, table), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ColorTableParameterfv)(GLenum target, GLenum pname, const GLfloat *params)
{
- DISPATCH(ColorTableParameterfv, (target, pname, params), (";\n"));
+ DISPATCH(ColorTableParameterfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ColorTableParameteriv)(GLenum target, GLenum pname, const GLint *params)
{
- DISPATCH(ColorTableParameteriv, (target, pname, params), (";\n"));
+ DISPATCH(ColorTableParameteriv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionFilter1D)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)
{
- DISPATCH(ConvolutionFilter1D, (target, internalformat, width, format, type, image), (";\n"));
+ DISPATCH(ConvolutionFilter1D, (target, internalformat, width, format, type, image), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionFilter2D)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)
{
- DISPATCH(ConvolutionFilter2D, (target, internalformat, width, height, format, type, image), (";\n"));
+ DISPATCH(ConvolutionFilter2D, (target, internalformat, width, height, format, type, image), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameterf)(GLenum target, GLenum pname, GLfloat params)
{
- DISPATCH(ConvolutionParameterf, (target, pname, params), (";\n"));
+ DISPATCH(ConvolutionParameterf, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameterfv)(GLenum target, GLenum pname, const GLfloat *params)
{
- DISPATCH(ConvolutionParameterfv, (target, pname, params), (";\n"));
+ DISPATCH(ConvolutionParameterfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameteri)(GLenum target, GLenum pname, GLint params)
{
- DISPATCH(ConvolutionParameteri, (target, pname, params), (";\n"));
+ DISPATCH(ConvolutionParameteri, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameteriv)(GLenum target, GLenum pname, const GLint *params)
{
- DISPATCH(ConvolutionParameteriv, (target, pname, params), (";\n"));
+ DISPATCH(ConvolutionParameteriv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyColorSubTable)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyColorSubTable, (target, start, x, y, width), (";\n"));
+ DISPATCH(CopyColorSubTable, (target, start, x, y, width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyColorTable)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyColorTable, (target, internalformat, x, y, width), (";\n"));
+ DISPATCH(CopyColorTable, (target, internalformat, x, y, width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyConvolutionFilter1D)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyConvolutionFilter1D, (target, internalformat, x, y, width), (";\n"));
+ DISPATCH(CopyConvolutionFilter1D, (target, internalformat, x, y, width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyConvolutionFilter2D)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(CopyConvolutionFilter2D, (target, internalformat, x, y, width, height), (";\n"));
+ DISPATCH(CopyConvolutionFilter2D, (target, internalformat, x, y, width, height), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTable)(GLenum target, GLenum format, GLenum type, GLvoid *table)
{
- DISPATCH(GetColorTable, (target, format, type, table), (";\n"));
+ DISPATCH(GetColorTable, (target, format, type, table), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTableParameterfv)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetColorTableParameterfv, (target, pname, params), (";\n"));
+ DISPATCH(GetColorTableParameterfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTableParameteriv)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetColorTableParameteriv, (target, pname, params), (";\n"));
+ DISPATCH(GetColorTableParameteriv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetConvolutionFilter)(GLenum target, GLenum format, GLenum type, GLvoid *image)
{
- DISPATCH(GetConvolutionFilter, (target, format, type, image), (";\n"));
+ DISPATCH(GetConvolutionFilter, (target, format, type, image), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetConvolutionParameterfv)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetConvolutionParameterfv, (target, pname, params), (";\n"));
+ DISPATCH(GetConvolutionParameterfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetConvolutionParameteriv)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetConvolutionParameteriv, (target, pname, params), (";\n"));
+ DISPATCH(GetConvolutionParameteriv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetHistogram)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
{
- DISPATCH(GetHistogram, (target, reset, format, type, values), (";\n"));
+ DISPATCH(GetHistogram, (target, reset, format, type, values), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetHistogramParameterfv)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetHistogramParameterfv, (target, pname, params), (";\n"));
+ DISPATCH(GetHistogramParameterfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetHistogramParameteriv)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetHistogramParameteriv, (target, pname, params), (";\n"));
+ DISPATCH(GetHistogramParameteriv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMinmax)(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values)
{
- DISPATCH(GetMinmax, (target, reset, format, types, values), (";\n"));
+ DISPATCH(GetMinmax, (target, reset, format, types, values), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMinmaxParameterfv)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetMinmaxParameterfv, (target, pname, params), (";\n"));
+ DISPATCH(GetMinmaxParameterfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMinmaxParameteriv)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetMinmaxParameteriv, (target, pname, params), (";\n"));
+ DISPATCH(GetMinmaxParameteriv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetSeparableFilter)(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span)
{
- DISPATCH(GetSeparableFilter, (target, format, type, row, column, span), (";\n"));
+ DISPATCH(GetSeparableFilter, (target, format, type, row, column, span), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Histogram)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
{
- DISPATCH(Histogram, (target, width, internalformat, sink), (";\n"));
+ DISPATCH(Histogram, (target, width, internalformat, sink), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(Minmax)(GLenum target, GLenum internalformat, GLboolean sink)
{
- DISPATCH(Minmax, (target, internalformat, sink), (";\n"));
+ DISPATCH(Minmax, (target, internalformat, sink), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ResetMinmax)(GLenum target)
{
- DISPATCH(ResetMinmax, (target), (";\n"));
+ DISPATCH(ResetMinmax, (target), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ResetHistogram)(GLenum target)
{
- DISPATCH(ResetHistogram, (target), (";\n"));
+ DISPATCH(ResetHistogram, (target), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(SeparableFilter2D)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
{
- DISPATCH(SeparableFilter2D, (target, internalformat, width, height, format, type, row, column), (";\n"));
+ DISPATCH(SeparableFilter2D, (target, internalformat, width, height, format, type, row, column), (F, ";"));
}
@@ -1977,172 +1983,172 @@ KEYWORD1 void KEYWORD2 NAME(SeparableFilter2D)(GLenum target, GLenum internalfor
KEYWORD1 void KEYWORD2 NAME(ActiveTextureARB)(GLenum texture)
{
- DISPATCH(ActiveTextureARB, (texture), (";\n"));
+ DISPATCH(ActiveTextureARB, (texture), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ClientActiveTextureARB)(GLenum texture)
{
- DISPATCH(ClientActiveTextureARB, (texture), (";\n"));
+ DISPATCH(ClientActiveTextureARB, (texture), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord1dARB)(GLenum target, GLdouble s)
{
- DISPATCH(MultiTexCoord1dARB, (target, s), (";\n"));
+ DISPATCH(MultiTexCoord1dARB, (target, s), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord1dvARB)(GLenum target, const GLdouble *v)
{
- DISPATCH(MultiTexCoord1dvARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord1dvARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord1fARB)(GLenum target, GLfloat s)
{
- DISPATCH(MultiTexCoord1fARB, (target, s), (";\n"));
+ DISPATCH(MultiTexCoord1fARB, (target, s), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord1fvARB)(GLenum target, const GLfloat *v)
{
- DISPATCH(MultiTexCoord1fvARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord1fvARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord1iARB)(GLenum target, GLint s)
{
- DISPATCH(MultiTexCoord1iARB, (target, s), (";\n"));
+ DISPATCH(MultiTexCoord1iARB, (target, s), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord1ivARB)(GLenum target, const GLint *v)
{
- DISPATCH(MultiTexCoord1ivARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord1ivARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord1sARB)(GLenum target, GLshort s)
{
- DISPATCH(MultiTexCoord1sARB, (target, s), (";\n"));
+ DISPATCH(MultiTexCoord1sARB, (target, s), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord1svARB)(GLenum target, const GLshort *v)
{
- DISPATCH(MultiTexCoord1svARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord1svARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord2dARB)(GLenum target, GLdouble s, GLdouble t)
{
- DISPATCH(MultiTexCoord2dARB, (target, s, t), (";\n"));
+ DISPATCH(MultiTexCoord2dARB, (target, s, t), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord2dvARB)(GLenum target, const GLdouble *v)
{
- DISPATCH(MultiTexCoord2dvARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord2dvARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord2fARB)(GLenum target, GLfloat s, GLfloat t)
{
- DISPATCH(MultiTexCoord2fARB, (target, s, t), (";\n"));
+ DISPATCH(MultiTexCoord2fARB, (target, s, t), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord2fvARB)(GLenum target, const GLfloat *v)
{
- DISPATCH(MultiTexCoord2fvARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord2fvARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord2iARB)(GLenum target, GLint s, GLint t)
{
- DISPATCH(MultiTexCoord2iARB, (target, s, t), (";\n"));
+ DISPATCH(MultiTexCoord2iARB, (target, s, t), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord2ivARB)(GLenum target, const GLint *v)
{
- DISPATCH(MultiTexCoord2ivARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord2ivARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord2sARB)(GLenum target, GLshort s, GLshort t)
{
- DISPATCH(MultiTexCoord2sARB, (target, s, t), (";\n"));
+ DISPATCH(MultiTexCoord2sARB, (target, s, t), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord2svARB)(GLenum target, const GLshort *v)
{
- DISPATCH(MultiTexCoord2svARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord2svARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord3dARB)(GLenum target, GLdouble s, GLdouble t, GLdouble r)
{
- DISPATCH(MultiTexCoord3dARB, (target, s, t, r), (";\n"));
+ DISPATCH(MultiTexCoord3dARB, (target, s, t, r), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord3dvARB)(GLenum target, const GLdouble *v)
{
- DISPATCH(MultiTexCoord3dvARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord3dvARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord3fARB)(GLenum target, GLfloat s, GLfloat t, GLfloat r)
{
- DISPATCH(MultiTexCoord3fARB, (target, s, t, r), (";\n"));
+ DISPATCH(MultiTexCoord3fARB, (target, s, t, r), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord3fvARB)(GLenum target, const GLfloat *v)
{
- DISPATCH(MultiTexCoord3fvARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord3fvARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord3iARB)(GLenum target, GLint s, GLint t, GLint r)
{
- DISPATCH(MultiTexCoord3iARB, (target, s, t, r), (";\n"));
+ DISPATCH(MultiTexCoord3iARB, (target, s, t, r), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord3ivARB)(GLenum target, const GLint *v)
{
- DISPATCH(MultiTexCoord3ivARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord3ivARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord3sARB)(GLenum target, GLshort s, GLshort t, GLshort r)
{
- DISPATCH(MultiTexCoord3sARB, (target, s, t, r), (";\n"));
+ DISPATCH(MultiTexCoord3sARB, (target, s, t, r), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord3svARB)(GLenum target, const GLshort *v)
{
- DISPATCH(MultiTexCoord3svARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord3svARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4dARB)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
{
- DISPATCH(MultiTexCoord4dARB, (target, s, t, r, q), (";\n"));
+ DISPATCH(MultiTexCoord4dARB, (target, s, t, r, q), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4dvARB)(GLenum target, const GLdouble *v)
{
- DISPATCH(MultiTexCoord4dvARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord4dvARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4fARB)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
{
- DISPATCH(MultiTexCoord4fARB, (target, s, t, r, q), (";\n"));
+ DISPATCH(MultiTexCoord4fARB, (target, s, t, r, q), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4fvARB)(GLenum target, const GLfloat *v)
{
- DISPATCH(MultiTexCoord4fvARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord4fvARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4iARB)(GLenum target, GLint s, GLint t, GLint r, GLint q)
{
- DISPATCH(MultiTexCoord4iARB, (target, s, t, r, q), (";\n"));
+ DISPATCH(MultiTexCoord4iARB, (target, s, t, r, q), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4ivARB)(GLenum target, const GLint *v)
{
- DISPATCH(MultiTexCoord4ivARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord4ivARB, (target, v), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4sARB)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
{
- DISPATCH(MultiTexCoord4sARB, (target, s, t, r, q), (";\n"));
+ DISPATCH(MultiTexCoord4sARB, (target, s, t, r, q), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4svARB)(GLenum target, const GLshort *v)
{
- DISPATCH(MultiTexCoord4svARB, (target, v), (";\n"));
+ DISPATCH(MultiTexCoord4svARB, (target, v), (F, ";"));
}
@@ -2155,7 +2161,7 @@ KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4svARB)(GLenum target, const GLshort *v
/* 2. GL_EXT_blend_color */
KEYWORD1 void KEYWORD2 NAME(BlendColorEXT)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
{
- DISPATCH(BlendColorEXT, (red, green, blue, alpha), (";\n"));
+ DISPATCH(BlendColorEXT, (red, green, blue, alpha), (F, ";"));
}
@@ -2163,26 +2169,26 @@ KEYWORD1 void KEYWORD2 NAME(BlendColorEXT)(GLclampf red, GLclampf green, GLclamp
/* 3. GL_EXT_polygon_offset */
KEYWORD1 void KEYWORD2 NAME(PolygonOffsetEXT)(GLfloat factor, GLfloat bias)
{
- DISPATCH(PolygonOffsetEXT, (factor, bias), (";\n"));
+ DISPATCH(PolygonOffsetEXT, (factor, bias), (F, ";"));
}
/* 6. GL_EXT_texture3D */
-KEYWORD1 void KEYWORD2 NAME(TexImage3DEXT)(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
+KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage3DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(TexImage3D, (target, level, internalFormat, width, height, depth, border, format, type, pixels), (";\n"));
+ DISPATCH(CopyTexSubImage3DEXT, (target, level, xoffset, yoffset, zoffset, x, y, width, height), (F, ";"));
}
-KEYWORD1 void KEYWORD2 NAME(TexSubImage3DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
+KEYWORD1 void KEYWORD2 NAME(TexImage3DEXT)(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexSubImage3D, (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels), (";\n"));
+ DISPATCH(TexImage3DEXT, (target, level, internalFormat, width, height, depth, border, format, type, pixels), (F, ";"));
}
-KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage3DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+KEYWORD1 void KEYWORD2 NAME(TexSubImage3DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(CopyTexSubImage3D, (target, level, xoffset, yoffset, zoffset, x, y, width, height), (";\n"));
+ DISPATCH(TexSubImage3DEXT, (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels), (F, ";"));
}
@@ -2191,12 +2197,12 @@ KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage3DEXT)(GLenum target, GLint level, GL
KEYWORD1 void KEYWORD2 NAME(GetTexFilterFuncSGIS)(GLenum target, GLenum filter, GLsizei n, const GLfloat *weights)
{
- DISPATCH(GetTexFilterFuncSGIS, (target, filter, n, weights), (";\n"));
+ DISPATCH(GetTexFilterFuncSGIS, (target, filter, n, weights), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexFilterFuncSGIS)(GLenum target, GLenum filter, GLfloat *weights)
{
- DISPATCH(TexFilterFuncSGIS, (target, filter, weights), (";\n"));
+ DISPATCH(TexFilterFuncSGIS, (target, filter, weights), (F, ";"));
}
@@ -2205,17 +2211,17 @@ KEYWORD1 void KEYWORD2 NAME(TexFilterFuncSGIS)(GLenum target, GLenum filter, GLf
KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage1DEXT)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyTexSubImage1DEXT, (target, level, xoffset, x, y, width), (";\n"));
+ DISPATCH(CopyTexSubImage1DEXT, (target, level, xoffset, x, y, width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexSubImage1DEXT)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexSubImage1DEXT, (target, level, xoffset, width, format, type, pixels), (";\n"));
+ DISPATCH(TexSubImage1DEXT, (target, level, xoffset, width, format, type, pixels), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexSubImage2DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexSubImage2DEXT, (target, level, xoffset, yoffset, width, height, format, type, pixels), (";\n"));
+ DISPATCH(TexSubImage2DEXT, (target, level, xoffset, yoffset, width, height, format, type, pixels), (F, ";"));
}
@@ -2223,18 +2229,18 @@ KEYWORD1 void KEYWORD2 NAME(TexSubImage2DEXT)(GLenum target, GLint level, GLint
KEYWORD1 void KEYWORD2 NAME(CopyTexImage1DEXT)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
{
- DISPATCH(CopyTexImage1DEXT, (target, level, internalformat, x, y, width, border), (";\n"));
+ DISPATCH(CopyTexImage1DEXT, (target, level, internalformat, x, y, width, border), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyTexImage2DEXT)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
{
- DISPATCH(CopyTexImage2DEXT, (target, level, internalformat, x, y, width, height, border), (";\n"));
+ DISPATCH(CopyTexImage2DEXT, (target, level, internalformat, x, y, width, height, border), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage2DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(CopyTexSubImage2DEXT, (target, level, xoffset, yoffset, x, y, width, height), (";\n"));
+ DISPATCH(CopyTexSubImage2DEXT, (target, level, xoffset, yoffset, x, y, width, height), (F, ";"));
}
@@ -2242,52 +2248,52 @@ KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage2DEXT)(GLenum target, GLint level, GL
/* 11. GL_EXT_histogram */
KEYWORD1 void KEYWORD2 NAME(GetHistogramEXT)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
{
- DISPATCH(GetHistogramEXT, (target, reset, format, type, values), (";\n"));
+ DISPATCH(GetHistogramEXT, (target, reset, format, type, values), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetHistogramParameterfvEXT)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetHistogramParameterfvEXT, (target, pname, params), (";\n"));
+ DISPATCH(GetHistogramParameterfvEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetHistogramParameterivEXT)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetHistogramParameterivEXT, (target, pname, params), (";\n"));
+ DISPATCH(GetHistogramParameterivEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMinmaxEXT)(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values)
{
- DISPATCH(GetMinmaxEXT, (target, reset, format, types, values), (";\n"));
+ DISPATCH(GetMinmaxEXT, (target, reset, format, types, values), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMinmaxParameterfvEXT)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetMinmaxParameterfvEXT, (target, pname, params), (";\n"));
+ DISPATCH(GetMinmaxParameterfvEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetMinmaxParameterivEXT)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetMinmaxParameterivEXT, (target, pname, params), (";\n"));
+ DISPATCH(GetMinmaxParameterivEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(HistogramEXT)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
{
- DISPATCH(HistogramEXT, (target, width, internalformat, sink), (";\n"));
+ DISPATCH(HistogramEXT, (target, width, internalformat, sink), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MinmaxEXT)(GLenum target, GLenum internalformat, GLboolean sink)
{
- DISPATCH(MinmaxEXT, (target, internalformat, sink), (";\n"));
+ DISPATCH(MinmaxEXT, (target, internalformat, sink), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ResetHistogramEXT)(GLenum target)
{
- DISPATCH(ResetHistogramEXT, (target), (";\n"));
+ DISPATCH(ResetHistogramEXT, (target), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ResetMinmaxEXT)(GLenum target)
{
- DISPATCH(ResetMinmaxEXT, (target), (";\n"));
+ DISPATCH(ResetMinmaxEXT, (target), (F, ";"));
}
@@ -2296,67 +2302,67 @@ KEYWORD1 void KEYWORD2 NAME(ResetMinmaxEXT)(GLenum target)
KEYWORD1 void KEYWORD2 NAME(ConvolutionFilter1DEXT)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)
{
- DISPATCH(ConvolutionFilter1DEXT, (target, internalformat, width, format, type, image), (";\n"));
+ DISPATCH(ConvolutionFilter1DEXT, (target, internalformat, width, format, type, image), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionFilter2DEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)
{
- DISPATCH(ConvolutionFilter2DEXT, (target, internalformat, width, height, format, type, image), (";\n"));
+ DISPATCH(ConvolutionFilter2DEXT, (target, internalformat, width, height, format, type, image), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameterfEXT)(GLenum target, GLenum pname, GLfloat params)
{
- DISPATCH(ConvolutionParameterfEXT, (target, pname, params), (";\n"));
+ DISPATCH(ConvolutionParameterfEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameterfvEXT)(GLenum target, GLenum pname, const GLfloat *params)
{
- DISPATCH(ConvolutionParameterfvEXT, (target, pname, params), (";\n"));
+ DISPATCH(ConvolutionParameterfvEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameteriEXT)(GLenum target, GLenum pname, GLint params)
{
- DISPATCH(ConvolutionParameteriEXT, (target, pname, params), (";\n"));
+ DISPATCH(ConvolutionParameteriEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameterivEXT)(GLenum target, GLenum pname, const GLint *params)
{
- DISPATCH(ConvolutionParameterivEXT, (target, pname, params), (";\n"));
+ DISPATCH(ConvolutionParameterivEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyConvolutionFilter1DEXT)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyConvolutionFilter1DEXT, (target, internalformat, x, y, width), (";\n"));
+ DISPATCH(CopyConvolutionFilter1DEXT, (target, internalformat, x, y, width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyConvolutionFilter2DEXT)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(CopyConvolutionFilter2DEXT, (target, internalformat, x, y, width, height), (";\n"));
+ DISPATCH(CopyConvolutionFilter2DEXT, (target, internalformat, x, y, width, height), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetConvolutionFilterEXT)(GLenum target, GLenum format, GLenum type, GLvoid *image)
{
- DISPATCH(GetConvolutionFilterEXT, (target, format, type, image), (";\n"));
+ DISPATCH(GetConvolutionFilterEXT, (target, format, type, image), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetConvolutionParameterfvEXT)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetConvolutionParameterfvEXT, (target, pname, params), (";\n"));
+ DISPATCH(GetConvolutionParameterfvEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetConvolutionParameterivEXT)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetConvolutionParameterivEXT, (target, pname, params), (";\n"));
+ DISPATCH(GetConvolutionParameterivEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetSeparableFilterEXT)(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span)
{
- DISPATCH(GetSeparableFilterEXT, (target, format, type, row, column, span), (";\n"));
+ DISPATCH(GetSeparableFilterEXT, (target, format, type, row, column, span), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(SeparableFilter2DEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
{
- DISPATCH(SeparableFilter2DEXT, (target, internalformat, width, height, format, type, row, column), (";\n"));
+ DISPATCH(SeparableFilter2DEXT, (target, internalformat, width, height, format, type, row, column), (F, ";"));
}
@@ -2365,36 +2371,74 @@ KEYWORD1 void KEYWORD2 NAME(SeparableFilter2DEXT)(GLenum target, GLenum internal
KEYWORD1 void KEYWORD2 NAME(ColorTableParameterfvSGI)(GLenum target, GLenum pname, const GLfloat *params)
{
- DISPATCH(ColorTableParameterfvSGI, (target, pname, params), (";\n"));
+ DISPATCH(ColorTableParameterfvSGI, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ColorTableParameterivSGI)(GLenum target, GLenum pname, const GLint *params)
{
- DISPATCH(ColorTableParameterivSGI, (target, pname, params), (";\n"));
+ DISPATCH(ColorTableParameterivSGI, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ColorTableSGI)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
{
- DISPATCH(ColorTableSGI, (target, internalformat, width, format, type, table), (";\n"));
+ DISPATCH(ColorTableSGI, (target, internalformat, width, format, type, table), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyColorTableSGI)(GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyColorTableSGI, (target, internalFormat, x, y, width), (";\n"));
+ DISPATCH(CopyColorTableSGI, (target, internalFormat, x, y, width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTableSGI)(GLenum target, GLenum format, GLenum type, GLvoid *table)
{
- DISPATCH(GetColorTableSGI, (target, format, type, table), (";\n"));
+ DISPATCH(GetColorTableSGI, (target, format, type, table), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTableParameterfvSGI)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetColorTableParameterfvSGI, (target, pname, params), (";\n"));
+ DISPATCH(GetColorTableParameterfvSGI, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTableParameterivSGI)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetColorTableParameterivSGI, (target, pname, params), (";\n"));
+ DISPATCH(GetColorTableParameterivSGI, (target, pname, params), (F, ";"));
+}
+
+
+
+/* 15. GL_SGIS_pixel_texture */
+
+KEYWORD1 void KEYWORD2 NAME(PixelTexGenParameterfSGIS)(GLenum target, GLfloat value)
+{
+ DISPATCH(PixelTexGenParameterfSGIS, (target, value), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(PixelTexGenParameteriSGIS)(GLenum target, GLint value)
+{
+ DISPATCH(PixelTexGenParameteriSGIS, (target, value), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetPixelTexGenParameterfvSGIS)(GLenum target, GLfloat *value)
+{
+ DISPATCH(GetPixelTexGenParameterfvSGIS, (target, value), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetPixelTexGenParameterivSGIS)(GLenum target, GLint *value)
+{
+ DISPATCH(GetPixelTexGenParameterivSGIS, (target, value), (F, ";"));
+}
+
+
+
+/* 16. GL_SGIS_texture4D */
+
+KEYWORD1 void KEYWORD2 NAME(TexImage4DSGIS)(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels)
+{
+ DISPATCH(TexImage4DSGIS, (target, level, internalFormat, width, height, depth, extent, border, format, type, pixels), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(TexSubImage4DSGIS)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void *pixels)
+{
+ DISPATCH(TexSubImage4DSGIS, (target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, extent, format, type, pixels), (F, ";"));
}
@@ -2403,89 +2447,150 @@ KEYWORD1 void KEYWORD2 NAME(GetColorTableParameterivSGI)(GLenum target, GLenum p
KEYWORD1 void KEYWORD2 NAME(GenTexturesEXT)(GLsizei n, GLuint *textures)
{
- DISPATCH(GenTextures, (n, textures), (";\n"));
+ DISPATCH(GenTextures, (n, textures), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(DeleteTexturesEXT)(GLsizei n, const GLuint *texture)
{
- DISPATCH(DeleteTextures, (n, texture), (";\n"));
+ DISPATCH(DeleteTextures, (n, texture), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(BindTextureEXT)(GLenum target, GLuint texture)
{
- DISPATCH(BindTexture, (target, texture), (";\n"));
+ DISPATCH(BindTexture, (target, texture), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PrioritizeTexturesEXT)(GLsizei n, const GLuint *textures, const GLclampf *priorities)
{
- DISPATCH(PrioritizeTextures, (n, textures, priorities), (";\n"));
+ DISPATCH(PrioritizeTextures, (n, textures, priorities), (F, ";"));
}
KEYWORD1 GLboolean KEYWORD2 NAME(AreTexturesResidentEXT)(GLsizei n, const GLuint *textures, GLboolean *residences)
{
- RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), ("glAreTexturesResidentEXT(%d %p %p);\n", n, textures, residences));
+ RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), (F, "glAreTexturesResidentEXT(%d %p %p);", n, textures, residences));
}
KEYWORD1 GLboolean KEYWORD2 NAME(IsTextureEXT)(GLuint texture)
{
- RETURN_DISPATCH(IsTexture, (texture), ("glIsTextureEXT(%u);\n", texture));
+ RETURN_DISPATCH(IsTexture, (texture), (F, "glIsTextureEXT(%u);", texture));
}
-/* 37. GL_EXT_blend_minmax */
-KEYWORD1 void KEYWORD2 NAME(BlendEquationEXT)(GLenum mode)
+/* 21. GL_SGIS_detail_texture */
+
+KEYWORD1 void KEYWORD2 NAME(DetailTexFuncSGIS)(GLenum target, GLsizei n, const GLfloat *points)
+{
+ DISPATCH(DetailTexFuncSGIS, (target, n, points), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetDetailTexFuncSGIS)(GLenum target, GLfloat *points)
+{
+ DISPATCH(GetDetailTexFuncSGIS, (target, points), (F, ";"));
+}
+
+
+/* 22. GL_SGIS_sharpen_texture */
+
+KEYWORD1 void KEYWORD2 NAME(GetSharpenTexFuncSGIS)(GLenum target, GLfloat *points)
+{
+ DISPATCH(GetSharpenTexFuncSGIS, (target, points), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(SharpenTexFuncSGIS)(GLenum target, GLsizei n, const GLfloat *points)
{
- DISPATCH(BlendEquationEXT, (mode), (";\n"));
+ DISPATCH(SharpenTexFuncSGIS, (target, n, points), (F, ";"));
}
+/* 25. GL_SGIS_multisample */
+
+KEYWORD1 void KEYWORD2 NAME(SampleMaskSGIS)(GLclampf value, GLboolean invert)
+{
+ DISPATCH(SampleMaskSGIS, (value, invert), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(SamplePatternSGIS)(GLenum pattern)
+{
+ DISPATCH(SamplePatternSGIS, (pattern), (F, ";"));
+}
+
/* 30. GL_EXT_vertex_array */
KEYWORD1 void KEYWORD2 NAME(VertexPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr)
{
- DISPATCH(VertexPointer, (size, type, stride, ptr), (";\n"));
+ DISPATCH(VertexPointer, (size, type, stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(NormalPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr)
{
- DISPATCH(NormalPointer, (type, stride, ptr), (";\n"));
+ DISPATCH(NormalPointer, (type, stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ColorPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr)
{
- DISPATCH(ColorPointer, (size, type, stride, ptr), (";\n"));
+ DISPATCH(ColorPointer, (size, type, stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(IndexPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr)
{
- DISPATCH(IndexPointer, (type, stride, ptr), (";\n"));
+ DISPATCH(IndexPointer, (type, stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexCoordPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr)
{
- DISPATCH(ColorPointer, (size, type, stride, ptr), (";\n"));
+ DISPATCH(ColorPointer, (size, type, stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(EdgeFlagPointerEXT)(GLsizei stride, GLsizei count, const GLboolean *ptr)
{
- DISPATCH(EdgeFlagPointer, (stride, ptr), (";\n"));
+ DISPATCH(EdgeFlagPointer, (stride, ptr), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetPointervEXT)(GLenum pname, void **params)
{
- DISPATCH(GetPointerv, (pname, params), (";\n"));
+ DISPATCH(GetPointerv, (pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ArrayElementEXT)(GLint i)
{
- DISPATCH(ArrayElement, (i), (";\n"));
+ DISPATCH(ArrayElement, (i), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(DrawArraysEXT)(GLenum mode, GLint first, GLsizei count)
{
- DISPATCH(DrawArrays, (mode, first, count), (";\n"));
+ DISPATCH(DrawArrays, (mode, first, count), (F, ";"));
+}
+
+
+/* 37. GL_EXT_blend_minmax */
+KEYWORD1 void KEYWORD2 NAME(BlendEquationEXT)(GLenum mode)
+{
+ DISPATCH(BlendEquationEXT, (mode), (F, "glBlendEquationEXT(0x%x);", mode));
+}
+
+
+/* 52. GL_SGIX_sprite */
+
+KEYWORD1 void KEYWORD2 NAME(SpriteParameterfSGIX)(GLenum pname, GLfloat param)
+{
+ DISPATCH(SpriteParameterfSGIX, (pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(SpriteParameterfvSGIX)(GLenum pname, const GLfloat *param)
+{
+ DISPATCH(SpriteParameterfvSGIX, (pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(SpriteParameteriSGIX)(GLenum pname, GLint param)
+{
+ DISPATCH(SpriteParameteriSGIX, (pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(SpriteParameterivSGIX)(GLenum pname, const GLint *param)
+{
+ DISPATCH(SpriteParameterivSGIX, (pname, param), (F, ";"));
}
@@ -2494,62 +2599,219 @@ KEYWORD1 void KEYWORD2 NAME(DrawArraysEXT)(GLenum mode, GLint first, GLsizei cou
KEYWORD1 void KEYWORD2 NAME(PointParameterfEXT)(GLenum target, GLfloat param)
{
- DISPATCH(PointParameterfEXT, (target, param), (";\n"));
+ DISPATCH(PointParameterfEXT, (target, param), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(PointParameterfvEXT)(GLenum target, const GLfloat *param)
{
- DISPATCH(PointParameterfvEXT, (target, param), (";\n"));
+ DISPATCH(PointParameterfvEXT, (target, param), (F, ";"));
+}
+
+
+
+/* 55. GL_SGIX_instruments */
+KEYWORD1 GLint KEYWORD2 NAME(GetInstrumentsSGIX)(void)
+{
+ RETURN_DISPATCH(GetInstrumentsSGIX, (), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(InstrumentsBufferSGIX)(GLsizei size, GLint *buf)
+{
+ DISPATCH(InstrumentsBufferSGIX, (size, buf), (F, ";"));
+}
+
+KEYWORD1 GLint KEYWORD2 NAME(PollInstrumentsSGIX)(GLint *markerp)
+{
+ RETURN_DISPATCH(PollInstrumentsSGIX, (markerp), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(ReadInstrumentsSGIX)(GLint marker)
+{
+ DISPATCH(ReadInstrumentsSGIX, (marker), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(StartInstrumentsSGIX)(void)
+{
+ DISPATCH(StartInstrumentsSGIX, (), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(StopInstrumentsSGIX)(GLint marker)
+{
+ DISPATCH(StopInstrumentsSGIX, (marker), (F, ";"));
+}
+
+
+
+/* 57. GL_SGIX_framezoom */
+KEYWORD1 void KEYWORD2 NAME(FrameZoomSGIX)(GLint factor)
+{
+ DISPATCH(FrameZoomSGIX, (factor), (F, ";"));
+}
+
+
+/* 60. GL_SGIX_reference_plane */
+KEYWORD1 void KEYWORD2 NAME(ReferencePlaneSGIX)(const GLdouble *plane)
+{
+ DISPATCH(ReferencePlaneSGIX, (plane), (F, ";"));
+}
+
+
+/* 61. GL_SGIX_flush_raster */
+KEYWORD1 void KEYWORD2 NAME(FlushRasterSGIX)(void)
+{
+ DISPATCH(FlushRasterSGIX, (), (F, ";"));
+}
+
+
+
+/* 66. GL_HP_image_transform */
+KEYWORD1 void KEYWORD2 NAME(GetImageTransformParameterfvHP)(GLenum target, GLenum pname, GLfloat *param)
+{
+ DISPATCH(GetImageTransformParameterfvHP, (target, pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetImageTransformParameterivHP)(GLenum target, GLenum pname, GLint *param)
+{
+ DISPATCH(GetImageTransformParameterivHP, (target, pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(ImageTransformParameterfHP)(GLenum target, GLenum pname, const GLfloat param)
+{
+ DISPATCH(ImageTransformParameterfHP, (target, pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(ImageTransformParameterfvHP)(GLenum target, GLenum pname, const GLfloat *param)
+{
+ DISPATCH(ImageTransformParameterfvHP, (target, pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(ImageTransformParameteriHP)(GLenum target, GLenum pname, const GLint param)
+{
+ DISPATCH(ImageTransformParameteriHP, (target, pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(ImageTransformParameterivHP)(GLenum target, GLenum pname, const GLint *param)
+{
+ DISPATCH(ImageTransformParameterivHP, (target, pname, param), (F, ";"));
+}
+
+
+/* 74. GL_EXT_color_subtable */
+KEYWORD1 void KEYWORD2 NAME(ColorSubTableEXT)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data)
+{
+ DISPATCH(ColorSubTableEXT, (target, start, count, format, type, data), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(CopyColorSubTableEXT)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ DISPATCH(CopyColorSubTableEXT, (target, start, x, y, width), (F, ";"));
}
+
/* 77. GL_PGI_misc_hints */
KEYWORD1 void KEYWORD2 NAME(HintPGI)(GLenum target, GLint mode)
{
- DISPATCH(HintPGI, (target, mode), (";\n"));
+ DISPATCH(HintPGI, (target, mode), (F, ";"));
}
+
/* 78. GL_EXT_paletted_texture */
KEYWORD1 void KEYWORD2 NAME(ColorTableEXT)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
{
- DISPATCH(ColorTableEXT, (target, internalformat, width, format, type, table), (";\n"));
-}
-
-KEYWORD1 void KEYWORD2 NAME(ColorSubTableEXT)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data)
-{
- DISPATCH(ColorSubTableEXT, (target, start, count, format, type, data), (";\n"));
+ DISPATCH(ColorTableEXT, (target, internalformat, width, format, type, table), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTableEXT)(GLenum target, GLenum format, GLenum type, GLvoid *table)
{
- DISPATCH(GetColorTableEXT, (target, format, type, table), (";\n"));
+ DISPATCH(GetColorTableEXT, (target, format, type, table), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTableParameterfvEXT)(GLenum target, GLenum pname, GLfloat *params)
{
- DISPATCH(GetColorTableParameterfvEXT, (target, pname, params), (";\n"));
+ DISPATCH(GetColorTableParameterfvEXT, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTableParameterivEXT)(GLenum target, GLenum pname, GLint *params)
{
- DISPATCH(GetColorTableParameterivEXT, (target, pname, params), (";\n"));
+ DISPATCH(GetColorTableParameterivEXT, (target, pname, params), (F, ";"));
+}
+
+
+
+
+/* 80. GL_SGIX_list_priority */
+KEYWORD1 void KEYWORD2 NAME(GetListParameterfvSGIX)(GLuint list, GLenum name, GLfloat *param)
+{
+ DISPATCH(GetListParameterfvSGIX, (list, name, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetListParameterivSGIX)(GLuint list, GLenum name, GLint *param)
+{
+ DISPATCH(GetListParameterivSGIX, (list, name, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(ListParameterfSGIX)(GLuint list, GLenum name, GLfloat param)
+{
+ DISPATCH(ListParameterfSGIX, (list, name, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(ListParameterfvSGIX)(GLuint list, GLenum name, const GLfloat *param)
+{
+ DISPATCH(ListParameterfvSGIX, (list, name, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(ListParameteriSGIX)(GLuint list, GLenum name, GLint param)
+{
+ DISPATCH(ListParameteriSGIX, (list, name, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(ListParameterivSGIX)(GLuint list, GLenum name, const GLint *param)
+{
+ DISPATCH(ListParameterivSGIX, (list, name, param), (F, ";"));
+}
+
+
+
+/* 94. GL_EXT_index_material */
+KEYWORD1 void KEYWORD2 NAME(IndexMaterialEXT)(GLenum face, GLenum mode)
+{
+ DISPATCH(IndexMaterialEXT, (face, mode), (F, ";"));
}
+/* 95. GL_EXT_index_func */
+KEYWORD1 void KEYWORD2 NAME(IndexFuncEXT)(GLenum func, GLfloat ref)
+{
+ DISPATCH(IndexFuncEXT, (func, ref), (F, ";"));
+}
+
/* 97. GL_EXT_compiled_vertex_array */
KEYWORD1 void KEYWORD2 NAME(LockArraysEXT)(GLint first, GLsizei count)
{
- DISPATCH(LockArraysEXT, (first, count), (";\n"));
+ DISPATCH(LockArraysEXT, (first, count), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(UnlockArraysEXT)(void)
{
- DISPATCH(UnlockArraysEXT, (), (";\n"));
+ DISPATCH(UnlockArraysEXT, (), (F, ";"));
+}
+
+
+/* 98. GL_EXT_cull_vertex */
+KEYWORD1 void KEYWORD2 NAME(CullParameterfvEXT)(GLenum pname, const GLfloat *params)
+{
+ DISPATCH(CullParameterfvEXT, (pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(CullParameterdvEXT)(GLenum pname, const GLdouble *params)
+{
+ DISPATCH(CullParameterdvEXT, (pname, params), (F, ";"));
}
@@ -2557,7 +2819,7 @@ KEYWORD1 void KEYWORD2 NAME(UnlockArraysEXT)(void)
/* 173. GL_EXT/INGR_blend_func_separate */
KEYWORD1 void KEYWORD2 NAME(BlendFuncSeparateINGR)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
{
- DISPATCH(BlendFuncSeparateINGR, (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha), (";\n"));
+ DISPATCH(BlendFuncSeparateINGR, (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha), (F, ";"));
}
@@ -2566,122 +2828,122 @@ KEYWORD1 void KEYWORD2 NAME(BlendFuncSeparateINGR)(GLenum sfactorRGB, GLenum dfa
KEYWORD1 void KEYWORD2 NAME(WindowPos2iMESA)(GLint x, GLint y)
{
- DISPATCH(WindowPos4fMESA, (x, y, 0, 1), (";\n"));
+ DISPATCH(WindowPos2iMESA, (x, y), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2sMESA)(GLshort x, GLshort y)
{
- DISPATCH(WindowPos4fMESA, (x, y, 0, 1), (";\n"));
+ DISPATCH(WindowPos2sMESA, (x, y), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2fMESA)(GLfloat x, GLfloat y)
{
- DISPATCH(WindowPos4fMESA, (x, y, 0, 1), (";\n"));
+ DISPATCH(WindowPos2fMESA, (x, y), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2dMESA)(GLdouble x, GLdouble y)
{
- DISPATCH(WindowPos4fMESA, (x, y, 0, 1), (";\n"));
+ DISPATCH(WindowPos2dMESA, (x, y), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2ivMESA)(const GLint *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], 0, 1), (";\n"));
+ DISPATCH(WindowPos2ivMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2svMESA)(const GLshort *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], 0, 1), (";\n"));
+ DISPATCH(WindowPos2svMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2fvMESA)(const GLfloat *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], 0, 1), (";\n"));
+ DISPATCH(WindowPos2fvMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos2dvMESA)(const GLdouble *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], 0, 1), (";\n"));
+ DISPATCH(WindowPos2dvMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3iMESA)(GLint x, GLint y, GLint z)
{
- DISPATCH(WindowPos4fMESA, (x, y, z, 1), (";\n"));
+ DISPATCH(WindowPos3iMESA, (x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3sMESA)(GLshort x, GLshort y, GLshort z)
{
- DISPATCH(WindowPos4fMESA, (x, y, z, 1), (";\n"));
+ DISPATCH(WindowPos3sMESA, (x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3fMESA)(GLfloat x, GLfloat y, GLfloat z)
{
- DISPATCH(WindowPos4fMESA, (x, y, z, 1), (";\n"));
+ DISPATCH(WindowPos3fMESA, (x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3dMESA)(GLdouble x, GLdouble y, GLdouble z)
{
- DISPATCH(WindowPos4fMESA, (x, y, z, 1), (";\n"));
+ DISPATCH(WindowPos3dMESA, (x, y, z), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3ivMESA)(const GLint *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], p[2], 1.0), (";\n"));
+ DISPATCH(WindowPos3ivMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3svMESA)(const GLshort *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], p[2], 1.0), (";\n"));
+ DISPATCH(WindowPos3svMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3fvMESA)(const GLfloat *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], p[2], 1.0), (";\n"));
+ DISPATCH(WindowPos3fvMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos3dvMESA)(const GLdouble *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], p[2], 1.0), (";\n"));
+ DISPATCH(WindowPos3dvMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos4iMESA)(GLint x, GLint y, GLint z, GLint w)
{
- DISPATCH(WindowPos4fMESA, (x, y, z, w), (";\n"));
+ DISPATCH(WindowPos4iMESA, (x, y, z, w), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos4sMESA)(GLshort x, GLshort y, GLshort z, GLshort w)
{
- DISPATCH(WindowPos4fMESA, (x, y, z, w), (";\n"));
+ DISPATCH(WindowPos4sMESA, (x, y, z, w), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos4fMESA)(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
{
- DISPATCH(WindowPos4fMESA, (x, y, z, w), (";\n"));
+ DISPATCH(WindowPos4fMESA, (x, y, z, w), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos4dMESA)(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
{
- DISPATCH(WindowPos4fMESA, (x, y, z, w), (";\n"));
+ DISPATCH(WindowPos4dMESA, (x, y, z, w), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos4ivMESA)(const GLint *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], p[2], p[3]), (";\n"));
+ DISPATCH(WindowPos4ivMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos4svMESA)(const GLshort *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], p[2], p[3]), (";\n"));
+ DISPATCH(WindowPos4svMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos4fvMESA)(const GLfloat *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], p[2], p[3]), (";\n"));
+ DISPATCH(WindowPos4fvMESA, (p), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(WindowPos4dvMESA)(const GLdouble *p)
{
- DISPATCH(WindowPos4fMESA, (p[0], p[1], p[2], p[3]), (";\n"));
+ DISPATCH(WindowPos4dvMESA, (p), (F, ";"));
}
@@ -2689,7 +2951,7 @@ KEYWORD1 void KEYWORD2 NAME(WindowPos4dvMESA)(const GLdouble *p)
/* GL_MESA_resize_buffers */
KEYWORD1 void KEYWORD2 NAME(ResizeBuffersMESA)(void)
{
- DISPATCH(ResizeBuffersMESA, (), (";\n"));
+ DISPATCH(ResizeBuffersMESA, (), (F, "glResizeBuffersMESA();"));
}
@@ -2697,22 +2959,22 @@ KEYWORD1 void KEYWORD2 NAME(ResizeBuffersMESA)(void)
/* GL_ARB_transpose_matrix */
KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixdARB)(const GLdouble m[16])
{
- DISPATCH(LoadTransposeMatrixdARB, (m), (";\n"));
+ DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixARB(%p);", m));
}
KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixfARB)(const GLfloat m[16])
{
- DISPATCH(LoadTransposeMatrixfARB, (m), (";\n"));
+ DISPATCH(LoadTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", m));
}
KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixdARB)(const GLdouble m[16])
{
- DISPATCH(MultTransposeMatrixdARB, (m), (";\n"));
+ DISPATCH(MultTransposeMatrixdARB, (m), (F, "glMultTransposeMatrixfARB(%p)", m));
}
KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixfARB)(const GLfloat m[16])
{
- DISPATCH(MultTransposeMatrixfARB, (m), (";\n"));
+ DISPATCH(MultTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", m));
}
diff --git a/xc/extras/Mesa/src/glheader.h b/xc/extras/Mesa/src/glheader.h
index bf88ab69d..f9bf56b8a 100644
--- a/xc/extras/Mesa/src/glheader.h
+++ b/xc/extras/Mesa/src/glheader.h
@@ -1,10 +1,10 @@
-/* $Id: glheader.h,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: glheader.h,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -47,13 +47,14 @@
#else
#include <assert.h>
#include <ctype.h>
-#include <float.h>
#include <math.h>
#include <limits.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#endif
+#include <float.h>
+
#ifdef HAVE_CONFIG_H
#include "conf.h"
diff --git a/xc/extras/Mesa/src/glthread.c b/xc/extras/Mesa/src/glthread.c
index ade862e5c..ca0f8ee1f 100644
--- a/xc/extras/Mesa/src/glthread.c
+++ b/xc/extras/Mesa/src/glthread.c
@@ -1,4 +1,4 @@
-/* $Id: glthread.c,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: glthread.c,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -26,14 +26,6 @@
/*
- * Thread support for gl dispatch.
- *
- * Initial version by John Stone (j.stone@acm.org) (johns@cs.umr.edu)
- * and Christoph Poliwoda (poliwoda@volumegraphics.com)
- *
- * Revised by Keith Whitwell
- * Adapted for new gl dispatcher by Brian Paul
- *
* XXX There's probably some work to do in order to make this file
* truly reusable outside of Mesa. First, the glheader.h include must go.
*/
@@ -43,18 +35,16 @@
#include "all.h"
#else
#include "glheader.h"
+#include "glthread.h"
#endif
-
/*
* This file should still compile even when THREADS is not defined.
* This is to make things easier to deal with on the makefile scene..
*/
#ifdef THREADS
#include <errno.h>
-#include "glthread.h"
-
/*
* Error messages
@@ -65,10 +55,11 @@
/*
- * magic number for win32 and solaris threads equivalents of pthread_once
- * This could probably be done better, but we haven't figured out how yet.
+ * Magic number to determine if a TSD object has been initialized.
+ * Kind of a hack but there doesn't appear to be a better cross-platform
+ * solution.
*/
-#define INITFUNC_CALLED_MAGIC 0xff8adc98
+#define INIT_MAGIC 0xff8adc98
@@ -95,20 +86,26 @@ _glthread_InitTSD(_glthread_TSD *tsd)
perror(INIT_TSD_ERROR);
exit(-1);
}
+ tsd->initMagic = INIT_MAGIC;
}
void *
_glthread_GetTSD(_glthread_TSD *tsd)
{
+ if (tsd->initMagic != INIT_MAGIC) {
+ _glthread_InitTSD(tsd);
+ }
return pthread_getspecific(tsd->key);
}
void
-_glthread_SetTSD(_glthread_TSD *tsd, void *ptr, void (*initfunc)(void))
+_glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
{
- pthread_once(&tsd->once, initfunc);
+ if (tsd->initMagic != INIT_MAGIC) {
+ _glthread_InitTSD(tsd);
+ }
if (pthread_setspecific(tsd->key, ptr) != 0) {
perror(SET_TSD_ERROR);
exit(-1);
@@ -145,6 +142,7 @@ _glthread_InitTSD(_glthread_TSD *tsd)
perror(INIT_TSD_ERROR);
exit(-1);
}
+ tsd->initMagic = INIT_MAGIC;
}
@@ -152,6 +150,9 @@ void *
_glthread_GetTSD(_glthread_TSD *tsd)
{
void* ret;
+ if (tsd->initMagic != INIT_MAGIC) {
+ _glthread_InitTSD(tsd);
+ }
#ifdef USE_LOCK_FOR_KEY
mutex_lock(&tsd->keylock);
thr_getspecific(tsd->key, &ret);
@@ -167,14 +168,10 @@ _glthread_GetTSD(_glthread_TSD *tsd)
void
-_glthread_SetTSD(_glthread_TSD *tsd, void *ptr, void (*initfunc)(void))
+_glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
{
- /* the following code assumes that the _glthread_TSD has been initialized
- to zero at creation */
- fprintf(stderr, "initfuncCalled = %d\n", tsd->initfuncCalled);
- if (tsd->initfuncCalled != INITFUNC_CALLED_MAGIC) {
- initfunc();
- tsd->initfuncCalled = INITFUNC_CALLED_MAGIC;
+ if (tsd->initMagic != INIT_MAGIC) {
+ _glthread_InitTSD(tsd);
}
if ((errno = thr_setspecific(tsd->key, ptr)) != 0) {
perror(SET_TSD_ERROR);
@@ -192,7 +189,7 @@ _glthread_SetTSD(_glthread_TSD *tsd, void *ptr, void (*initfunc)(void))
* Be sure that you compile using the Multithreaded runtime, otherwise
* bad things will happen.
*/
-#ifdef WIN32
+#ifdef WIN32_THREADS
unsigned long
_glthread_GetID(void)
@@ -212,24 +209,27 @@ _glthread_InitTSD(_glthread_TSD *tsd)
/* perror(SET_INIT_ERROR);*/
exit(-1);
}
+ tsd->initMagic = INIT_MAGIC;
}
void *
_glthread_GetTSD(_glthread_TSD *tsd)
{
+ if (tsd->initMagic != INIT_MAGIC) {
+ _glthread_InitTSD(tsd);
+ }
return TlsGetValue(tsd->key);
}
void
-_glthread_SetTSD(_glthread_TSD *tsd, void *ptr, void (*initfunc)(void))
+_glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
{
/* the following code assumes that the _glthread_TSD has been initialized
to zero at creation */
- if (tsd->initfuncCalled != INITFUNC_CALLED_MAGIC) {
- initfunc();
- tsd->initfuncCalled = INITFUNC_CALLED_MAGIC;
+ if (tsd->initMagic != INIT_MAGIC) {
+ _glthread_InitTSD(tsd);
}
if (TlsSetValue(tsd->key, ptr) == 0) {
/* Can Windows handle stderr messages for non-console
@@ -239,8 +239,94 @@ _glthread_SetTSD(_glthread_TSD *tsd, void *ptr, void (*initfunc)(void))
}
}
-#endif /* WIN32 */
+#endif /* WIN32_THREADS */
-#endif /* THREADS */
+/*
+ * XFree86 has its own thread wrapper, Xthreads.h
+ * We wrap it again for GL.
+ */
+#ifdef XTHREADS
+
+unsigned long
+_glthread_GetID(void)
+{
+ return (unsigned long) xthread_self();
+}
+
+
+void
+_glthread_InitTSD(_glthread_TSD *tsd)
+{
+ if (xthread_key_create(&tsd->key, NULL) != 0) {
+ perror(INIT_TSD_ERROR);
+ exit(-1);
+ }
+ tsd->initMagic = INIT_MAGIC;
+}
+
+
+void *
+_glthread_GetTSD(_glthread_TSD *tsd)
+{
+ void *ptr;
+ if (tsd->initMagic != INIT_MAGIC) {
+ _glthread_InitTSD(tsd);
+ }
+ xthread_get_specific(tsd->key, &ptr);
+ return ptr;
+}
+
+
+void
+_glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
+{
+ if (tsd->initMagic != INIT_MAGIC) {
+ _glthread_InitTSD(tsd);
+ }
+ xthread_set_specific(tsd->key, ptr);
+}
+
+#endif /* XTHREAD */
+
+
+
+#else /* THREADS */
+
+
+/*
+ * no-op functions
+ */
+
+unsigned long
+_glthread_GetID(void)
+{
+ return 0;
+}
+
+
+void
+_glthread_InitTSD(_glthread_TSD *tsd)
+{
+ (void) tsd;
+}
+
+
+void *
+_glthread_GetTSD(_glthread_TSD *tsd)
+{
+ (void) tsd;
+ return NULL;
+}
+
+
+void
+_glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
+{
+ (void) tsd;
+ (void) ptr;
+}
+
+
+#endif /* THREADS */
diff --git a/xc/extras/Mesa/src/glthread.h b/xc/extras/Mesa/src/glthread.h
index 9b35ff6c3..4cc9dd3ca 100644
--- a/xc/extras/Mesa/src/glthread.h
+++ b/xc/extras/Mesa/src/glthread.h
@@ -1,10 +1,10 @@
-/* $Id: glthread.h,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: glthread.h,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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,21 +32,43 @@
* and Christoph Poliwoda (poliwoda@volumegraphics.com)
* Revised by Keith Whitwell
* Adapted for new gl dispatcher by Brian Paul
+ *
+ *
+ *
+ * DOCUMENTATION
+ *
+ * This thread module exports the following types:
+ * _glthread_TSD Thread-specific data area
+ * _glthread_Thread Thread datatype
+ * _glthread_Mutex Mutual exclusion lock
+ *
+ * Macros:
+ * _glthread_DECLARE_STATIC_MUTEX(name) Declare a non-local mutex
+ * _glthread_INIT_MUTEX(name) Initialize a mutex
+ * _glthread_LOCK_MUTEX(name) Lock a mutex
+ * _glthread_UNLOCK_MUTEX(name) Unlock a mutex
+ *
+ * Functions:
+ * _glthread_GetID(v) Get integer thread ID
+ * _glthread_InitTSD() Initialize thread-specific data
+ * _glthread_GetTSD() Get thread-specific data
+ * _glthread_SetTSD() Set thread-specific data
+ *
*/
-
-
/*
* If this file is accidentally included by a non-threaded build,
* it should not cause the build to fail, or otherwise cause problems.
* In general, it should only be included when needed however.
*/
-#ifdef THREADS
-/*
- * It is an error not to select a specific threads API when compiling.
- */
-#if !defined(PTHREADS) && !defined(SOLARIS_THREADS) && !defined(WIN32)
-#error One of PTHREADS, SOLARIS_THREADS or WIN32 must be defined.
+
+
+#ifndef GLTHREAD_H
+#define GLTHREAD_H
+
+
+#if defined(PTHREADS) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || defined(XTHREADS)
+#define THREADS
#endif
@@ -60,17 +82,30 @@
* compiler flag. On Solaris with gcc, use -D_REENTRANT to enable
* proper compiling for MT-safe libc etc.
*/
-#ifdef PTHREADS
+#if defined(PTHREADS)
#include <pthread.h> /* POSIX threads headers */
typedef struct {
pthread_key_t key;
- pthread_once_t once;
+ int initMagic;
} _glthread_TSD;
-typedef pthread_mutex_t _glthread_Mutex;
typedef pthread_t _glthread_Thread;
+typedef pthread_mutex_t _glthread_Mutex;
+
+#define _glthread_DECLARE_STATIC_MUTEX(name) \
+ static _glthread_Mutex name = PTHREAD_MUTEX_INITIALIZER
+
+#define _glthread_INIT_MUTEX(name) \
+ pthread_mutex_init(&(name), NULL)
+
+#define _glthread_LOCK_MUTEX(name) \
+ (void) pthread_mutex_lock(&(name))
+
+#define _glthread_UNLOCK_MUTEX(name) \
+ (void) pthread_mutex_unlock(&(name))
+
#endif /* PTHREADS */
@@ -88,12 +123,19 @@ typedef pthread_t _glthread_Thread;
typedef struct {
thread_key_t key;
mutex_t keylock;
- int initfuncCalled;
+ int initMagic;
} _glthread_TSD;
-typedef mutex_t _glthread_Mutex;
typedef thread_t _glthread_Thread;
+typedef mutex_t _glthread_Mutex;
+
+/* XXX need to really implement mutex-related macros */
+#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = 0
+#define _glthread_INIT_MUTEX(name) (void) name
+#define _glthread_LOCK_MUTEX(name) (void) name
+#define _glthread_UNLOCK_MUTEX(name) (void) name
+
#endif /* SOLARIS_THREADS */
@@ -104,24 +146,87 @@ typedef thread_t _glthread_Thread;
* IMPORTANT: Link with multithreaded runtime library when THREADS are
* used!
*/
-
-#ifdef WIN32
+#ifdef WIN32_THREADS
#include <windows.h>
typedef struct {
DWORD key;
- int initfuncCalled;
+ int initMagic;
} _glthread_TSD;
-typedef CRITICAL_SECTION _glthread_Mutex;
typedef HANDLE _glthread_Thread;
-#endif /* WIN32 */
+typedef CRITICAL_SECTION _glthread_Mutex;
+
+/* XXX need to really implement mutex-related macros */
+#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = 0
+#define _glthread_INIT_MUTEX(name) (void) name
+#define _glthread_LOCK_MUTEX(name) (void) name
+#define _glthread_UNLOCK_MUTEX(name) (void) name
+
+#endif /* WIN32_THREADS */
/*
+ * XFree86 has its own thread wrapper, Xthreads.h
+ * We wrap it again for GL.
+ */
+#ifdef XTHREADS
+#include "Xthreads.h"
+
+typedef struct {
+ xthread_key_t key;
+ int initMagic;
+} _glthread_TSD;
+
+typedef xthread_t _glthread_Thread;
+
+typedef xmutex_rec _glthread_Mutex;
+
+#define _glthread_DECLARE_STATIC_MUTEX(name) \
+ static _glthread_Mutex name = XMUTEX_INITIALIZER
+
+#define _glthread_INIT_MUTEX(name) \
+ xmutex_init(&(name))
+
+#define _glthread_LOCK_MUTEX(name) \
+ (void) xmutex_lock(&(name))
+
+#define _glthread_UNLOCK_MUTEX(name) \
+ (void) xmutex_unlock(&(name))
+
+#endif /* XTHREADS */
+
+
+
+
+#ifndef THREADS
+
+/*
+ * THREADS not defined
+ */
+
+typedef GLuint _glthread_TSD;
+
+typedef GLuint _glthread_Thread;
+
+typedef GLuint _glthread_Mutex;
+
+#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = 0
+
+#define _glthread_INIT_MUTEX(name) (void) name
+
+#define _glthread_LOCK_MUTEX(name) (void) name
+
+#define _glthread_UNLOCK_MUTEX(name) (void) name
+
+#endif /* THREADS */
+
+
+
+/*
* Platform independent thread specific data API.
*/
@@ -138,8 +243,9 @@ _glthread_GetTSD(_glthread_TSD *);
extern void
-_glthread_SetTSD(_glthread_TSD *, void *, void (*initfunc)(void));
+_glthread_SetTSD(_glthread_TSD *, void *);
-#endif
+#endif /* THREADS_H */
+
diff --git a/xc/extras/Mesa/src/hash.c b/xc/extras/Mesa/src/hash.c
index a7b2b6b45..7d999720f 100644
--- a/xc/extras/Mesa/src/hash.c
+++ b/xc/extras/Mesa/src/hash.c
@@ -1,4 +1,4 @@
-/* $Id: hash.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: hash.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -29,6 +29,7 @@
#include "all.h"
#else
#include "glheader.h"
+#include "glthread.h"
#include "hash.h"
#include "mem.h"
#endif
@@ -53,6 +54,7 @@ struct HashEntry {
struct _mesa_HashTable {
struct HashEntry *Table[TABLE_SIZE];
GLuint MaxKey;
+ _glthread_Mutex Mutex;
};
@@ -130,6 +132,8 @@ void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data)
assert(table);
assert(key);
+ _glthread_LOCK_MUTEX(table->Mutex);
+
if (key > table->MaxKey)
table->MaxKey = key;
@@ -139,6 +143,7 @@ void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data)
if (entry->Key == key) {
/* replace entry's data */
entry->Data = data;
+ _glthread_UNLOCK_MUTEX(table->Mutex);
return;
}
entry = entry->Next;
@@ -150,6 +155,8 @@ void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data)
entry->Data = data;
entry->Next = table->Table[pos];
table->Table[pos] = entry;
+
+ _glthread_UNLOCK_MUTEX(table->Mutex);
}
@@ -167,6 +174,8 @@ void _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key)
assert(table);
assert(key);
+ _glthread_LOCK_MUTEX(table->Mutex);
+
pos = key & (TABLE_SIZE-1);
prev = NULL;
entry = table->Table[pos];
@@ -180,11 +189,14 @@ void _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key)
table->Table[pos] = entry->Next;
}
FREE(entry);
+ _glthread_UNLOCK_MUTEX(table->Mutex);
return;
}
prev = entry;
entry = entry->Next;
}
+
+ _glthread_UNLOCK_MUTEX(table->Mutex);
}
diff --git a/xc/extras/Mesa/src/hash.h b/xc/extras/Mesa/src/hash.h
index d4094d0e9..6bd9265c0 100644
--- a/xc/extras/Mesa/src/hash.h
+++ b/xc/extras/Mesa/src/hash.h
@@ -1,4 +1,4 @@
-/* $Id: hash.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: hash.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/highpc.c b/xc/extras/Mesa/src/highpc.c
index 813d2d346..4513480e7 100644
--- a/xc/extras/Mesa/src/highpc.c
+++ b/xc/extras/Mesa/src/highpc.c
@@ -1,4 +1,4 @@
-/* $Id: highpc.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: highpc.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/hint.c b/xc/extras/Mesa/src/hint.c
new file mode 100644
index 000000000..e6e6d9331
--- /dev/null
+++ b/xc/extras/Mesa/src/hint.c
@@ -0,0 +1,176 @@
+/* $Id: hint.c,v 1.2 2000/02/12 23:09:22 brianp Exp $ */
+
+/*
+ * Mesa 3-D graphics library
+ * Version: 3.3
+ *
+ * Copyright (C) 1999-2000 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"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+#ifdef PC_HEADER
+#include "all.h"
+#else
+#include "glheader.h"
+#include "enums.h"
+#include "context.h"
+#include "hint.h"
+#include "state.h"
+#endif
+
+
+
+void
+_mesa_Hint( GLenum target, GLenum mode )
+{
+ GET_CURRENT_CONTEXT(ctx);
+ (void) _mesa_try_Hint( ctx, target, mode );
+}
+
+
+GLboolean
+_mesa_try_Hint( GLcontext *ctx, GLenum target, GLenum mode )
+{
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx, "glHint", GL_FALSE);
+
+ if (MESA_VERBOSE & VERBOSE_API)
+ fprintf(stderr, "glHint %s %d\n", gl_lookup_enum_by_nr(target), mode);
+
+ switch (target) {
+ case GL_FOG_HINT:
+ ctx->Hint.Fog = mode;
+ break;
+ case GL_LINE_SMOOTH_HINT:
+ ctx->Hint.LineSmooth = mode;
+ break;
+ case GL_PERSPECTIVE_CORRECTION_HINT:
+ ctx->Hint.PerspectiveCorrection = mode;
+ break;
+ case GL_POINT_SMOOTH_HINT:
+ ctx->Hint.PointSmooth = mode;
+ break;
+ case GL_POLYGON_SMOOTH_HINT:
+ ctx->Hint.PolygonSmooth = mode;
+ break;
+ case GL_PREFER_DOUBLEBUFFER_HINT_PGI:
+ case GL_STRICT_DEPTHFUNC_HINT_PGI:
+ break;
+ case GL_STRICT_LIGHTING_HINT_PGI:
+ ctx->Hint.StrictLighting = mode;
+ break;
+ case GL_STRICT_SCISSOR_HINT_PGI:
+ case GL_FULL_STIPPLE_HINT_PGI:
+ case GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI:
+ case GL_NATIVE_GRAPHICS_END_HINT_PGI:
+ case GL_CONSERVE_MEMORY_HINT_PGI:
+ case GL_RECLAIM_MEMORY_HINT_PGI:
+ break;
+ case GL_ALWAYS_FAST_HINT_PGI:
+ if (mode) {
+ ctx->Hint.AllowDrawWin = GL_TRUE;
+ ctx->Hint.AllowDrawSpn = GL_FALSE;
+ ctx->Hint.AllowDrawMem = GL_FALSE;
+ } else {
+ ctx->Hint.AllowDrawWin = GL_TRUE;
+ ctx->Hint.AllowDrawSpn = GL_TRUE;
+ ctx->Hint.AllowDrawMem = GL_TRUE;
+ }
+ break;
+ case GL_ALWAYS_SOFT_HINT_PGI:
+ ctx->Hint.AllowDrawWin = GL_TRUE;
+ ctx->Hint.AllowDrawSpn = GL_TRUE;
+ ctx->Hint.AllowDrawMem = GL_TRUE;
+ break;
+ case GL_ALLOW_DRAW_OBJ_HINT_PGI:
+ break;
+ case GL_ALLOW_DRAW_WIN_HINT_PGI:
+ ctx->Hint.AllowDrawWin = mode;
+ break;
+ case GL_ALLOW_DRAW_SPN_HINT_PGI:
+ ctx->Hint.AllowDrawSpn = mode;
+ break;
+ case GL_ALLOW_DRAW_MEM_HINT_PGI:
+ ctx->Hint.AllowDrawMem = mode;
+ break;
+ case GL_CLIP_NEAR_HINT_PGI:
+ case GL_CLIP_FAR_HINT_PGI:
+ case GL_WIDE_LINE_HINT_PGI:
+ case GL_BACK_NORMALS_HINT_PGI:
+ case GL_NATIVE_GRAPHICS_HANDLE_PGI:
+ break;
+
+ /* GL_EXT_clip_volume_hint */
+ case GL_CLIP_VOLUME_CLIPPING_HINT_EXT:
+ ctx->Hint.ClipVolumeClipping = mode;
+ break;
+
+ default:
+ gl_error( ctx, GL_INVALID_ENUM, "glHint(target)" );
+ return GL_FALSE;
+ }
+ ctx->NewState |= NEW_ALL; /* just to be safe */
+
+ if (ctx->Driver.Hint) {
+ (*ctx->Driver.Hint)( ctx, target, mode );
+ }
+
+ return GL_TRUE;
+}
+
+
+void
+_mesa_HintPGI( GLenum target, GLint mode )
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glHintPGI");
+
+ if (MESA_VERBOSE & VERBOSE_API)
+ fprintf(stderr, "glHintPGI %s %d\n", gl_lookup_enum_by_nr(target), mode);
+
+ switch (target) {
+ case GL_PREFER_DOUBLEBUFFER_HINT_PGI:
+ case GL_STRICT_DEPTHFUNC_HINT_PGI:
+ case GL_STRICT_LIGHTING_HINT_PGI:
+ case GL_STRICT_SCISSOR_HINT_PGI:
+ case GL_FULL_STIPPLE_HINT_PGI:
+ case GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI:
+ case GL_NATIVE_GRAPHICS_END_HINT_PGI:
+ case GL_CONSERVE_MEMORY_HINT_PGI:
+ case GL_RECLAIM_MEMORY_HINT_PGI:
+ case GL_ALWAYS_FAST_HINT_PGI:
+ case GL_ALWAYS_SOFT_HINT_PGI:
+ case GL_ALLOW_DRAW_OBJ_HINT_PGI:
+ case GL_ALLOW_DRAW_WIN_HINT_PGI:
+ case GL_ALLOW_DRAW_SPN_HINT_PGI:
+ case GL_ALLOW_DRAW_MEM_HINT_PGI:
+ case GL_CLIP_NEAR_HINT_PGI:
+ case GL_CLIP_FAR_HINT_PGI:
+ case GL_WIDE_LINE_HINT_PGI:
+ case GL_BACK_NORMALS_HINT_PGI:
+ case GL_NATIVE_GRAPHICS_HANDLE_PGI:
+ (void) _mesa_try_Hint(ctx, target, (GLenum) mode);
+ break;
+ default:
+ gl_error( ctx, GL_INVALID_ENUM, "glHintPGI(target)" );
+ return;
+ }
+}
+
+
diff --git a/xc/extras/Mesa/src/dispatch.h b/xc/extras/Mesa/src/hint.h
index 855ef14e1..e5265b33d 100644
--- a/xc/extras/Mesa/src/dispatch.h
+++ b/xc/extras/Mesa/src/hint.h
@@ -1,10 +1,10 @@
-/* $Id: dispatch.h,v 1.2 2000/01/30 00:27:01 brianp Exp $ */
+/* $Id: hint.h,v 1.2 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -25,20 +25,21 @@
*/
-#ifndef DISPATCH_H
-#define DISPATCH_H
+#ifndef HINT_H
+#define HINT_H
-struct _glapi_table;
+#include "types.h"
-extern void
-_mesa_init_no_op_table(struct _glapi_table *exec);
+extern GLboolean
+_mesa_try_Hint( GLcontext *ctx, GLenum target, GLenum mode );
+extern void
+_mesa_Hint( GLenum target, GLenum mode );
extern void
-_mesa_init_exec_table(struct _glapi_table *exec);
+_mesa_HintPGI( GLenum target, GLint mode );
#endif
-
diff --git a/xc/extras/Mesa/src/image.c b/xc/extras/Mesa/src/image.c
index 6d8122e36..f1f588aa7 100644
--- a/xc/extras/Mesa/src/image.c
+++ b/xc/extras/Mesa/src/image.c
@@ -1,4 +1,4 @@
-/* $Id: image.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: image.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/image.h b/xc/extras/Mesa/src/image.h
index 682e53b0b..0df6ed601 100644
--- a/xc/extras/Mesa/src/image.h
+++ b/xc/extras/Mesa/src/image.h
@@ -1,4 +1,4 @@
-/* $Id: image.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: image.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/imaging.c b/xc/extras/Mesa/src/imaging.c
index ce555e036..d6c6ebf26 100644
--- a/xc/extras/Mesa/src/imaging.c
+++ b/xc/extras/Mesa/src/imaging.c
@@ -1,4 +1,4 @@
-/* $Id: imaging.c,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: imaging.c,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/imaging.h b/xc/extras/Mesa/src/imaging.h
index 64936521e..9da00d0e9 100644
--- a/xc/extras/Mesa/src/imaging.h
+++ b/xc/extras/Mesa/src/imaging.h
@@ -1,4 +1,4 @@
-/* $Id: imaging.h,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: imaging.h,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/indirect_tmp.h b/xc/extras/Mesa/src/indirect_tmp.h
index f2d675dc4..be1e8d0aa 100644
--- a/xc/extras/Mesa/src/indirect_tmp.h
+++ b/xc/extras/Mesa/src/indirect_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: indirect_tmp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: indirect_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/interp_tmp.h b/xc/extras/Mesa/src/interp_tmp.h
index 450ad1517..019fd4af8 100644
--- a/xc/extras/Mesa/src/interp_tmp.h
+++ b/xc/extras/Mesa/src/interp_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: interp_tmp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: interp_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/light.c b/xc/extras/Mesa/src/light.c
index 95ac3c76f..4c50ea02f 100644
--- a/xc/extras/Mesa/src/light.c
+++ b/xc/extras/Mesa/src/light.c
@@ -1,4 +1,4 @@
-/* $Id: light.c,v 1.5 2000/02/01 00:02:59 brianp Exp $ */
+/* $Id: light.c,v 1.6 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/light.h b/xc/extras/Mesa/src/light.h
index 8ac4fc4fc..ee246c190 100644
--- a/xc/extras/Mesa/src/light.h
+++ b/xc/extras/Mesa/src/light.h
@@ -1,4 +1,4 @@
-/* $Id: light.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: light.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/lines.c b/xc/extras/Mesa/src/lines.c
index 5df684fdf..cf194bd25 100644
--- a/xc/extras/Mesa/src/lines.c
+++ b/xc/extras/Mesa/src/lines.c
@@ -1,4 +1,4 @@
-/* $Id: lines.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: lines.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/lines.h b/xc/extras/Mesa/src/lines.h
index 9dc5ff591..8b2fdc418 100644
--- a/xc/extras/Mesa/src/lines.h
+++ b/xc/extras/Mesa/src/lines.h
@@ -1,4 +1,4 @@
-/* $Id: lines.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: lines.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/linetemp.h b/xc/extras/Mesa/src/linetemp.h
index eb5e4099b..be1dca873 100644
--- a/xc/extras/Mesa/src/linetemp.h
+++ b/xc/extras/Mesa/src/linetemp.h
@@ -1,4 +1,4 @@
-/* $Id: linetemp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: linetemp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/lnaatemp.h b/xc/extras/Mesa/src/lnaatemp.h
index 9b5bc89aa..da4b9b5c2 100644
--- a/xc/extras/Mesa/src/lnaatemp.h
+++ b/xc/extras/Mesa/src/lnaatemp.h
@@ -1,4 +1,4 @@
-/* $Id: lnaatemp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: lnaatemp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/logic.c b/xc/extras/Mesa/src/logic.c
index 3e05e3ac6..a9156cb78 100644
--- a/xc/extras/Mesa/src/logic.c
+++ b/xc/extras/Mesa/src/logic.c
@@ -1,4 +1,4 @@
-/* $Id: logic.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: logic.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/logic.h b/xc/extras/Mesa/src/logic.h
index ca3af0f73..8bb09c792 100644
--- a/xc/extras/Mesa/src/logic.h
+++ b/xc/extras/Mesa/src/logic.h
@@ -1,4 +1,4 @@
-/* $Id: logic.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: logic.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/lowpc.c b/xc/extras/Mesa/src/lowpc.c
index 7073f6941..f101ab2b4 100644
--- a/xc/extras/Mesa/src/lowpc.c
+++ b/xc/extras/Mesa/src/lowpc.c
@@ -1,4 +1,4 @@
-/* $Id: lowpc.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: lowpc.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/macros.h b/xc/extras/Mesa/src/macros.h
index 7be0641a4..4a97f743a 100644
--- a/xc/extras/Mesa/src/macros.h
+++ b/xc/extras/Mesa/src/macros.h
@@ -1,4 +1,4 @@
-/* $Id: macros.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: macros.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/masking.c b/xc/extras/Mesa/src/masking.c
index 8fdfdef55..a2cacc01b 100644
--- a/xc/extras/Mesa/src/masking.c
+++ b/xc/extras/Mesa/src/masking.c
@@ -1,4 +1,4 @@
-/* $Id: masking.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: masking.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/masking.h b/xc/extras/Mesa/src/masking.h
index 514abee5a..5cbabdcda 100644
--- a/xc/extras/Mesa/src/masking.h
+++ b/xc/extras/Mesa/src/masking.h
@@ -1,4 +1,4 @@
-/* $Id: masking.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: masking.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/matrix.c b/xc/extras/Mesa/src/matrix.c
index 64d6274cf..b65bb4557 100644
--- a/xc/extras/Mesa/src/matrix.c
+++ b/xc/extras/Mesa/src/matrix.c
@@ -1,4 +1,4 @@
-/* $Id: matrix.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: matrix.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -41,6 +41,7 @@
#include "all.h"
#else
#include "glheader.h"
+#include "buffers.h"
#include "context.h"
#include "enums.h"
#include "matrix.h"
diff --git a/xc/extras/Mesa/src/matrix.h b/xc/extras/Mesa/src/matrix.h
index 4257e603e..23e72fec3 100644
--- a/xc/extras/Mesa/src/matrix.h
+++ b/xc/extras/Mesa/src/matrix.h
@@ -1,4 +1,4 @@
-/* $Id: matrix.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: matrix.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/mem.c b/xc/extras/Mesa/src/mem.c
index 73cd6c1c1..df0aad3e1 100644
--- a/xc/extras/Mesa/src/mem.c
+++ b/xc/extras/Mesa/src/mem.c
@@ -1,4 +1,4 @@
-/* $Id: mem.c,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: mem.c,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/mem.h b/xc/extras/Mesa/src/mem.h
index 86d0b81e9..3a724a240 100644
--- a/xc/extras/Mesa/src/mem.h
+++ b/xc/extras/Mesa/src/mem.h
@@ -1,4 +1,4 @@
-/* $Id: mem.h,v 1.2 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: mem.h,v 1.3 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/mmath.c b/xc/extras/Mesa/src/mmath.c
index e7fed551a..af2ee88fa 100644
--- a/xc/extras/Mesa/src/mmath.c
+++ b/xc/extras/Mesa/src/mmath.c
@@ -1,4 +1,4 @@
-/* $Id: mmath.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: mmath.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/mmath.h b/xc/extras/Mesa/src/mmath.h
index 08c1b70c3..688e2d692 100644
--- a/xc/extras/Mesa/src/mmath.h
+++ b/xc/extras/Mesa/src/mmath.h
@@ -1,4 +1,4 @@
-/* $Id: mmath.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: mmath.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/mthreads.c b/xc/extras/Mesa/src/mthreads.c
deleted file mode 100644
index 81896d6cf..000000000
--- a/xc/extras/Mesa/src/mthreads.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* $Id: mthreads.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
-
-/*
- * Mesa 3-D graphics library
- * Version: 3.3
- *
- * Copyright (C) 1999 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"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-/*
- * mthreads.c -- platform dependent thread support for Mesa
- *
- * Initial version by John Stone (j.stone@acm.org) (johns@cs.umr.edu)
- * and Christoph Poliwoda (poliwoda@volumegraphics.com)
- *
- * Revised by Keith Whitwell
- *
- */
-
-
-#ifdef PC_ALL
-#include "all.h"
-#else
-#include "glheader.h"
-#endif
-
-
-
-/*
- * This file should still compile even when THREADS is not defined.
- * This is to make things easier to deal with on the makefile scene..
- */
-#ifdef THREADS
-#include <errno.h>
-#include "mthreads.h"
-
-
-/*
- * POSIX Threads -- The best way to go if your platform supports them.
- * Solaris >= 2.5 have POSIX threads, IRIX >= 6.4 reportedly
- * has them, and many of the free Unixes now have them.
- * Be sure to use appropriate -mt or -D_REENTRANT type
- * compile flags when building.
- */
-#ifdef PTHREADS
-void MesaInitTSD(MesaTSD * tsd) {
- if (pthread_key_create(&tsd->key, free) != 0) {
- perror(MESA_INIT_TSD_ERROR);
- exit(-1);
- }
-}
-
-void * MesaGetTSD(MesaTSD * tsd) {
- return pthread_getspecific(tsd->key);
-}
-
-void MesaSetTSD(MesaTSD * tsd, void * ptr, void (*initfunc)(void)) {
- pthread_once(&tsd->once, initfunc);
- if (pthread_setspecific(tsd->key, ptr) != 0) {
- perror(MESA_SET_TSD_ERROR);
- exit(-1);
- };
-}
-
-#endif /* PTHREADS */
-
-
-
-/*
- * Solaris/Unix International Threads -- Use only if POSIX threads
- * aren't available on your Unix platform. Solaris 2.[34] are examples
- * of platforms where this is the case. Be sure to use -mt and/or
- * -D_REENTRANT when compiling.
- */
-#ifdef SOLARIS_THREADS
-#define USE_LOCK_FOR_KEY /* undef this to try a version without
- lock for the global key... */
-
-void MesaInitTSD(MesaTSD * tsd) {
- if ((errno = mutex_init(&tsd->keylock, 0, NULL)) != 0 ||
- (errno = thr_keycreate(&(tsd->key), free)) != 0) {
- perror(MESA_INIT_TSD_ERROR);
- exit(-1);
- }
-}
-
-void * MesaGetTSD(MesaTSD * tsd) {
- void* ret;
-#ifdef USE_LOCK_FOR_KEY
- mutex_lock(&tsd->keylock);
- thr_getspecific(tsd->key, &ret);
- mutex_unlock(&tsd->keylock);
-#else
- if ((errno = thr_getspecific(tsd->key, &ret)) != 0) {
- perror(MESA_GET_TSD_ERROR);
- exit(-1);
- };
-#endif
- return ret;
-}
-
-void MesaSetTSD(MesaTSD * tsd, void * ptr, void (*initfunc)(void)) {
- /* the following code assumes that the MesaTSD has been initialized
- to zero at creation */
- fprintf(stderr, "initfuncCalled = %d\n", tsd->initfuncCalled);
- if (tsd->initfuncCalled != INITFUNC_CALLED_MAGIC) {
- initfunc();
- tsd->initfuncCalled = INITFUNC_CALLED_MAGIC;
- }
- if ((errno = thr_setspecific(tsd->key, ptr)) != 0) {
- perror(MESA_SET_TSD_ERROR);
- exit(-1);
- };
-}
-
-#undef USE_LOCK_FOR_KEY
-#endif /* SOLARIS_THREADS */
-
-
-
-/*
- * Win32 Threads. The only available option for Windows 95/NT.
- * Be sure that you compile using the Multithreaded runtime, otherwise
- * bad things will happen.
- */
-#ifdef WIN32
-
-void MesaInitTSD(MesaTSD * tsd) {
- tsd->key = TlsAlloc();
- if (tsd->key == 0xffffffff) {
- /* Can Windows handle stderr messages for non-console
- applications? Does Windows have perror? */
- /* perror(MESA_SET_INIT_ERROR);*/
- exit(-1);
- }
-}
-
-void * MesaGetTSD(MesaTSD * tsd) {
- return TlsGetValue(tsd->key);
-}
-
-void MesaSetTSD(MesaTSD * tsd, void * ptr, void (*initfunc)(void)) {
- /* the following code assumes that the MesaTSD has been initialized
- to zero at creation */
- if (tsd->initfuncCalled != INITFUNC_CALLED_MAGIC) {
- initfunc();
- tsd->initfuncCalled = INITFUNC_CALLED_MAGIC;
- }
- if (TlsSetValue(tsd->key, ptr) == 0) {
- /* Can Windows handle stderr messages for non-console
- applications? Does Windows have perror? */
- /* perror(MESA_SET_TSD_ERROR);*/
- exit(-1);
- };
-}
-
-#endif /* WIN32 */
-
-#endif /* THREADS */
-
-
diff --git a/xc/extras/Mesa/src/mthreads.h b/xc/extras/Mesa/src/mthreads.h
deleted file mode 100644
index 77f32d8e4..000000000
--- a/xc/extras/Mesa/src/mthreads.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/* $Id: mthreads.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
-
-/*
- * Mesa 3-D graphics library
- * Version: 3.3
- *
- * Copyright (C) 1999 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"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-/*
- * mthreads.h -- platform dependent thread support for Mesa
- *
- * Initial version by John Stone (j.stone@acm.org) (johns@cs.umr.edu)
- * and Christoph Poliwoda (poliwoda@volumegraphics.com)
- *
- * Revised by Keith Whitwell
- */
-
-
-
-/*
- * If this file is accidentally included by a non-threaded build,
- * it should not cause the build to fail, or otherwise cause problems.
- * In general, it should only be included when needed however.
- */
-#ifdef THREADS
-/*
- * It is an error not to select a specific threads API when compiling.
- */
-#if !defined PTHREADS && !defined SOLARIS_THREADS && !defined WIN32
-#error One of PTHREADS, SOLARIS_THREADS or WIN32 must be defined.
-#endif
-
-
-/*
- * Error messages which should be printed when our Mesa thread APIs fail
- * for one reason or another.
- */
-#define MESA_INIT_TSD_ERROR "Mesa: thread failed to allocate key for thread specific data"
-#define MESA_GET_TSD_ERROR "Mesa: thread failed to get thread specific data"
-#define MESA_SET_TSD_ERROR "Mesa: thread failed to set thread specific data"
-
-
-/*
- * magic number for win32 and solaris threads equivalents of pthread_once
- * This could probably be done better, but we haven't figured out how yet.
- */
-#define INITFUNC_CALLED_MAGIC 0xff8adc98
-
-
-
-
-/*
- * POSIX threads. This should be your choice in the Unix world
- * whenever possible. When building with POSIX threads, be sure
- * to any able any compiler flags which will cause the MT-safe
- * libc (if one exists) to be used when linking, as well as any
- * header macros for MT-safe errno, etc. For Solaris, this is the -mt
- * compiler flag. On Solaris with gcc, use -D_REENTRANT to enable
- * proper compiling for MT-safe libc etc.
- */
-#ifdef PTHREADS
-#include <pthread.h> /* POSIX threads headers */
-
-typedef struct {
- pthread_key_t key;
- pthread_once_t once;
-} MesaTSD;
-
-typedef pthread_mutex_t MesaMutex;
-typedef pthread_t MesaThread;
-
-#endif /* PTHREADS */
-
-
-
-
-/*
- * Solaris threads. Use only up to Solaris 2.4.
- * Solaris 2.5 and higher provide POSIX threads.
- * Be sure to compile with -mt on the Solaris compilers, or
- * use -D_REENTRANT if using gcc.
- */
-#ifdef SOLARIS_THREADS
-#include <thread.h>
-
-typedef struct {
- thread_key_t key;
- mutex_t keylock;
- int initfuncCalled;
-} MesaTSD;
-
-typedef mutex_t MesaMutex;
-typedef thread_t MesaThread;
-
-#endif /* SOLARIS_THREADS */
-
-
-
-
-/*
- * Windows threads. Should work with Windows NT and 95.
- * IMPORTANT: Link with multithreaded runtime library when THREADS are
- * used!
- */
-
-#ifdef WIN32
-#include <windows.h>
-
-typedef struct {
- DWORD key;
- int initfuncCalled;
-} MesaTSD;
-
-typedef CRITICAL_SECTION MesaMutex;
-typedef HANDLE MesaThread;
-
-#endif /* WIN32 */
-
-
-
-
-/*
- * Platform independent thread specific data API.
- */
-void MesaInitTSD(MesaTSD *);
-void* MesaGetTSD (MesaTSD *);
-void MesaSetTSD (MesaTSD *, void *, void (*initfunc)(void));
-
-
-/*
- * The following APIs are preliminary. They may be needed in
- * future versions of Mesa.
- */
-#if 0
-
-/*
- * Platform independent mutual exclusion lock API.
- */
-void MesaInitMutex (MesaMutex *);
-void MesaDestroyMutex (MesaMutex *);
-void MesaLockMutex (MesaMutex *);
-void MesaUnlockMutex (MesaMutex *);
-
-/*
- * Platform independent thread management API.
- */
-MesaThread MesaCreateThread ((void*)(*)(void*), void*);
-void MesaJoinThread (MesaThread);
-
-#endif
-
-#endif /* THREADS */
diff --git a/xc/extras/Mesa/src/norm_tmp.h b/xc/extras/Mesa/src/norm_tmp.h
index 5a8e41de3..76d9f06de 100644
--- a/xc/extras/Mesa/src/norm_tmp.h
+++ b/xc/extras/Mesa/src/norm_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: norm_tmp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: norm_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/pb.c b/xc/extras/Mesa/src/pb.c
index 1285541c5..6525b1b12 100644
--- a/xc/extras/Mesa/src/pb.c
+++ b/xc/extras/Mesa/src/pb.c
@@ -1,10 +1,10 @@
-/* $Id: pb.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: pb.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -174,7 +174,7 @@ static void multi_write_rgba_pixels( GLcontext *ctx, GLuint n,
gl_logicop_rgba_pixels( ctx, n, x, y, rgbaTmp, mask );
}
else if (ctx->Color.BlendEnabled) {
- gl_blend_pixels( ctx, n, x, y, rgbaTmp, mask );
+ _mesa_blend_pixels( ctx, n, x, y, rgbaTmp, mask );
}
if (ctx->Color.SWmasking) {
gl_mask_rgba_pixels( ctx, n, x, y, rgbaTmp, mask );
@@ -279,14 +279,14 @@ void gl_flush_pb( GLcontext *ctx )
if (ctx->Fog.Enabled
&& (ctx->Hint.Fog==GL_NICEST || PB->primitive==GL_BITMAP
|| ctx->Texture.ReallyEnabled)) {
- gl_fog_rgba_pixels( ctx, PB->count, PB->z, PB->rgba );
+ _mesa_fog_rgba_pixels( ctx, PB->count, PB->z, PB->rgba );
}
/* Scissoring already done above */
if (ctx->Color.AlphaEnabled) {
- if (gl_alpha_test( ctx, PB->count,
- (const GLubyte (*)[4])PB->rgba, mask )==0) {
+ if (_mesa_alpha_test( ctx, PB->count,
+ (const GLubyte (*)[4]) PB->rgba, mask )==0) {
goto CleanUp;
}
}
@@ -300,7 +300,7 @@ void gl_flush_pb( GLcontext *ctx )
}
else if (ctx->Depth.Test) {
/* regular depth testing */
- gl_depth_test_pixels( ctx, PB->count, PB->x, PB->y, PB->z, mask );
+ _mesa_depth_test_pixels( ctx, PB->count, PB->x, PB->y, PB->z, mask );
}
@@ -316,7 +316,7 @@ void gl_flush_pb( GLcontext *ctx )
PB->rgba, mask);
}
else if (ctx->Color.BlendEnabled) {
- gl_blend_pixels( ctx, PB->count, PB->x, PB->y, PB->rgba, mask);
+ _mesa_blend_pixels( ctx, PB->count, PB->x, PB->y, PB->rgba, mask);
}
if (ctx->Color.SWmasking) {
gl_mask_rgba_pixels(ctx, PB->count, PB->x, PB->y, PB->rgba, mask);
@@ -337,8 +337,8 @@ void gl_flush_pb( GLcontext *ctx )
/* Scissoring already done above */
if (ctx->Color.AlphaEnabled) {
- if (gl_alpha_test( ctx, PB->count,
- (const GLubyte (*)[4]) PB->rgba, mask )==0) {
+ if (_mesa_alpha_test( ctx, PB->count,
+ (const GLubyte (*)[4]) PB->rgba, mask )==0) {
goto CleanUp;
}
}
@@ -352,7 +352,7 @@ void gl_flush_pb( GLcontext *ctx )
}
else if (ctx->Depth.Test) {
/* regular depth testing */
- gl_depth_test_pixels( ctx, PB->count, PB->x, PB->y, PB->z, mask );
+ _mesa_depth_test_pixels( ctx, PB->count, PB->x, PB->y, PB->z, mask );
}
if (ctx->Color.DrawBuffer == GL_NONE) {
@@ -410,7 +410,7 @@ void gl_flush_pb( GLcontext *ctx )
if (ctx->Fog.Enabled
&& (ctx->Hint.Fog==GL_NICEST || PB->primitive==GL_BITMAP)) {
- gl_fog_ci_pixels( ctx, PB->count, PB->z, PB->i );
+ _mesa_fog_ci_pixels( ctx, PB->count, PB->z, PB->i );
}
/* Scissoring already done above */
@@ -424,7 +424,7 @@ void gl_flush_pb( GLcontext *ctx )
}
else if (ctx->Depth.Test) {
/* regular depth testing */
- gl_depth_test_pixels( ctx, PB->count, PB->x, PB->y, PB->z, mask );
+ _mesa_depth_test_pixels( ctx, PB->count, PB->x, PB->y, PB->z, mask );
}
if (ctx->RasterMask & MULTI_DRAW_BIT) {
@@ -460,7 +460,7 @@ void gl_flush_pb( GLcontext *ctx )
}
else if (ctx->Depth.Test) {
/* regular depth testing */
- gl_depth_test_pixels( ctx, PB->count, PB->x, PB->y, PB->z, mask );
+ _mesa_depth_test_pixels( ctx, PB->count, PB->x, PB->y, PB->z, mask );
}
if (ctx->RasterMask & MULTI_DRAW_BIT) {
diff --git a/xc/extras/Mesa/src/pb.h b/xc/extras/Mesa/src/pb.h
index c8350ae6f..9810b0a01 100644
--- a/xc/extras/Mesa/src/pb.h
+++ b/xc/extras/Mesa/src/pb.h
@@ -1,4 +1,4 @@
-/* $Id: pb.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: pb.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/pipeline.c b/xc/extras/Mesa/src/pipeline.c
index 373682a65..c54bdb4b9 100644
--- a/xc/extras/Mesa/src/pipeline.c
+++ b/xc/extras/Mesa/src/pipeline.c
@@ -1,4 +1,4 @@
-/* $Id: pipeline.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: pipeline.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -43,6 +43,7 @@
#include "pipeline.h"
#include "shade.h"
#include "stages.h"
+#include "state.h"
#include "types.h"
#include "translate.h"
#include "vbcull.h"
@@ -61,7 +62,7 @@ int MESA_VERBOSE = 0
/* | VERBOSE_VARRAY */
/* | VERBOSE_TEXTURE */
/* | VERBOSE_API */
- | VERBOSE_DRIVER
+/* | VERBOSE_DRIVER */
/* | VERBOSE_STATE */
/* | VERBOSE_CULL */
/* | VERBOSE_DISPLAY_LIST */
diff --git a/xc/extras/Mesa/src/pipeline.h b/xc/extras/Mesa/src/pipeline.h
index 7bb9a7779..70e47b4f4 100644
--- a/xc/extras/Mesa/src/pipeline.h
+++ b/xc/extras/Mesa/src/pipeline.h
@@ -1,4 +1,4 @@
-/* $Id: pipeline.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: pipeline.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/pixel.c b/xc/extras/Mesa/src/pixel.c
index 9c34d7012..090cdc3ec 100644
--- a/xc/extras/Mesa/src/pixel.c
+++ b/xc/extras/Mesa/src/pixel.c
@@ -1,4 +1,4 @@
-/* $Id: pixel.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: pixel.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/pixel.h b/xc/extras/Mesa/src/pixel.h
index 2b808d3ba..dd43ae6cd 100644
--- a/xc/extras/Mesa/src/pixel.h
+++ b/xc/extras/Mesa/src/pixel.h
@@ -1,4 +1,4 @@
-/* $Id: pixel.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: pixel.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/points.c b/xc/extras/Mesa/src/points.c
index 1643e8f8a..9d285a189 100644
--- a/xc/extras/Mesa/src/points.c
+++ b/xc/extras/Mesa/src/points.c
@@ -1,4 +1,4 @@
-/* $Id: points.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: points.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/points.h b/xc/extras/Mesa/src/points.h
index 6f832df65..859a95fcf 100644
--- a/xc/extras/Mesa/src/points.h
+++ b/xc/extras/Mesa/src/points.h
@@ -1,4 +1,4 @@
-/* $Id: points.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: points.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/polygon.c b/xc/extras/Mesa/src/polygon.c
index 327ade230..9563de1e0 100644
--- a/xc/extras/Mesa/src/polygon.c
+++ b/xc/extras/Mesa/src/polygon.c
@@ -1,4 +1,4 @@
-/* $Id: polygon.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: polygon.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/polygon.h b/xc/extras/Mesa/src/polygon.h
index 13c55e2f1..e5775dac8 100644
--- a/xc/extras/Mesa/src/polygon.h
+++ b/xc/extras/Mesa/src/polygon.h
@@ -1,4 +1,4 @@
-/* $Id: polygon.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: polygon.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/quads.c b/xc/extras/Mesa/src/quads.c
index 20d86d070..e8369b3f4 100644
--- a/xc/extras/Mesa/src/quads.c
+++ b/xc/extras/Mesa/src/quads.c
@@ -1,4 +1,4 @@
-/* $Id: quads.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: quads.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/quads.h b/xc/extras/Mesa/src/quads.h
index 7fc88e9cb..594bc7db6 100644
--- a/xc/extras/Mesa/src/quads.h
+++ b/xc/extras/Mesa/src/quads.h
@@ -1,4 +1,4 @@
-/* $Id: quads.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: quads.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/rastpos.c b/xc/extras/Mesa/src/rastpos.c
index 166bb274f..5dc4a24b5 100644
--- a/xc/extras/Mesa/src/rastpos.c
+++ b/xc/extras/Mesa/src/rastpos.c
@@ -1,4 +1,4 @@
-/* $Id: rastpos.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: rastpos.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -38,6 +38,7 @@
#include "mmath.h"
#include "rastpos.h"
#include "shade.h"
+#include "state.h"
#include "types.h"
#include "xform.h"
#endif
diff --git a/xc/extras/Mesa/src/rastpos.h b/xc/extras/Mesa/src/rastpos.h
index 7e416f62e..41c62f01c 100644
--- a/xc/extras/Mesa/src/rastpos.h
+++ b/xc/extras/Mesa/src/rastpos.h
@@ -1,4 +1,4 @@
-/* $Id: rastpos.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: rastpos.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/readpix.c b/xc/extras/Mesa/src/readpix.c
index 1065cd967..7a7ce0aa6 100644
--- a/xc/extras/Mesa/src/readpix.c
+++ b/xc/extras/Mesa/src/readpix.c
@@ -1,10 +1,10 @@
-/* $Id: readpix.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: readpix.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -234,7 +234,7 @@ static void read_depth_pixels( GLcontext *ctx,
GLfloat depth[MAX_WIDTH];
GLvoid *dest;
- gl_read_depth_span_float(ctx, readWidth, x, y, depth);
+ _mesa_read_depth_span_float(ctx, readWidth, x, y, depth);
if (bias_or_scale) {
for (i=0;i<readWidth;i++) {
diff --git a/xc/extras/Mesa/src/readpix.h b/xc/extras/Mesa/src/readpix.h
index 950bfebb1..0aded2b29 100644
--- a/xc/extras/Mesa/src/readpix.h
+++ b/xc/extras/Mesa/src/readpix.h
@@ -1,4 +1,4 @@
-/* $Id: readpix.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: readpix.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/rect.c b/xc/extras/Mesa/src/rect.c
index e81b4393a..16efc0340 100644
--- a/xc/extras/Mesa/src/rect.c
+++ b/xc/extras/Mesa/src/rect.c
@@ -1,4 +1,4 @@
-/* $Id: rect.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: rect.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/rect.h b/xc/extras/Mesa/src/rect.h
index 9f218ec6f..034f26b37 100644
--- a/xc/extras/Mesa/src/rect.h
+++ b/xc/extras/Mesa/src/rect.h
@@ -1,4 +1,4 @@
-/* $Id: rect.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: rect.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/render_tmp.h b/xc/extras/Mesa/src/render_tmp.h
index dff69c596..53aa766c1 100644
--- a/xc/extras/Mesa/src/render_tmp.h
+++ b/xc/extras/Mesa/src/render_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: render_tmp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: render_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/scissor.c b/xc/extras/Mesa/src/scissor.c
index a9aaa55ef..fd0045274 100644
--- a/xc/extras/Mesa/src/scissor.c
+++ b/xc/extras/Mesa/src/scissor.c
@@ -1,4 +1,4 @@
-/* $Id: scissor.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: scissor.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/scissor.h b/xc/extras/Mesa/src/scissor.h
index b40f5ff20..b073f7f32 100644
--- a/xc/extras/Mesa/src/scissor.h
+++ b/xc/extras/Mesa/src/scissor.h
@@ -1,4 +1,4 @@
-/* $Id: scissor.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: scissor.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/shade.c b/xc/extras/Mesa/src/shade.c
index e08f1d321..3374077be 100644
--- a/xc/extras/Mesa/src/shade.c
+++ b/xc/extras/Mesa/src/shade.c
@@ -1,4 +1,4 @@
-/* $Id: shade.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: shade.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/shade.h b/xc/extras/Mesa/src/shade.h
index e761ab777..5f96fc91e 100644
--- a/xc/extras/Mesa/src/shade.h
+++ b/xc/extras/Mesa/src/shade.h
@@ -1,4 +1,4 @@
-/* $Id: shade.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: shade.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/shade_tmp.h b/xc/extras/Mesa/src/shade_tmp.h
index 06e7d32a4..9cbf5b90b 100644
--- a/xc/extras/Mesa/src/shade_tmp.h
+++ b/xc/extras/Mesa/src/shade_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: shade_tmp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: shade_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/simple_list.h b/xc/extras/Mesa/src/simple_list.h
index 90587a476..5c085f1b8 100644
--- a/xc/extras/Mesa/src/simple_list.h
+++ b/xc/extras/Mesa/src/simple_list.h
@@ -1,4 +1,4 @@
-/* $Id: simple_list.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: simple_list.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/span.c b/xc/extras/Mesa/src/span.c
index bf7910e81..8c8e358f9 100644
--- a/xc/extras/Mesa/src/span.c
+++ b/xc/extras/Mesa/src/span.c
@@ -1,10 +1,10 @@
-/* $Id: span.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: span.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -202,7 +202,7 @@ void gl_write_index_span( GLcontext *ctx,
/* Per-pixel fog */
if (ctx->Fog.Enabled && (primitive==GL_BITMAP || ctx->FogMode == FOG_FRAGMENT)) {
- gl_fog_ci_pixels( ctx, n, z, index );
+ _mesa_fog_ci_pixels( ctx, n, z, index );
}
/* Do the scissor test */
@@ -225,7 +225,7 @@ void gl_write_index_span( GLcontext *ctx,
}
else if (ctx->Depth.Test) {
/* regular depth testing */
- if (gl_depth_test_span( ctx, n, x, y, z, mask )==0) return;
+ if (_mesa_depth_test_span( ctx, n, x, y, z, mask )==0) return;
}
if (ctx->RasterMask & MULTI_DRAW_BIT) {
@@ -285,7 +285,7 @@ void gl_write_monoindex_span( GLcontext *ctx,
}
else if (ctx->Depth.Test) {
/* regular depth testing */
- if (gl_depth_test_span( ctx, n, x, y, z, mask )==0) return;
+ if (_mesa_depth_test_span( ctx, n, x, y, z, mask )==0) return;
}
if (ctx->Color.DrawBuffer == GL_NONE) {
@@ -302,7 +302,7 @@ void gl_write_monoindex_span( GLcontext *ctx,
}
if (ctx->Fog.Enabled && (primitive==GL_BITMAP || ctx->FogMode==FOG_FRAGMENT)) {
- gl_fog_ci_pixels( ctx, n, z, indexes );
+ _mesa_fog_ci_pixels( ctx, n, z, indexes );
}
if (ctx->Color.SWLogicOpEnabled) {
@@ -390,7 +390,7 @@ static void multi_write_rgba_span( GLcontext *ctx, GLuint n,
gl_logicop_rgba_span( ctx, n, x, y, rgbaTmp, mask );
}
else if (ctx->Color.BlendEnabled) {
- gl_blend_span( ctx, n, x, y, rgbaTmp, mask );
+ _mesa_blend_span( ctx, n, x, y, rgbaTmp, mask );
}
if (ctx->Color.SWmasking) {
gl_mask_rgba_span( ctx, n, x, y, rgbaTmp );
@@ -444,7 +444,7 @@ void gl_write_rgba_span( GLcontext *ctx,
/* Per-pixel fog */
if (ctx->Fog.Enabled && (primitive==GL_BITMAP || ctx->FogMode==FOG_FRAGMENT)) {
- gl_fog_rgba_pixels( ctx, n, z, rgba );
+ _mesa_fog_rgba_pixels( ctx, n, z, rgba );
}
/* Do the scissor test */
@@ -463,7 +463,7 @@ void gl_write_rgba_span( GLcontext *ctx,
/* Do the alpha test */
if (ctx->Color.AlphaEnabled) {
- if (gl_alpha_test( ctx, n, (const GLubyte (*)[4]) rgba, mask )==0) {
+ if (_mesa_alpha_test( ctx, n, (const GLubyte (*)[4]) rgba, mask )==0) {
return;
}
write_all = GL_FALSE;
@@ -478,7 +478,7 @@ void gl_write_rgba_span( GLcontext *ctx,
}
else if (ctx->Depth.Test) {
/* regular depth testing */
- GLuint m = gl_depth_test_span( ctx, n, x, y, z, mask );
+ GLuint m = _mesa_depth_test_span( ctx, n, x, y, z, mask );
if (m==0) {
return;
}
@@ -499,7 +499,7 @@ void gl_write_rgba_span( GLcontext *ctx,
gl_logicop_rgba_span( ctx, n, x, y, rgba, mask );
}
else if (ctx->Color.BlendEnabled) {
- gl_blend_span( ctx, n, x, y, rgba, mask );
+ _mesa_blend_span( ctx, n, x, y, rgba, mask );
}
/* Color component masking */
@@ -573,7 +573,7 @@ void gl_write_monocolor_span( GLcontext *ctx,
for (i=0;i<n;i++) {
rgba[i][ACOMP] = color[ACOMP];
}
- if (gl_alpha_test( ctx, n, (const GLubyte (*)[4])rgba, mask )==0) {
+ if (_mesa_alpha_test( ctx, n, (const GLubyte (*)[4])rgba, mask )==0) {
return;
}
write_all = GL_FALSE;
@@ -588,7 +588,7 @@ void gl_write_monocolor_span( GLcontext *ctx,
}
else if (ctx->Depth.Test) {
/* regular depth testing */
- GLuint m = gl_depth_test_span( ctx, n, x, y, z, mask );
+ GLuint m = _mesa_depth_test_span( ctx, n, x, y, z, mask );
if (m==0) {
return;
}
@@ -621,7 +621,7 @@ void gl_write_monocolor_span( GLcontext *ctx,
gl_logicop_rgba_span( ctx, n, x, y, rgba, mask );
}
else if (ctx->Color.BlendEnabled) {
- gl_blend_span( ctx, n, x, y, rgba, mask );
+ _mesa_blend_span( ctx, n, x, y, rgba, mask );
}
/* Color component masking */
@@ -743,7 +743,7 @@ void gl_write_texture_span( GLcontext *ctx,
/* Per-pixel fog */
if (ctx->Fog.Enabled && (primitive==GL_BITMAP || ctx->FogMode==FOG_FRAGMENT)) {
- gl_fog_rgba_pixels( ctx, n, z, rgba );
+ _mesa_fog_rgba_pixels( ctx, n, z, rgba );
}
/* Do the scissor test */
@@ -762,7 +762,7 @@ void gl_write_texture_span( GLcontext *ctx,
/* Do the alpha test */
if (ctx->Color.AlphaEnabled) {
- if (gl_alpha_test( ctx, n, (const GLubyte (*)[4]) rgba, mask )==0) {
+ if (_mesa_alpha_test( ctx, n, (const GLubyte (*)[4]) rgba, mask )==0) {
return;
}
write_all = GL_FALSE;
@@ -777,7 +777,7 @@ void gl_write_texture_span( GLcontext *ctx,
}
else if (ctx->Depth.Test) {
/* regular depth testing */
- GLuint m = gl_depth_test_span( ctx, n, x, y, z, mask );
+ GLuint m = _mesa_depth_test_span( ctx, n, x, y, z, mask );
if (m==0) {
return;
}
@@ -796,7 +796,7 @@ void gl_write_texture_span( GLcontext *ctx,
gl_logicop_rgba_span( ctx, n, x, y, rgba, mask );
}
else if (ctx->Color.BlendEnabled) {
- gl_blend_span( ctx, n, x, y, rgba, mask );
+ _mesa_blend_span( ctx, n, x, y, rgba, mask );
}
if (ctx->Color.SWmasking) {
gl_mask_rgba_span( ctx, n, x, y, rgba );
@@ -868,7 +868,7 @@ void gl_write_multitexture_span( GLcontext *ctx, GLuint texUnits,
/* Per-pixel fog */
if (ctx->Fog.Enabled && (primitive==GL_BITMAP || ctx->FogMode==FOG_FRAGMENT)) {
- gl_fog_rgba_pixels( ctx, n, z, rgba );
+ _mesa_fog_rgba_pixels( ctx, n, z, rgba );
}
/* Do the scissor test */
@@ -887,7 +887,7 @@ void gl_write_multitexture_span( GLcontext *ctx, GLuint texUnits,
/* Do the alpha test */
if (ctx->Color.AlphaEnabled) {
- if (gl_alpha_test( ctx, n, (const GLubyte (*)[4])rgba, mask )==0) {
+ if (_mesa_alpha_test( ctx, n, (const GLubyte (*)[4])rgba, mask )==0) {
return;
}
write_all = GL_FALSE;
@@ -902,7 +902,7 @@ void gl_write_multitexture_span( GLcontext *ctx, GLuint texUnits,
}
else if (ctx->Depth.Test) {
/* regular depth testing */
- GLuint m = gl_depth_test_span( ctx, n, x, y, z, mask );
+ GLuint m = _mesa_depth_test_span( ctx, n, x, y, z, mask );
if (m==0) {
return;
}
@@ -921,7 +921,7 @@ void gl_write_multitexture_span( GLcontext *ctx, GLuint texUnits,
gl_logicop_rgba_span( ctx, n, x, y, rgba, mask );
}
else if (ctx->Color.BlendEnabled) {
- gl_blend_span( ctx, n, x, y, rgba, mask );
+ _mesa_blend_span( ctx, n, x, y, rgba, mask );
}
if (ctx->Color.SWmasking) {
gl_mask_rgba_span( ctx, n, x, y, rgba );
diff --git a/xc/extras/Mesa/src/span.h b/xc/extras/Mesa/src/span.h
index 1df0b7983..564227629 100644
--- a/xc/extras/Mesa/src/span.h
+++ b/xc/extras/Mesa/src/span.h
@@ -1,4 +1,4 @@
-/* $Id: span.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: span.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/stages.c b/xc/extras/Mesa/src/stages.c
index d074d7477..472d416a3 100644
--- a/xc/extras/Mesa/src/stages.c
+++ b/xc/extras/Mesa/src/stages.c
@@ -1,4 +1,4 @@
-/* $Id: stages.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: stages.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -744,7 +744,7 @@ CONST struct gl_pipeline_stage gl_default_pipeline[] = {
0, 0,
DYN_STATE,
check_fog,
- gl_fog_vertices },
+ _mesa_fog_vertices },
{ "texture gen/transform 0",
PIPE_OP_TEX0,
diff --git a/xc/extras/Mesa/src/stages.h b/xc/extras/Mesa/src/stages.h
index 178e29d13..f3cef8764 100644
--- a/xc/extras/Mesa/src/stages.h
+++ b/xc/extras/Mesa/src/stages.h
@@ -1,4 +1,4 @@
-/* $Id: stages.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: stages.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/state.c b/xc/extras/Mesa/src/state.c
new file mode 100644
index 000000000..e9c98bc8e
--- /dev/null
+++ b/xc/extras/Mesa/src/state.c
@@ -0,0 +1,1207 @@
+/* $Id: state.c,v 1.2 2000/02/12 23:09:22 brianp Exp $ */
+
+/*
+ * Mesa 3-D graphics library
+ * Version: 3.3
+ *
+ * Copyright (C) 1999-2000 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"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*
+ * This file initializes the immediate-mode dispatch table (which may
+ * be state-dependant) and manages internal Mesa state update.
+ */
+
+
+#ifdef PC_HEADER
+#include "all.h"
+#else
+#include "glheader.h"
+#include "accum.h"
+#include "alpha.h"
+#include "attrib.h"
+#include "bitmap.h"
+#include "blend.h"
+#include "buffers.h"
+#include "clip.h"
+#include "colortab.h"
+#include "context.h"
+#include "copypix.h"
+#include "cva.h"
+#include "depth.h"
+#include "dlist.h"
+#include "drawpix.h"
+#include "enable.h"
+#include "eval.h"
+#include "get.h"
+#include "feedback.h"
+#include "fog.h"
+#include "hint.h"
+#include "imaging.h"
+#include "light.h"
+#include "lines.h"
+#include "logic.h"
+#include "masking.h"
+#include "matrix.h"
+#include "mmath.h"
+#include "pipeline.h"
+#include "pixel.h"
+#include "points.h"
+#include "polygon.h"
+#include "quads.h"
+#include "rastpos.h"
+#include "readpix.h"
+#include "rect.h"
+#include "scissor.h"
+#include "shade.h"
+#include "state.h"
+#include "stencil.h"
+#include "teximage.h"
+#include "texobj.h"
+#include "texstate.h"
+#include "texture.h"
+#include "triangle.h"
+#include "types.h"
+#include "varray.h"
+#include "vbfill.h"
+#include "vbrender.h"
+#include "winpos.h"
+#endif
+
+
+
+
+
+static int
+generic_noop(void)
+{
+#ifdef DEBUG
+ gl_problem(NULL, "undefined function dispatch");
+#endif
+ return 0;
+}
+
+
+void
+_mesa_init_no_op_table(struct _glapi_table *table)
+{
+ /* Check to be sure the dispatcher's table is at least as big as Mesa's. */
+ const GLuint size = sizeof(struct _glapi_table) / sizeof(void *);
+ assert(_glapi_get_dispatch_table_size() >= size);
+
+ {
+ const GLuint n = _glapi_get_dispatch_table_size();
+ GLuint i;
+ void **dispatch = (void **) table;
+ for (i = 0; i < n; i++) {
+ dispatch[i] = (void *) generic_noop;
+ }
+ }
+}
+
+
+/*
+ * Initialize the given dispatch table with pointers to Mesa's
+ * immediate-mode commands.
+ */
+void
+_mesa_init_exec_table(struct _glapi_table *exec)
+{
+ /* first initialize all dispatch slots to no-op */
+ _mesa_init_no_op_table(exec);
+
+ /* load the dispatch slots we understand */
+ exec->Accum = _mesa_Accum;
+ exec->AlphaFunc = _mesa_AlphaFunc;
+ exec->Begin = _mesa_Begin;
+ exec->Bitmap = _mesa_Bitmap;
+ exec->BlendFunc = _mesa_BlendFunc;
+ exec->CallList = _mesa_CallList;
+ exec->CallLists = _mesa_CallLists;
+ exec->Clear = _mesa_Clear;
+ exec->ClearAccum = _mesa_ClearAccum;
+ exec->ClearColor = _mesa_ClearColor;
+ exec->ClearDepth = _mesa_ClearDepth;
+ exec->ClearIndex = _mesa_ClearIndex;
+ exec->ClearStencil = _mesa_ClearStencil;
+ exec->ClipPlane = _mesa_ClipPlane;
+ exec->Color3b = _mesa_Color3b;
+ exec->Color3bv = _mesa_Color3bv;
+ exec->Color3d = _mesa_Color3d;
+ exec->Color3dv = _mesa_Color3dv;
+ exec->Color3f = _mesa_Color3f;
+ exec->Color3fv = _mesa_Color3fv;
+ exec->Color3i = _mesa_Color3i;
+ exec->Color3iv = _mesa_Color3iv;
+ exec->Color3s = _mesa_Color3s;
+ exec->Color3sv = _mesa_Color3sv;
+ exec->Color3ub = _mesa_Color3ub;
+ exec->Color3ubv = _mesa_Color3ubv;
+ exec->Color3ui = _mesa_Color3ui;
+ exec->Color3uiv = _mesa_Color3uiv;
+ exec->Color3us = _mesa_Color3us;
+ exec->Color3usv = _mesa_Color3usv;
+ exec->Color4b = _mesa_Color4b;
+ exec->Color4bv = _mesa_Color4bv;
+ exec->Color4d = _mesa_Color4d;
+ exec->Color4dv = _mesa_Color4dv;
+ exec->Color4f = _mesa_Color4f;
+ exec->Color4fv = _mesa_Color4fv;
+ exec->Color4i = _mesa_Color4i;
+ exec->Color4iv = _mesa_Color4iv;
+ exec->Color4s = _mesa_Color4s;
+ exec->Color4sv = _mesa_Color4sv;
+ exec->Color4ub = _mesa_Color4ub;
+ exec->Color4ubv = _mesa_Color4ubv;
+ exec->Color4ui = _mesa_Color4ui;
+ exec->Color4uiv = _mesa_Color4uiv;
+ exec->Color4us = _mesa_Color4us;
+ exec->Color4usv = _mesa_Color4usv;
+ exec->ColorMask = _mesa_ColorMask;
+ exec->ColorMaterial = _mesa_ColorMaterial;
+ exec->CopyPixels = _mesa_CopyPixels;
+ exec->CullFace = _mesa_CullFace;
+ exec->DeleteLists = _mesa_DeleteLists;
+ exec->DepthFunc = _mesa_DepthFunc;
+ exec->DepthMask = _mesa_DepthMask;
+ exec->DepthRange = _mesa_DepthRange;
+ exec->Disable = _mesa_Disable;
+ exec->DrawBuffer = _mesa_DrawBuffer;
+ exec->DrawPixels = _mesa_DrawPixels;
+ exec->EdgeFlag = _mesa_EdgeFlag;
+ exec->EdgeFlagv = _mesa_EdgeFlagv;
+ exec->Enable = _mesa_Enable;
+ exec->End = _mesa_End;
+ exec->EndList = _mesa_EndList;
+ exec->EvalCoord1d = _mesa_EvalCoord1d;
+ exec->EvalCoord1dv = _mesa_EvalCoord1dv;
+ exec->EvalCoord1f = _mesa_EvalCoord1f;
+ exec->EvalCoord1fv = _mesa_EvalCoord1fv;
+ exec->EvalCoord2d = _mesa_EvalCoord2d;
+ exec->EvalCoord2dv = _mesa_EvalCoord2dv;
+ exec->EvalCoord2f = _mesa_EvalCoord2f;
+ exec->EvalCoord2fv = _mesa_EvalCoord2fv;
+ exec->EvalMesh1 = _mesa_EvalMesh1;
+ exec->EvalMesh2 = _mesa_EvalMesh2;
+ exec->EvalPoint1 = _mesa_EvalPoint1;
+ exec->EvalPoint2 = _mesa_EvalPoint2;
+ exec->FeedbackBuffer = _mesa_FeedbackBuffer;
+ exec->Finish = _mesa_Finish;
+ exec->Flush = _mesa_Flush;
+ exec->Fogf = _mesa_Fogf;
+ exec->Fogfv = _mesa_Fogfv;
+ exec->Fogi = _mesa_Fogi;
+ exec->Fogiv = _mesa_Fogiv;
+ exec->FrontFace = _mesa_FrontFace;
+ exec->Frustum = _mesa_Frustum;
+ exec->GenLists = _mesa_GenLists;
+ exec->GetBooleanv = _mesa_GetBooleanv;
+ exec->GetClipPlane = _mesa_GetClipPlane;
+ exec->GetDoublev = _mesa_GetDoublev;
+ exec->GetError = _mesa_GetError;
+ exec->GetFloatv = _mesa_GetFloatv;
+ exec->GetIntegerv = _mesa_GetIntegerv;
+ exec->GetLightfv = _mesa_GetLightfv;
+ exec->GetLightiv = _mesa_GetLightiv;
+ exec->GetMapdv = _mesa_GetMapdv;
+ exec->GetMapfv = _mesa_GetMapfv;
+ exec->GetMapiv = _mesa_GetMapiv;
+ exec->GetMaterialfv = _mesa_GetMaterialfv;
+ exec->GetMaterialiv = _mesa_GetMaterialiv;
+ exec->GetPixelMapfv = _mesa_GetPixelMapfv;
+ exec->GetPixelMapuiv = _mesa_GetPixelMapuiv;
+ exec->GetPixelMapusv = _mesa_GetPixelMapusv;
+ exec->GetPolygonStipple = _mesa_GetPolygonStipple;
+ exec->GetString = _mesa_GetString;
+ exec->GetTexEnvfv = _mesa_GetTexEnvfv;
+ exec->GetTexEnviv = _mesa_GetTexEnviv;
+ exec->GetTexGendv = _mesa_GetTexGendv;
+ exec->GetTexGenfv = _mesa_GetTexGenfv;
+ exec->GetTexGeniv = _mesa_GetTexGeniv;
+ exec->GetTexImage = _mesa_GetTexImage;
+ exec->GetTexLevelParameterfv = _mesa_GetTexLevelParameterfv;
+ exec->GetTexLevelParameteriv = _mesa_GetTexLevelParameteriv;
+ exec->GetTexParameterfv = _mesa_GetTexParameterfv;
+ exec->GetTexParameteriv = _mesa_GetTexParameteriv;
+ exec->Hint = _mesa_Hint;
+ exec->IndexMask = _mesa_IndexMask;
+ exec->Indexd = _mesa_Indexd;
+ exec->Indexdv = _mesa_Indexdv;
+ exec->Indexf = _mesa_Indexf;
+ exec->Indexfv = _mesa_Indexfv;
+ exec->Indexi = _mesa_Indexi;
+ exec->Indexiv = _mesa_Indexiv;
+ exec->Indexs = _mesa_Indexs;
+ exec->Indexsv = _mesa_Indexsv;
+ exec->InitNames = _mesa_InitNames;
+ exec->IsEnabled = _mesa_IsEnabled;
+ exec->IsList = _mesa_IsList;
+ exec->LightModelf = _mesa_LightModelf;
+ exec->LightModelfv = _mesa_LightModelfv;
+ exec->LightModeli = _mesa_LightModeli;
+ exec->LightModeliv = _mesa_LightModeliv;
+ exec->Lightf = _mesa_Lightf;
+ exec->Lightfv = _mesa_Lightfv;
+ exec->Lighti = _mesa_Lighti;
+ exec->Lightiv = _mesa_Lightiv;
+ exec->LineStipple = _mesa_LineStipple;
+ exec->LineWidth = _mesa_LineWidth;
+ exec->ListBase = _mesa_ListBase;
+ exec->LoadIdentity = _mesa_LoadIdentity;
+ exec->LoadMatrixd = _mesa_LoadMatrixd;
+ exec->LoadMatrixf = _mesa_LoadMatrixf;
+ exec->LoadName = _mesa_LoadName;
+ exec->LogicOp = _mesa_LogicOp;
+ exec->Map1d = _mesa_Map1d;
+ exec->Map1f = _mesa_Map1f;
+ exec->Map2d = _mesa_Map2d;
+ exec->Map2f = _mesa_Map2f;
+ exec->MapGrid1d = _mesa_MapGrid1d;
+ exec->MapGrid1f = _mesa_MapGrid1f;
+ exec->MapGrid2d = _mesa_MapGrid2d;
+ exec->MapGrid2f = _mesa_MapGrid2f;
+ exec->Materialf = _mesa_Materialf;
+ exec->Materialfv = _mesa_Materialfv;
+ exec->Materiali = _mesa_Materiali;
+ exec->Materialiv = _mesa_Materialiv;
+ exec->MatrixMode = _mesa_MatrixMode;
+ exec->MultMatrixd = _mesa_MultMatrixd;
+ exec->MultMatrixf = _mesa_MultMatrixf;
+ exec->NewList = _mesa_NewList;
+ exec->Normal3b = _mesa_Normal3b;
+ exec->Normal3bv = _mesa_Normal3bv;
+ exec->Normal3d = _mesa_Normal3d;
+ exec->Normal3dv = _mesa_Normal3dv;
+ exec->Normal3f = _mesa_Normal3f;
+ exec->Normal3fv = _mesa_Normal3fv;
+ exec->Normal3i = _mesa_Normal3i;
+ exec->Normal3iv = _mesa_Normal3iv;
+ exec->Normal3s = _mesa_Normal3s;
+ exec->Normal3sv = _mesa_Normal3sv;
+ exec->Ortho = _mesa_Ortho;
+ exec->PassThrough = _mesa_PassThrough;
+ exec->PixelMapfv = _mesa_PixelMapfv;
+ exec->PixelMapuiv = _mesa_PixelMapuiv;
+ exec->PixelMapusv = _mesa_PixelMapusv;
+ exec->PixelStoref = _mesa_PixelStoref;
+ exec->PixelStorei = _mesa_PixelStorei;
+ exec->PixelTransferf = _mesa_PixelTransferf;
+ exec->PixelTransferi = _mesa_PixelTransferi;
+ exec->PixelZoom = _mesa_PixelZoom;
+ exec->PointSize = _mesa_PointSize;
+ exec->PolygonMode = _mesa_PolygonMode;
+ exec->PolygonOffset = _mesa_PolygonOffset;
+ exec->PolygonStipple = _mesa_PolygonStipple;
+ exec->PopAttrib = _mesa_PopAttrib;
+ exec->PopMatrix = _mesa_PopMatrix;
+ exec->PopName = _mesa_PopName;
+ exec->PushAttrib = _mesa_PushAttrib;
+ exec->PushMatrix = _mesa_PushMatrix;
+ exec->PushName = _mesa_PushName;
+ exec->RasterPos2d = _mesa_RasterPos2d;
+ exec->RasterPos2dv = _mesa_RasterPos2dv;
+ exec->RasterPos2f = _mesa_RasterPos2f;
+ exec->RasterPos2fv = _mesa_RasterPos2fv;
+ exec->RasterPos2i = _mesa_RasterPos2i;
+ exec->RasterPos2iv = _mesa_RasterPos2iv;
+ exec->RasterPos2s = _mesa_RasterPos2s;
+ exec->RasterPos2sv = _mesa_RasterPos2sv;
+ exec->RasterPos3d = _mesa_RasterPos3d;
+ exec->RasterPos3dv = _mesa_RasterPos3dv;
+ exec->RasterPos3f = _mesa_RasterPos3f;
+ exec->RasterPos3fv = _mesa_RasterPos3fv;
+ exec->RasterPos3i = _mesa_RasterPos3i;
+ exec->RasterPos3iv = _mesa_RasterPos3iv;
+ exec->RasterPos3s = _mesa_RasterPos3s;
+ exec->RasterPos3sv = _mesa_RasterPos3sv;
+ exec->RasterPos4d = _mesa_RasterPos4d;
+ exec->RasterPos4dv = _mesa_RasterPos4dv;
+ exec->RasterPos4f = _mesa_RasterPos4f;
+ exec->RasterPos4fv = _mesa_RasterPos4fv;
+ exec->RasterPos4i = _mesa_RasterPos4i;
+ exec->RasterPos4iv = _mesa_RasterPos4iv;
+ exec->RasterPos4s = _mesa_RasterPos4s;
+ exec->RasterPos4sv = _mesa_RasterPos4sv;
+ exec->ReadBuffer = _mesa_ReadBuffer;
+ exec->ReadPixels = _mesa_ReadPixels;
+ exec->Rectd = _mesa_Rectd;
+ exec->Rectdv = _mesa_Rectdv;
+ exec->Rectf = _mesa_Rectf;
+ exec->Rectfv = _mesa_Rectfv;
+ exec->Recti = _mesa_Recti;
+ exec->Rectiv = _mesa_Rectiv;
+ exec->Rects = _mesa_Rects;
+ exec->Rectsv = _mesa_Rectsv;
+ exec->RenderMode = _mesa_RenderMode;
+ exec->Rotated = _mesa_Rotated;
+ exec->Rotatef = _mesa_Rotatef;
+ exec->Scaled = _mesa_Scaled;
+ exec->Scalef = _mesa_Scalef;
+ exec->Scissor = _mesa_Scissor;
+ exec->SelectBuffer = _mesa_SelectBuffer;
+ exec->ShadeModel = _mesa_ShadeModel;
+ exec->StencilFunc = _mesa_StencilFunc;
+ exec->StencilMask = _mesa_StencilMask;
+ exec->StencilOp = _mesa_StencilOp;
+ exec->TexCoord1d = _mesa_TexCoord1d;
+ exec->TexCoord1dv = _mesa_TexCoord1dv;
+ exec->TexCoord1f = _mesa_TexCoord1f;
+ exec->TexCoord1fv = _mesa_TexCoord1fv;
+ exec->TexCoord1i = _mesa_TexCoord1i;
+ exec->TexCoord1iv = _mesa_TexCoord1iv;
+ exec->TexCoord1s = _mesa_TexCoord1s;
+ exec->TexCoord1sv = _mesa_TexCoord1sv;
+ exec->TexCoord2d = _mesa_TexCoord2d;
+ exec->TexCoord2dv = _mesa_TexCoord2dv;
+ exec->TexCoord2f = _mesa_TexCoord2f;
+ exec->TexCoord2fv = _mesa_TexCoord2fv;
+ exec->TexCoord2i = _mesa_TexCoord2i;
+ exec->TexCoord2iv = _mesa_TexCoord2iv;
+ exec->TexCoord2s = _mesa_TexCoord2s;
+ exec->TexCoord2sv = _mesa_TexCoord2sv;
+ exec->TexCoord3d = _mesa_TexCoord3d;
+ exec->TexCoord3dv = _mesa_TexCoord3dv;
+ exec->TexCoord3f = _mesa_TexCoord3f;
+ exec->TexCoord3fv = _mesa_TexCoord3fv;
+ exec->TexCoord3i = _mesa_TexCoord3i;
+ exec->TexCoord3iv = _mesa_TexCoord3iv;
+ exec->TexCoord3s = _mesa_TexCoord3s;
+ exec->TexCoord3sv = _mesa_TexCoord3sv;
+ exec->TexCoord4d = _mesa_TexCoord4d;
+ exec->TexCoord4dv = _mesa_TexCoord4dv;
+ exec->TexCoord4f = _mesa_TexCoord4f;
+ exec->TexCoord4fv = _mesa_TexCoord4fv;
+ exec->TexCoord4i = _mesa_TexCoord4i;
+ exec->TexCoord4iv = _mesa_TexCoord4iv;
+ exec->TexCoord4s = _mesa_TexCoord4s;
+ exec->TexCoord4sv = _mesa_TexCoord4sv;
+ exec->TexEnvf = _mesa_TexEnvf;
+ exec->TexEnvfv = _mesa_TexEnvfv;
+ exec->TexEnvi = _mesa_TexEnvi;
+ exec->TexEnviv = _mesa_TexEnviv;
+ exec->TexGend = _mesa_TexGend;
+ exec->TexGendv = _mesa_TexGendv;
+ exec->TexGenf = _mesa_TexGenf;
+ exec->TexGenfv = _mesa_TexGenfv;
+ exec->TexGeni = _mesa_TexGeni;
+ exec->TexGeniv = _mesa_TexGeniv;
+ exec->TexImage1D = _mesa_TexImage1D;
+ exec->TexImage2D = _mesa_TexImage2D;
+ exec->TexParameterf = _mesa_TexParameterf;
+ exec->TexParameterfv = _mesa_TexParameterfv;
+ exec->TexParameteri = _mesa_TexParameteri;
+ exec->TexParameteriv = _mesa_TexParameteriv;
+ exec->Translated = _mesa_Translated;
+ exec->Translatef = _mesa_Translatef;
+ exec->Vertex2d = _mesa_Vertex2d;
+ exec->Vertex2dv = _mesa_Vertex2dv;
+ exec->Vertex2f = _mesa_Vertex2f;
+ exec->Vertex2fv = _mesa_Vertex2fv;
+ exec->Vertex2i = _mesa_Vertex2i;
+ exec->Vertex2iv = _mesa_Vertex2iv;
+ exec->Vertex2s = _mesa_Vertex2s;
+ exec->Vertex2sv = _mesa_Vertex2sv;
+ exec->Vertex3d = _mesa_Vertex3d;
+ exec->Vertex3dv = _mesa_Vertex3dv;
+ exec->Vertex3f = _mesa_Vertex3f;
+ exec->Vertex3fv = _mesa_Vertex3fv;
+ exec->Vertex3i = _mesa_Vertex3i;
+ exec->Vertex3iv = _mesa_Vertex3iv;
+ exec->Vertex3s = _mesa_Vertex3s;
+ exec->Vertex3sv = _mesa_Vertex3sv;
+ exec->Vertex4d = _mesa_Vertex4d;
+ exec->Vertex4dv = _mesa_Vertex4dv;
+ exec->Vertex4f = _mesa_Vertex4f;
+ exec->Vertex4fv = _mesa_Vertex4fv;
+ exec->Vertex4i = _mesa_Vertex4i;
+ exec->Vertex4iv = _mesa_Vertex4iv;
+ exec->Vertex4s = _mesa_Vertex4s;
+ exec->Vertex4sv = _mesa_Vertex4sv;
+ exec->Viewport = _mesa_Viewport;
+
+ /* 1.1 */
+ exec->AreTexturesResident = _mesa_AreTexturesResident;
+ exec->ArrayElement = _mesa_ArrayElement;
+ exec->BindTexture = _mesa_BindTexture;
+ exec->ColorPointer = _mesa_ColorPointer;
+ exec->CopyTexImage1D = _mesa_CopyTexImage1D;
+ exec->CopyTexImage2D = _mesa_CopyTexImage2D;
+ exec->CopyTexSubImage1D = _mesa_CopyTexSubImage1D;
+ exec->CopyTexSubImage2D = _mesa_CopyTexSubImage2D;
+ exec->DeleteTextures = _mesa_DeleteTextures;
+ exec->DisableClientState = _mesa_DisableClientState;
+ exec->DrawArrays = _mesa_DrawArrays;
+ exec->DrawElements = _mesa_DrawElements;
+ exec->EdgeFlagPointer = _mesa_EdgeFlagPointer;
+ exec->EnableClientState = _mesa_EnableClientState;
+ exec->GenTextures = _mesa_GenTextures;
+ exec->GetPointerv = _mesa_GetPointerv;
+ exec->IndexPointer = _mesa_IndexPointer;
+ exec->Indexub = _mesa_Indexub;
+ exec->Indexubv = _mesa_Indexubv;
+ exec->InterleavedArrays = _mesa_InterleavedArrays;
+ exec->IsTexture = _mesa_IsTexture;
+ exec->NormalPointer = _mesa_NormalPointer;
+ exec->PopClientAttrib = _mesa_PopClientAttrib;
+ exec->PrioritizeTextures = _mesa_PrioritizeTextures;
+ exec->PushClientAttrib = _mesa_PushClientAttrib;
+ exec->TexCoordPointer = _mesa_TexCoordPointer;
+ exec->TexSubImage1D = _mesa_TexSubImage1D;
+ exec->TexSubImage2D = _mesa_TexSubImage2D;
+ exec->VertexPointer = _mesa_VertexPointer;
+
+ /* 1.2 */
+ exec->CopyTexSubImage3D = _mesa_CopyTexSubImage3D;
+ exec->DrawRangeElements = _mesa_DrawRangeElements;
+ exec->TexImage3D = _mesa_TexImage3D;
+ exec->TexSubImage3D = _mesa_TexSubImage3D;
+
+
+ /* OpenGL 1.2 GL_ARB_imaging */
+ exec->BlendColor = _mesa_BlendColor;
+ exec->BlendEquation = _mesa_BlendEquation;
+ exec->ColorSubTable = _mesa_ColorSubTable;
+ exec->ColorTable = _mesa_ColorTable;
+ exec->ColorTableParameterfv = _mesa_ColorTableParameterfv;
+ exec->ColorTableParameteriv = _mesa_ColorTableParameteriv;
+ exec->ConvolutionFilter1D = _mesa_ConvolutionFilter1D;
+ exec->ConvolutionFilter2D = _mesa_ConvolutionFilter2D;
+ exec->ConvolutionParameterf = _mesa_ConvolutionParameterf;
+ exec->ConvolutionParameterfv = _mesa_ConvolutionParameterfv;
+ exec->ConvolutionParameteri = _mesa_ConvolutionParameteri;
+ exec->ConvolutionParameteriv = _mesa_ConvolutionParameteriv;
+ exec->CopyColorSubTable = _mesa_CopyColorSubTable;
+ exec->CopyColorTable = _mesa_CopyColorTable;
+ exec->CopyConvolutionFilter1D = _mesa_CopyConvolutionFilter1D;
+ exec->CopyConvolutionFilter2D = _mesa_CopyConvolutionFilter2D;
+ exec->GetColorTable = _mesa_GetColorTable;
+ exec->GetColorTableParameterfv = _mesa_GetColorTableParameterfv;
+ exec->GetColorTableParameteriv = _mesa_GetColorTableParameteriv;
+ exec->GetConvolutionFilter = _mesa_GetConvolutionFilter;
+ exec->GetConvolutionParameterfv = _mesa_GetConvolutionParameterfv;
+ exec->GetConvolutionParameteriv = _mesa_GetConvolutionParameteriv;
+ exec->GetHistogram = _mesa_GetHistogram;
+ exec->GetHistogramParameterfv = _mesa_GetHistogramParameterfv;
+ exec->GetHistogramParameteriv = _mesa_GetHistogramParameteriv;
+ exec->GetMinmax = _mesa_GetMinmax;
+ exec->GetMinmaxParameterfv = _mesa_GetMinmaxParameterfv;
+ exec->GetMinmaxParameteriv = _mesa_GetMinmaxParameteriv;
+ exec->GetSeparableFilter = _mesa_GetSeparableFilter;
+ exec->Histogram = _mesa_Histogram;
+ exec->Minmax = _mesa_Minmax;
+ exec->ResetHistogram = _mesa_ResetHistogram;
+ exec->ResetMinmax = _mesa_ResetMinmax;
+ exec->SeparableFilter2D = _mesa_SeparableFilter2D;
+
+ /* 6. GL_EXT_texture3d */
+ exec->CopyTexSubImage3DEXT = _mesa_CopyTexSubImage3D;
+ exec->TexImage3DEXT = _mesa_TexImage3DEXT;
+ exec->TexSubImage3DEXT = _mesa_TexSubImage3D;
+
+ /* GL_EXT_paletted_texture */
+ exec->ColorTableEXT = _mesa_ColorTableEXT;
+ exec->ColorSubTableEXT = _mesa_ColorSubTableEXT;
+ exec->GetColorTableEXT = _mesa_GetColorTableEXT;
+ exec->GetColorTableParameterfvEXT = _mesa_GetColorTableParameterfvEXT;
+ exec->GetColorTableParameterivEXT = _mesa_GetColorTableParameterivEXT;
+
+ /* GL_EXT_compiled_vertex_array */
+ exec->LockArraysEXT = _mesa_LockArraysEXT;
+ exec->UnlockArraysEXT = _mesa_UnlockArraysEXT;
+
+ /* GL_EXT_point_parameters */
+ exec->PointParameterfEXT = _mesa_PointParameterfEXT;
+ exec->PointParameterfvEXT = _mesa_PointParameterfvEXT;
+
+ /* 77. GL_PGI_misc_hints */
+ exec->HintPGI = _mesa_HintPGI;
+
+ /* GL_EXT_polygon_offset */
+ exec->PolygonOffsetEXT = _mesa_PolygonOffsetEXT;
+
+ /* GL_EXT_blend_minmax */
+ exec->BlendEquationEXT = _mesa_BlendEquationEXT;
+
+ /* GL_EXT_blend_color */
+ exec->BlendColorEXT = _mesa_BlendColorEXT;
+
+ /* GL_ARB_multitexture */
+ exec->ActiveTextureARB = _mesa_ActiveTextureARB;
+ exec->ClientActiveTextureARB = _mesa_ClientActiveTextureARB;
+ exec->MultiTexCoord1dARB = _mesa_MultiTexCoord1dARB;
+ exec->MultiTexCoord1dvARB = _mesa_MultiTexCoord1dvARB;
+ exec->MultiTexCoord1fARB = _mesa_MultiTexCoord1fARB;
+ exec->MultiTexCoord1fvARB = _mesa_MultiTexCoord1fvARB;
+ exec->MultiTexCoord1iARB = _mesa_MultiTexCoord1iARB;
+ exec->MultiTexCoord1ivARB = _mesa_MultiTexCoord1ivARB;
+ exec->MultiTexCoord1sARB = _mesa_MultiTexCoord1sARB;
+ exec->MultiTexCoord1svARB = _mesa_MultiTexCoord1svARB;
+ exec->MultiTexCoord2dARB = _mesa_MultiTexCoord2dARB;
+ exec->MultiTexCoord2dvARB = _mesa_MultiTexCoord2dvARB;
+ exec->MultiTexCoord2fARB = _mesa_MultiTexCoord2fARB;
+ exec->MultiTexCoord2fvARB = _mesa_MultiTexCoord2fvARB;
+ exec->MultiTexCoord2iARB = _mesa_MultiTexCoord2iARB;
+ exec->MultiTexCoord2ivARB = _mesa_MultiTexCoord2ivARB;
+ exec->MultiTexCoord2sARB = _mesa_MultiTexCoord2sARB;
+ exec->MultiTexCoord2svARB = _mesa_MultiTexCoord2svARB;
+ exec->MultiTexCoord3dARB = _mesa_MultiTexCoord3dARB;
+ exec->MultiTexCoord3dvARB = _mesa_MultiTexCoord3dvARB;
+ exec->MultiTexCoord3fARB = _mesa_MultiTexCoord3fARB;
+ exec->MultiTexCoord3fvARB = _mesa_MultiTexCoord3fvARB;
+ exec->MultiTexCoord3iARB = _mesa_MultiTexCoord3iARB;
+ exec->MultiTexCoord3ivARB = _mesa_MultiTexCoord3ivARB;
+ exec->MultiTexCoord3sARB = _mesa_MultiTexCoord3sARB;
+ exec->MultiTexCoord3svARB = _mesa_MultiTexCoord3svARB;
+ exec->MultiTexCoord4dARB = _mesa_MultiTexCoord4dARB;
+ exec->MultiTexCoord4dvARB = _mesa_MultiTexCoord4dvARB;
+ exec->MultiTexCoord4fARB = _mesa_MultiTexCoord4fARB;
+ exec->MultiTexCoord4fvARB = _mesa_MultiTexCoord4fvARB;
+ exec->MultiTexCoord4iARB = _mesa_MultiTexCoord4iARB;
+ exec->MultiTexCoord4ivARB = _mesa_MultiTexCoord4ivARB;
+ exec->MultiTexCoord4sARB = _mesa_MultiTexCoord4sARB;
+ exec->MultiTexCoord4svARB = _mesa_MultiTexCoord4svARB;
+
+ /* GL_INGR_blend_func_separate */
+ exec->BlendFuncSeparateINGR = _mesa_BlendFuncSeparateINGR;
+
+ /* GL_MESA_window_pos */
+ exec->WindowPos2dMESA = _mesa_WindowPos2dMESA;
+ exec->WindowPos2dvMESA = _mesa_WindowPos2dvMESA;
+ exec->WindowPos2fMESA = _mesa_WindowPos2fMESA;
+ exec->WindowPos2fvMESA = _mesa_WindowPos2fvMESA;
+ exec->WindowPos2iMESA = _mesa_WindowPos2iMESA;
+ exec->WindowPos2ivMESA = _mesa_WindowPos2ivMESA;
+ exec->WindowPos2sMESA = _mesa_WindowPos2sMESA;
+ exec->WindowPos2svMESA = _mesa_WindowPos2svMESA;
+ exec->WindowPos3dMESA = _mesa_WindowPos3dMESA;
+ exec->WindowPos3dvMESA = _mesa_WindowPos3dvMESA;
+ exec->WindowPos3fMESA = _mesa_WindowPos3fMESA;
+ exec->WindowPos3fvMESA = _mesa_WindowPos3fvMESA;
+ exec->WindowPos3iMESA = _mesa_WindowPos3iMESA;
+ exec->WindowPos3ivMESA = _mesa_WindowPos3ivMESA;
+ exec->WindowPos3sMESA = _mesa_WindowPos3sMESA;
+ exec->WindowPos3svMESA = _mesa_WindowPos3svMESA;
+ exec->WindowPos4dMESA = _mesa_WindowPos4dMESA;
+ exec->WindowPos4dvMESA = _mesa_WindowPos4dvMESA;
+ exec->WindowPos4fMESA = _mesa_WindowPos4fMESA;
+ exec->WindowPos4fvMESA = _mesa_WindowPos4fvMESA;
+ exec->WindowPos4iMESA = _mesa_WindowPos4iMESA;
+ exec->WindowPos4ivMESA = _mesa_WindowPos4ivMESA;
+ exec->WindowPos4sMESA = _mesa_WindowPos4sMESA;
+ exec->WindowPos4svMESA = _mesa_WindowPos4svMESA;
+
+ /* GL_MESA_resize_buffers */
+ exec->ResizeBuffersMESA = _mesa_ResizeBuffersMESA;
+
+ /* GL_ARB_transpose_matrix */
+ exec->LoadTransposeMatrixdARB = _mesa_LoadTransposeMatrixdARB;
+ exec->LoadTransposeMatrixfARB = _mesa_LoadTransposeMatrixfARB;
+ exec->MultTransposeMatrixdARB = _mesa_MultTransposeMatrixdARB;
+ exec->MultTransposeMatrixfARB = _mesa_MultTransposeMatrixfARB;
+}
+
+
+/**********************************************************************/
+/***** State update logic *****/
+/**********************************************************************/
+
+
+/*
+ * Since the device driver may or may not support pixel logic ops we
+ * have to make some extensive tests to determine whether or not
+ * software-implemented logic operations have to be used.
+ */
+static void update_pixel_logic( GLcontext *ctx )
+{
+ if (ctx->Visual->RGBAflag) {
+ /* RGBA mode blending w/ Logic Op */
+ if (ctx->Color.ColorLogicOpEnabled) {
+ if (ctx->Driver.LogicOp
+ && (*ctx->Driver.LogicOp)( ctx, ctx->Color.LogicOp )) {
+ /* Device driver can do logic, don't have to do it in software */
+ ctx->Color.SWLogicOpEnabled = GL_FALSE;
+ }
+ else {
+ /* Device driver can't do logic op so we do it in software */
+ ctx->Color.SWLogicOpEnabled = GL_TRUE;
+ }
+ }
+ else {
+ /* no logic op */
+ if (ctx->Driver.LogicOp) {
+ (void) (*ctx->Driver.LogicOp)( ctx, GL_COPY );
+ }
+ ctx->Color.SWLogicOpEnabled = GL_FALSE;
+ }
+ }
+ else {
+ /* CI mode Logic Op */
+ if (ctx->Color.IndexLogicOpEnabled) {
+ if (ctx->Driver.LogicOp
+ && (*ctx->Driver.LogicOp)( ctx, ctx->Color.LogicOp )) {
+ /* Device driver can do logic, don't have to do it in software */
+ ctx->Color.SWLogicOpEnabled = GL_FALSE;
+ }
+ else {
+ /* Device driver can't do logic op so we do it in software */
+ ctx->Color.SWLogicOpEnabled = GL_TRUE;
+ }
+ }
+ else {
+ /* no logic op */
+ if (ctx->Driver.LogicOp) {
+ (void) (*ctx->Driver.LogicOp)( ctx, GL_COPY );
+ }
+ ctx->Color.SWLogicOpEnabled = GL_FALSE;
+ }
+ }
+}
+
+
+
+/*
+ * Check if software implemented RGBA or Color Index masking is needed.
+ */
+static void update_pixel_masking( GLcontext *ctx )
+{
+ if (ctx->Visual->RGBAflag) {
+ GLuint *colorMask = (GLuint *) ctx->Color.ColorMask;
+ if (*colorMask == 0xffffffff) {
+ /* disable masking */
+ if (ctx->Driver.ColorMask) {
+ (void) (*ctx->Driver.ColorMask)( ctx, GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
+ }
+ ctx->Color.SWmasking = GL_FALSE;
+ }
+ else {
+ /* Ask driver to do color masking, if it can't then
+ * do it in software
+ */
+ GLboolean red = ctx->Color.ColorMask[RCOMP] ? GL_TRUE : GL_FALSE;
+ GLboolean green = ctx->Color.ColorMask[GCOMP] ? GL_TRUE : GL_FALSE;
+ GLboolean blue = ctx->Color.ColorMask[BCOMP] ? GL_TRUE : GL_FALSE;
+ GLboolean alpha = ctx->Color.ColorMask[ACOMP] ? GL_TRUE : GL_FALSE;
+ if (ctx->Driver.ColorMask
+ && (*ctx->Driver.ColorMask)( ctx, red, green, blue, alpha )) {
+ ctx->Color.SWmasking = GL_FALSE;
+ }
+ else {
+ ctx->Color.SWmasking = GL_TRUE;
+ }
+ }
+ }
+ else {
+ if (ctx->Color.IndexMask==0xffffffff) {
+ /* disable masking */
+ if (ctx->Driver.IndexMask) {
+ (void) (*ctx->Driver.IndexMask)( ctx, 0xffffffff );
+ }
+ ctx->Color.SWmasking = GL_FALSE;
+ }
+ else {
+ /* Ask driver to do index masking, if it can't then
+ * do it in software
+ */
+ if (ctx->Driver.IndexMask
+ && (*ctx->Driver.IndexMask)( ctx, ctx->Color.IndexMask )) {
+ ctx->Color.SWmasking = GL_FALSE;
+ }
+ else {
+ ctx->Color.SWmasking = GL_TRUE;
+ }
+ }
+ }
+}
+
+
+static void update_fog_mode( GLcontext *ctx )
+{
+ int old_mode = ctx->FogMode;
+
+ if (ctx->Fog.Enabled) {
+ if (ctx->Texture.Enabled)
+ ctx->FogMode = FOG_FRAGMENT;
+ else if (ctx->Hint.Fog == GL_NICEST)
+ ctx->FogMode = FOG_FRAGMENT;
+ else
+ ctx->FogMode = FOG_VERTEX;
+
+ if (ctx->Driver.GetParameteri)
+ if ((ctx->Driver.GetParameteri)( ctx, DD_HAVE_HARDWARE_FOG ))
+ ctx->FogMode = FOG_FRAGMENT;
+ }
+ else {
+ ctx->FogMode = FOG_NONE;
+ }
+
+ if (old_mode != ctx->FogMode)
+ ctx->NewState |= NEW_FOG;
+}
+
+
+/*
+ * Recompute the value of ctx->RasterMask, etc. according to
+ * the current context.
+ */
+static void update_rasterflags( GLcontext *ctx )
+{
+ ctx->RasterMask = 0;
+
+ if (ctx->Color.AlphaEnabled) ctx->RasterMask |= ALPHATEST_BIT;
+ if (ctx->Color.BlendEnabled) ctx->RasterMask |= BLEND_BIT;
+ if (ctx->Depth.Test) ctx->RasterMask |= DEPTH_BIT;
+ if (ctx->FogMode==FOG_FRAGMENT) ctx->RasterMask |= FOG_BIT;
+ if (ctx->Color.SWLogicOpEnabled) ctx->RasterMask |= LOGIC_OP_BIT;
+ if (ctx->Scissor.Enabled) ctx->RasterMask |= SCISSOR_BIT;
+ if (ctx->Stencil.Enabled) ctx->RasterMask |= STENCIL_BIT;
+ if (ctx->Color.SWmasking) ctx->RasterMask |= MASKING_BIT;
+
+ if (ctx->Visual->SoftwareAlpha && ctx->Color.ColorMask[ACOMP]
+ && ctx->Color.DrawBuffer != GL_NONE)
+ ctx->RasterMask |= ALPHABUF_BIT;
+
+ if ( ctx->Viewport.X<0
+ || ctx->Viewport.X + ctx->Viewport.Width > ctx->DrawBuffer->Width
+ || ctx->Viewport.Y<0
+ || ctx->Viewport.Y + ctx->Viewport.Height > ctx->DrawBuffer->Height) {
+ ctx->RasterMask |= WINCLIP_BIT;
+ }
+
+ /* If we're not drawing to exactly one color buffer set the
+ * MULTI_DRAW_BIT flag. Also set it if we're drawing to no
+ * buffers or the RGBA or CI mask disables all writes.
+ */
+
+ ctx->TriangleCaps &= ~DD_MULTIDRAW;
+
+ if (ctx->Color.MultiDrawBuffer) {
+ ctx->RasterMask |= MULTI_DRAW_BIT;
+ ctx->TriangleCaps |= DD_MULTIDRAW;
+ }
+ else if (ctx->Color.DrawBuffer==GL_NONE) {
+ ctx->RasterMask |= MULTI_DRAW_BIT;
+ ctx->TriangleCaps |= DD_MULTIDRAW;
+ }
+ else if (ctx->Visual->RGBAflag && ctx->Color.ColorMask==0) {
+ /* all RGBA channels disabled */
+ ctx->RasterMask |= MULTI_DRAW_BIT;
+ ctx->TriangleCaps |= DD_MULTIDRAW;
+ ctx->Color.DrawDestMask = 0;
+ }
+ else if (!ctx->Visual->RGBAflag && ctx->Color.IndexMask==0) {
+ /* all color index bits disabled */
+ ctx->RasterMask |= MULTI_DRAW_BIT;
+ ctx->TriangleCaps |= DD_MULTIDRAW;
+ ctx->Color.DrawDestMask = 0;
+ }
+}
+
+
+void gl_print_state( const char *msg, GLuint state )
+{
+ fprintf(stderr,
+ "%s: (0x%x) %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
+ msg,
+ state,
+ (state & NEW_LIGHTING) ? "lighting, " : "",
+ (state & NEW_RASTER_OPS) ? "raster-ops, " : "",
+ (state & NEW_TEXTURING) ? "texturing, " : "",
+ (state & NEW_POLYGON) ? "polygon, " : "",
+ (state & NEW_DRVSTATE0) ? "driver-0, " : "",
+ (state & NEW_DRVSTATE1) ? "driver-1, " : "",
+ (state & NEW_DRVSTATE2) ? "driver-2, " : "",
+ (state & NEW_DRVSTATE3) ? "driver-3, " : "",
+ (state & NEW_MODELVIEW) ? "modelview, " : "",
+ (state & NEW_PROJECTION) ? "projection, " : "",
+ (state & NEW_TEXTURE_MATRIX) ? "texture-matrix, " : "",
+ (state & NEW_USER_CLIP) ? "user-clip, " : "",
+ (state & NEW_TEXTURE_ENV) ? "texture-env, " : "",
+ (state & NEW_CLIENT_STATE) ? "client-state, " : "",
+ (state & NEW_FOG) ? "fog, " : "",
+ (state & NEW_NORMAL_TRANSFORM) ? "normal-transform, " : "",
+ (state & NEW_VIEWPORT) ? "viewport, " : "",
+ (state & NEW_TEXTURE_ENABLE) ? "texture-enable, " : "");
+}
+
+
+void gl_print_enable_flags( const char *msg, GLuint flags )
+{
+ fprintf(stderr,
+ "%s: (0x%x) %s%s%s%s%s%s%s%s%s%s%s\n",
+ msg,
+ flags,
+ (flags & ENABLE_TEX0) ? "tex-0, " : "",
+ (flags & ENABLE_TEX1) ? "tex-1, " : "",
+ (flags & ENABLE_LIGHT) ? "light, " : "",
+ (flags & ENABLE_FOG) ? "fog, " : "",
+ (flags & ENABLE_USERCLIP) ? "userclip, " : "",
+ (flags & ENABLE_TEXGEN0) ? "tex-gen-0, " : "",
+ (flags & ENABLE_TEXGEN1) ? "tex-gen-1, " : "",
+ (flags & ENABLE_TEXMAT0) ? "tex-mat-0, " : "",
+ (flags & ENABLE_TEXMAT1) ? "tex-mat-1, " : "",
+ (flags & ENABLE_NORMALIZE) ? "normalize, " : "",
+ (flags & ENABLE_RESCALE) ? "rescale, " : "");
+}
+
+
+/*
+ * If ctx->NewState is non-zero then this function MUST be called before
+ * rendering any primitive. Basically, function pointers and miscellaneous
+ * flags are updated to reflect the current state of the state machine.
+ */
+void gl_update_state( GLcontext *ctx )
+{
+ GLuint i;
+
+ if (MESA_VERBOSE & VERBOSE_STATE)
+ gl_print_state("", ctx->NewState);
+
+ if (ctx->NewState & NEW_CLIENT_STATE)
+ gl_update_client_state( ctx );
+
+ if ((ctx->NewState & NEW_TEXTURE_ENABLE) &&
+ (ctx->Enabled & ENABLE_TEX_ANY) != ctx->Texture.Enabled)
+ ctx->NewState |= NEW_TEXTURING | NEW_RASTER_OPS;
+
+ if (ctx->NewState & NEW_TEXTURE_ENV) {
+ if (ctx->Texture.Unit[0].EnvMode == ctx->Texture.Unit[0].LastEnvMode &&
+ ctx->Texture.Unit[1].EnvMode == ctx->Texture.Unit[1].LastEnvMode)
+ ctx->NewState &= ~NEW_TEXTURE_ENV;
+ ctx->Texture.Unit[0].LastEnvMode = ctx->Texture.Unit[0].EnvMode;
+ ctx->Texture.Unit[1].LastEnvMode = ctx->Texture.Unit[1].EnvMode;
+ }
+
+ if (ctx->NewState & NEW_TEXTURE_MATRIX) {
+ ctx->Enabled &= ~(ENABLE_TEXMAT0|ENABLE_TEXMAT1);
+
+ for (i=0; i < MAX_TEXTURE_UNITS; i++) {
+ if (ctx->TextureMatrix[i].flags & MAT_DIRTY_ALL_OVER)
+ {
+ gl_matrix_analyze( &ctx->TextureMatrix[i] );
+ ctx->TextureMatrix[i].flags &= ~MAT_DIRTY_DEPENDENTS;
+
+ if (ctx->Texture.Unit[i].Enabled &&
+ ctx->TextureMatrix[i].type != MATRIX_IDENTITY)
+ ctx->Enabled |= ENABLE_TEXMAT0 << i;
+ }
+ }
+ }
+
+ if (ctx->NewState & (NEW_TEXTURING | NEW_TEXTURE_ENABLE)) {
+ ctx->Texture.NeedNormals = GL_FALSE;
+ gl_update_dirty_texobjs(ctx);
+ ctx->Enabled &= ~(ENABLE_TEXGEN0|ENABLE_TEXGEN1);
+ ctx->Texture.ReallyEnabled = 0;
+
+ for (i=0; i < MAX_TEXTURE_UNITS; i++) {
+ if (ctx->Texture.Unit[i].Enabled) {
+ gl_update_texture_unit( ctx, &ctx->Texture.Unit[i] );
+
+ ctx->Texture.ReallyEnabled |=
+ ctx->Texture.Unit[i].ReallyEnabled<<(i*4);
+
+ if (ctx->Texture.Unit[i].GenFlags != 0) {
+ ctx->Enabled |= ENABLE_TEXGEN0 << i;
+
+ if (ctx->Texture.Unit[i].GenFlags & TEXGEN_NEED_NORMALS)
+ {
+ ctx->Texture.NeedNormals = GL_TRUE;
+ ctx->Texture.NeedEyeCoords = GL_TRUE;
+ }
+
+ if (ctx->Texture.Unit[i].GenFlags & TEXGEN_NEED_EYE_COORD)
+ {
+ ctx->Texture.NeedEyeCoords = GL_TRUE;
+ }
+ }
+ }
+ }
+
+ ctx->Texture.Enabled = ctx->Enabled & ENABLE_TEX_ANY;
+ ctx->NeedNormals = (ctx->Light.Enabled || ctx->Texture.NeedNormals);
+ }
+
+ if (ctx->NewState & (NEW_RASTER_OPS | NEW_LIGHTING | NEW_FOG)) {
+
+
+ if (ctx->NewState & NEW_RASTER_OPS) {
+ update_pixel_logic(ctx);
+ update_pixel_masking(ctx);
+ update_fog_mode(ctx);
+ update_rasterflags(ctx);
+ if (ctx->Driver.Dither) {
+ (*ctx->Driver.Dither)( ctx, ctx->Color.DitherFlag );
+ }
+
+ /* Check if incoming colors can be modified during rasterization */
+ if (ctx->Fog.Enabled ||
+ ctx->Texture.Enabled ||
+ ctx->Color.BlendEnabled ||
+ ctx->Color.SWmasking ||
+ ctx->Color.SWLogicOpEnabled) {
+ ctx->MutablePixels = GL_TRUE;
+ }
+ else {
+ ctx->MutablePixels = GL_FALSE;
+ }
+
+ /* update scissor region */
+
+ ctx->DrawBuffer->Xmin = 0;
+ ctx->DrawBuffer->Ymin = 0;
+ ctx->DrawBuffer->Xmax = ctx->DrawBuffer->Width-1;
+ ctx->DrawBuffer->Ymax = ctx->DrawBuffer->Height-1;
+ if (ctx->Scissor.Enabled) {
+ if (ctx->Scissor.X > ctx->DrawBuffer->Xmin) {
+ ctx->DrawBuffer->Xmin = ctx->Scissor.X;
+ }
+ if (ctx->Scissor.Y > ctx->DrawBuffer->Ymin) {
+ ctx->DrawBuffer->Ymin = ctx->Scissor.Y;
+ }
+ if (ctx->Scissor.X + ctx->Scissor.Width - 1 < ctx->DrawBuffer->Xmax) {
+ ctx->DrawBuffer->Xmax = ctx->Scissor.X + ctx->Scissor.Width - 1;
+ }
+ if (ctx->Scissor.Y + ctx->Scissor.Height - 1 < ctx->DrawBuffer->Ymax) {
+ ctx->DrawBuffer->Ymax = ctx->Scissor.Y + ctx->Scissor.Height - 1;
+ }
+ }
+ }
+
+ if (ctx->NewState & NEW_LIGHTING) {
+ ctx->TriangleCaps &= ~(DD_TRI_LIGHT_TWOSIDE|DD_LIGHTING_CULL);
+ if (ctx->Light.Enabled) {
+ if (ctx->Light.Model.TwoSide)
+ ctx->TriangleCaps |= (DD_TRI_LIGHT_TWOSIDE|DD_LIGHTING_CULL);
+ gl_update_lighting(ctx);
+ }
+ }
+ }
+
+ if (ctx->NewState & (NEW_POLYGON | NEW_LIGHTING)) {
+
+ ctx->TriangleCaps &= ~DD_TRI_CULL_FRONT_BACK;
+
+ if (ctx->NewState & NEW_POLYGON) {
+ /* Setup CullBits bitmask */
+ if (ctx->Polygon.CullFlag) {
+ ctx->backface_sign = 1;
+ switch(ctx->Polygon.CullFaceMode) {
+ case GL_BACK:
+ if(ctx->Polygon.FrontFace==GL_CCW)
+ ctx->backface_sign = -1;
+ ctx->Polygon.CullBits = 1;
+ break;
+ case GL_FRONT:
+ if(ctx->Polygon.FrontFace!=GL_CCW)
+ ctx->backface_sign = -1;
+ ctx->Polygon.CullBits = 2;
+ break;
+ default:
+ case GL_FRONT_AND_BACK:
+ ctx->backface_sign = 0;
+ ctx->Polygon.CullBits = 0;
+ ctx->TriangleCaps |= DD_TRI_CULL_FRONT_BACK;
+ break;
+ }
+ }
+ else {
+ ctx->Polygon.CullBits = 3;
+ ctx->backface_sign = 0;
+ }
+
+ /* Any Polygon offsets enabled? */
+ ctx->TriangleCaps &= ~DD_TRI_OFFSET;
+
+ if (ctx->Polygon.OffsetPoint ||
+ ctx->Polygon.OffsetLine ||
+ ctx->Polygon.OffsetFill)
+ ctx->TriangleCaps |= DD_TRI_OFFSET;
+
+ /* reset Z offsets now */
+ ctx->PointZoffset = 0.0;
+ ctx->LineZoffset = 0.0;
+ ctx->PolygonZoffset = 0.0;
+ }
+ }
+
+ if (ctx->NewState & ~(NEW_CLIENT_STATE|
+ NEW_DRIVER_STATE|NEW_USER_CLIP|
+ NEW_POLYGON))
+ gl_update_clipmask(ctx);
+
+ if (ctx->NewState & (NEW_LIGHTING|
+ NEW_RASTER_OPS|
+ NEW_TEXTURING|
+ NEW_TEXTURE_ENABLE|
+ NEW_TEXTURE_ENV|
+ NEW_POLYGON|
+ NEW_DRVSTATE0|
+ NEW_DRVSTATE1|
+ NEW_DRVSTATE2|
+ NEW_DRVSTATE3|
+ NEW_USER_CLIP))
+ {
+ ctx->IndirectTriangles = ctx->TriangleCaps & ~ctx->Driver.TriangleCaps;
+ ctx->IndirectTriangles |= DD_SW_RASTERIZE;
+
+ if (MESA_VERBOSE&VERBOSE_CULL)
+ gl_print_tri_caps("initial indirect tris", ctx->IndirectTriangles);
+
+ ctx->Driver.PointsFunc = NULL;
+ ctx->Driver.LineFunc = NULL;
+ ctx->Driver.TriangleFunc = NULL;
+ ctx->Driver.QuadFunc = NULL;
+ ctx->Driver.RectFunc = NULL;
+ ctx->Driver.RenderVBClippedTab = NULL;
+ ctx->Driver.RenderVBCulledTab = NULL;
+ ctx->Driver.RenderVBRawTab = NULL;
+
+ /*
+ * Here the driver sets up all the ctx->Driver function pointers to
+ * it's specific, private functions.
+ */
+ ctx->Driver.UpdateState(ctx);
+
+ if (MESA_VERBOSE&VERBOSE_CULL)
+ gl_print_tri_caps("indirect tris", ctx->IndirectTriangles);
+
+ /*
+ * In case the driver didn't hook in an optimized point, line or
+ * triangle function we'll now select "core/fallback" point, line
+ * and triangle functions.
+ */
+ if (ctx->IndirectTriangles & DD_SW_RASTERIZE) {
+ gl_set_point_function(ctx);
+ gl_set_line_function(ctx);
+ gl_set_triangle_function(ctx);
+ gl_set_quad_function(ctx);
+
+ if ((ctx->IndirectTriangles &
+ (DD_TRI_SW_RASTERIZE|DD_QUAD_SW_RASTERIZE|DD_TRI_CULL)) ==
+ (DD_TRI_SW_RASTERIZE|DD_QUAD_SW_RASTERIZE|DD_TRI_CULL))
+ ctx->IndirectTriangles &= ~DD_TRI_CULL;
+ }
+
+ if (MESA_VERBOSE&VERBOSE_CULL)
+ gl_print_tri_caps("indirect tris 2", ctx->IndirectTriangles);
+
+ gl_set_render_vb_function(ctx);
+ }
+
+ /* Should only be calc'd when !need_eye_coords and not culling.
+ */
+ if (ctx->NewState & (NEW_MODELVIEW|NEW_PROJECTION)) {
+ if (ctx->NewState & NEW_MODELVIEW) {
+ gl_matrix_analyze( &ctx->ModelView );
+ ctx->ProjectionMatrix.flags &= ~MAT_DIRTY_DEPENDENTS;
+ }
+
+ if (ctx->NewState & NEW_PROJECTION) {
+ gl_matrix_analyze( &ctx->ProjectionMatrix );
+ ctx->ProjectionMatrix.flags &= ~MAT_DIRTY_DEPENDENTS;
+
+ if (ctx->Transform.AnyClip) {
+ gl_update_userclip( ctx );
+ }
+ }
+
+ gl_calculate_model_project_matrix( ctx );
+ ctx->ModelProjectWinMatrixUptodate = 0;
+ }
+
+ /* Figure out whether we can light in object space or not. If we
+ * can, find the current positions of the lights in object space
+ */
+ if ((ctx->Enabled & (ENABLE_POINT_ATTEN | ENABLE_LIGHT | ENABLE_FOG |
+ ENABLE_TEXGEN0 | ENABLE_TEXGEN1)) &&
+ (ctx->NewState & (NEW_LIGHTING |
+ NEW_FOG |
+ NEW_MODELVIEW |
+ NEW_PROJECTION |
+ NEW_TEXTURING |
+ NEW_RASTER_OPS |
+ NEW_USER_CLIP)))
+ {
+ GLboolean oldcoord, oldnorm;
+
+ oldcoord = ctx->NeedEyeCoords;
+ oldnorm = ctx->NeedEyeNormals;
+
+ ctx->NeedNormals = (ctx->Light.Enabled || ctx->Texture.NeedNormals);
+ ctx->NeedEyeCoords = ((ctx->Fog.Enabled && ctx->Hint.Fog != GL_NICEST) ||
+ ctx->Point.Attenuated);
+ ctx->NeedEyeNormals = GL_FALSE;
+
+ if (ctx->Light.Enabled) {
+ if (ctx->Light.Flags & LIGHT_POSITIONAL) {
+ /* Need length for attenuation */
+ if (!TEST_MAT_FLAGS( &ctx->ModelView, MAT_FLAGS_LENGTH_PRESERVING))
+ ctx->NeedEyeCoords = GL_TRUE;
+ } else if (ctx->Light.NeedVertices) {
+ /* Need angle for spot calculations */
+ if (!TEST_MAT_FLAGS( &ctx->ModelView, MAT_FLAGS_ANGLE_PRESERVING))
+ ctx->NeedEyeCoords = GL_TRUE;
+ }
+ ctx->NeedEyeNormals = ctx->NeedEyeCoords;
+ }
+ if (ctx->Texture.Enabled || ctx->RenderMode==GL_FEEDBACK) {
+ if (ctx->Texture.NeedEyeCoords) ctx->NeedEyeCoords = GL_TRUE;
+ if (ctx->Texture.NeedNormals)
+ ctx->NeedNormals = ctx->NeedEyeNormals = GL_TRUE;
+ }
+
+ ctx->vb_proj_matrix = &ctx->ModelProjectMatrix;
+
+ if (ctx->NeedEyeCoords)
+ ctx->vb_proj_matrix = &ctx->ProjectionMatrix;
+
+ if (ctx->Light.Enabled) {
+ gl_update_lighting_function(ctx);
+
+ if ( (ctx->NewState & NEW_LIGHTING) ||
+ ((ctx->NewState & (NEW_MODELVIEW| NEW_PROJECTION)) &&
+ !ctx->NeedEyeCoords) ||
+ oldcoord != ctx->NeedEyeCoords ||
+ oldnorm != ctx->NeedEyeNormals) {
+ gl_compute_light_positions(ctx);
+ }
+
+ ctx->rescale_factor = 1.0F;
+
+ if (ctx->ModelView.flags & (MAT_FLAG_UNIFORM_SCALE |
+ MAT_FLAG_GENERAL_SCALE |
+ MAT_FLAG_GENERAL_3D |
+ MAT_FLAG_GENERAL) )
+
+ {
+ GLfloat *m = ctx->ModelView.inv;
+ GLfloat f = m[2]*m[2] + m[6]*m[6] + m[10]*m[10];
+ if (f > 1e-12 && (f-1)*(f-1) > 1e-12)
+ ctx->rescale_factor = 1.0/GL_SQRT(f);
+ }
+ }
+
+ gl_update_normal_transform( ctx );
+ }
+
+ gl_update_pipelines(ctx);
+ ctx->NewState = 0;
+}
diff --git a/xc/extras/Mesa/src/state.h b/xc/extras/Mesa/src/state.h
new file mode 100644
index 000000000..3ba787438
--- /dev/null
+++ b/xc/extras/Mesa/src/state.h
@@ -0,0 +1,44 @@
+/* $Id: state.h,v 1.2 2000/02/12 23:09:22 brianp Exp $ */
+
+/*
+ * Mesa 3-D graphics library
+ * Version: 3.3
+ *
+ * Copyright (C) 1999-2000 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"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+#ifndef STATE_H
+#define STATE_H
+
+#include "types.h"
+
+
+extern void gl_update_state( GLcontext *ctx );
+
+
+/* for debugging */
+extern void gl_print_state( const char *msg, GLuint state );
+
+/* for debugging */
+extern void gl_print_enable_flags( const char *msg, GLuint flags );
+
+
+#endif
diff --git a/xc/extras/Mesa/src/stencil.c b/xc/extras/Mesa/src/stencil.c
index 8f0aba952..83585360f 100644
--- a/xc/extras/Mesa/src/stencil.c
+++ b/xc/extras/Mesa/src/stencil.c
@@ -1,10 +1,10 @@
-/* $Id: stencil.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: stencil.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -580,7 +580,7 @@ stencil_and_depth_test_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
MEMCPY(oldmask, mask, n * sizeof(GLubyte));
/* apply the depth test */
- gl_depth_test_span(ctx, n, x, y, z, mask);
+ _mesa_depth_test_span(ctx, n, x, y, z, mask);
/* Set the stencil pass/fail flags according to result of depth testing.
* if oldmask[i] == 0 then
@@ -1059,7 +1059,7 @@ gl_stencil_and_depth_test_pixels( GLcontext *ctx,
MEMCPY(oldmask, mask, n * sizeof(GLubyte));
- gl_depth_test_pixels(ctx, n, x, y, z, mask);
+ _mesa_depth_test_pixels(ctx, n, x, y, z, mask);
for (i=0;i<n;i++) {
ASSERT(mask[i] == 0 || mask[i] == 1);
@@ -1099,7 +1099,7 @@ gl_stencil_and_depth_test_pixels( GLcontext *ctx,
MEMCPY(oldmask, mask, n * sizeof(GLubyte));
- gl_depth_test_pixels(ctx, n, x, y, z, mask);
+ _mesa_depth_test_pixels(ctx, n, x, y, z, mask);
for (i=0;i<n;i++) {
ASSERT(mask[i] == 0 || mask[i] == 1);
diff --git a/xc/extras/Mesa/src/stencil.h b/xc/extras/Mesa/src/stencil.h
index 400d6774f..79e2c66d0 100644
--- a/xc/extras/Mesa/src/stencil.h
+++ b/xc/extras/Mesa/src/stencil.h
@@ -1,4 +1,4 @@
-/* $Id: stencil.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: stencil.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/texgen_tmp.h b/xc/extras/Mesa/src/texgen_tmp.h
index d99c1424a..01f7f7349 100644
--- a/xc/extras/Mesa/src/texgen_tmp.h
+++ b/xc/extras/Mesa/src/texgen_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: texgen_tmp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: texgen_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/teximage.c b/xc/extras/Mesa/src/teximage.c
index 4ac2cc572..8de849111 100644
--- a/xc/extras/Mesa/src/teximage.c
+++ b/xc/extras/Mesa/src/teximage.c
@@ -1,10 +1,10 @@
-/* $Id: teximage.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: teximage.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -1247,6 +1247,17 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalformat,
}
+void
+_mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLint border, GLenum format, GLenum type,
+ const GLvoid *pixels )
+{
+ _mesa_TexImage3D(target, level, (GLint) internalformat, width, height,
+ depth, border, format, type, pixels);
+}
+
+
void
_mesa_GetTexImage( GLenum target, GLint level, GLenum format,
@@ -1663,7 +1674,7 @@ _mesa_CopyTexImage1D( GLenum target, GLint level,
gl_error( ctx, GL_OUT_OF_MEMORY, "glCopyTexImage1D" );
return;
}
- (*ctx->Exec.TexImage1D)( target, level, internalFormat, width,
+ (*ctx->Exec->TexImage1D)( target, level, internalFormat, width,
border, GL_RGBA, GL_UNSIGNED_BYTE, image );
FREE(image);
}
@@ -1686,7 +1697,7 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat,
gl_error( ctx, GL_OUT_OF_MEMORY, "glCopyTexImage2D" );
return;
}
- (ctx->Exec.TexImage2D)( target, level, internalFormat, width,
+ (ctx->Exec->TexImage2D)( target, level, internalFormat, width,
height, border, GL_RGBA, GL_UNSIGNED_BYTE, image );
FREE(image);
}
diff --git a/xc/extras/Mesa/src/teximage.h b/xc/extras/Mesa/src/teximage.h
index 82facb9c5..23d44fc8d 100644
--- a/xc/extras/Mesa/src/teximage.h
+++ b/xc/extras/Mesa/src/teximage.h
@@ -1,10 +1,10 @@
-/* $Id: teximage.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: teximage.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -66,6 +66,13 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalformat,
extern void
+_mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLint border, GLenum format, GLenum type,
+ const GLvoid *pixels );
+
+
+extern void
_mesa_GetTexImage( GLenum target, GLint level,
GLenum format, GLenum type, GLvoid *pixels );
diff --git a/xc/extras/Mesa/src/texobj.c b/xc/extras/Mesa/src/texobj.c
index e30dfd13d..0cb8f8546 100644
--- a/xc/extras/Mesa/src/texobj.c
+++ b/xc/extras/Mesa/src/texobj.c
@@ -1,4 +1,4 @@
-/* $Id: texobj.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: texobj.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -84,8 +84,10 @@ gl_alloc_texture_object( struct gl_shared_state *shared, GLuint name,
/* insert into linked list */
if (shared) {
+ _glthread_LOCK_MUTEX(shared->Mutex);
obj->Next = shared->TexObjectList;
shared->TexObjectList = obj;
+ _glthread_UNLOCK_MUTEX(shared->Mutex);
}
if (name > 0) {
@@ -118,6 +120,7 @@ void gl_free_texture_object( struct gl_shared_state *shared,
/* unlink t from the linked list */
if (shared) {
+ _glthread_LOCK_MUTEX(shared->Mutex);
tprev = NULL;
tcurr = shared->TexObjectList;
while (tcurr) {
@@ -133,6 +136,7 @@ void gl_free_texture_object( struct gl_shared_state *shared,
tprev = tcurr;
tcurr = tcurr->Next;
}
+ _glthread_UNLOCK_MUTEX(shared->Mutex);
}
if (t->Name) {
@@ -372,26 +376,29 @@ _mesa_DeleteTextures( GLsizei n, const GLuint *texName)
t = (struct gl_texture_object *)
_mesa_HashLookup(ctx->Shared->TexObjects, texName[i]);
if (t) {
+ /* First check if this texture is currently bound.
+ * If so, unbind it and decrement the reference count.
+ */
GLuint u;
- for (u=0; u<MAX_TEXTURE_UNITS; u++) {
+ for (u = 0; u < MAX_TEXTURE_UNITS; u++) {
struct gl_texture_unit *unit = &ctx->Texture.Unit[u];
GLuint d;
for (d = 1 ; d <= 3 ; d++) {
- if (unit->CurrentD[d]==t) {
+ if (unit->CurrentD[d] == t) {
unit->CurrentD[d] = ctx->Shared->DefaultD[d];
ctx->Shared->DefaultD[d]->RefCount++;
t->RefCount--;
- assert( t->RefCount >= 0 );
+ ASSERT( t->RefCount >= 0 );
}
}
}
- /* tell device driver to delete texture */
- if (ctx->Driver.DeleteTexture) {
- (*ctx->Driver.DeleteTexture)( ctx, t );
- }
-
- if (t->RefCount==0) {
+ /* Decrement reference count and delete if zero */
+ t->RefCount--;
+ ASSERT( t->RefCount >= 0 );
+ if (t->RefCount == 0) {
+ if (ctx->Driver.DeleteTexture)
+ (*ctx->Driver.DeleteTexture)( ctx, t );
gl_free_texture_object(ctx->Shared, t);
}
}
diff --git a/xc/extras/Mesa/src/texobj.h b/xc/extras/Mesa/src/texobj.h
index 6b5fc55f9..a408460e0 100644
--- a/xc/extras/Mesa/src/texobj.h
+++ b/xc/extras/Mesa/src/texobj.h
@@ -1,4 +1,4 @@
-/* $Id: texobj.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: texobj.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/texstate.c b/xc/extras/Mesa/src/texstate.c
index a6297f54d..492a66b23 100644
--- a/xc/extras/Mesa/src/texstate.c
+++ b/xc/extras/Mesa/src/texstate.c
@@ -1,10 +1,10 @@
-/* $Id: texstate.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: texstate.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -165,6 +165,9 @@ _mesa_GetTexEnvfv( GLenum target, GLenum pname, GLfloat *params )
{
GET_CURRENT_CONTEXT(ctx);
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
+
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetTexEnvfv");
+
if (target!=GL_TEXTURE_ENV) {
gl_error( ctx, GL_INVALID_ENUM, "glGetTexEnvfv(target)" );
return;
@@ -187,6 +190,9 @@ _mesa_GetTexEnviv( GLenum target, GLenum pname, GLint *params )
{
GET_CURRENT_CONTEXT(ctx);
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
+
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetTexEnviv");
+
if (target!=GL_TEXTURE_ENV) {
gl_error( ctx, GL_INVALID_ENUM, "glGetTexEnviv(target)" );
return;
@@ -229,6 +235,8 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
GLenum eparam = (GLenum) (GLint) params[0];
struct gl_texture_object *texObj;
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glTexParameterfv");
+
if (MESA_VERBOSE&(VERBOSE_API|VERBOSE_TEXTURE))
fprintf(stderr, "texPARAM %s %s %d...\n",
gl_lookup_enum_by_nr(target),
@@ -408,6 +416,8 @@ _mesa_GetTexLevelParameteriv( GLenum target, GLint level,
const struct gl_texture_image *img = NULL;
GLuint dimensions;
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetTexLevelParameter");
+
if (level < 0 || level >= ctx->Const.MaxTextureLevels) {
gl_error( ctx, GL_INVALID_VALUE, "glGetTexLevelParameter[if]v" );
return;
@@ -515,6 +525,8 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
struct gl_texture_object *obj;
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetTexParameterfv");
+
switch (target) {
case GL_TEXTURE_1D:
obj = texUnit->CurrentD[1];
@@ -583,6 +595,8 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
struct gl_texture_object *obj;
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetTexParameteriv");
+
switch (target) {
case GL_TEXTURE_1D:
obj = texUnit->CurrentD[1];
@@ -594,7 +608,7 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
obj = texUnit->CurrentD[3];
break;
default:
- gl_error(ctx, GL_INVALID_ENUM, "glGetTexParameterfv(target)");
+ gl_error(ctx, GL_INVALID_ENUM, "glGetTexParameteriv(target)");
return;
}
@@ -1269,7 +1283,7 @@ void gl_remove_texobj_from_dirty_list( struct gl_shared_state *shared,
/*
* This is called by gl_update_state() if the NEW_TEXTURING bit in
- * ctx->NewState is unit.
+ * ctx->NewState is set.
*/
void gl_update_dirty_texobjs( GLcontext *ctx )
{
diff --git a/xc/extras/Mesa/src/texstate.h b/xc/extras/Mesa/src/texstate.h
index a88884c0f..29097b68b 100644
--- a/xc/extras/Mesa/src/texstate.h
+++ b/xc/extras/Mesa/src/texstate.h
@@ -1,4 +1,4 @@
-/* $Id: texstate.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: texstate.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/texture.c b/xc/extras/Mesa/src/texture.c
index f8f4e8f18..a6cd5e73f 100644
--- a/xc/extras/Mesa/src/texture.c
+++ b/xc/extras/Mesa/src/texture.c
@@ -1,4 +1,4 @@
-/* $Id: texture.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: texture.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/texture.h b/xc/extras/Mesa/src/texture.h
index 48d403730..a161043c0 100644
--- a/xc/extras/Mesa/src/texture.h
+++ b/xc/extras/Mesa/src/texture.h
@@ -1,4 +1,4 @@
-/* $Id: texture.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: texture.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/trans_tmp.h b/xc/extras/Mesa/src/trans_tmp.h
index 53b96b122..9e78ee5d7 100644
--- a/xc/extras/Mesa/src/trans_tmp.h
+++ b/xc/extras/Mesa/src/trans_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: trans_tmp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: trans_tmp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/translate.c b/xc/extras/Mesa/src/translate.c
index c167ddb2b..3372320e0 100644
--- a/xc/extras/Mesa/src/translate.c
+++ b/xc/extras/Mesa/src/translate.c
@@ -1,4 +1,4 @@
-/* $Id: translate.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: translate.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/translate.h b/xc/extras/Mesa/src/translate.h
index 4c04009a4..48b6d3058 100644
--- a/xc/extras/Mesa/src/translate.h
+++ b/xc/extras/Mesa/src/translate.h
@@ -1,4 +1,4 @@
-/* $Id: translate.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: translate.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/triangle.c b/xc/extras/Mesa/src/triangle.c
index 717d0f689..20a74febc 100644
--- a/xc/extras/Mesa/src/triangle.c
+++ b/xc/extras/Mesa/src/triangle.c
@@ -1,4 +1,4 @@
-/* $Id: triangle.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: triangle.c,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/triangle.h b/xc/extras/Mesa/src/triangle.h
index baecbdb97..8247d4536 100644
--- a/xc/extras/Mesa/src/triangle.h
+++ b/xc/extras/Mesa/src/triangle.h
@@ -1,4 +1,4 @@
-/* $Id: triangle.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: triangle.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/tritemp.h b/xc/extras/Mesa/src/tritemp.h
index 714c74afb..13d009555 100644
--- a/xc/extras/Mesa/src/tritemp.h
+++ b/xc/extras/Mesa/src/tritemp.h
@@ -1,4 +1,4 @@
-/* $Id: tritemp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: tritemp.h,v 1.5 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/types.h b/xc/extras/Mesa/src/types.h
index 414147b26..c0f9c3547 100644
--- a/xc/extras/Mesa/src/types.h
+++ b/xc/extras/Mesa/src/types.h
@@ -1,5 +1,5 @@
/* -*- mode: C; tab-width:8; c-basic-offset:8 -*- */
-/* $Id: types.h,v 1.5 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: types.h,v 1.6 2000/02/12 23:09:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -35,6 +35,7 @@
#include "extensions.h"
#include "fixed.h"
#include "glapitable.h"
+#include "glthread.h"
#include "macros.h"
#include "matrix.h"
#include "vb.h"
@@ -706,6 +707,7 @@ typedef void (*texgen_func)( struct vertex_buffer *VB,
/* Texture object record */
struct gl_texture_object {
+ _glthread_Mutex Mutex; /* for thread safety */
GLint RefCount; /* reference count */
GLuint Name; /* an unsigned integer */
GLuint Dimensions; /* 1 or 2 or 3 */
@@ -1161,6 +1163,7 @@ struct gl_evaluators {
* State which can be shared by multiple contexts:
*/
struct gl_shared_state {
+ _glthread_Mutex Mutex; /* for thread safety */
GLint RefCount; /* Reference count */
struct _mesa_HashTable *DisplayList; /* Display lists hash table */
struct _mesa_HashTable *TexObjects; /* Texture objects hash table */
@@ -1179,22 +1182,22 @@ struct gl_shared_state {
* will make derived classes.
*/
struct gl_visual {
- GLboolean RGBAflag; /* Is frame buffer in RGBA mode, not CI? */
- GLboolean DBflag; /* Is color buffer double buffered? */
- GLboolean StereoFlag; /* stereo buffer? */
+ GLboolean RGBAflag; /* Is frame buffer in RGBA mode, not CI? */
+ GLboolean DBflag; /* Is color buffer double buffered? */
+ GLboolean StereoFlag; /* stereo buffer? */
- GLint RedBits; /* Bits per color component */
- GLint GreenBits;
- GLint BlueBits;
- GLint AlphaBits;
+ GLint RedBits; /* Bits per color component */
+ GLint GreenBits;
+ GLint BlueBits;
+ GLint AlphaBits;
- GLint IndexBits; /* Bits/pixel if in color index mode */
+ GLint IndexBits; /* Bits/pixel if in color index mode */
- GLint AccumBits; /* Number of bits per color channel, or 0 */
- GLint DepthBits; /* Number of bits in depth buffer, or 0 */
- GLint StencilBits; /* Number of bits in stencil buffer, or 0 */
+ GLint AccumBits; /* Number of bits per color channel, or 0 */
+ GLint DepthBits; /* Number of bits in depth buffer, or 0 */
+ GLint StencilBits; /* Number of bits in stencil buffer, or 0 */
- GLboolean SoftwareAlpha;/* Implement software alpha buffer? */
+ GLboolean SoftwareAlpha; /* Implement software alpha buffer? */
};
@@ -1206,33 +1209,33 @@ struct gl_visual {
* will make derived classes.
*/
struct gl_frame_buffer {
- GLvisual *Visual; /* The corresponding visual */
+ GLvisual *Visual; /* The corresponding visual */
- GLint Width, Height; /* size of frame buffer in pixels */
+ GLint Width, Height; /* size of frame buffer in pixels */
- GLboolean UseSoftwareDepthBuffer;
- GLboolean UseSoftwareAccumBuffer;
- GLboolean UseSoftwareStencilBuffer;
- GLboolean UseSoftwareAlphaBuffers;
+ GLboolean UseSoftwareDepthBuffer;
+ GLboolean UseSoftwareAccumBuffer;
+ GLboolean UseSoftwareStencilBuffer;
+ GLboolean UseSoftwareAlphaBuffers;
- /* Software depth (aka Z) buffer */
- GLdepth *Depth; /* array [Width*Height] of GLdepth values */
+ /* Software depth (aka Z) buffer */
+ GLdepth *Depth; /* array [Width*Height] of GLdepth values */
- /* Software stencil buffer */
- GLstencil *Stencil; /* array [Width*Height] of GLstencil values */
+ /* Software stencil buffer */
+ GLstencil *Stencil; /* array [Width*Height] of GLstencil values */
- /* Software accumulation buffer */
- GLaccum *Accum; /* array [4*Width*Height] of GLaccum values */
+ /* Software accumulation buffer */
+ GLaccum *Accum; /* array [4*Width*Height] of GLaccum values */
- /* Software alpha planes */
- GLubyte *FrontLeftAlpha; /* array [Width*Height] of GLubyte */
- GLubyte *BackLeftAlpha; /* array [Width*Height] of GLubyte */
- GLubyte *FrontRightAlpha; /* array [Width*Height] of GLubyte */
- GLubyte *BackRightAlpha; /* array [Width*Height] of GLubyte */
- GLubyte *Alpha; /* Points to current alpha buffer */
+ /* Software alpha planes */
+ GLubyte *FrontLeftAlpha; /* array [Width*Height] of GLubyte */
+ GLubyte *BackLeftAlpha; /* array [Width*Height] of GLubyte */
+ GLubyte *FrontRightAlpha; /* array [Width*Height] of GLubyte */
+ GLubyte *BackRightAlpha; /* array [Width*Height] of GLubyte */
+ GLubyte *Alpha; /* Points to current alpha buffer */
- /* Drawing bounds: intersection of window size and scissor box */
- GLint Xmin, Xmax, Ymin, Ymax;
+ /* Drawing bounds: intersection of window size and scissor box */
+ GLint Xmin, Xmax, Ymin, Ymax;
};
@@ -1244,6 +1247,14 @@ struct gl_constants {
GLint MaxTextureLevels;
GLuint MaxTextureUnits;
GLuint MaxArrayLockSize;
+ GLint SubPixelBits;
+ GLfloat MinPointSize, MaxPointSize; /* aliased */
+ GLfloat MinPointSizeAA, MaxPointSizeAA; /* antialiased */
+ GLfloat PointSizeGranularity;
+ GLfloat MinLineWidth, MaxLineWidth; /* aliased */
+ GLfloat MinLineWidthAA, MaxLineWidthAA; /* antialiased */
+ GLfloat LineWidthGranularity;
+ GLuint NumAuxBuffers;
};
@@ -1620,8 +1631,8 @@ struct gl_context {
struct gl_shared_state *Shared;
/* API function pointer tables */
- struct _glapi_table Save; /* Display list save funcs */
- struct _glapi_table Exec; /* Execute funcs */
+ struct _glapi_table *Save; /* Display list save funcs */
+ struct _glapi_table *Exec; /* Execute funcs */
struct _glapi_table *CurrentDispatch; /* == Save or Exec !! */
GLvisual *Visual;
diff --git a/xc/extras/Mesa/src/varray.c b/xc/extras/Mesa/src/varray.c
index 68578a680..42734596f 100644
--- a/xc/extras/Mesa/src/varray.c
+++ b/xc/extras/Mesa/src/varray.c
@@ -1,4 +1,4 @@
-/* $Id: varray.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: varray.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -37,6 +37,7 @@
#include "macros.h"
#include "mmath.h"
#include "pipeline.h"
+#include "state.h"
#include "texstate.h"
#include "translate.h"
#include "types.h"
@@ -1121,6 +1122,13 @@ _mesa_DrawRangeElements(GLenum mode, GLuint start,
return;
}
+#if 0
+ /*
+ * XXX something in locked arrays is broken! If start = 0,
+ * end = 1 and count = 2 we'll take the LockArrays path and
+ * get incorrect results. See Scott McMillan's bug of 3 Jan 2000.
+ * For now, don't use locked arrays.
+ */
if (!ctx->Array.LockCount && 2*count > (GLint) 3*(end-start)) {
glLockArraysEXT( start, end );
glDrawElements( mode, count, type, indices );
@@ -1128,6 +1136,9 @@ _mesa_DrawRangeElements(GLenum mode, GLuint start,
} else {
glDrawElements( mode, count, type, indices );
}
+#else
+ glDrawElements( mode, count, type, indices );
+#endif
}
diff --git a/xc/extras/Mesa/src/varray.h b/xc/extras/Mesa/src/varray.h
index 755b4fee2..486eaa63a 100644
--- a/xc/extras/Mesa/src/varray.h
+++ b/xc/extras/Mesa/src/varray.h
@@ -1,4 +1,4 @@
-/* $Id: varray.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: varray.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vb.c b/xc/extras/Mesa/src/vb.c
index a18b6c907..02003c88c 100644
--- a/xc/extras/Mesa/src/vb.c
+++ b/xc/extras/Mesa/src/vb.c
@@ -1,4 +1,4 @@
-/* $Id: vb.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vb.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vb.h b/xc/extras/Mesa/src/vb.h
index 3783a370a..815b887e7 100644
--- a/xc/extras/Mesa/src/vb.h
+++ b/xc/extras/Mesa/src/vb.h
@@ -1,4 +1,4 @@
-/* $Id: vb.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vb.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vbcull.c b/xc/extras/Mesa/src/vbcull.c
index 4d5544893..406ed7da3 100644
--- a/xc/extras/Mesa/src/vbcull.c
+++ b/xc/extras/Mesa/src/vbcull.c
@@ -1,4 +1,4 @@
-/* $Id: vbcull.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vbcull.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vbcull.h b/xc/extras/Mesa/src/vbcull.h
index 3baa3ec77..231aa8f46 100644
--- a/xc/extras/Mesa/src/vbcull.h
+++ b/xc/extras/Mesa/src/vbcull.h
@@ -1,4 +1,4 @@
-/* $Id: vbcull.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vbcull.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vbfill.c b/xc/extras/Mesa/src/vbfill.c
index 5928a462d..a06cf04b0 100644
--- a/xc/extras/Mesa/src/vbfill.c
+++ b/xc/extras/Mesa/src/vbfill.c
@@ -1,10 +1,10 @@
-/* $Id: vbfill.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vbfill.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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,6 +35,7 @@
#include "macros.h"
#include "matrix.h"
#include "mmath.h"
+#include "state.h"
#include "types.h"
#include "varray.h"
#include "vb.h"
diff --git a/xc/extras/Mesa/src/vbfill.h b/xc/extras/Mesa/src/vbfill.h
index dcbe6a5f3..26b12897a 100644
--- a/xc/extras/Mesa/src/vbfill.h
+++ b/xc/extras/Mesa/src/vbfill.h
@@ -1,4 +1,4 @@
-/* $Id: vbfill.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vbfill.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vbindirect.c b/xc/extras/Mesa/src/vbindirect.c
index 5a1ec2034..64bce9b65 100644
--- a/xc/extras/Mesa/src/vbindirect.c
+++ b/xc/extras/Mesa/src/vbindirect.c
@@ -1,4 +1,4 @@
-/* $Id: vbindirect.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vbindirect.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vbindirect.h b/xc/extras/Mesa/src/vbindirect.h
index 2c2f009c0..d5e0e8347 100644
--- a/xc/extras/Mesa/src/vbindirect.h
+++ b/xc/extras/Mesa/src/vbindirect.h
@@ -1,4 +1,4 @@
-/* $Id: vbindirect.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vbindirect.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vbrender.c b/xc/extras/Mesa/src/vbrender.c
index d611e6920..4f8274b85 100644
--- a/xc/extras/Mesa/src/vbrender.c
+++ b/xc/extras/Mesa/src/vbrender.c
@@ -1,4 +1,4 @@
-/* $Id: vbrender.c,v 1.5 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vbrender.c,v 1.6 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -350,10 +350,12 @@ static void render_quad( GLcontext *ctx, GLuint v0, GLuint v1,
}
+#if 0
static void null_quad( GLcontext *ctx, GLuint v0, GLuint v1,
GLuint v2, GLuint v3, GLuint pv )
{
}
+#endif
extern const char *gl_prim_name[];
diff --git a/xc/extras/Mesa/src/vbrender.h b/xc/extras/Mesa/src/vbrender.h
index b2cc1ed50..390b58a6b 100644
--- a/xc/extras/Mesa/src/vbrender.h
+++ b/xc/extras/Mesa/src/vbrender.h
@@ -1,4 +1,4 @@
-/* $Id: vbrender.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vbrender.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vbxform.c b/xc/extras/Mesa/src/vbxform.c
index f8a4ac613..38ee5924d 100644
--- a/xc/extras/Mesa/src/vbxform.c
+++ b/xc/extras/Mesa/src/vbxform.c
@@ -1,4 +1,4 @@
-/* $Id: vbxform.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vbxform.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -44,6 +44,7 @@
#include "mmath.h"
#include "pipeline.h"
#include "shade.h"
+#include "state.h"
#include "texture.h"
#include "types.h"
#include "varray.h"
diff --git a/xc/extras/Mesa/src/vbxform.h b/xc/extras/Mesa/src/vbxform.h
index 559ce8b21..2038d0efe 100644
--- a/xc/extras/Mesa/src/vbxform.h
+++ b/xc/extras/Mesa/src/vbxform.h
@@ -1,4 +1,4 @@
-/* $Id: vbxform.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vbxform.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vector.c b/xc/extras/Mesa/src/vector.c
index 265d1ede7..cf41ccadb 100644
--- a/xc/extras/Mesa/src/vector.c
+++ b/xc/extras/Mesa/src/vector.c
@@ -1,4 +1,4 @@
-/* $Id: vector.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vector.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vector.h b/xc/extras/Mesa/src/vector.h
index 8986e57da..d2d5cd881 100644
--- a/xc/extras/Mesa/src/vector.h
+++ b/xc/extras/Mesa/src/vector.h
@@ -1,4 +1,4 @@
-/* $Id: vector.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vector.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vertices.c b/xc/extras/Mesa/src/vertices.c
index 178151e94..5cff9d556 100644
--- a/xc/extras/Mesa/src/vertices.c
+++ b/xc/extras/Mesa/src/vertices.c
@@ -1,4 +1,4 @@
-/* $Id: vertices.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vertices.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/vertices.h b/xc/extras/Mesa/src/vertices.h
index 7fb26fbbd..e09dc0959 100644
--- a/xc/extras/Mesa/src/vertices.h
+++ b/xc/extras/Mesa/src/vertices.h
@@ -1,4 +1,4 @@
-/* $Id: vertices.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: vertices.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/winpos.c b/xc/extras/Mesa/src/winpos.c
index b2baad6df..c0b618e22 100644
--- a/xc/extras/Mesa/src/winpos.c
+++ b/xc/extras/Mesa/src/winpos.c
@@ -1,10 +1,10 @@
-/* $Id: winpos.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: winpos.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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"),
@@ -127,7 +127,149 @@ _mesa_WindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w )
}
-#ifndef GL_MESA_window_pos
+
+
+void
+_mesa_WindowPos2dMESA(GLdouble x, GLdouble y)
+{
+ _mesa_WindowPos4fMESA(x, y, 0.0F, 1.0F);
+}
+
+void
+_mesa_WindowPos2fMESA(GLfloat x, GLfloat y)
+{
+ _mesa_WindowPos4fMESA(x, y, 0.0F, 1.0F);
+}
+
+void
+_mesa_WindowPos2iMESA(GLint x, GLint y)
+{
+ _mesa_WindowPos4fMESA(x, y, 0.0F, 1.0F);
+}
+
+void
+_mesa_WindowPos2sMESA(GLshort x, GLshort y)
+{
+ _mesa_WindowPos4fMESA(x, y, 0.0F, 1.0F);
+}
+
+void
+_mesa_WindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z)
+{
+ _mesa_WindowPos4fMESA(x, y, z, 1.0F);
+}
+
+void
+_mesa_WindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z)
+{
+ _mesa_WindowPos4fMESA(x, y, z, 1.0F);
+}
+
+void
+_mesa_WindowPos3iMESA(GLint x, GLint y, GLint z)
+{
+ _mesa_WindowPos4fMESA(x, y, z, 1.0F);
+}
+
+void
+_mesa_WindowPos3sMESA(GLshort x, GLshort y, GLshort z)
+{
+ _mesa_WindowPos4fMESA(x, y, z, 1.0F);
+}
+
+void
+_mesa_WindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ _mesa_WindowPos4fMESA(x, y, z, w);
+}
+
+void
+_mesa_WindowPos4iMESA(GLint x, GLint y, GLint z, GLint w)
+{
+ _mesa_WindowPos4fMESA(x, y, z, w);
+}
+
+void
+_mesa_WindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ _mesa_WindowPos4fMESA(x, y, z, w);
+}
+
+void
+_mesa_WindowPos2dvMESA(const GLdouble *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
+}
+
+void
+_mesa_WindowPos2fvMESA(const GLfloat *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
+}
+
+void
+_mesa_WindowPos2ivMESA(const GLint *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
+}
+
+void
+_mesa_WindowPos2svMESA(const GLshort *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
+}
+
+void
+_mesa_WindowPos3dvMESA(const GLdouble *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
+}
+
+void
+_mesa_WindowPos3fvMESA(const GLfloat *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
+}
+
+void
+_mesa_WindowPos3ivMESA(const GLint *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
+}
+
+void
+_mesa_WindowPos3svMESA(const GLshort *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
+}
+
+void
+_mesa_WindowPos4dvMESA(const GLdouble *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
+}
+
+void
+_mesa_WindowPos4fvMESA(const GLfloat *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
+}
+
+void
+_mesa_WindowPos4ivMESA(const GLint *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
+}
+
+void
+_mesa_WindowPos4svMESA(const GLshort *v)
+{
+ _mesa_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
+}
+
+
+
+#if 0
/*
* OpenGL implementation of glWindowPos*MESA()
diff --git a/xc/extras/Mesa/src/winpos.h b/xc/extras/Mesa/src/winpos.h
index 663504be3..5196b71c7 100644
--- a/xc/extras/Mesa/src/winpos.h
+++ b/xc/extras/Mesa/src/winpos.h
@@ -1,10 +1,10 @@
-/* $Id: winpos.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: winpos.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 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,37 +33,76 @@
extern void
-_mesa_WindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
+_mesa_WindowPos2dMESA(GLdouble x, GLdouble y);
+extern void
+_mesa_WindowPos2fMESA(GLfloat x, GLfloat y);
+extern void
+_mesa_WindowPos2iMESA(GLint x, GLint y);
-#ifndef GL_MESA_window_pos
+extern void
+_mesa_WindowPos2sMESA(GLshort x, GLshort y);
-extern void glWindowPos2iMESA( GLint x, GLint y );
-extern void glWindowPos2fMESA( GLfloat x, GLfloat y );
-extern void glWindowPos2dMESA( GLdouble x, GLdouble y );
+extern void
+_mesa_WindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z);
-extern void glWindowPos2ivMESA( const GLint *p );
-extern void glWindowPos2fvMESA( const GLfloat *p );
-extern void glWindowPos2dvMESA( const GLdouble *p );
+extern void
+_mesa_WindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z);
-extern void glWindowPos3iMESA( GLint x, GLint y, GLint z );
-extern void glWindowPos3fMESA( GLfloat x, GLfloat y, GLfloat z );
-extern void glWindowPos3dMESA( GLdouble x, GLdouble y, GLdouble z );
+extern void
+_mesa_WindowPos3iMESA(GLint x, GLint y, GLint z);
-extern void glWindowPos3ivMESA( const GLint *p );
-extern void glWindowPos3fvMESA( const GLfloat *p );
-extern void glWindowPos3dvMESA( const GLdouble *p );
+extern void
+_mesa_WindowPos3sMESA(GLshort x, GLshort y, GLshort z);
-extern void glWindowPos4iMESA( GLint x, GLint y, GLint z, GLint w );
-extern void glWindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
-extern void glWindowPos4dMESA( GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+extern void
+_mesa_WindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-extern void glWindowPos4ivMESA( const GLint *p );
-extern void glWindowPos4fvMESA( const GLfloat *p );
-extern void glWindowPos4dvMESA( const GLdouble *p );
+extern void
+_mesa_WindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-#endif
+extern void
+_mesa_WindowPos4iMESA(GLint x, GLint y, GLint z, GLint w);
+
+extern void
+_mesa_WindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w);
+
+extern void
+_mesa_WindowPos2dvMESA(const GLdouble *v);
+
+extern void
+_mesa_WindowPos2fvMESA(const GLfloat *v);
+
+extern void
+_mesa_WindowPos2ivMESA(const GLint *v);
+
+extern void
+_mesa_WindowPos2svMESA(const GLshort *v);
+
+extern void
+_mesa_WindowPos3dvMESA(const GLdouble *v);
+
+extern void
+_mesa_WindowPos3fvMESA(const GLfloat *v);
+
+extern void
+_mesa_WindowPos3ivMESA(const GLint *v);
+
+extern void
+_mesa_WindowPos3svMESA(const GLshort *v);
+
+extern void
+_mesa_WindowPos4dvMESA(const GLdouble *v);
+
+extern void
+_mesa_WindowPos4fvMESA(const GLfloat *v);
+
+extern void
+_mesa_WindowPos4ivMESA(const GLint *v);
+
+extern void
+_mesa_WindowPos4svMESA(const GLshort *v);
#endif
diff --git a/xc/extras/Mesa/src/xform.c b/xc/extras/Mesa/src/xform.c
index 5ea3150fb..b6e73a60e 100644
--- a/xc/extras/Mesa/src/xform.c
+++ b/xc/extras/Mesa/src/xform.c
@@ -1,4 +1,4 @@
-/* $Id: xform.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: xform.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/xform.h b/xc/extras/Mesa/src/xform.h
index 08b4e6518..161291581 100644
--- a/xc/extras/Mesa/src/xform.h
+++ b/xc/extras/Mesa/src/xform.h
@@ -1,4 +1,4 @@
-/* $Id: xform.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: xform.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/xform_tmp.h b/xc/extras/Mesa/src/xform_tmp.h
index b2b2f8820..3894dda91 100644
--- a/xc/extras/Mesa/src/xform_tmp.h
+++ b/xc/extras/Mesa/src/xform_tmp.h
@@ -1,4 +1,4 @@
-/* $Id: xform_tmp.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: xform_tmp.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/zoom.c b/xc/extras/Mesa/src/zoom.c
index f8a8c8a87..01b85dd2e 100644
--- a/xc/extras/Mesa/src/zoom.c
+++ b/xc/extras/Mesa/src/zoom.c
@@ -1,4 +1,4 @@
-/* $Id: zoom.c,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: zoom.c,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/extras/Mesa/src/zoom.h b/xc/extras/Mesa/src/zoom.h
index 294de97c3..d454b503e 100644
--- a/xc/extras/Mesa/src/zoom.h
+++ b/xc/extras/Mesa/src/zoom.h
@@ -1,4 +1,4 @@
-/* $Id: zoom.h,v 1.4 2000/01/30 00:27:02 brianp Exp $ */
+/* $Id: zoom.h,v 1.5 2000/02/12 23:09:23 brianp Exp $ */
/*
* Mesa 3-D graphics library
diff --git a/xc/include/GL/glx.h b/xc/include/GL/glx.h
index acb0b0899..78d34212a 100644
--- a/xc/include/GL/glx.h
+++ b/xc/include/GL/glx.h
@@ -75,6 +75,7 @@ extern GLXDrawable glXGetCurrentDrawableEXT (void);
extern GLXContext glXImportContextEXT (Display *dpy, GLXContextID contextID);
extern void glXFreeContextEXT (Display *dpy, GLXContext ctx);
extern int glXQueryContextInfoEXT (Display *dpy, GLXContext ctx, int attribute, int *value);
+extern void (*glXGetProcAddressARB(const GLubyte *procName))();
diff --git a/xc/include/GL/glxtokens.h b/xc/include/GL/glxtokens.h
index e246e6067..5361b0937 100644
--- a/xc/include/GL/glxtokens.h
+++ b/xc/include/GL/glxtokens.h
@@ -112,6 +112,7 @@ extern "C" {
#define GLX_EXT_import_context 1
#define GLX_EXT_visual_info 1
#define GLX_EXT_visual_rating 1
+#define GLX_ARB_get_proc_address 1
#ifdef __cplusplus
}
diff --git a/xc/lib/GL/Imakefile b/xc/lib/GL/Imakefile
index 2c154b2a1..21e0e559a 100644
--- a/xc/lib/GL/Imakefile
+++ b/xc/lib/GL/Imakefile
@@ -1,5 +1,6 @@
XCOMM $XFree86: xc/lib/GL/Imakefile,v 1.10 1999/12/14 01:32:21 robin Exp $
-XCOMM $PI: xc/lib/GL/Imakefile,v 1.11 1999/06/14 21:10:34 faith Exp $
+
+#include <Threads.tmpl>
#define IHaveSubdirs
#define PassCDebugFlags
@@ -104,6 +105,10 @@ DRIMESADONES = mesa/dri/DONE
POBJS = $(GLXPOBJS) $(DRIPOBJS) $(DRVPOBJS)
DONES = $(GLXDONES) $(DRIDONES) $(DRVDONES)
+#if LocalThreads
+ OBJS += $(THREADS_LIBS)
+#endif
+
#include <Library.tmpl>
#undef _LinkBuildLibrary
diff --git a/xc/lib/GL/dri/Imakefile b/xc/lib/GL/dri/Imakefile
index c5a216896..f5bde177a 100644
--- a/xc/lib/GL/dri/Imakefile
+++ b/xc/lib/GL/dri/Imakefile
@@ -1,5 +1,6 @@
XCOMM $XFree86: xc/lib/GL/dri/Imakefile,v 1.3 1999/12/14 01:32:22 robin Exp $
-XCOMM $PI: xc/lib/GL/dri/Imakefile,v 1.11 1999/05/16 14:00:45 faith Exp $
+
+#include <Threads.tmpl>
#define DoNormalLib NormalLibGlx
#define DoSharedLib SharedLibGlx
diff --git a/xc/lib/GL/dri/dri_glx.c b/xc/lib/GL/dri/dri_glx.c
index 83a0c4f48..ac12eb368 100644
--- a/xc/lib/GL/dri/dri_glx.c
+++ b/xc/lib/GL/dri/dri_glx.c
@@ -97,6 +97,10 @@ static void *DummyCreateScreen(Display *dpy, int scrn, __DRIscreen *psc,
* screen number.
* We use the DRI in order to find the driCreateScreen function
* exported by each screen on a display.
+ *
+ * Also, this function calls the driver's _register_gl_extensions()
+ * function in order to let the driver hook new extension functions
+ * into the libGL dispatcher.
*/
static void Find_CreateScreenFuncs(Display *dpy,
CreateScreenFunc *createFuncs,
@@ -136,7 +140,8 @@ static void Find_CreateScreenFuncs(Display *dpy,
/*
- * dlopen the driver module and call its driCreateScreen function.
+ * dlopen the driver module and save the pointer to its
+ * driCreateScreen function.
*/
{
char realDriverName[100];
@@ -173,6 +178,19 @@ static void Find_CreateScreenFuncs(Display *dpy,
ErrorMessage(message);
dlclose(handle);
}
+
+ /* Find the driver's _register_gl_extensions() function and
+ * call it if present. This will let the driver tell libGL.so
+ * about any extension functions it wants to export.
+ */
+ {
+ typedef void *(*RegisterExtFunc)(void);
+ RegisterExtFunc registerExtFunc = (RegisterExtFunc) dlsym(handle, "_register_gl_extensions");
+ if (registerExtFunc) {
+ (*registerExtFunc)();
+ }
+ }
+
}
}
}
diff --git a/xc/lib/GL/glx/Imakefile b/xc/lib/GL/glx/Imakefile
index 21c837814..78c64de4d 100644
--- a/xc/lib/GL/glx/Imakefile
+++ b/xc/lib/GL/glx/Imakefile
@@ -16,6 +16,8 @@ XCOMM 1999. The developer of the Original Software is Silicon Graphics, Inc.
XCOMM Those portions of the Subject Software created by Silicon Graphics, Inc.
XCOMM are Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.
+#include <Threads.tmpl>
+
#define DoNormalLib NormalLibGlx
#define DoSharedLib SharedLibGlx
#define DoExtraLib SharedLibGlx
diff --git a/xc/lib/GL/glx/glxclient.h b/xc/lib/GL/glx/glxclient.h
index 810570b90..6673e5cf9 100644
--- a/xc/lib/GL/glx/glxclient.h
+++ b/xc/lib/GL/glx/glxclient.h
@@ -544,9 +544,14 @@ extern __GLXdisplayPrivate *__glXInitialize(Display*);
extern int __glXDebug;
/* This is per-thread storage in an MT environment */
+#if defined(GLX_DIRECT_RENDERING) && defined(XTHREADS)
+extern __GLXcontext *__glXGetCurrentContext(void);
+extern void __glXSetCurrentContext(__GLXcontext *c);
+#else
extern __GLXcontext *__glXcurrentContext;
#define __glXGetCurrentContext() __glXcurrentContext
#define __glXSetCurrentContext(gc) __glXcurrentContext = gc
+#endif
/*
diff --git a/xc/lib/GL/glx/glxcmds.c b/xc/lib/GL/glx/glxcmds.c
index 51bd9b9e2..7ad820bf1 100644
--- a/xc/lib/GL/glx/glxcmds.c
+++ b/xc/lib/GL/glx/glxcmds.c
@@ -25,8 +25,7 @@
*
* Authors:
* Kevin E. Martin <kevin@precisioninsight.com>
- *
- * $PI: xc/lib/GL/glx/glxcmds.c,v 1.8 1999/06/10 04:39:13 martin Exp $
+ * Brian Paul <brian@precisioninsight.com>
*/
#include "packsingle.h"
@@ -34,6 +33,7 @@
#include <extutil.h>
#include <Xext.h>
#include <string.h>
+#include "glapi.h"
#ifdef GLX_DIRECT_RENDERING
#include "indirect_init.h"
#endif
@@ -1487,3 +1487,95 @@ void glXFreeContextEXT(Display *dpy, GLXContext ctx)
DestroyContext(dpy, ctx);
}
+
+/*
+** glXGetProcAddress support
+*/
+
+
+struct name_address_pair {
+ const char *Name;
+ GLvoid *Address;
+};
+
+static struct name_address_pair GLX_functions[] = {
+ { "glXChooseVisual", (GLvoid *) glXChooseVisual },
+ { "glXCopyContext", (GLvoid *) glXCopyContext },
+ { "glXCreateContext", (GLvoid *) glXCreateContext },
+ { "glXCreateGLXPixmap", (GLvoid *) glXCreateGLXPixmap },
+ { "glXDestroyContext", (GLvoid *) glXDestroyContext },
+ { "glXDestroyGLXPixmap", (GLvoid *) glXDestroyGLXPixmap },
+ { "glXGetConfig", (GLvoid *) glXGetConfig },
+ { "glXGetCurrentContext", (GLvoid *) glXGetCurrentContext },
+ { "glXGetCurrentDrawable", (GLvoid *) glXGetCurrentDrawable },
+ { "glXIsDirect", (GLvoid *) glXIsDirect },
+ { "glXMakeCurrent", (GLvoid *) glXMakeCurrent },
+ { "glXQueryExtension", (GLvoid *) glXQueryExtension },
+ { "glXQueryVersion", (GLvoid *) glXQueryVersion },
+ { "glXSwapBuffers", (GLvoid *) glXSwapBuffers },
+ { "glXUseXFont", (GLvoid *) glXUseXFont },
+ { "glXWaitGL", (GLvoid *) glXWaitGL },
+ { "glXWaitX", (GLvoid *) glXWaitX },
+
+ { "glXGetClientString", (GLvoid *) glXGetClientString },
+ { "glXQueryExtensionsString", (GLvoid *) glXQueryExtensionsString },
+ { "glXQueryServerString", (GLvoid *) glXQueryServerString },
+
+ { "glXGetCurrentDisplay", (GLvoid *) glXGetCurrentDisplay },
+
+#if 0 /* enable this when GLX 1.3 is implemented */
+ { "glXChooseFBConfig", (GLvoid *) glXChooseFBConfig },
+ { "glXCreateNewContext", (GLvoid *) glXCreateNewContext },
+ { "glXCreatePbuffer", (GLvoid *) glXCreatePbuffer },
+ { "glXCreatePixmap", (GLvoid *) glXCreatePixmap },
+ { "glXCreateWindow", (GLvoid *) glXCreateWindow },
+ { "glXDestroyPbuffer", (GLvoid *) glXDestroyPbuffer },
+ { "glXDestroyPixmap", (GLvoid *) glXDestroyPixmap },
+ { "glXDestroyWindow", (GLvoid *) glXDestroyWindow },
+ { "glXGetCurrentReadDrawable", (GLvoid *) glXGetCurrentReadDrawable },
+ { "glXGetFBConfigAttrib", (GLvoid *) glXGetFBConfigAttrib },
+ { "glXGetSelectedEvent", (GLvoid *) glXGetSelectedEvent },
+ { "glXGetVisualFromFBConfig", (GLvoid *) glXGetVisualFromFBConfig },
+ { "glXMakeContextCurrent", (GLvoid *) glXMakeContextCurrent },
+ { "glXQueryContext", (GLvoid *) glXQueryContext },
+ { "glXQueryDrawable", (GLvoid *) glXQueryDrawable },
+ { "glXSelectEvent", (GLvoid *) glXSelectEvent },
+#endif
+
+ /* extension functions */
+ { "glXGetContextIDEXT", (GLvoid *) glXGetContextIDEXT },
+ { "glXGetCurrentDrawableEXT", (GLvoid *) glXGetCurrentDrawableEXT },
+ { "glXImportContextEXT", (GLvoid *) glXImportContextEXT },
+ { "glXFreeContextEXT", (GLvoid *) glXFreeContextEXT },
+ { "glXQueryContextInfoEXT", (GLvoid *) glXQueryContextInfoEXT },
+ { "glXGetProcAddressARB", (GLvoid *) glXGetProcAddressARB },
+
+ { NULL, NULL } /* end of list */
+};
+
+
+static const GLvoid *
+get_glx_proc_address(const char *funcName)
+{
+ GLuint i;
+ for (i = 0; GLX_functions[i].Name; i++) {
+ if (strcmp(GLX_functions[i].Name, funcName) == 0)
+ return GLX_functions[i].Address;
+ }
+ return NULL;
+}
+
+
+void (*glXGetProcAddressARB(const GLubyte *procName))()
+{
+ typedef void (*gl_function)();
+ gl_function f;
+
+ f = (gl_function) get_glx_proc_address((const char *) procName);
+ if (f) {
+ return f;
+ }
+
+ f = (gl_function) _glapi_get_proc_address((const char *) procName);
+ return f;
+}
diff --git a/xc/lib/GL/glx/glxext.c b/xc/lib/GL/glx/glxext.c
index 49873ae73..c69c882fe 100644
--- a/xc/lib/GL/glx/glxext.c
+++ b/xc/lib/GL/glx/glxext.c
@@ -36,6 +36,9 @@
#include "indirect_init.h"
#include "glapi.h"
#include <assert.h>
+#ifdef XTHREADS
+#include "Xthreads.h"
+#endif
#endif
#ifdef DEBUG
@@ -72,8 +75,49 @@ static __GLapi *IndirectAPI = NULL;
#endif
+/*
+ * Current context management
+ */
+
+#if defined(GLX_DIRECT_RENDERING) && defined(XTHREADS)
+
+/* thread safe */
+static GLboolean TSDinitialized = GL_FALSE;
+static xthread_key_t ContextTSD;
+
+__GLXcontext *__glXGetCurrentContext(void)
+{
+ if (!TSDinitialized) {
+ xthread_key_create(&ContextTSD, NULL);
+ TSDinitialized = GL_TRUE;
+ return &dummyContext;
+ }
+ else {
+ void *p;
+ xthread_get_specific(ContextTSD, &p);
+ if (!p)
+ return &dummyContext;
+ else
+ return (__GLXcontext *) p;
+ }
+}
+
+void __glXSetCurrentContext(__GLXcontext *c)
+{
+ if (!TSDinitialized) {
+ xthread_key_create(&ContextTSD, NULL);
+ TSDinitialized = GL_TRUE;
+ }
+ xthread_set_specific(ContextTSD, c);
+}
+
+#else
+
+/* not thread safe */
__GLXcontext *__glXcurrentContext = &dummyContext;
+#endif
+
/*
** You can set this cell to 1 to force the gl drawing stuff to be
@@ -411,15 +455,6 @@ __GLXdisplayPrivate *__glXInitialize(Display* dpy)
XEDataObject dataObj;
int major, minor;
-#ifdef GLX_DIRECT_RENDERING
- /*
- **Initialize the indirect GLX dispatch table. It'll never change and
- ** can be used by all indirect contexts.
- */
- if (!IndirectAPI)
- IndirectAPI = __glXNewIndirectAPI();
-#endif
-
/* The one and only long long lock */
__glXLock();
@@ -505,6 +540,7 @@ __GLXdisplayPrivate *__glXInitialize(Display* dpy)
__glXClientInfo(dpy, dpyPriv->majorOpcode);
}
__glXUnlock();
+
return dpyPriv;
}
@@ -897,9 +933,15 @@ Bool glXMakeCurrent(Display *dpy, GLXDrawable draw, GLXContext gc)
__glXSetCurrentContext(gc);
#ifdef GLX_DIRECT_RENDERING
if (!gc->isDirect) {
- assert(IndirectAPI);
+ if (!IndirectAPI)
+ IndirectAPI = __glXNewIndirectAPI();
_glapi_set_dispatch(IndirectAPI);
}
+#else
+ /* if not direct rendering, always need indirect dispatch */
+ if (!IndirectAPI)
+ IndirectAPI = __glXNewIndirectAPI();
+ _glapi_set_dispatch(IndirectAPI);
#endif
gc->currentDpy = dpy;
gc->currentDrawable = draw;
diff --git a/xc/lib/GL/glx/indirect_init.c b/xc/lib/GL/glx/indirect_init.c
index 99b6994c9..3e1d9f909 100644
--- a/xc/lib/GL/glx/indirect_init.c
+++ b/xc/lib/GL/glx/indirect_init.c
@@ -29,8 +29,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/*
* Authors:
* Kevin E. Martin <kevin@precisioninsight.com>
- *
- * $PI: xc/lib/GL/glx/indirect_init.c,v 1.2 1999/04/05 05:24:32 martin Exp $
+ * Brian Paul <brian@precisioninsight.com>
*/
#ifdef GLX_DIRECT_RENDERING
@@ -49,21 +48,6 @@ static int NoOp(void)
}
-/*
-** Initialize the given dispatch table to all no-op functions.
-*/
-static void InitNoOpAPI(__GLapi *glAPI)
-{
- const int entries = sizeof(__GLapi) / sizeof(void *);
- int i;
- void **dispatch = (void **) glAPI;
-
- for (i = 0; i < entries; i++) {
- dispatch[i] = (void *) NoOp;
- }
-}
-
-
__GLapi *__glXNewIndirectAPI(void)
{
__GLapi *glAPI;
@@ -72,7 +56,13 @@ __GLapi *__glXNewIndirectAPI(void)
glAPI = (__GLapi *) Xmalloc(entries * sizeof(void *));
/* first, set all entries to point to no-op functions */
- InitNoOpAPI(glAPI);
+ {
+ int i;
+ void **dispatch = (void **) glAPI;
+ for (i = 0; i < entries; i++) {
+ dispatch[i] = (void *) NoOp;
+ }
+ }
/* now, initialize the entries we understand */
glAPI->Accum = __indirect_glAccum;
diff --git a/xc/lib/GL/mesa/src/Imakefile b/xc/lib/GL/mesa/src/Imakefile
index 41b1a1e0b..ef136da49 100644
--- a/xc/lib/GL/mesa/src/Imakefile
+++ b/xc/lib/GL/mesa/src/Imakefile
@@ -1,5 +1,6 @@
XCOMM $XFree86: xc/lib/GL/mesa/src/Imakefile,v 1.5 1999/12/14 01:32:25 robin Exp $
-XCOMM $PI: xc/lib/GL/mesa/src/Imakefile,v 1.5 1999/06/21 05:13:55 martin Exp $
+
+#include <Threads.tmpl>
#define DoNormalLib NormalLibGlx
#define DoSharedLib SharedLibGlx
@@ -30,6 +31,8 @@ LinkSourceFile(bitmap.c, ../../../../extras/Mesa/src)
LinkSourceFile(bitmap.h, ../../../../extras/Mesa/src)
LinkSourceFile(blend.c, ../../../../extras/Mesa/src)
LinkSourceFile(blend.h, ../../../../extras/Mesa/src)
+LinkSourceFile(buffers.c, ../../../../extras/Mesa/src)
+LinkSourceFile(buffers.h, ../../../../extras/Mesa/src)
LinkSourceFile(clip.c, ../../../../extras/Mesa/src)
LinkSourceFile(clip.h, ../../../../extras/Mesa/src)
LinkSourceFile(clip_funcs.h, ../../../../extras/Mesa/src)
@@ -51,8 +54,6 @@ LinkSourceFile(debug_xform.c, ../../../../extras/Mesa/src)
LinkSourceFile(debug_xform.h, ../../../../extras/Mesa/src)
LinkSourceFile(depth.c, ../../../../extras/Mesa/src)
LinkSourceFile(depth.h, ../../../../extras/Mesa/src)
-LinkSourceFile(dispatch.c, ../../../../extras/Mesa/src)
-LinkSourceFile(dispatch.h, ../../../../extras/Mesa/src)
LinkSourceFile(dlist.c, ../../../../extras/Mesa/src)
LinkSourceFile(dlist.h, ../../../../extras/Mesa/src)
LinkSourceFile(dotprod_tmp.h, ../../../../extras/Mesa/src)
@@ -83,12 +84,12 @@ LinkSourceFile(glapioffsets.h, ../../../../extras/Mesa/src)
LinkSourceFile(glapitable.h, ../../../../extras/Mesa/src)
LinkSourceFile(glapitemp.h, ../../../../extras/Mesa/src)
LinkSourceFile(glheader.h, ../../../../extras/Mesa/src)
-LinkSourceFile(glmisc.c, ../../../../extras/Mesa/src)
-LinkSourceFile(glmisc.h, ../../../../extras/Mesa/src)
LinkSourceFile(glthread.c, ../../../../extras/Mesa/src)
LinkSourceFile(glthread.h, ../../../../extras/Mesa/src)
LinkSourceFile(hash.c, ../../../../extras/Mesa/src)
LinkSourceFile(hash.h, ../../../../extras/Mesa/src)
+LinkSourceFile(hint.c, ../../../../extras/Mesa/src)
+LinkSourceFile(hint.h, ../../../../extras/Mesa/src)
LinkSourceFile(image.c, ../../../../extras/Mesa/src)
LinkSourceFile(image.h, ../../../../extras/Mesa/src)
LinkSourceFile(imaging.c, ../../../../extras/Mesa/src)
@@ -142,6 +143,8 @@ LinkSourceFile(span.c, ../../../../extras/Mesa/src)
LinkSourceFile(span.h, ../../../../extras/Mesa/src)
LinkSourceFile(stages.c, ../../../../extras/Mesa/src)
LinkSourceFile(stages.h, ../../../../extras/Mesa/src)
+LinkSourceFile(state.c, ../../../../extras/Mesa/src)
+LinkSourceFile(state.h, ../../../../extras/Mesa/src)
LinkSourceFile(stencil.c, ../../../../extras/Mesa/src)
LinkSourceFile(stencil.h, ../../../../extras/Mesa/src)
LinkSourceFile(texgen_tmp.h, ../../../../extras/Mesa/src)
@@ -193,6 +196,7 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
bbox.c \
bitmap.c \
blend.c \
+ buffers.c \
clip.c \
colortab.c \
config.c \
@@ -201,7 +205,6 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
cva.c \
debug_xform.c \
depth.c \
- dispatch.c \
dlist.c \
drawpix.c \
enable.c \
@@ -213,9 +216,9 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
get.c \
glapi.c \
glapinoop.c \
- glmisc.c \
glthread.c \
hash.c \
+ hint.c \
image.c \
imaging.o \
light.c \
@@ -238,6 +241,7 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
shade.c \
span.c \
stages.c \
+ state.c \
stencil.c \
teximage.c \
texobj.c \
@@ -265,6 +269,7 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
bbox.o \
bitmap.o \
blend.o \
+ buffers.o \
clip.o \
colortab.o \
config.o \
@@ -273,7 +278,6 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
cva.o \
debug_xform.o \
depth.o \
- dispatch.o \
dlist.o \
drawpix.o \
enable.o \
@@ -283,8 +287,8 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
feedback.o \
fog.o \
get.o \
- glmisc.o \
hash.o \
+ hint.o \
image.o \
imaging.o \
light.o \
@@ -307,6 +311,7 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
shade.o \
span.o \
stages.o \
+ state.o \
stencil.o \
teximage.o \
texobj.o \
@@ -334,7 +339,7 @@ LinkSourceFile(zoom.h, ../../../../extras/Mesa/src)
#endif
DEFINES = $(ALLOC_DEFINES) GlxDefines $(TDFX_DEFS) $(ASM_DEFS)
- INCLUDES = -I$(XLIBSRC) -I$(EXTINCSRC) -I../include -I../../dri -I.
+ INCLUDES = -I$(XLIBSRC) -I$(EXTINCSRC) -I../include -I../../dri -I. -I../../../../include
SRCS = $(CORE_SRCS) $(ASM_SRCS)
OBJS = $(CORE_OBJS) $(ASM_OBJS)
diff --git a/xc/lib/GL/mesa/src/drv/tdfx/Imakefile b/xc/lib/GL/mesa/src/drv/tdfx/Imakefile
index 55dc359cc..00f0495b4 100644
--- a/xc/lib/GL/mesa/src/drv/tdfx/Imakefile
+++ b/xc/lib/GL/mesa/src/drv/tdfx/Imakefile
@@ -1,4 +1,6 @@
+#include <Threads.tmpl>
+
#define DoNormalLib NormalLibGlx
#define DoSharedLib SharedLibGlx
#define DoExtraLib SharedLibGlx
@@ -84,6 +86,7 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../bbox.c \
../../bitmap.c \
../../blend.c \
+ ../../buffers.c \
../../clip.c \
../../colortab.c \
../../config.c \
@@ -92,7 +95,6 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../cva.c \
../../debug_xform.c \
../../depth.c \
- ../../dispatch.c \
../../dlist.c \
../../drawpix.c \
../../enable.c \
@@ -104,7 +106,6 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../get.c \
../../glapi.c \
../../glapinoop.c \
- ../../glmisc.c \
../../glthread.c \
../../hash.c \
../../image.c \
@@ -129,6 +130,7 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../shade.c \
../../span.c \
../../stages.c \
+ ../../state.c \
../../stencil.c \
../../teximage.c \
../../texobj.c \
@@ -157,6 +159,7 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../bbox.o \
../../bitmap.o \
../../blend.o \
+ ../../buffers.o \
../../clip.o \
../../colortab.o \
../../config.o \
@@ -165,7 +168,6 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../cva.o \
../../debug_xform.o \
../../depth.o \
- ../../dispatch.o \
../../dlist.o \
../../drawpix.o \
../../enable.o \
@@ -175,8 +177,8 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../feedback.o \
../../fog.o \
../../get.o \
- ../../glmisc.o \
../../hash.o \
+ ../../hint.o \
../../image.o \
../../imaging.o \
../../light.o \
@@ -199,6 +201,7 @@ LinkSourceFile(fxvs_tmp.h, ../../../../../../extras/Mesa/src/FX)
../../shade.o \
../../span.o \
../../stages.o \
+ ../../state.o \
../../stencil.o \
../../teximage.o \
../../texobj.o \
diff --git a/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c b/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c
index 688dd756d..9ca4ef671 100644
--- a/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c
+++ b/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c
@@ -389,4 +389,20 @@ void XMesaSetSAREA() {
/* fprintf(stderr, "Out FifoPtr=%d FifoRead=%d\n", saPriv->fifoPtr, saPriv->fifoRead); */
}
+
+extern void _register_gl_extensions(void); /* silence compiler warning */
+
+void _register_gl_extensions(void)
+{
+ /* Here is where the 3Dfx driver would register new extensions
+ * with libGL.so.
+ * This function is called as soon as the driver object is dlopened.
+ */
+#if 0
+ /* really, the return code should be checked */
+ _glapi_add_entrypoint("glFooBarEXT", _gloffset_FooBarEXT);
+#endif
+}
+
+
#endif
diff --git a/xc/programs/Xserver/GL/mesa/src/Imakefile b/xc/programs/Xserver/GL/mesa/src/Imakefile
index 4d2ecf77e..9fbbe317e 100644
--- a/xc/programs/Xserver/GL/mesa/src/Imakefile
+++ b/xc/programs/Xserver/GL/mesa/src/Imakefile
@@ -23,6 +23,8 @@ LinkSourceFile(bitmap.c,../../../../../extras/Mesa/src)
LinkSourceFile(bitmap.h,../../../../../extras/Mesa/src)
LinkSourceFile(blend.c,../../../../../extras/Mesa/src)
LinkSourceFile(blend.h,../../../../../extras/Mesa/src)
+LinkSourceFile(buffers.c,../../../../../extras/Mesa/src)
+LinkSourceFile(buffers.h,../../../../../extras/Mesa/src)
LinkSourceFile(clip.c,../../../../../extras/Mesa/src)
LinkSourceFile(clip.h,../../../../../extras/Mesa/src)
LinkSourceFile(clip_funcs.h,../../../../../extras/Mesa/src)
@@ -46,7 +48,6 @@ LinkSourceFile(debug_xform.h,../../../../../extras/Mesa/src)
LinkSourceFile(depth.c,../../../../../extras/Mesa/src)
LinkSourceFile(depth.h,../../../../../extras/Mesa/src)
LinkSourceFile(dispatch.c,../../../../../extras/Mesa/src)
-LinkSourceFile(dispatch.h,../../../../../extras/Mesa/src)
LinkSourceFile(dlist.c,../../../../../extras/Mesa/src)
LinkSourceFile(dlist.h,../../../../../extras/Mesa/src)
LinkSourceFile(dotprod_tmp.h,../../../../../extras/Mesa/src)
@@ -79,12 +80,12 @@ LinkSourceFile(glthread.h,../../../../../extras/Mesa/src)
LinkSourceFile(general_clip.h,../../../../../extras/Mesa/src)
LinkSourceFile(get.c,../../../../../extras/Mesa/src)
LinkSourceFile(get.h,../../../../../extras/Mesa/src)
-LinkSourceFile(glmisc.c,../../../../../extras/Mesa/src)
-LinkSourceFile(glmisc.h,../../../../../extras/Mesa/src)
LinkSourceFile(glthread.c,../../../../../extras/Mesa/src)
LinkSourceFile(glthread.h,../../../../../extras/Mesa/src)
LinkSourceFile(hash.c,../../../../../extras/Mesa/src)
LinkSourceFile(hash.h,../../../../../extras/Mesa/src)
+LinkSourceFile(hint.c,../../../../../extras/Mesa/src)
+LinkSourceFile(hint.h,../../../../../extras/Mesa/src)
LinkSourceFile(highpc.c,../../../../../extras/Mesa/src)
LinkSourceFile(image.c,../../../../../extras/Mesa/src)
LinkSourceFile(image.h,../../../../../extras/Mesa/src)
@@ -140,6 +141,8 @@ LinkSourceFile(span.c,../../../../../extras/Mesa/src)
LinkSourceFile(span.h,../../../../../extras/Mesa/src)
LinkSourceFile(stages.c,../../../../../extras/Mesa/src)
LinkSourceFile(stages.h,../../../../../extras/Mesa/src)
+LinkSourceFile(state.c,../../../../../extras/Mesa/src)
+LinkSourceFile(state.h,../../../../../extras/Mesa/src)
LinkSourceFile(stencil.c,../../../../../extras/Mesa/src)
LinkSourceFile(stencil.h,../../../../../extras/Mesa/src)
LinkSourceFile(texgen_tmp.h,../../../../../extras/Mesa/src)
@@ -191,6 +194,7 @@ LinkSourceFile(zoom.h,../../../../../extras/Mesa/src)
bbox.c \
bitmap.c \
blend.c \
+ buffers.c \
clip.c \
colortab.c \
config.c \
@@ -211,9 +215,8 @@ LinkSourceFile(zoom.h,../../../../../extras/Mesa/src)
get.c \
glapi.c \
glapinoop.c \
- glmisc.c \
- glthread.c \
hash.c \
+ hint.c \
image.c \
imaging.o \
light.c \
@@ -236,6 +239,7 @@ LinkSourceFile(zoom.h,../../../../../extras/Mesa/src)
shade.c \
span.c \
stages.c \
+ state.c \
stencil.c \
teximage.c \
texobj.c \
@@ -263,6 +267,7 @@ LinkSourceFile(zoom.h,../../../../../extras/Mesa/src)
bbox.o \
bitmap.o \
blend.o \
+ buffers.o \
clip.o \
colortab.o \
config.o \
@@ -283,9 +288,9 @@ LinkSourceFile(zoom.h,../../../../../extras/Mesa/src)
get.o \
glapi.o \
glapinoop.o \
- glmisc.o \
glthread.o \
hash.o \
+ hint.o \
image.o \
imaging.o \
light.o \
@@ -308,6 +313,7 @@ LinkSourceFile(zoom.h,../../../../../extras/Mesa/src)
shade.o \
span.o \
stages.o \
+ state.o \
stencil.o \
teximage.o \
texobj.o \