From 9232e84c16da284b2ce68e441004df381cec7e91 Mon Sep 17 00:00:00 2001 From: brianp Date: Sat, 12 Feb 2000 23:09:21 +0000 Subject: Merged dispatch-0-0-2 --- xc/extras/Mesa/include/GL/gl.h | 6 +- xc/extras/Mesa/src/FX/fxapi.c | 12 +- xc/extras/Mesa/src/FX/fxclip.c | 4 +- xc/extras/Mesa/src/FX/fxcliptmp.h | 4 +- xc/extras/Mesa/src/FX/fxcva.c | 4 +- xc/extras/Mesa/src/FX/fxcva.h | 4 +- xc/extras/Mesa/src/FX/fxcvatmp.h | 4 +- xc/extras/Mesa/src/FX/fxdd.c | 154 +- xc/extras/Mesa/src/FX/fxddspan.c | 4 +- xc/extras/Mesa/src/FX/fxddtex.c | 100 +- xc/extras/Mesa/src/FX/fxdrv.h | 6 +- xc/extras/Mesa/src/FX/fxfastpath.c | 4 +- xc/extras/Mesa/src/FX/fxfasttmp.h | 4 +- xc/extras/Mesa/src/FX/fxglidew.c | 4 +- xc/extras/Mesa/src/FX/fxglidew.h | 4 +- xc/extras/Mesa/src/FX/fxpipeline.c | 4 +- xc/extras/Mesa/src/FX/fxrender.c | 4 +- xc/extras/Mesa/src/FX/fxsanity.c | 4 +- xc/extras/Mesa/src/FX/fxsdettmp.h | 4 +- xc/extras/Mesa/src/FX/fxsetup.c | 36 +- xc/extras/Mesa/src/FX/fxspan.c | 805 ------ xc/extras/Mesa/src/FX/fxstripdet.c | 4 +- xc/extras/Mesa/src/FX/fxtexman.c | 4 +- xc/extras/Mesa/src/FX/fxtrifuncs.c | 4 +- xc/extras/Mesa/src/FX/fxtritmp.h | 4 +- xc/extras/Mesa/src/FX/fxvs_tmp.h | 4 +- xc/extras/Mesa/src/FX/fxvsetup.c | 4 +- xc/extras/Mesa/src/FX/fxvsetup.h | 4 +- xc/extras/Mesa/src/FX/fxwgl.c | 4 +- xc/extras/Mesa/src/X/fakeglx.c | 6 +- xc/extras/Mesa/src/X/fakeglx.h | 2 +- xc/extras/Mesa/src/X/glxapi.c | 2 +- xc/extras/Mesa/src/X/glxapi.h | 2 +- xc/extras/Mesa/src/X/glxheader.h | 2 +- xc/extras/Mesa/src/X/realglx.c | 2 +- xc/extras/Mesa/src/X/realglx.h | 2 +- xc/extras/Mesa/src/X/xfonts.c | 2 +- xc/extras/Mesa/src/X/xmesa1.c | 2 +- xc/extras/Mesa/src/X/xmesa2.c | 3 +- xc/extras/Mesa/src/X/xmesa3.c | 2 +- xc/extras/Mesa/src/X/xmesa4.c | 2 +- xc/extras/Mesa/src/X/xmesaP.h | 2 +- xc/extras/Mesa/src/X86/3dnow_xform_raw3.S | 495 ++-- xc/extras/Mesa/src/X86/3dnow_xform_raw4.S | 498 ++-- xc/extras/Mesa/src/X86/assyntax.h | 1 + xc/extras/Mesa/src/accum.c | 11 +- xc/extras/Mesa/src/accum.h | 11 +- xc/extras/Mesa/src/all.h | 12 +- xc/extras/Mesa/src/alpha.c | 9 +- xc/extras/Mesa/src/alpha.h | 9 +- xc/extras/Mesa/src/alphabuf.c | 2 +- xc/extras/Mesa/src/alphabuf.h | 16 +- xc/extras/Mesa/src/attrib.c | 62 +- xc/extras/Mesa/src/attrib.h | 13 +- xc/extras/Mesa/src/bbox.c | 2 +- xc/extras/Mesa/src/bbox.h | 2 +- xc/extras/Mesa/src/bitmap.c | 3 +- xc/extras/Mesa/src/bitmap.h | 2 +- xc/extras/Mesa/src/blend.c | 72 +- xc/extras/Mesa/src/blend.h | 16 +- xc/extras/Mesa/src/buffers.c | 564 ++++ xc/extras/Mesa/src/buffers.h | 55 + xc/extras/Mesa/src/clip.c | 2 +- xc/extras/Mesa/src/clip.h | 2 +- xc/extras/Mesa/src/clip_funcs.h | 2 +- xc/extras/Mesa/src/clip_tmp.h | 2 +- xc/extras/Mesa/src/colortab.c | 2 +- xc/extras/Mesa/src/colortab.h | 2 +- xc/extras/Mesa/src/config.c | 7 +- xc/extras/Mesa/src/config.h | 7 +- xc/extras/Mesa/src/context.c | 692 +---- xc/extras/Mesa/src/context.h | 27 +- xc/extras/Mesa/src/copy_tmp.h | 2 +- xc/extras/Mesa/src/copypix.c | 7 +- xc/extras/Mesa/src/copypix.h | 2 +- xc/extras/Mesa/src/cull_tmp.h | 2 +- xc/extras/Mesa/src/cva.c | 2 +- xc/extras/Mesa/src/cva.h | 2 +- xc/extras/Mesa/src/dd.h | 2 +- xc/extras/Mesa/src/ddsample.c | 2 +- xc/extras/Mesa/src/debug_xform.c | 2 +- xc/extras/Mesa/src/debug_xform.h | 2 +- xc/extras/Mesa/src/depth.c | 24 +- xc/extras/Mesa/src/depth.h | 20 +- xc/extras/Mesa/src/dispatch.c | 594 +--- xc/extras/Mesa/src/dispatch.h | 44 - xc/extras/Mesa/src/dlist.c | 585 ++-- xc/extras/Mesa/src/dlist.h | 2 +- xc/extras/Mesa/src/dotprod_tmp.h | 2 +- xc/extras/Mesa/src/drawpix.c | 7 +- xc/extras/Mesa/src/drawpix.h | 2 +- xc/extras/Mesa/src/enable.c | 2 +- xc/extras/Mesa/src/enable.h | 2 +- xc/extras/Mesa/src/enums.c | 8 +- xc/extras/Mesa/src/enums.h | 2 +- xc/extras/Mesa/src/eval.c | 2 +- xc/extras/Mesa/src/eval.h | 2 +- xc/extras/Mesa/src/extensions.c | 2 +- xc/extras/Mesa/src/extensions.h | 2 +- xc/extras/Mesa/src/feedback.c | 2 +- xc/extras/Mesa/src/feedback.h | 2 +- xc/extras/Mesa/src/fixed.h | 2 +- xc/extras/Mesa/src/fog.c | 28 +- xc/extras/Mesa/src/fog.h | 23 +- xc/extras/Mesa/src/fog_tmp.h | 2 +- xc/extras/Mesa/src/general_clip.h | 2 +- xc/extras/Mesa/src/get.c | 140 +- xc/extras/Mesa/src/get.h | 2 +- xc/extras/Mesa/src/glapi.c | 164 +- xc/extras/Mesa/src/glapi.h | 2 +- xc/extras/Mesa/src/glapinoop.c | 4239 +---------------------------- xc/extras/Mesa/src/glapinoop.h | 2 +- xc/extras/Mesa/src/glapioffsets.h | 37 +- xc/extras/Mesa/src/glapitable.h | 41 +- xc/extras/Mesa/src/glapitemp.h | 1298 +++++---- xc/extras/Mesa/src/glheader.h | 7 +- xc/extras/Mesa/src/glmisc.c | 685 ----- xc/extras/Mesa/src/glmisc.h | 67 - xc/extras/Mesa/src/glthread.c | 148 +- xc/extras/Mesa/src/glthread.h | 150 +- xc/extras/Mesa/src/hash.c | 14 +- xc/extras/Mesa/src/hash.h | 2 +- xc/extras/Mesa/src/highpc.c | 2 +- xc/extras/Mesa/src/hint.c | 176 ++ xc/extras/Mesa/src/hint.h | 45 + xc/extras/Mesa/src/image.c | 2 +- xc/extras/Mesa/src/image.h | 2 +- xc/extras/Mesa/src/imaging.c | 2 +- xc/extras/Mesa/src/imaging.h | 2 +- xc/extras/Mesa/src/indirect_tmp.h | 2 +- xc/extras/Mesa/src/interp_tmp.h | 2 +- xc/extras/Mesa/src/light.c | 2 +- xc/extras/Mesa/src/light.h | 2 +- xc/extras/Mesa/src/lines.c | 2 +- xc/extras/Mesa/src/lines.h | 2 +- xc/extras/Mesa/src/linetemp.h | 2 +- xc/extras/Mesa/src/lnaatemp.h | 2 +- xc/extras/Mesa/src/logic.c | 2 +- xc/extras/Mesa/src/logic.h | 2 +- xc/extras/Mesa/src/lowpc.c | 2 +- xc/extras/Mesa/src/macros.h | 2 +- xc/extras/Mesa/src/masking.c | 2 +- xc/extras/Mesa/src/masking.h | 2 +- xc/extras/Mesa/src/matrix.c | 3 +- xc/extras/Mesa/src/matrix.h | 2 +- xc/extras/Mesa/src/mem.c | 2 +- xc/extras/Mesa/src/mem.h | 2 +- xc/extras/Mesa/src/mmath.c | 2 +- xc/extras/Mesa/src/mmath.h | 2 +- xc/extras/Mesa/src/mthreads.c | 179 -- xc/extras/Mesa/src/mthreads.h | 171 -- xc/extras/Mesa/src/norm_tmp.h | 2 +- xc/extras/Mesa/src/pb.c | 28 +- xc/extras/Mesa/src/pb.h | 2 +- xc/extras/Mesa/src/pipeline.c | 5 +- xc/extras/Mesa/src/pipeline.h | 2 +- xc/extras/Mesa/src/pixel.c | 2 +- xc/extras/Mesa/src/pixel.h | 2 +- xc/extras/Mesa/src/points.c | 2 +- xc/extras/Mesa/src/points.h | 2 +- xc/extras/Mesa/src/polygon.c | 2 +- xc/extras/Mesa/src/polygon.h | 2 +- xc/extras/Mesa/src/quads.c | 2 +- xc/extras/Mesa/src/quads.h | 2 +- xc/extras/Mesa/src/rastpos.c | 3 +- xc/extras/Mesa/src/rastpos.h | 2 +- xc/extras/Mesa/src/readpix.c | 6 +- xc/extras/Mesa/src/readpix.h | 2 +- xc/extras/Mesa/src/rect.c | 2 +- xc/extras/Mesa/src/rect.h | 2 +- xc/extras/Mesa/src/render_tmp.h | 2 +- xc/extras/Mesa/src/scissor.c | 2 +- xc/extras/Mesa/src/scissor.h | 2 +- xc/extras/Mesa/src/shade.c | 2 +- xc/extras/Mesa/src/shade.h | 2 +- xc/extras/Mesa/src/shade_tmp.h | 2 +- xc/extras/Mesa/src/simple_list.h | 2 +- xc/extras/Mesa/src/span.c | 44 +- xc/extras/Mesa/src/span.h | 2 +- xc/extras/Mesa/src/stages.c | 4 +- xc/extras/Mesa/src/stages.h | 2 +- xc/extras/Mesa/src/state.c | 1207 ++++++++ xc/extras/Mesa/src/state.h | 44 + xc/extras/Mesa/src/stencil.c | 10 +- xc/extras/Mesa/src/stencil.h | 2 +- xc/extras/Mesa/src/texgen_tmp.h | 2 +- xc/extras/Mesa/src/teximage.c | 19 +- xc/extras/Mesa/src/teximage.h | 11 +- xc/extras/Mesa/src/texobj.c | 27 +- xc/extras/Mesa/src/texobj.h | 2 +- xc/extras/Mesa/src/texstate.c | 22 +- xc/extras/Mesa/src/texstate.h | 2 +- xc/extras/Mesa/src/texture.c | 2 +- xc/extras/Mesa/src/texture.h | 2 +- xc/extras/Mesa/src/trans_tmp.h | 2 +- xc/extras/Mesa/src/translate.c | 2 +- xc/extras/Mesa/src/translate.h | 2 +- xc/extras/Mesa/src/triangle.c | 2 +- xc/extras/Mesa/src/triangle.h | 2 +- xc/extras/Mesa/src/tritemp.h | 2 +- xc/extras/Mesa/src/types.h | 81 +- xc/extras/Mesa/src/varray.c | 13 +- xc/extras/Mesa/src/varray.h | 2 +- xc/extras/Mesa/src/vb.c | 2 +- xc/extras/Mesa/src/vb.h | 2 +- xc/extras/Mesa/src/vbcull.c | 2 +- xc/extras/Mesa/src/vbcull.h | 2 +- xc/extras/Mesa/src/vbfill.c | 5 +- xc/extras/Mesa/src/vbfill.h | 2 +- xc/extras/Mesa/src/vbindirect.c | 2 +- xc/extras/Mesa/src/vbindirect.h | 2 +- xc/extras/Mesa/src/vbrender.c | 4 +- xc/extras/Mesa/src/vbrender.h | 2 +- xc/extras/Mesa/src/vbxform.c | 3 +- xc/extras/Mesa/src/vbxform.h | 2 +- xc/extras/Mesa/src/vector.c | 2 +- xc/extras/Mesa/src/vector.h | 2 +- xc/extras/Mesa/src/vertices.c | 2 +- xc/extras/Mesa/src/vertices.h | 2 +- xc/extras/Mesa/src/winpos.c | 148 +- xc/extras/Mesa/src/winpos.h | 85 +- xc/extras/Mesa/src/xform.c | 2 +- xc/extras/Mesa/src/xform.h | 2 +- xc/extras/Mesa/src/xform_tmp.h | 2 +- xc/extras/Mesa/src/zoom.c | 2 +- xc/extras/Mesa/src/zoom.h | 2 +- xc/include/GL/glx.h | 1 + xc/include/GL/glxtokens.h | 1 + xc/lib/GL/Imakefile | 7 +- xc/lib/GL/dri/Imakefile | 3 +- xc/lib/GL/dri/dri_glx.c | 20 +- xc/lib/GL/glx/Imakefile | 2 + xc/lib/GL/glx/glxclient.h | 5 + xc/lib/GL/glx/glxcmds.c | 96 +- xc/lib/GL/glx/glxext.c | 62 +- xc/lib/GL/glx/indirect_init.c | 26 +- xc/lib/GL/mesa/src/Imakefile | 25 +- xc/lib/GL/mesa/src/drv/tdfx/Imakefile | 11 +- xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c | 16 + xc/programs/Xserver/GL/mesa/src/Imakefile | 18 +- 240 files changed, 5580 insertions(+), 9438 deletions(-) delete mode 100644 xc/extras/Mesa/src/FX/fxspan.c create mode 100644 xc/extras/Mesa/src/buffers.c create mode 100644 xc/extras/Mesa/src/buffers.h delete mode 100644 xc/extras/Mesa/src/dispatch.h delete mode 100644 xc/extras/Mesa/src/glmisc.c delete mode 100644 xc/extras/Mesa/src/glmisc.h create mode 100644 xc/extras/Mesa/src/hint.c create mode 100644 xc/extras/Mesa/src/hint.h delete mode 100644 xc/extras/Mesa/src/mthreads.c delete mode 100644 xc/extras/Mesa/src/mthreads.h create mode 100644 xc/extras/Mesa/src/state.c create mode 100644 xc/extras/Mesa/src/state.h 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++> 3); } } else { - unsigned short r,g,b; + unsigned int r,g,b; for(y=0;y> 4); } } else { - unsigned short r,g,b,a; + unsigned int r,g,b,a; for(y=0;y> 3); + } + } else { + unsigned r,g,b,a; + + for(y=0;y> 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> 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 - * Keith Whitwell - * - * 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 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 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;icurrentFB, 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;icolor; - ++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;icolor; - } - - 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> 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;icurrentFB,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;icurrentFB,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;icurrentFB,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;iDriverCtx; - 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; iDepth.Mask) { - /* Update Z buffer */ - for (i=0;iDepth.Mask) { - /* Update Z buffer */ - for (i=0;i= *zptr) { - *zptr = z[i]; - passed++; - } else { - *m = 0; - } - } - } - } else { - /* Don't update Z buffer */ - for (i=0;i= *zptr) { - /* pass */ - passed++; - } else { - *m = 0; - } - } - } - } - break; - case GL_GREATER: - if (ctx->Depth.Mask) { - /* Update Z buffer */ - for (i=0;i *zptr) { - *zptr = z[i]; - passed++; - } else { - *m = 0; - } - } - } - } else { - /* Don't update Z buffer */ - for (i=0;i *zptr) { - /* pass */ - passed++; - } else { - *m = 0; - } - } - } - } - break; - case GL_NOTEQUAL: - if (ctx->Depth.Mask) { - /* Update Z buffer */ - for (i=0;iDepth.Mask) { - /* Update Z buffer */ - for (i=0;iDepth.Mask) { - /* Update Z buffer */ - for (i=0;iDriverCtx; - 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; iDepth.Mask) { - /* Update Z buffer */ - for (i=0; iDepth.Mask) { - /* Update Z buffer */ - for (i=0; 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= zval) { - /* pass */ - } else { - /* fail */ - mask[i] = 0; - } - } - } - } - break; - case GL_GREATER: - if (ctx->Depth.Mask) { - /* Update Z buffer */ - for (i=0; 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 zval) { - /* pass */ - } else { - /* fail */ - mask[i] = 0; - } - } - } - } - break; - case GL_NOTEQUAL: - if (ctx->Depth.Mask) { - /* Update Z buffer */ - for (i=0; iDepth.Mask) { - /* Update Z buffer */ - for (i=0; iDepth.Mask) { - /* Update Z buffer */ - for (i=0; iDriver.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;iColor.BlendEquation==GL_MAX_EXT); @@ -378,10 +383,10 @@ static void _BLENDAPI blend_max( GLcontext *ctx, GLuint n, const GLubyte mask[], for (i=0;iColor.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/buffers.c b/xc/extras/Mesa/src/buffers.c new file mode 100644 index 000000000..284bf0d7c --- /dev/null +++ b/xc/extras/Mesa/src/buffers.c @@ -0,0 +1,564 @@ +/* $Id: buffers.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 "accum.h" +#include "alphabuf.h" +#include "buffers.h" +#include "context.h" +#include "depth.h" +#include "enums.h" +#include "macros.h" +#include "masking.h" +#include "mem.h" +#include "stencil.h" +#include "state.h" +#include "types.h" +#endif + + + +void +_mesa_ClearIndex( GLfloat c ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glClearIndex"); + ctx->Color.ClearIndex = (GLuint) c; + if (!ctx->Visual->RGBAflag) { + /* it's OK to call glClearIndex in RGBA mode but it should be a NOP */ + (*ctx->Driver.ClearIndex)( ctx, ctx->Color.ClearIndex ); + } +} + + + +void +_mesa_ClearColor( GLclampf red, GLclampf green, + GLclampf blue, GLclampf alpha ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glClearColor"); + + ctx->Color.ClearColor[0] = CLAMP( red, 0.0F, 1.0F ); + ctx->Color.ClearColor[1] = CLAMP( green, 0.0F, 1.0F ); + ctx->Color.ClearColor[2] = CLAMP( blue, 0.0F, 1.0F ); + ctx->Color.ClearColor[3] = CLAMP( alpha, 0.0F, 1.0F ); + + if (ctx->Visual->RGBAflag) { + GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F); + GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F); + GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F); + GLubyte a = (GLint) (ctx->Color.ClearColor[3] * 255.0F); + (*ctx->Driver.ClearColor)( ctx, r, g, b, a ); + } +} + + + + +/* + * Clear the color buffer when glColorMask or glIndexMask is in effect. + */ +static void +clear_color_buffer_with_masking( GLcontext *ctx ) +{ + const GLint x = ctx->DrawBuffer->Xmin; + const GLint y = ctx->DrawBuffer->Ymin; + const GLint height = ctx->DrawBuffer->Ymax - ctx->DrawBuffer->Ymin + 1; + const GLint width = ctx->DrawBuffer->Xmax - ctx->DrawBuffer->Xmin + 1; + + if (ctx->Visual->RGBAflag) { + /* RGBA mode */ + const GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F); + const GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F); + const GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F); + const GLubyte a = (GLint) (ctx->Color.ClearColor[3] * 255.0F); + GLint i; + for (i = 0; i < height; i++) { + GLubyte rgba[MAX_WIDTH][4]; + GLint j; + for (j=0; jDriver.WriteRGBASpan)( ctx, width, x, y + i, + (CONST GLubyte (*)[4])rgba, NULL ); + } + } + else { + /* Color index mode */ + GLuint span[MAX_WIDTH]; + GLubyte mask[MAX_WIDTH]; + GLint i, j; + MEMSET( mask, 1, width ); + for (i=0;iColor.ClearIndex; + } + gl_mask_index_span( ctx, width, x, y + i, span ); + (*ctx->Driver.WriteCI32Span)( ctx, width, x, y + i, span, mask ); + } + } +} + + + +/* + * Clear a color buffer without index/channel masking. + */ +static void +clear_color_buffer(GLcontext *ctx) +{ + const GLint x = ctx->DrawBuffer->Xmin; + const GLint y = ctx->DrawBuffer->Ymin; + const GLint height = ctx->DrawBuffer->Ymax - ctx->DrawBuffer->Ymin + 1; + const GLint width = ctx->DrawBuffer->Xmax - ctx->DrawBuffer->Xmin + 1; + + if (ctx->Visual->RGBAflag) { + /* RGBA mode */ + const GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F); + const GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F); + const GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F); + const GLubyte a = (GLint) (ctx->Color.ClearColor[3] * 255.0F); + GLubyte span[MAX_WIDTH][4]; + GLint i; + ASSERT(ctx->Color.ColorMask[0] && + ctx->Color.ColorMask[1] && + ctx->Color.ColorMask[2] && + ctx->Color.ColorMask[3]); + for (i = 0; i < width; i++) { + span[i][RCOMP] = r; + span[i][GCOMP] = g; + span[i][BCOMP] = b; + span[i][ACOMP] = a; + } + for (i = 0; i < height; i++) { + (*ctx->Driver.WriteRGBASpan)( ctx, width, x, y + i, + (CONST GLubyte (*)[4]) span, NULL ); + } + } + else { + /* Color index mode */ + ASSERT(ctx->Color.IndexMask == ~0); + if (ctx->Visual->IndexBits == 8) { + /* 8-bit clear */ + GLubyte span[MAX_WIDTH]; + GLint i; + MEMSET(span, ctx->Color.ClearIndex, width); + for (i = 0; i < height; i++) { + (*ctx->Driver.WriteCI8Span)( ctx, width, x, y + i, span, NULL ); + } + } + else { + /* non 8-bit clear */ + GLuint span[MAX_WIDTH]; + GLint i; + for (i = 0; i < width; i++) { + span[i] = ctx->Color.ClearIndex; + } + for (i = 0; i < height; i++) { + (*ctx->Driver.WriteCI32Span)( ctx, width, x, y + i, span, NULL ); + } + } + } +} + + + +/* + * Clear the front/back/left/right color buffers. + * This function is usually only called if we need to clear the + * buffers with masking. + */ +static void +clear_color_buffers(GLcontext *ctx) +{ + GLuint bufferBit; + + /* loop over four possible dest color buffers */ + for (bufferBit = 1; bufferBit <= 8; bufferBit = bufferBit << 1) { + if (bufferBit & ctx->Color.DrawDestMask) { + if (bufferBit == FRONT_LEFT_BIT) { + (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_FRONT_LEFT); + } + else if (bufferBit == FRONT_RIGHT_BIT) { + (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_FRONT_RIGHT); + } + else if (bufferBit == BACK_LEFT_BIT) { + (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_BACK_LEFT); + } + else { + (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_BACK_RIGHT); + } + + if (ctx->Color.SWmasking) { + clear_color_buffer_with_masking(ctx); + } + else { + clear_color_buffer(ctx); + } + } + } + + /* restore default dest buffer */ + (void) (*ctx->Driver.SetDrawBuffer)( ctx, ctx->Color.DriverDrawBuffer ); +} + + + +void +_mesa_Clear( GLbitfield mask ) +{ + GET_CURRENT_CONTEXT(ctx); +#ifdef PROFILE + GLdouble t0 = gl_time(); +#endif + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glClear"); + + if (MESA_VERBOSE & VERBOSE_API) + fprintf(stderr, "glClear 0x%x\n", mask); + + if (ctx->NewState) { + gl_update_state( ctx ); + } + + if (ctx->RenderMode==GL_RENDER) { + const GLint x = ctx->DrawBuffer->Xmin; + const GLint y = ctx->DrawBuffer->Ymin; + const GLint height = ctx->DrawBuffer->Ymax - ctx->DrawBuffer->Ymin + 1; + const GLint width = ctx->DrawBuffer->Xmax - ctx->DrawBuffer->Xmin + 1; + GLbitfield ddMask; + GLbitfield newMask; + + /* don't clear depth buffer if depth writing disabled */ + if (!ctx->Depth.Mask) + CLEAR_BITS(mask, GL_DEPTH_BUFFER_BIT); + + /* Build bitmask to send to driver Clear function */ + ddMask = mask & (GL_DEPTH_BUFFER_BIT | + GL_STENCIL_BUFFER_BIT | + GL_ACCUM_BUFFER_BIT); + if (mask & GL_COLOR_BUFFER_BIT) { + ddMask |= ctx->Color.DrawDestMask; + } + + ASSERT(ctx->Driver.Clear); + newMask = (*ctx->Driver.Clear)( ctx, ddMask, !ctx->Scissor.Enabled, + x, y, width, height ); + +#ifdef DEBUG + { + GLbitfield legalBits = DD_FRONT_LEFT_BIT | + DD_FRONT_RIGHT_BIT | + DD_BACK_LEFT_BIT | + DD_BACK_RIGHT_BIT | + DD_DEPTH_BIT | + DD_STENCIL_BIT | + DD_ACCUM_BIT; + assert((newMask & (~legalBits)) == 0); + } +#endif + + /* do software clearing here */ + if (newMask) { + if (newMask & ctx->Color.DrawDestMask) clear_color_buffers( 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 ); + } + + /* clear software-based alpha buffer(s) */ + if ( (mask & GL_COLOR_BUFFER_BIT) && ctx->Visual->SoftwareAlpha + && ctx->Color.ColorMask[RCOMP]) { + gl_clear_alpha_buffers( ctx ); + } + +#ifdef PROFILE + ctx->ClearTime += gl_time() - t0; + ctx->ClearCount++; +#endif + } +} + + +void +_mesa_DrawBuffer( GLenum mode ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glDrawBuffer"); + + if (MESA_VERBOSE & VERBOSE_API) + fprintf(stderr, "glDrawBuffer %s\n", gl_lookup_enum_by_nr(mode)); + + switch (mode) { + case GL_AUX0: + case GL_AUX1: + case GL_AUX2: + case GL_AUX3: + /* AUX buffers not implemented in Mesa at this time */ + gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); + return; + case GL_RIGHT: + if (!ctx->Visual->StereoFlag) { + gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); + return; + } + if (ctx->Visual->DBflag) + ctx->Color.DrawDestMask = FRONT_RIGHT_BIT | BACK_RIGHT_BIT; + else + ctx->Color.DrawDestMask = FRONT_RIGHT_BIT; + break; + case GL_FRONT_RIGHT: + if (!ctx->Visual->StereoFlag) { + gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); + return; + } + ctx->Color.DrawDestMask = FRONT_RIGHT_BIT; + break; + case GL_BACK_RIGHT: + if (!ctx->Visual->StereoFlag) { + gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); + return; + } + if (!ctx->Visual->DBflag) { + gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); + return; + } + ctx->Color.DrawDestMask = BACK_RIGHT_BIT; + break; + case GL_BACK_LEFT: + if (!ctx->Visual->DBflag) { + gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); + return; + } + ctx->Color.DrawDestMask = BACK_LEFT_BIT; + break; + case GL_FRONT_AND_BACK: + if (!ctx->Visual->DBflag) { + gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); + return; + } + if (ctx->Visual->StereoFlag) + ctx->Color.DrawDestMask = FRONT_LEFT_BIT | BACK_LEFT_BIT + | FRONT_RIGHT_BIT | BACK_RIGHT_BIT; + else + ctx->Color.DrawDestMask = FRONT_LEFT_BIT | BACK_LEFT_BIT; + break; + case GL_BACK: + if (!ctx->Visual->DBflag) { + gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); + return; + } + if (ctx->Visual->StereoFlag) + ctx->Color.DrawDestMask = BACK_LEFT_BIT | BACK_RIGHT_BIT; + else + ctx->Color.DrawDestMask = BACK_LEFT_BIT; + break; + case GL_LEFT: + /* never an error */ + if (ctx->Visual->DBflag) + ctx->Color.DrawDestMask = FRONT_LEFT_BIT | BACK_LEFT_BIT; + else + ctx->Color.DrawDestMask = FRONT_LEFT_BIT; + break; + case GL_FRONT_LEFT: + /* never an error */ + ctx->Color.DrawDestMask = FRONT_LEFT_BIT; + break; + case GL_FRONT: + /* never an error */ + if (ctx->Visual->StereoFlag) + ctx->Color.DrawDestMask = FRONT_LEFT_BIT | FRONT_RIGHT_BIT; + else + ctx->Color.DrawDestMask = FRONT_LEFT_BIT; + break; + case GL_NONE: + /* never an error */ + ctx->Color.DrawDestMask = 0; + break; + default: + gl_error( ctx, GL_INVALID_ENUM, "glDrawBuffer" ); + return; + } + + /* + * Make the dest buffer mode more precise if possible + */ + if (mode == GL_LEFT && !ctx->Visual->DBflag) + ctx->Color.DriverDrawBuffer = GL_FRONT_LEFT; + else if (mode == GL_RIGHT && !ctx->Visual->DBflag) + ctx->Color.DriverDrawBuffer = GL_FRONT_RIGHT; + else if (mode == GL_FRONT && !ctx->Visual->StereoFlag) + ctx->Color.DriverDrawBuffer = GL_FRONT_LEFT; + else if (mode == GL_BACK && !ctx->Visual->StereoFlag) + ctx->Color.DriverDrawBuffer = GL_BACK_LEFT; + else + ctx->Color.DriverDrawBuffer = mode; + + /* + * Set current alpha buffer pointer + */ + if (ctx->Visual->SoftwareAlpha) { + if (ctx->Color.DriverDrawBuffer == GL_FRONT_LEFT) + ctx->DrawBuffer->Alpha = ctx->DrawBuffer->FrontLeftAlpha; + else if (ctx->Color.DriverDrawBuffer == GL_BACK_LEFT) + ctx->DrawBuffer->Alpha = ctx->DrawBuffer->BackLeftAlpha; + else if (ctx->Color.DriverDrawBuffer == GL_FRONT_RIGHT) + ctx->DrawBuffer->Alpha = ctx->DrawBuffer->FrontRightAlpha; + else if (ctx->Color.DriverDrawBuffer == GL_BACK_RIGHT) + ctx->DrawBuffer->Alpha = ctx->DrawBuffer->BackRightAlpha; + } + + /* + * If we get here there can't have been an error. + * Now see if device driver can implement the drawing to the target + * buffer(s). The driver may not be able to do GL_FRONT_AND_BACK mode + * for example. We'll take care of that in the core code by looping + * over the individual buffers. + */ + ASSERT(ctx->Driver.SetDrawBuffer); + if ( (*ctx->Driver.SetDrawBuffer)(ctx, ctx->Color.DriverDrawBuffer) ) { + /* All OK, the driver will do all buffer writes */ + ctx->Color.MultiDrawBuffer = GL_FALSE; + } + else { + /* We'll have to loop over the multiple draw buffer targets */ + ctx->Color.MultiDrawBuffer = GL_TRUE; + /* Set drawing buffer to front for now */ + (void) (*ctx->Driver.SetDrawBuffer)(ctx, GL_FRONT_LEFT); + } + + ctx->Color.DrawBuffer = mode; + ctx->NewState |= NEW_RASTER_OPS; +} + + + +void +_mesa_ReadBuffer( GLenum mode ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glReadBuffer"); + + if (MESA_VERBOSE & VERBOSE_API) + fprintf(stderr, "glReadBuffer %s\n", gl_lookup_enum_by_nr(mode)); + + switch (mode) { + case GL_AUX0: + case GL_AUX1: + case GL_AUX2: + case GL_AUX3: + /* AUX buffers not implemented in Mesa at this time */ + gl_error( ctx, GL_INVALID_OPERATION, "glReadBuffer" ); + return; + case GL_LEFT: + case GL_FRONT: + case GL_FRONT_LEFT: + /* Front-Left buffer, always exists */ + ctx->Pixel.DriverReadBuffer = GL_FRONT_LEFT; + break; + case GL_BACK: + case GL_BACK_LEFT: + /* Back-Left buffer, requires double buffering */ + if (!ctx->Visual->DBflag) { + gl_error( ctx, GL_INVALID_OPERATION, "glReadBuffer" ); + return; + } + ctx->Pixel.DriverReadBuffer = GL_BACK_LEFT; + break; + case GL_FRONT_RIGHT: + case GL_RIGHT: + if (!ctx->Visual->StereoFlag) { + gl_error( ctx, GL_INVALID_OPERATION, "glReadBuffer" ); + return; + } + ctx->Pixel.DriverReadBuffer = GL_FRONT_RIGHT; + break; + case GL_BACK_RIGHT: + if (!ctx->Visual->StereoFlag || !ctx->Visual->DBflag) { + gl_error( ctx, GL_INVALID_OPERATION, "glReadBuffer" ); + return; + } + ctx->Pixel.DriverReadBuffer = GL_BACK_RIGHT; + break; + default: + gl_error( ctx, GL_INVALID_ENUM, "glReadBuffer" ); + return; + } + + 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/buffers.h b/xc/extras/Mesa/src/buffers.h new file mode 100644 index 000000000..a4179abd3 --- /dev/null +++ b/xc/extras/Mesa/src/buffers.h @@ -0,0 +1,55 @@ +/* $Id: buffers.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 BUFFERS_H +#define BUFFERS_H + + +#include "types.h" + + +extern void +_mesa_ClearIndex( GLfloat c ); + +extern void +_mesa_ClearColor( GLclampf red, GLclampf green, + GLclampf blue, GLclampf alpha ); + +extern void +_mesa_Clear( GLbitfield mask ); + +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 @@ -165,13 +165,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/dispatch.h b/xc/extras/Mesa/src/dispatch.h deleted file mode 100644 index 855ef14e1..000000000 --- a/xc/extras/Mesa/src/dispatch.h +++ /dev/null @@ -1,44 +0,0 @@ -/* $Id: dispatch.h,v 1.2 2000/01/30 00:27:01 brianp Exp $ */ - -/* - * 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. - */ - - -#ifndef DISPATCH_H -#define DISPATCH_H - - -struct _glapi_table; - - -extern void -_mesa_init_no_op_table(struct _glapi_table *exec); - - -extern void -_mesa_init_exec_table(struct _glapi_table *exec); - - -#endif - 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 -#include /* to get NULL */ -#include +#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 + * 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 +#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"); -} - -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"); -} - -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"); -} - -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"); + if (WarnFlag || getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG")) + return GL_TRUE; + else + return GL_FALSE; } +#define KEYWORD1 static +#define KEYWORD2 +#define NAME(func) NoOp##func -/* GL_ARB_transpose_matrix */ - -static void NoOpLoadTransposeMatrixdARB(const GLdouble mat[16]) -{ - (void) mat; - warning("glLoadTransposeMatrixdARB"); -} +#define F stderr -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 #include -#include #include #include #include #include #include #endif +#include + #ifdef HAVE_CONFIG_H #include "conf.h" diff --git a/xc/extras/Mesa/src/glmisc.c b/xc/extras/Mesa/src/glmisc.c deleted file mode 100644 index 2e8d978de..000000000 --- a/xc/extras/Mesa/src/glmisc.c +++ /dev/null @@ -1,685 +0,0 @@ -/* $Id: glmisc.c,v 1.4 2000/01/30 00:27:02 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 "accum.h" -#include "alphabuf.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 "types.h" -#endif - - - -void -_mesa_ClearIndex( GLfloat c ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glClearIndex"); - ctx->Color.ClearIndex = (GLuint) c; - if (!ctx->Visual->RGBAflag) { - /* it's OK to call glClearIndex in RGBA mode but it should be a NOP */ - (*ctx->Driver.ClearIndex)( ctx, ctx->Color.ClearIndex ); - } -} - - - -void -_mesa_ClearColor( GLclampf red, GLclampf green, - GLclampf blue, GLclampf alpha ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glClearColor"); - - ctx->Color.ClearColor[0] = CLAMP( red, 0.0F, 1.0F ); - ctx->Color.ClearColor[1] = CLAMP( green, 0.0F, 1.0F ); - ctx->Color.ClearColor[2] = CLAMP( blue, 0.0F, 1.0F ); - ctx->Color.ClearColor[3] = CLAMP( alpha, 0.0F, 1.0F ); - - if (ctx->Visual->RGBAflag) { - GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F); - GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F); - GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F); - GLubyte a = (GLint) (ctx->Color.ClearColor[3] * 255.0F); - (*ctx->Driver.ClearColor)( ctx, r, g, b, a ); - } -} - - - - -/* - * Clear the color buffer when glColorMask or glIndexMask is in effect. - */ -static void -clear_color_buffer_with_masking( GLcontext *ctx ) -{ - const GLint x = ctx->DrawBuffer->Xmin; - const GLint y = ctx->DrawBuffer->Ymin; - const GLint height = ctx->DrawBuffer->Ymax - ctx->DrawBuffer->Ymin + 1; - const GLint width = ctx->DrawBuffer->Xmax - ctx->DrawBuffer->Xmin + 1; - - if (ctx->Visual->RGBAflag) { - /* RGBA mode */ - const GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F); - const GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F); - const GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F); - const GLubyte a = (GLint) (ctx->Color.ClearColor[3] * 255.0F); - GLint i; - for (i = 0; i < height; i++) { - GLubyte rgba[MAX_WIDTH][4]; - GLint j; - for (j=0; jDriver.WriteRGBASpan)( ctx, width, x, y + i, - (CONST GLubyte (*)[4])rgba, NULL ); - } - } - else { - /* Color index mode */ - GLuint span[MAX_WIDTH]; - GLubyte mask[MAX_WIDTH]; - GLint i, j; - MEMSET( mask, 1, width ); - for (i=0;iColor.ClearIndex; - } - gl_mask_index_span( ctx, width, x, y + i, span ); - (*ctx->Driver.WriteCI32Span)( ctx, width, x, y + i, span, mask ); - } - } -} - - - -/* - * Clear a color buffer without index/channel masking. - */ -static void -clear_color_buffer(GLcontext *ctx) -{ - const GLint x = ctx->DrawBuffer->Xmin; - const GLint y = ctx->DrawBuffer->Ymin; - const GLint height = ctx->DrawBuffer->Ymax - ctx->DrawBuffer->Ymin + 1; - const GLint width = ctx->DrawBuffer->Xmax - ctx->DrawBuffer->Xmin + 1; - - if (ctx->Visual->RGBAflag) { - /* RGBA mode */ - const GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F); - const GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F); - const GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F); - const GLubyte a = (GLint) (ctx->Color.ClearColor[3] * 255.0F); - GLubyte span[MAX_WIDTH][4]; - GLint i; - ASSERT(ctx->Color.ColorMask[0] && - ctx->Color.ColorMask[1] && - ctx->Color.ColorMask[2] && - ctx->Color.ColorMask[3]); - for (i = 0; i < width; i++) { - span[i][RCOMP] = r; - span[i][GCOMP] = g; - span[i][BCOMP] = b; - span[i][ACOMP] = a; - } - for (i = 0; i < height; i++) { - (*ctx->Driver.WriteRGBASpan)( ctx, width, x, y + i, - (CONST GLubyte (*)[4]) span, NULL ); - } - } - else { - /* Color index mode */ - ASSERT(ctx->Color.IndexMask == ~0); - if (ctx->Visual->IndexBits == 8) { - /* 8-bit clear */ - GLubyte span[MAX_WIDTH]; - GLint i; - MEMSET(span, ctx->Color.ClearIndex, width); - for (i = 0; i < height; i++) { - (*ctx->Driver.WriteCI8Span)( ctx, width, x, y + i, span, NULL ); - } - } - else { - /* non 8-bit clear */ - GLuint span[MAX_WIDTH]; - GLint i; - for (i = 0; i < width; i++) { - span[i] = ctx->Color.ClearIndex; - } - for (i = 0; i < height; i++) { - (*ctx->Driver.WriteCI32Span)( ctx, width, x, y + i, span, NULL ); - } - } - } -} - - - -/* - * Clear the front/back/left/right color buffers. - * This function is usually only called if we need to clear the - * buffers with masking. - */ -static void -clear_color_buffers(GLcontext *ctx) -{ - GLuint bufferBit; - - /* loop over four possible dest color buffers */ - for (bufferBit = 1; bufferBit <= 8; bufferBit = bufferBit << 1) { - if (bufferBit & ctx->Color.DrawDestMask) { - if (bufferBit == FRONT_LEFT_BIT) { - (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_FRONT_LEFT); - } - else if (bufferBit == FRONT_RIGHT_BIT) { - (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_FRONT_RIGHT); - } - else if (bufferBit == BACK_LEFT_BIT) { - (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_BACK_LEFT); - } - else { - (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_BACK_RIGHT); - } - - if (ctx->Color.SWmasking) { - clear_color_buffer_with_masking(ctx); - } - else { - clear_color_buffer(ctx); - } - } - } - - /* restore default dest buffer */ - (void) (*ctx->Driver.SetDrawBuffer)( ctx, ctx->Color.DriverDrawBuffer ); -} - - - -void -_mesa_Clear( GLbitfield mask ) -{ - GET_CURRENT_CONTEXT(ctx); -#ifdef PROFILE - GLdouble t0 = gl_time(); -#endif - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glClear"); - - if (MESA_VERBOSE & VERBOSE_API) - fprintf(stderr, "glClear 0x%x\n", mask); - - if (ctx->NewState) { - gl_update_state( ctx ); - } - - if (ctx->RenderMode==GL_RENDER) { - const GLint x = ctx->DrawBuffer->Xmin; - const GLint y = ctx->DrawBuffer->Ymin; - const GLint height = ctx->DrawBuffer->Ymax - ctx->DrawBuffer->Ymin + 1; - const GLint width = ctx->DrawBuffer->Xmax - ctx->DrawBuffer->Xmin + 1; - GLbitfield ddMask; - GLbitfield newMask; - - /* don't clear depth buffer if depth writing disabled */ - if (!ctx->Depth.Mask) - CLEAR_BITS(mask, GL_DEPTH_BUFFER_BIT); - - /* Build bitmask to send to driver Clear function */ - ddMask = mask & (GL_DEPTH_BUFFER_BIT | - GL_STENCIL_BUFFER_BIT | - GL_ACCUM_BUFFER_BIT); - if (mask & GL_COLOR_BUFFER_BIT) { - ddMask |= ctx->Color.DrawDestMask; - } - - ASSERT(ctx->Driver.Clear); - newMask = (*ctx->Driver.Clear)( ctx, ddMask, !ctx->Scissor.Enabled, - x, y, width, height ); - -#ifdef DEBUG - { - GLbitfield legalBits = DD_FRONT_LEFT_BIT | - DD_FRONT_RIGHT_BIT | - DD_BACK_LEFT_BIT | - DD_BACK_RIGHT_BIT | - DD_DEPTH_BIT | - DD_STENCIL_BIT | - DD_ACCUM_BIT; - assert((newMask & (~legalBits)) == 0); - } -#endif - - /* 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_STENCIL_BUFFER_BIT) gl_clear_stencil_buffer( ctx ); - } - - /* clear software-based alpha buffer(s) */ - if ( (mask & GL_COLOR_BUFFER_BIT) && ctx->Visual->SoftwareAlpha - && ctx->Color.ColorMask[RCOMP]) { - gl_clear_alpha_buffers( ctx ); - } - -#ifdef PROFILE - ctx->ClearTime += gl_time() - t0; - ctx->ClearCount++; -#endif - } -} - - - -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 ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glDrawBuffer"); - - if (MESA_VERBOSE & VERBOSE_API) - fprintf(stderr, "glDrawBuffer %s\n", gl_lookup_enum_by_nr(mode)); - - switch (mode) { - case GL_AUX0: - case GL_AUX1: - case GL_AUX2: - case GL_AUX3: - /* AUX buffers not implemented in Mesa at this time */ - gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); - return; - case GL_RIGHT: - if (!ctx->Visual->StereoFlag) { - gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); - return; - } - if (ctx->Visual->DBflag) - ctx->Color.DrawDestMask = FRONT_RIGHT_BIT | BACK_RIGHT_BIT; - else - ctx->Color.DrawDestMask = FRONT_RIGHT_BIT; - break; - case GL_FRONT_RIGHT: - if (!ctx->Visual->StereoFlag) { - gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); - return; - } - ctx->Color.DrawDestMask = FRONT_RIGHT_BIT; - break; - case GL_BACK_RIGHT: - if (!ctx->Visual->StereoFlag) { - gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); - return; - } - if (!ctx->Visual->DBflag) { - gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); - return; - } - ctx->Color.DrawDestMask = BACK_RIGHT_BIT; - break; - case GL_BACK_LEFT: - if (!ctx->Visual->DBflag) { - gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); - return; - } - ctx->Color.DrawDestMask = BACK_LEFT_BIT; - break; - case GL_FRONT_AND_BACK: - if (!ctx->Visual->DBflag) { - gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); - return; - } - if (ctx->Visual->StereoFlag) - ctx->Color.DrawDestMask = FRONT_LEFT_BIT | BACK_LEFT_BIT - | FRONT_RIGHT_BIT | BACK_RIGHT_BIT; - else - ctx->Color.DrawDestMask = FRONT_LEFT_BIT | BACK_LEFT_BIT; - break; - case GL_BACK: - if (!ctx->Visual->DBflag) { - gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" ); - return; - } - if (ctx->Visual->StereoFlag) - ctx->Color.DrawDestMask = BACK_LEFT_BIT | BACK_RIGHT_BIT; - else - ctx->Color.DrawDestMask = BACK_LEFT_BIT; - break; - case GL_LEFT: - /* never an error */ - if (ctx->Visual->DBflag) - ctx->Color.DrawDestMask = FRONT_LEFT_BIT | BACK_LEFT_BIT; - else - ctx->Color.DrawDestMask = FRONT_LEFT_BIT; - break; - case GL_FRONT_LEFT: - /* never an error */ - ctx->Color.DrawDestMask = FRONT_LEFT_BIT; - break; - case GL_FRONT: - /* never an error */ - if (ctx->Visual->StereoFlag) - ctx->Color.DrawDestMask = FRONT_LEFT_BIT | FRONT_RIGHT_BIT; - else - ctx->Color.DrawDestMask = FRONT_LEFT_BIT; - break; - case GL_NONE: - /* never an error */ - ctx->Color.DrawDestMask = 0; - break; - default: - gl_error( ctx, GL_INVALID_ENUM, "glDrawBuffer" ); - return; - } - - /* - * Make the dest buffer mode more precise if possible - */ - if (mode == GL_LEFT && !ctx->Visual->DBflag) - ctx->Color.DriverDrawBuffer = GL_FRONT_LEFT; - else if (mode == GL_RIGHT && !ctx->Visual->DBflag) - ctx->Color.DriverDrawBuffer = GL_FRONT_RIGHT; - else if (mode == GL_FRONT && !ctx->Visual->StereoFlag) - ctx->Color.DriverDrawBuffer = GL_FRONT_LEFT; - else if (mode == GL_BACK && !ctx->Visual->StereoFlag) - ctx->Color.DriverDrawBuffer = GL_BACK_LEFT; - else - ctx->Color.DriverDrawBuffer = mode; - - /* - * Set current alpha buffer pointer - */ - if (ctx->Visual->SoftwareAlpha) { - if (ctx->Color.DriverDrawBuffer == GL_FRONT_LEFT) - ctx->DrawBuffer->Alpha = ctx->DrawBuffer->FrontLeftAlpha; - else if (ctx->Color.DriverDrawBuffer == GL_BACK_LEFT) - ctx->DrawBuffer->Alpha = ctx->DrawBuffer->BackLeftAlpha; - else if (ctx->Color.DriverDrawBuffer == GL_FRONT_RIGHT) - ctx->DrawBuffer->Alpha = ctx->DrawBuffer->FrontRightAlpha; - else if (ctx->Color.DriverDrawBuffer == GL_BACK_RIGHT) - ctx->DrawBuffer->Alpha = ctx->DrawBuffer->BackRightAlpha; - } - - /* - * If we get here there can't have been an error. - * Now see if device driver can implement the drawing to the target - * buffer(s). The driver may not be able to do GL_FRONT_AND_BACK mode - * for example. We'll take care of that in the core code by looping - * over the individual buffers. - */ - ASSERT(ctx->Driver.SetDrawBuffer); - if ( (*ctx->Driver.SetDrawBuffer)(ctx, ctx->Color.DriverDrawBuffer) ) { - /* All OK, the driver will do all buffer writes */ - ctx->Color.MultiDrawBuffer = GL_FALSE; - } - else { - /* We'll have to loop over the multiple draw buffer targets */ - ctx->Color.MultiDrawBuffer = GL_TRUE; - /* Set drawing buffer to front for now */ - (void) (*ctx->Driver.SetDrawBuffer)(ctx, GL_FRONT_LEFT); - } - - ctx->Color.DrawBuffer = mode; - ctx->NewState |= NEW_RASTER_OPS; -} - - - -void -_mesa_ReadBuffer( GLenum mode ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glReadBuffer"); - - if (MESA_VERBOSE & VERBOSE_API) - fprintf(stderr, "glReadBuffer %s\n", gl_lookup_enum_by_nr(mode)); - - switch (mode) { - case GL_AUX0: - case GL_AUX1: - case GL_AUX2: - case GL_AUX3: - /* AUX buffers not implemented in Mesa at this time */ - gl_error( ctx, GL_INVALID_OPERATION, "glReadBuffer" ); - return; - case GL_LEFT: - case GL_FRONT: - case GL_FRONT_LEFT: - /* Front-Left buffer, always exists */ - ctx->Pixel.DriverReadBuffer = GL_FRONT_LEFT; - break; - case GL_BACK: - case GL_BACK_LEFT: - /* Back-Left buffer, requires double buffering */ - if (!ctx->Visual->DBflag) { - gl_error( ctx, GL_INVALID_OPERATION, "glReadBuffer" ); - return; - } - ctx->Pixel.DriverReadBuffer = GL_BACK_LEFT; - break; - case GL_FRONT_RIGHT: - case GL_RIGHT: - if (!ctx->Visual->StereoFlag) { - gl_error( ctx, GL_INVALID_OPERATION, "glReadBuffer" ); - return; - } - ctx->Pixel.DriverReadBuffer = GL_FRONT_RIGHT; - break; - case GL_BACK_RIGHT: - if (!ctx->Visual->StereoFlag || !ctx->Visual->DBflag) { - gl_error( ctx, GL_INVALID_OPERATION, "glReadBuffer" ); - return; - } - ctx->Pixel.DriverReadBuffer = GL_BACK_RIGHT; - break; - default: - gl_error( ctx, GL_INVALID_ENUM, "glReadBuffer" ); - return; - } - - ctx->Pixel.ReadBuffer = mode; - ctx->NewState |= NEW_RASTER_OPS; -} diff --git a/xc/extras/Mesa/src/glmisc.h b/xc/extras/Mesa/src/glmisc.h deleted file mode 100644 index a00203b35..000000000 --- a/xc/extras/Mesa/src/glmisc.h +++ /dev/null @@ -1,67 +0,0 @@ -/* $Id: glmisc.h,v 1.4 2000/01/30 00:27:02 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 GLMISC_H -#define GLMISC_H - - -#include "types.h" - - -extern void -_mesa_ClearIndex( GLfloat c ); - -extern void -_mesa_ClearColor( GLclampf red, GLclampf green, - GLclampf blue, GLclampf alpha ); - -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 ); - - -#endif 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 -#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 /* 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,23 +146,86 @@ typedef thread_t _glthread_Thread; * IMPORTANT: Link with multithreaded runtime library when THREADS are * used! */ - -#ifdef WIN32 +#ifdef WIN32_THREADS #include 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/hint.h b/xc/extras/Mesa/src/hint.h new file mode 100644 index 000000000..e5265b33d --- /dev/null +++ b/xc/extras/Mesa/src/hint.h @@ -0,0 +1,45 @@ +/* $Id: hint.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 HINT_H +#define HINT_H + + +#include "types.h" + + +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 ); + + +#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 -#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 /* 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 - -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 - -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;iFog.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;iDepth.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;iExec.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"), @@ -65,6 +65,13 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalformat, GLenum format, GLenum type, const GLvoid *pixels ); +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; uTexture.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 #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 #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 #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 + #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 - * - * $PI: xc/lib/GL/glx/glxcmds.c,v 1.8 1999/06/10 04:39:13 martin Exp $ + * Brian Paul */ #include "packsingle.h" @@ -34,6 +33,7 @@ #include #include #include +#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 +#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 - * - * $PI: xc/lib/GL/glx/indirect_init.c,v 1.2 1999/04/05 05:24:32 martin Exp $ + * Brian Paul */ #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 #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 + #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 \ -- cgit v1.2.3