4520 lines
		
	
	
		
			110 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			4520 lines
		
	
	
		
			110 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  * Copyright © 2005 Novell, Inc.
 | |
|  *
 | |
|  * Permission to use, copy, modify, distribute, and sell this software
 | |
|  * and its documentation for any purpose is hereby granted without
 | |
|  * fee, provided that the above copyright notice appear in all copies
 | |
|  * and that both that copyright notice and this permission notice
 | |
|  * appear in supporting documentation, and that the name of
 | |
|  * Novell, Inc. not be used in advertising or publicity pertaining to
 | |
|  * distribution of the software without specific, written prior permission.
 | |
|  * Novell, Inc. makes no representations about the suitability of this
 | |
|  * software for any purpose. It is provided "as is" without express or
 | |
|  * implied warranty.
 | |
|  *
 | |
|  * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 | |
|  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
 | |
|  * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 | |
|  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
 | |
|  * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
 | |
|  * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
 | |
|  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | |
|  *
 | |
|  * Author: David Reveman <davidr@novell.com>
 | |
|  */
 | |
| 
 | |
| #include "xglglx.h"
 | |
| #include "xglglxext.h"
 | |
| #include "glapitable.h"
 | |
| 
 | |
| #ifndef NGLXEXTLOG
 | |
| 
 | |
| static struct _glapi_table *nativeRenderTable = 0;
 | |
| 
 | |
| static FILE *logFp = 0;
 | |
| 
 | |
| static Bool logVertexAttribs = FALSE;
 | |
| 
 | |
| static struct VertexAttribCount {
 | |
|     int  n;
 | |
|     char *name;
 | |
| } vCnt[] = {
 | |
|     { 0, "glArrayElement"	},
 | |
|     { 0, "glCallList"		},
 | |
|     { 0, "glCallLists"		},
 | |
|     { 0, "glColor3bv"		},
 | |
|     { 0, "glColor3dv"		},
 | |
|     { 0, "glColor3fv"		},
 | |
|     { 0, "glColor3iv"		},
 | |
|     { 0, "glColor3sv"		},
 | |
|     { 0, "glColor3ubv"		},
 | |
|     { 0, "glColor3uiv"		},
 | |
|     { 0, "glColor3usv"		},
 | |
|     { 0, "glColor4bv"		},
 | |
|     { 0, "glColor4dv"		},
 | |
|     { 0, "glColor4fv"		},
 | |
|     { 0, "glColor4iv"		},
 | |
|     { 0, "glColor4sv"		},
 | |
|     { 0, "glColor4ubv"		},
 | |
|     { 0, "glColor4uiv"		},
 | |
|     { 0, "glColor4usv"		},
 | |
|     { 0, "glEdgeFlagv"		},
 | |
|     { 0, "glEvalCoord1dv"	},
 | |
|     { 0, "glEvalCoord1fv"	},
 | |
|     { 0, "glEvalCoord2dv"	},
 | |
|     { 0, "glEvalCoord2fv"	},
 | |
|     { 0, "glEvalPoint1"		},
 | |
|     { 0, "glEvalPoint2"		},
 | |
|     { 0, "glIndexdv"		},
 | |
|     { 0, "glIndexfv"		},
 | |
|     { 0, "glIndexiv"		},
 | |
|     { 0, "glIndexsv"		},
 | |
|     { 0, "glIndexubv"		},
 | |
|     { 0, "glMaterialf"		},
 | |
|     { 0, "glMaterialfv"		},
 | |
|     { 0, "glMateriali"		},
 | |
|     { 0, "glMaterialiv"		},
 | |
|     { 0, "glNormal3bv"		},
 | |
|     { 0, "glNormal3dv"		},
 | |
|     { 0, "glNormal3fv"		},
 | |
|     { 0, "glNormal3iv"		},
 | |
|     { 0, "glNormal3sv"		},
 | |
|     { 0, "glTexCoord1dv"	},
 | |
|     { 0, "glTexCoord1fv"	},
 | |
|     { 0, "glTexCoord1iv"	},
 | |
|     { 0, "glTexCoord1sv"	},
 | |
|     { 0, "glTexCoord2dv"	},
 | |
|     { 0, "glTexCoord2fv"	},
 | |
|     { 0, "glTexCoord2iv"	},
 | |
|     { 0, "glTexCoord2sv"	},
 | |
|     { 0, "glTexCoord3dv"	},
 | |
|     { 0, "glTexCoord3fv"	},
 | |
|     { 0, "glTexCoord3iv"	},
 | |
|     { 0, "glTexCoord3sv"	},
 | |
|     { 0, "glTexCoord4dv"	},
 | |
|     { 0, "glTexCoord4fv"	},
 | |
|     { 0, "glTexCoord4iv"	},
 | |
|     { 0, "glTexCoord4sv"	},
 | |
|     { 0, "glVertex2dv"		},
 | |
|     { 0, "glVertex2fv"		},
 | |
|     { 0, "glVertex2iv"		},
 | |
|     { 0, "glVertex2sv"		},
 | |
|     { 0, "glVertex3dv"		},
 | |
|     { 0, "glVertex3fv"		},
 | |
|     { 0, "glVertex3iv"		},
 | |
|     { 0, "glVertex3sv"		},
 | |
|     { 0, "glVertex4dv"		},
 | |
|     { 0, "glVertex4fv"		},
 | |
|     { 0, "glVertex4iv"		},
 | |
|     { 0, "glVertex4sv"		},
 | |
|     { 0, "glMultiTexCoord1dv"	},
 | |
|     { 0, "glMultiTexCoord1fv"	},
 | |
|     { 0, "glMultiTexCoord1iv"	},
 | |
|     { 0, "glMultiTexCoord1sv"	},
 | |
|     { 0, "glMultiTexCoord2dv"	},
 | |
|     { 0, "glMultiTexCoord2fv"	},
 | |
|     { 0, "glMultiTexCoord2iv"	},
 | |
|     { 0, "glMultiTexCoord2sv"	},
 | |
|     { 0, "glMultiTexCoord3dv"	},
 | |
|     { 0, "glMultiTexCoord3fv"	},
 | |
|     { 0, "glMultiTexCoord3iv"	},
 | |
|     { 0, "glMultiTexCoord3sv"	},
 | |
|     { 0, "glMultiTexCoord4dv"	},
 | |
|     { 0, "glMultiTexCoord4fv"	},
 | |
|     { 0, "glMultiTexCoord4iv"	},
 | |
|     { 0, "glMultiTexCoord4sv"	},
 | |
|     { 0, "glFogCoordfv"		},
 | |
|     { 0, "glFogCoorddv"		},
 | |
|     { 0, "glSecondaryColor3bv"	},
 | |
|     { 0, "glSecondaryColor3dv"	},
 | |
|     { 0, "glSecondaryColor3fv"	},
 | |
|     { 0, "glSecondaryColor3iv"	},
 | |
|     { 0, "glSecondaryColor3sv"	},
 | |
|     { 0, "glSecondaryColor3ubv"	},
 | |
|     { 0, "glSecondaryColor3uiv"	},
 | |
|     { 0, "glSecondaryColor3usv"	}
 | |
| };
 | |
| 
 | |
| #define arrayElementIndex	0
 | |
| #define callListIndex		1
 | |
| #define callListsIndex		2
 | |
| #define color3bvIndex		3
 | |
| #define color3dvIndex		4
 | |
| #define color3fvIndex		5
 | |
| #define color3ivIndex		6
 | |
| #define color3svIndex		7
 | |
| #define color3ubvIndex		8
 | |
| #define color3uivIndex		9
 | |
| #define color3usvIndex		10
 | |
| #define color4bvIndex		11
 | |
| #define color4dvIndex		12
 | |
| #define color4fvIndex		13
 | |
| #define color4ivIndex		14
 | |
| #define color4svIndex		15
 | |
| #define color4ubvIndex		16
 | |
| #define color4uivIndex		17
 | |
| #define color4usvIndex		18
 | |
| #define edgeFlagvIndex		19
 | |
| #define evalCoord1dvIndex	20
 | |
| #define evalCoord1fvIndex	21
 | |
| #define evalCoord2dvIndex	22
 | |
| #define evalCoord2fvIndex	23
 | |
| #define evalPoint1Index		24
 | |
| #define evalPoint2Index		25
 | |
| #define indexdvIndex		26
 | |
| #define indexfvIndex		27
 | |
| #define indexivIndex		28
 | |
| #define indexsvIndex		29
 | |
| #define indexubvIndex		30
 | |
| #define materialfIndex		31
 | |
| #define materialfvIndex		32
 | |
| #define materialiIndex		33
 | |
| #define materialivIndex		34
 | |
| #define normal3bvIndex		35
 | |
| #define normal3dvIndex		36
 | |
| #define normal3fvIndex		37
 | |
| #define normal3ivIndex		38
 | |
| #define normal3svIndex		39
 | |
| #define texCoord1dvIndex	40
 | |
| #define texCoord1fvIndex	41
 | |
| #define texCoord1ivIndex	42
 | |
| #define texCoord1svIndex	43
 | |
| #define texCoord2dvIndex	44
 | |
| #define texCoord2fvIndex	45
 | |
| #define texCoord2ivIndex	46
 | |
| #define texCoord2svIndex	47
 | |
| #define texCoord3dvIndex	48
 | |
| #define texCoord3fvIndex	49
 | |
| #define texCoord3ivIndex	50
 | |
| #define texCoord3svIndex	51
 | |
| #define texCoord4dvIndex	52
 | |
| #define texCoord4fvIndex	53
 | |
| #define texCoord4ivIndex	54
 | |
| #define texCoord4svIndex	55
 | |
| #define vertex2dvIndex		56
 | |
| #define vertex2fvIndex		57
 | |
| #define vertex2ivIndex		58
 | |
| #define vertex2svIndex		59
 | |
| #define vertex3dvIndex		60
 | |
| #define vertex3fvIndex		61
 | |
| #define vertex3ivIndex		62
 | |
| #define vertex3svIndex		63
 | |
| #define vertex4dvIndex		64
 | |
| #define vertex4fvIndex		65
 | |
| #define vertex4ivIndex		66
 | |
| #define vertex4svIndex		67
 | |
| #define multiTexCoord1dvIndex	68
 | |
| #define multiTexCoord1fvIndex	69
 | |
| #define multiTexCoord1ivIndex	70
 | |
| #define multiTexCoord1svIndex	71
 | |
| #define multiTexCoord2dvIndex	72
 | |
| #define multiTexCoord2fvIndex	73
 | |
| #define multiTexCoord2ivIndex	74
 | |
| #define multiTexCoord2svIndex	75
 | |
| #define multiTexCoord3dvIndex	76
 | |
| #define multiTexCoord3fvIndex	77
 | |
| #define multiTexCoord3ivIndex	78
 | |
| #define multiTexCoord3svIndex	79
 | |
| #define multiTexCoord4dvIndex	80
 | |
| #define multiTexCoord4fvIndex	81
 | |
| #define multiTexCoord4ivIndex	82
 | |
| #define multiTexCoord4svIndex	83
 | |
| #define fogCoordfvIndex		84
 | |
| #define fogCoorddvIndex		85
 | |
| #define secondaryColor3bvIndex	86
 | |
| #define secondaryColor3dvIndex	87
 | |
| #define secondaryColor3fvIndex	88
 | |
| #define secondaryColor3ivIndex	89
 | |
| #define secondaryColor3svIndex	90
 | |
| #define secondaryColor3ubvIndex 91
 | |
| #define secondaryColor3uivIndex 92
 | |
| #define secondaryColor3usvIndex 93
 | |
| 
 | |
| static void
 | |
| logAccum (GLenum  op,
 | |
| 	  GLfloat value)
 | |
| {
 | |
|     fprintf (logFp, "glAccum (0x%x, %f)\n", op, value);
 | |
|     (*nativeRenderTable->Accum) (op, value);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logAlphaFunc (GLenum   func,
 | |
| 	      GLclampf ref)
 | |
| {
 | |
|     fprintf (logFp, "glAlphaFunc (0x%x, %f)\n", func, ref);
 | |
|     (*nativeRenderTable->AlphaFunc) (func, ref);
 | |
| }
 | |
| 
 | |
| static GLboolean
 | |
| logAreTexturesResident (GLsizei	     n,
 | |
| 			const GLuint *textures,
 | |
| 			GLboolean    *residences)
 | |
| {
 | |
|     fprintf (logFp, "glAreTexturesResident (%d, %p, %p)\n", n, textures,
 | |
| 	     residences);
 | |
|     return (*nativeRenderTable->AreTexturesResident) (n, textures,
 | |
| 						      residences);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logArrayElement (GLint i)
 | |
| {
 | |
|     vCnt[arrayElementIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glArrayElement (%d)\n", i);
 | |
|     (*nativeRenderTable->ArrayElement) (i);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logBegin (GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glBegin (0x%x)\n", mode);
 | |
|     (*nativeRenderTable->Begin) (mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logBindTexture (GLenum target,
 | |
| 		GLuint texture)
 | |
| {
 | |
|     fprintf (logFp, "glBindTexture (0x%x, %u)\n", target, texture);
 | |
|     (*nativeRenderTable->BindTexture) (target, texture);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logBitmap (GLsizei	 width,
 | |
| 	   GLsizei	 height,
 | |
| 	   GLfloat	 xorig,
 | |
| 	   GLfloat	 yorig,
 | |
| 	   GLfloat	 xmove,
 | |
| 	   GLfloat	 ymove,
 | |
| 	   const GLubyte *bitmap)
 | |
| {
 | |
|     fprintf (logFp, "glBitmap (%d, %d, %f, %f, %f, %f, %p)\n",
 | |
| 	     width, height, xorig, yorig, xmove, ymove, bitmap);
 | |
|     (*nativeRenderTable->Bitmap) (width, height, xorig, yorig,
 | |
| 				  xmove, ymove, bitmap);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logBlendFunc (GLenum sfactor,
 | |
| 	      GLenum dfactor)
 | |
| {
 | |
|     fprintf (logFp, "glBlendFunc (0x%x, 0x%x)\n", sfactor, dfactor);
 | |
|     (*nativeRenderTable->BlendFunc) (sfactor, dfactor);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCallList (GLuint list)
 | |
| {
 | |
|     vCnt[callListIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glCallList (%u)\n", list);
 | |
|     (*nativeRenderTable->CallList) (list);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCallLists (GLsizei	 n,
 | |
| 	      GLenum	 type,
 | |
| 	      const void *lists)
 | |
| {
 | |
|     vCnt[callListsIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glCallLists (%d, 0x%x, %p)\n", n, type, lists);
 | |
|     (*nativeRenderTable->CallLists) (n, type, lists);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logClear (GLbitfield mask)
 | |
| {
 | |
|     fprintf (logFp, "glClear (0x%x)\n", mask);
 | |
|     (*nativeRenderTable->Clear) (mask);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logClearAccum (GLfloat red,
 | |
| 	       GLfloat green,
 | |
| 	       GLfloat blue,
 | |
| 	       GLfloat alpha)
 | |
| {
 | |
|     fprintf (logFp, "glClearAccum (%f, %f, %f, %f)\n",
 | |
| 	     red, green, blue, alpha);
 | |
|     (*nativeRenderTable->ClearAccum) (red, green, blue, alpha);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logClearColor (GLclampf red,
 | |
| 	       GLclampf green,
 | |
| 	       GLclampf blue,
 | |
| 	       GLclampf alpha)
 | |
| {
 | |
|     fprintf (logFp, "glClearColor (%f, %f, %f, %f)\n",
 | |
| 	     red, green, blue, alpha);
 | |
|     (*nativeRenderTable->ClearColor) (red, green, blue, alpha);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logClearDepth (GLclampd depth)
 | |
| {
 | |
|     fprintf (logFp, "glClearDepth (%f)\n", depth);
 | |
|     (*nativeRenderTable->ClearDepth) (depth);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logClearIndex (GLfloat c)
 | |
| {
 | |
|     fprintf (logFp, "glClearIndex (%f)\n", c);
 | |
|     (*nativeRenderTable->ClearIndex) (c);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logClearStencil (GLint s)
 | |
| {
 | |
|     fprintf (logFp, "glClearStencil (%d)\n", s);
 | |
|     (*nativeRenderTable->ClearStencil) (s);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logClipPlane (GLenum	     plane,
 | |
| 	      const GLdouble *equation)
 | |
| {
 | |
|     fprintf (logFp, "glClipPlane (0x%x, %p)\n", plane, equation);
 | |
|     (*nativeRenderTable->ClipPlane) (plane, equation);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor3bv (const GLbyte *v)
 | |
| {
 | |
|     vCnt[color3bvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor3bv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color3bv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor3dv (const GLdouble *v)
 | |
| {
 | |
|     vCnt[color3dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor3dv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color3dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor3fv (const GLfloat *v)
 | |
| {
 | |
|     vCnt[color3fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor3fv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color3fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor3iv (const GLint *v)
 | |
| {
 | |
|     vCnt[color3ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor3iv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color3iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor3sv (const GLshort *v)
 | |
| {
 | |
|     vCnt[color3svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor3sv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color3sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor3ubv (const GLubyte *v)
 | |
| {
 | |
|     vCnt[color3ubvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor3ubv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color3ubv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor3uiv (const GLuint *v)
 | |
| {
 | |
|     vCnt[color3uivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor3uiv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color3uiv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor3usv (const GLushort *v)
 | |
| {
 | |
|     vCnt[color3usvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor3usv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color3usv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor4bv (const GLbyte *v)
 | |
| {
 | |
|     vCnt[color4bvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor4bv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color4bv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor4dv (const GLdouble *v)
 | |
| {
 | |
|     vCnt[color4dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor4dv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color4dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor4fv (const GLfloat *v)
 | |
| {
 | |
|     vCnt[color4fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor4fv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color4fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor4iv (const GLint *v)
 | |
| {
 | |
|     vCnt[color4ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor4iv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color4iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor4sv (const GLshort *v)
 | |
| {
 | |
|     vCnt[color4svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor4sv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color4sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor4ubv (const GLubyte *v)
 | |
| {
 | |
|     vCnt[color4ubvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor4ubv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color4ubv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor4uiv(const GLuint *v)
 | |
| {
 | |
|     vCnt[color4uivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor4uiv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color4uiv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColor4usv (const GLushort *v)
 | |
| {
 | |
|     vCnt[color4usvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glColor4usv (%p)\n", v);
 | |
|     (*nativeRenderTable->Color4usv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColorMask (GLboolean red,
 | |
| 	      GLboolean green,
 | |
| 	      GLboolean blue,
 | |
| 	      GLboolean alpha)
 | |
| {
 | |
|     fprintf (logFp, "glColorMask (%d, %d, %d, %d)\n", red, green, blue, alpha);
 | |
|     (*nativeRenderTable->ColorMask) (red, green, blue, alpha);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColorMaterial (GLenum face,
 | |
| 		  GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glColorMaterial (0x%x, 0x%x)\n", face, mode);
 | |
|     (*nativeRenderTable->ColorMaterial) (face, mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColorPointer (GLint	    size,
 | |
| 		 GLenum	    type,
 | |
| 		 GLsizei    stride,
 | |
| 		 const void *pointer)
 | |
| {
 | |
|     fprintf (logFp, "glColorPointer (%d, 0x%x, %d, %p)\n",
 | |
| 	     size, type, stride, pointer);
 | |
|     (*nativeRenderTable->ColorPointer) (size, type, stride, pointer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCopyPixels (GLint   x,
 | |
| 	       GLint   y,
 | |
| 	       GLsizei width,
 | |
| 	       GLsizei height,
 | |
| 	       GLenum  type)
 | |
| {
 | |
|     fprintf (logFp, "glCopyPixels (%d, %d, %d, %d, 0x%x)\n",
 | |
| 	     x, y, width, height, type);
 | |
|     (*nativeRenderTable->CopyPixels) (x, y, width, height, type);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCopyTexImage1D (GLenum  target,
 | |
| 		   GLint   level,
 | |
| 		   GLenum  internalFormat,
 | |
| 		   GLint   x,
 | |
| 		   GLint   y,
 | |
| 		   GLsizei width,
 | |
| 		   GLint   border)
 | |
| {
 | |
|     fprintf (logFp, "glCopyTexImage1D (0x%x, %d, 0x%x, %d, %d, %d, %d)\n",
 | |
| 	     target, level, internalFormat, x, y, width, border);
 | |
|     (*nativeRenderTable->CopyTexImage1D) (target, level, internalFormat,
 | |
| 					  x, y, width, border);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCopyTexImage2D (GLenum  target,
 | |
| 		   GLint   level,
 | |
| 		   GLenum  internalFormat,
 | |
| 		   GLint   x,
 | |
| 		   GLint   y,
 | |
| 		   GLsizei width,
 | |
| 		   GLsizei height,
 | |
| 		   GLint   border)
 | |
| {
 | |
|     fprintf (logFp, "glCopyTexImage2D (0x%x, %d, 0x%x, %d, %d, %d, %d, %d)\n",
 | |
| 	     target, level, internalFormat, x, y, width, height, border);
 | |
|     (*nativeRenderTable->CopyTexImage2D) (target, level, internalFormat,
 | |
| 					  x, y, width, height, border);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCopyTexSubImage1D (GLenum  target,
 | |
| 		      GLint   level,
 | |
| 		      GLint   xoffset,
 | |
| 		      GLint   x,
 | |
| 		      GLint   y,
 | |
| 		      GLsizei width)
 | |
| {
 | |
|     fprintf (logFp, "glCopyTexSubImage1D (0x%x, %d, %d, %d, %d, %d)\n",
 | |
| 	     target, level, xoffset, x, y, width);
 | |
|     (*nativeRenderTable->CopyTexSubImage1D) (target, level, xoffset, x, y,
 | |
| 					     width);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCopyTexSubImage2D (GLenum  target,
 | |
| 		      GLint   level,
 | |
| 		      GLint   xoffset,
 | |
| 		      GLint   yoffset,
 | |
| 		      GLint   x,
 | |
| 		      GLint   y,
 | |
| 		      GLsizei width,
 | |
| 		      GLsizei height)
 | |
| {
 | |
|     fprintf (logFp, "glCopyTexSubImage2D (0x%x, %d, %d, %d, %d, %d, %d, %d)\n",
 | |
| 	     target, level, xoffset, yoffset, x, y, width, height);
 | |
|     (*nativeRenderTable->CopyTexSubImage2D) (target, level,
 | |
| 					     xoffset, yoffset, x, y,
 | |
| 					     width, height);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCullFace (GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glCullFace (0x%x)\n", mode);
 | |
|     (*nativeRenderTable->CullFace) (mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDeleteLists (GLuint  list,
 | |
| 		GLsizei range)
 | |
| {
 | |
|     fprintf (logFp, "glDeleteLists (%d, %d)\n", list, range);
 | |
|     (*nativeRenderTable->DeleteLists) (list, range);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDeleteTextures (GLsizei n, const GLuint *textures)
 | |
| {
 | |
|     fprintf (logFp, "glDeleteTextures (%d, %p)\n", n, textures);
 | |
|     (*nativeRenderTable->DeleteTextures) (n, textures);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDepthFunc (GLenum func)
 | |
| {
 | |
|     fprintf (logFp, "glDepthFunc (0x%x)\n", func);
 | |
|     (*nativeRenderTable->DepthFunc) (func);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDepthMask (GLboolean flag)
 | |
| {
 | |
|     fprintf (logFp, "glDepthMask (%d)\n", flag);
 | |
|     (*nativeRenderTable->DepthMask) (flag);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDepthRange (GLclampd zNear,
 | |
| 	       GLclampd zFar)
 | |
| {
 | |
|     fprintf (logFp, "glDepthRange (%f, %f)\n", zNear, zFar);
 | |
|     (*nativeRenderTable->DepthRange) (zNear, zFar);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDisable (GLenum cap)
 | |
| {
 | |
|     fprintf (logFp, "glDisable (0x%x)\n", cap);
 | |
|     (*nativeRenderTable->Disable) (cap);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDisableClientState (GLenum array)
 | |
| {
 | |
|     fprintf (logFp, "glDisableClientState (0x%x)\n", array);
 | |
|     (*nativeRenderTable->DisableClientState) (array);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDrawArrays (GLenum  mode,
 | |
| 	       GLint   first,
 | |
| 	       GLsizei count)
 | |
| {
 | |
|     fprintf (logFp, "glDrawArrays (0x%x, %d, %d)\n", mode, first, count);
 | |
|     (*nativeRenderTable->DrawArrays) (mode, first, count);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDrawBuffer (GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glDrawBuffer (0x%x)\n", mode);
 | |
|     (*nativeRenderTable->DrawBuffer) (mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDrawElements (GLenum     mode,
 | |
| 		 GLsizei    count,
 | |
| 		 GLenum	    type,
 | |
| 		 const void *indices)
 | |
| {
 | |
|     fprintf (logFp, "glDrawElements (0x%x, %d, 0x%x, %p)\n",
 | |
| 	     mode, count, type, indices);
 | |
|     (*nativeRenderTable->DrawElements) (mode, count, type, indices);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDrawPixels (GLsizei	  width,
 | |
| 	       GLsizei    height,
 | |
| 	       GLenum	  format,
 | |
| 	       GLenum	  type,
 | |
| 	       const void *pixels)
 | |
| {
 | |
|     fprintf (logFp, "glDrawPixels (%d, %d, 0x%x, 0x%x, %p)\n",
 | |
| 	     width, height, format, type, pixels);
 | |
|     (*nativeRenderTable->DrawPixels) (width, height, format, type, pixels);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEdgeFlagPointer (GLsizei    stride,
 | |
| 		    const void *pointer)
 | |
| {
 | |
|     fprintf (logFp, "glEdgeFlagPointer (%d, %p)", stride, pointer);
 | |
|     (*nativeRenderTable->EdgeFlagPointer) (stride, pointer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEdgeFlagv (const GLboolean *flag)
 | |
| {
 | |
|     vCnt[edgeFlagvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glEdgeFlagv (%p)\n", flag);
 | |
|     (*nativeRenderTable->EdgeFlagv) (flag);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEnable (GLenum cap)
 | |
| {
 | |
|     fprintf (logFp, "glEnable (0x%x)\n", cap);
 | |
|     (*nativeRenderTable->Enable) (cap);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEnableClientState (GLenum array)
 | |
| {
 | |
|     fprintf (logFp, "glEnableClientState (0x%x)\n", array);
 | |
|     (*nativeRenderTable->EnableClientState) (array);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEnd (void)
 | |
| {
 | |
|     int i;
 | |
| 
 | |
|     for (i = 0; i < sizeof (vCnt) / sizeof (vCnt[0]); i++)
 | |
|     {
 | |
| 	if (vCnt[i].n)
 | |
| 	{
 | |
| 	    fprintf (logFp, "  %s: %d\n", vCnt[i].name, vCnt[i].n);
 | |
| 	    vCnt[i].n = 0;
 | |
| 	}
 | |
|     }
 | |
| 
 | |
|     fprintf (logFp, "glEnd ()\n" );
 | |
|     (*nativeRenderTable->End) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEndList (void)
 | |
| {
 | |
|     fprintf (logFp, "glEndList ()\n" );
 | |
|     (*nativeRenderTable->EndList) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEvalCoord1dv (const GLdouble *u)
 | |
| {
 | |
|     vCnt[evalCoord1dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glEvalCoord1dv (%p)\n", u);
 | |
|     (*nativeRenderTable->EvalCoord1dv) (u);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEvalCoord1fv (const GLfloat *u)
 | |
| {
 | |
|     vCnt[evalCoord1fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glEvalCoord1fv (%p)\n", u);
 | |
|     (*nativeRenderTable->EvalCoord1fv) (u);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEvalCoord2dv (const GLdouble *u)
 | |
| {
 | |
|     vCnt[evalCoord2dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glEvalCoord2dv (%p)\n", u);
 | |
|     (*nativeRenderTable->EvalCoord2dv) (u);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEvalCoord2fv (const GLfloat *u)
 | |
| {
 | |
|     vCnt[evalCoord1fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glEvalCoord2fv (%p)\n", u);
 | |
|     (*nativeRenderTable->EvalCoord2fv) (u);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEvalMesh1 (GLenum mode,
 | |
| 	      GLint  i1,
 | |
| 	      GLint  i2)
 | |
| {
 | |
|     fprintf (logFp, "glEvalMesh1 (0x%x, %d, %d)\n", mode, i1, i2);
 | |
|     (*nativeRenderTable->EvalMesh1) (mode, i1, i2 );
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEvalMesh2 (GLenum mode,
 | |
| 	      GLint  i1,
 | |
| 	      GLint  i2,
 | |
| 	      GLint  j1,
 | |
| 	      GLint  j2)
 | |
| {
 | |
|     fprintf (logFp, "glEvalMesh2 (0x%x, %d, %d, %d, %d)\n",
 | |
| 	     mode, i1, i2, j1, j2);
 | |
|     (*nativeRenderTable->EvalMesh2) (mode, i1, i2, j1, j2);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEvalPoint1 (GLint i)
 | |
| {
 | |
|     vCnt[evalPoint1Index].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glEvalPoint1 (%d)\n", i);
 | |
|     (*nativeRenderTable->EvalPoint1) (i);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logEvalPoint2 (GLint i, GLint j)
 | |
| {
 | |
|     vCnt[evalPoint2Index].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glEvalPoint2 (%d, %d)\n", i, j);
 | |
|     (*nativeRenderTable->EvalPoint2) (i, j);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFeedbackBuffer (GLsizei size,
 | |
| 		   GLenum  type,
 | |
| 		   GLfloat *buffer)
 | |
| {
 | |
|     fprintf (logFp, "glFeedbackBuffer (%d, 0x%x, %p)\n", size, type, buffer);
 | |
|     (*nativeRenderTable->FeedbackBuffer) (size, type, buffer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFinish (void)
 | |
| {
 | |
|     fprintf (logFp, "glFinish ()\n");
 | |
|     (*nativeRenderTable->Finish) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFlush (void)
 | |
| {
 | |
|     fprintf (logFp, "glFlush ()\n");
 | |
|     (*nativeRenderTable->Flush) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFogf (GLenum  pname,
 | |
| 	 GLfloat param)
 | |
| {
 | |
|     fprintf (logFp, "glFogf (0x%x, %f)\n", pname, param);
 | |
|     (*nativeRenderTable->Fogf) (pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFogfv (GLenum	pname,
 | |
| 	  const GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glFogfv (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->Fogfv) (pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFogi (GLenum pname,
 | |
| 	 GLint  param)
 | |
| {
 | |
|     fprintf (logFp, "glFogi (0x%x, %d)\n", pname, param);
 | |
|     (*nativeRenderTable->Fogi) (pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFogiv (GLenum      pname,
 | |
| 	  const GLint *params)
 | |
| {
 | |
|     fprintf (logFp, "glFogiv (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->Fogiv) (pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFrontFace (GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glFrontFace (0x%x)\n", mode);
 | |
|     (*nativeRenderTable->FrontFace) (mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFrustum (GLdouble left,
 | |
| 	    GLdouble right,
 | |
| 	    GLdouble bottom,
 | |
| 	    GLdouble top,
 | |
| 	    GLdouble zNear,
 | |
| 	    GLdouble zFar)
 | |
| {
 | |
|     fprintf (logFp, "glFrustum (%f, %f, %f, %f, %f, %f)\n",
 | |
| 	     left, right, bottom, top, zNear, zFar);
 | |
|     (*nativeRenderTable->Frustum) (left, right, bottom, top, zNear, zFar);
 | |
| }
 | |
| 
 | |
| static GLuint
 | |
| logGenLists (GLsizei range)
 | |
| {
 | |
|     fprintf (logFp, "glGenLists (%d)\n", range);
 | |
|     return (*nativeRenderTable->GenLists) (range);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGenTextures (GLsizei n,
 | |
| 		GLuint *textures)
 | |
| {
 | |
|     fprintf (logFp, "glGenTextures (%d, %p)\n", n, textures);
 | |
|     (*nativeRenderTable->GenTextures) (n, textures);
 | |
| }
 | |
| static void
 | |
| logGetBooleanv (GLenum	  pname,
 | |
| 		GLboolean *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetBooleanv (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->GetBooleanv) (pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetClipPlane (GLenum   plane,
 | |
| 		 GLdouble *equation)
 | |
| {
 | |
|     fprintf (logFp, "glGetClipPlane (0x%x, %p)\n", plane, equation);
 | |
|     (*nativeRenderTable->GetClipPlane) (plane, equation);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetDoublev (GLenum   pname,
 | |
| 	       GLdouble *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetDoublev (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->GetDoublev) (pname, params);
 | |
| }
 | |
| 
 | |
| static GLenum
 | |
| logGetError (void)
 | |
| {
 | |
|     fprintf (logFp, "glGetError ()\n");
 | |
|     return (*nativeRenderTable->GetError) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetFloatv (GLenum  pname,
 | |
| 	      GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetFloatv (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->GetFloatv) (pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetIntegerv (GLenum pname,
 | |
| 		GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetIntegerv (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->GetIntegerv) (pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetLightfv (GLenum  light,
 | |
| 	       GLenum  pname,
 | |
| 	       GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetLightfv (0x%x, 0x%x, %p)\n", light, pname, params);
 | |
|     (*nativeRenderTable->GetLightfv) (light, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetLightiv (GLenum light,
 | |
| 	       GLenum pname,
 | |
| 	       GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetLightiv (0x%x, 0x%x, %p)\n",
 | |
| 	     light, pname, params);
 | |
|     (*nativeRenderTable->GetLightiv) (light, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetMapdv (GLenum   target,
 | |
| 	     GLenum   query,
 | |
| 	     GLdouble *v)
 | |
| {
 | |
|     fprintf (logFp, "glGetMapdv (0x%x, 0x%x, %p)\n", target, query, v);
 | |
|     (*nativeRenderTable->GetMapdv) (target, query, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetMapfv (GLenum  target,
 | |
| 	     GLenum  query,
 | |
| 	     GLfloat *v)
 | |
| {
 | |
|     fprintf (logFp, "glGetMapfv (0x%x, 0x%x, %p)\n", target, query, v);
 | |
|     (*nativeRenderTable->GetMapfv) (target, query, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetMapiv (GLenum target,
 | |
| 	     GLenum query,
 | |
| 	     GLint  *v)
 | |
| {
 | |
|     fprintf (logFp, "glGetMapiv (0x%x, 0x%x, %p)\n", target, query, v);
 | |
|     (*nativeRenderTable->GetMapiv) (target, query, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetMaterialfv (GLenum  face,
 | |
| 		  GLenum  pname,
 | |
| 		  GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetMaterialfv (0x%x, 0x%x, %p)\n", face, pname, params);
 | |
|     (*nativeRenderTable->GetMaterialfv) (face, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetMaterialiv (GLenum face,
 | |
| 		  GLenum pname,
 | |
| 		  GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetMaterialiv (0x%x, 0x%x, %p)\n", face, pname, params);
 | |
|     (*nativeRenderTable->GetMaterialiv) (face, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetPixelMapfv (GLenum  map,
 | |
| 		  GLfloat *values)
 | |
| {
 | |
|     fprintf (logFp, "glGetPixelMapfv (0x%x, %p)\n", map, values);
 | |
|     (*nativeRenderTable->GetPixelMapfv) (map, values);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetPixelMapuiv (GLenum map,
 | |
| 		   GLuint *values)
 | |
| {
 | |
|     fprintf (logFp, "glGetPixelMapuiv (0x%x, %p)\n", map, values);
 | |
|     (*nativeRenderTable->GetPixelMapuiv) (map, values);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetPixelMapusv (GLenum   map,
 | |
| 		   GLushort *values)
 | |
| {
 | |
|     fprintf (logFp, "glGetPixelMapusv (0x%x, %p)\n", map, values);
 | |
|     (*nativeRenderTable->GetPixelMapusv) (map, values);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetPointerv (GLenum pname,
 | |
| 		GLvoid **params)
 | |
| {
 | |
|     fprintf (logFp, "glGetPointerv (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->GetPointerv) (pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetPolygonStipple (GLubyte *mask)
 | |
| {
 | |
|     fprintf (logFp, "glGetPolygonStipple (%p)\n", mask);
 | |
|     (*nativeRenderTable->GetPolygonStipple) (mask);
 | |
| }
 | |
| 
 | |
| static const GLubyte *
 | |
| logGetString (GLenum name)
 | |
| {
 | |
|     fprintf (logFp, "glGetString (0x%x)\n", name);
 | |
|     return (*nativeRenderTable->GetString) (name);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetTexEnvfv (GLenum  target,
 | |
| 		GLenum  pname,
 | |
| 		GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetTexEnvfv (0x%x, 0x%x, %p)\n", target, pname, params);
 | |
|     (*nativeRenderTable->GetTexEnvfv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetTexEnviv (GLenum target,
 | |
| 		GLenum pname,
 | |
| 		GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetTexEnviv (0x%x, 0x%x, %p)\n", target, pname, params);
 | |
|     (*nativeRenderTable->GetTexEnviv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetTexGendv (GLenum   coord,
 | |
| 		GLenum   pname,
 | |
| 		GLdouble *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetTexGendv (0x%x, 0x%x, %p)\n", coord, pname, params);
 | |
|     (*nativeRenderTable->GetTexGendv) (coord, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetTexGenfv (GLenum  coord,
 | |
| 		GLenum  pname,
 | |
| 		GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetTexGenfv (0x%x, 0x%x, %p)\n", coord, pname, params);
 | |
|     (*nativeRenderTable->GetTexGenfv) (coord, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetTexGeniv (GLenum coord,
 | |
| 		GLenum pname,
 | |
| 		GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetTexGeniv (0x%x, 0x%x, %p)\n", coord, pname, params);
 | |
|     (*nativeRenderTable->GetTexGeniv) (coord, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetTexImage (GLenum target,
 | |
| 		GLint  level,
 | |
| 		GLenum format,
 | |
| 		GLenum type,
 | |
| 		void   *pixels)
 | |
| {
 | |
|     fprintf (logFp, "glGetTexImage (0x%x, %d, 0x%x, 0x%x, %p)\n",
 | |
| 	     target, level, format, type, pixels);
 | |
|     (*nativeRenderTable->GetTexImage) (target, level, format, type,
 | |
| 				       pixels);
 | |
| }
 | |
| static void
 | |
| logGetTexLevelParameterfv (GLenum  target,
 | |
| 			   GLint   level,
 | |
| 			   GLenum  pname,
 | |
| 			   GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetTexLevelParameterfv (0x%x, %d, 0x%x, %p)\n",
 | |
| 	     target, level, pname, params);
 | |
|     (*nativeRenderTable->GetTexLevelParameterfv) (target, level,
 | |
| 						  pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetTexLevelParameteriv (GLenum target,
 | |
| 			   GLint  level,
 | |
| 			   GLenum pname,
 | |
| 			   GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetTexLevelParameteriv (0x%x, %d, 0x%x, %p)\n",
 | |
| 	     target, level, pname, params);
 | |
|     (*nativeRenderTable->GetTexLevelParameteriv) (target, level,
 | |
| 						  pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetTexParameterfv (GLenum  target,
 | |
| 		      GLenum  pname,
 | |
| 		      GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetTexParameterfv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetTexParameterfv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetTexParameteriv (GLenum target,
 | |
| 		      GLenum pname,
 | |
| 		      GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetTexParameteriv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetTexParameteriv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logHint (GLenum target,
 | |
| 	 GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glHint (0x%x, 0x%x)\n", target, mode);
 | |
|     (*nativeRenderTable->Hint) (target, mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logIndexMask (GLuint mask)
 | |
| {
 | |
|     fprintf (logFp, "glIndexMask (%d)\n", mask);
 | |
|     (*nativeRenderTable->IndexMask) (mask);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logIndexPointer (GLenum	    type,
 | |
| 		 GLsizei    stride,
 | |
| 		 const void *pointer)
 | |
| {
 | |
|     fprintf (logFp, "glIndexPointer (0x%x, %d, %p)\n", type, stride, pointer);
 | |
|     (*nativeRenderTable->IndexPointer) (type, stride, pointer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logIndexdv (const GLdouble *c)
 | |
| {
 | |
|     vCnt[indexdvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glIndexdv (%p)\n", c);
 | |
|     (*nativeRenderTable->Indexdv) (c);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logIndexfv (const GLfloat *c)
 | |
| {
 | |
|     vCnt[indexfvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glIndexfv (%p)\n", c);
 | |
|     (*nativeRenderTable->Indexfv) (c);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logIndexiv (const GLint *c)
 | |
| {
 | |
|     vCnt[indexivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glIndexiv (%p)\n", c);
 | |
|     (*nativeRenderTable->Indexiv) (c);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logIndexsv (const GLshort *c)
 | |
| {
 | |
|     vCnt[indexsvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glIndexsv (%p)\n", c);
 | |
|     (*nativeRenderTable->Indexsv) (c);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logIndexubv (const GLubyte *c)
 | |
| {
 | |
|     vCnt[indexubvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glIndexubv (%p)\n", c);
 | |
|     (*nativeRenderTable->Indexubv) (c);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logInitNames (void)
 | |
| {
 | |
|     fprintf (logFp, "glInitNames ()\n" );
 | |
|     (*nativeRenderTable->InitNames) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logInterleavedArrays (GLenum	 format,
 | |
| 		      GLsizei	 stride,
 | |
| 		      const void *pointer)
 | |
| {
 | |
|     fprintf (logFp, "glInterleavedArrays (0x%x, %d, %p)\n",
 | |
| 	     format, stride, pointer);
 | |
|     (*nativeRenderTable->InterleavedArrays) (format, stride, pointer);
 | |
| }
 | |
| 
 | |
| static GLboolean
 | |
| logIsEnabled (GLenum cap)
 | |
| {
 | |
|     fprintf (logFp, "glIsEnabled (0x%x)\n", cap);
 | |
|     return (*nativeRenderTable->IsEnabled) (cap);
 | |
| }
 | |
| 
 | |
| static GLboolean
 | |
| logIsList (GLuint list)
 | |
| {
 | |
|     fprintf (logFp, "glIsList (%d)\n", list);
 | |
|     return (*nativeRenderTable->IsList) (list);
 | |
| }
 | |
| 
 | |
| static GLboolean
 | |
| logIsTexture (GLuint texture)
 | |
| {
 | |
|     fprintf (logFp, "glIsTexture (%d)\n", texture);
 | |
|     return (*nativeRenderTable->IsTexture) (texture);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLightModelf (GLenum  pname,
 | |
| 		GLfloat param)
 | |
| {
 | |
|     fprintf (logFp, "glLightModelf (0x%x, %f)\n", pname, param);
 | |
|     (*nativeRenderTable->LightModelf) (pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLightModelfv (GLenum	       pname,
 | |
| 		 const GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glLightModelfv (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->LightModelfv) (pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLightModeli (GLenum pname,
 | |
| 		GLint  param)
 | |
| {
 | |
|     fprintf (logFp, "glLightModeli (0x%x, %d)\n", pname, param);
 | |
|     (*nativeRenderTable->LightModeli) (pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLightModeliv (GLenum	     pname,
 | |
| 		 const GLint *params)
 | |
| {
 | |
|     fprintf (logFp, "glLightModeliv (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->LightModeliv) (pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLightf (GLenum  light,
 | |
| 	   GLenum  pname,
 | |
| 	   GLfloat param)
 | |
| {
 | |
|     fprintf (logFp, "glLightf (0x%x, 0x%x, %f)\n", light, pname, param);
 | |
|     (*nativeRenderTable->Lightf) (light, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLightfv (GLenum	  light,
 | |
| 	    GLenum	  pname,
 | |
| 	    const GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glLightfv (0x%x, 0x%x, %p)\n", light, pname, params);
 | |
|     (*nativeRenderTable->Lightfv) (light, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLighti (GLenum light,
 | |
| 	   GLenum pname,
 | |
| 	   GLint  param)
 | |
| {
 | |
|     fprintf (logFp, "glLighti (0x%x, 0x%x, %d)\n", light, pname, param);
 | |
|     (*nativeRenderTable->Lighti) (light, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLightiv (GLenum	light,
 | |
| 	    GLenum	pname,
 | |
| 	    const GLint *params)
 | |
| {
 | |
|     fprintf (logFp, "glLightiv (0x%x, 0x%x, %p)\n", light, pname, params);
 | |
|     (*nativeRenderTable->Lightiv) (light, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLineStipple (GLint    factor,
 | |
| 		GLushort pattern)
 | |
| {
 | |
|     fprintf (logFp, "glLineStipple (%d, %d)\n", factor, pattern);
 | |
|     (*nativeRenderTable->LineStipple) (factor, pattern);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLineWidth (GLfloat width)
 | |
| {
 | |
|     fprintf (logFp, "glLineWidth (%f)\n", width);
 | |
|     (*nativeRenderTable->LineWidth) (width);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logListBase (GLuint base)
 | |
| {
 | |
|     fprintf (logFp, "glListBase (%d)\n", base);
 | |
|     (*nativeRenderTable->ListBase) (base);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLoadIdentity (void)
 | |
| {
 | |
|     fprintf (logFp, "glLoadIdentity ()\n");
 | |
|     (*nativeRenderTable->LoadIdentity) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLoadMatrixd (const GLdouble *m)
 | |
| {
 | |
|     fprintf (logFp, "glLoadMatrixd (%p)\n", m);
 | |
|     (*nativeRenderTable->LoadMatrixd) (m);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLoadMatrixf (const GLfloat *m)
 | |
| {
 | |
|     fprintf (logFp, "glLoadMatrixf (%p)\n", m);
 | |
|     (*nativeRenderTable->LoadMatrixf) (m);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLoadName (GLuint name)
 | |
| {
 | |
|     fprintf (logFp, "glLoadName (%d)\n", name);
 | |
|     (*nativeRenderTable->LoadName) (name);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logLogicOp (GLenum opcode)
 | |
| {
 | |
|     fprintf (logFp, "glLogicOp(0x%x)\n", opcode);
 | |
|     (*nativeRenderTable->LogicOp) (opcode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMap1d (GLenum	 target,
 | |
| 	  GLdouble	 u1,
 | |
| 	  GLdouble	 u2,
 | |
| 	  GLint		 stride,
 | |
| 	  GLint		 order,
 | |
| 	  const GLdouble *points)
 | |
| {
 | |
|     fprintf (logFp, "glMap1d (0x%x, %f, %f, %d, %d, %p)\n",
 | |
| 	     target, u1, u2, stride, order, points);
 | |
|     (*nativeRenderTable->Map1d) (target, u1, u2, stride, order, points);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMap1f (GLenum	target,
 | |
| 	  GLfloat	u1,
 | |
| 	  GLfloat	u2,
 | |
| 	  GLint		stride,
 | |
| 	  GLint		order,
 | |
| 	  const GLfloat *points)
 | |
| {
 | |
|     fprintf (logFp, "glMap1f (0x%x, %f, %f, %d, %d, %p)\n",
 | |
| 	     target, u1, u2, stride, order, points);
 | |
|     (*nativeRenderTable->Map1f) (target, u1, u2, stride, order, points);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMap2d (GLenum	 target,
 | |
| 	  GLdouble	 u1,
 | |
| 	  GLdouble	 u2,
 | |
| 	  GLint		 ustride,
 | |
| 	  GLint		 uorder,
 | |
| 	  GLdouble	 v1,
 | |
| 	  GLdouble	 v2,
 | |
| 	  GLint		 vstride,
 | |
| 	  GLint		 vorder,
 | |
| 	  const GLdouble *points)
 | |
| {
 | |
|     fprintf (logFp, "glMap2d (0x%x, %f, %f, %d, %d, %f, %f, %d, %d, %p)\n",
 | |
| 	     target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
 | |
|     (*nativeRenderTable->Map2d) (target, u1, u2, ustride, uorder, v1, v2,
 | |
| 				 vstride, vorder, points);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMap2f (GLenum	target,
 | |
| 	  GLfloat	u1,
 | |
| 	  GLfloat	u2,
 | |
| 	  GLint		ustride,
 | |
| 	  GLint		uorder,
 | |
| 	  GLfloat	v1,
 | |
| 	  GLfloat	v2,
 | |
| 	  GLint		vstride,
 | |
| 	  GLint		vorder,
 | |
| 	  const GLfloat *points)
 | |
| {
 | |
|     fprintf (logFp, "glMap2f (0x%x, %f, %f, %d, %d, %f, %f, %d, %d, %p)\n",
 | |
| 	     target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
 | |
|     (*nativeRenderTable->Map2f) (target, u1, u2, ustride, uorder, v1, v2,
 | |
| 				 vstride, vorder, points);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMapGrid1d (GLint    un,
 | |
| 	      GLdouble u1,
 | |
| 	      GLdouble u2)
 | |
| {
 | |
|     fprintf (logFp, "glMapGrid1d (%d, %f, %f)\n", un, u1, u2);
 | |
|     (*nativeRenderTable->MapGrid1d) (un, u1, u2);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMapGrid1f (GLint   un,
 | |
| 	      GLfloat u1,
 | |
| 	      GLfloat u2)
 | |
| {
 | |
|     fprintf (logFp, "glMapGrid1f (%d, %f, %f)\n", un, u1, u2);
 | |
|     (*nativeRenderTable->MapGrid1f) (un, u1, u2);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMapGrid2d (GLint    un,
 | |
| 	      GLdouble u1,
 | |
| 	      GLdouble u2,
 | |
| 	      GLint    vn,
 | |
| 	      GLdouble v1,
 | |
| 	      GLdouble v2)
 | |
| {
 | |
|     fprintf (logFp, "glMapGrid2d (%d, %f, %f, %d, %f, %f)\n",
 | |
| 	     un, u1, u2, vn, v1, v2);
 | |
|     (*nativeRenderTable->MapGrid2d) (un, u1, u2, vn, v1, v2);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMapGrid2f (GLint   un,
 | |
| 	      GLfloat u1,
 | |
| 	      GLfloat u2,
 | |
| 	      GLint   vn,
 | |
| 	      GLfloat v1,
 | |
| 	      GLfloat v2)
 | |
| {
 | |
|     fprintf (logFp, "glMapGrid2f (%d, %f, %f, %d, %f, %f)\n",
 | |
| 	     un, u1, u2, vn, v1, v2);
 | |
|     (*nativeRenderTable->MapGrid2f) (un, u1, u2, vn, v1, v2);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMaterialf (GLenum  face,
 | |
| 	      GLenum  pname,
 | |
| 	      GLfloat param)
 | |
| {
 | |
|     vCnt[materialfIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMaterialf (0x%x, 0x%x, %f)\n", face, pname, param);
 | |
|     (*nativeRenderTable->Materialf) (face, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMaterialfv (GLenum	     face,
 | |
| 	       GLenum	     pname,
 | |
| 	       const GLfloat *params)
 | |
| {
 | |
|     vCnt[materialfvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMaterialfv (0x%x, 0x%x, %p)\n",
 | |
| 		 face, pname, params);
 | |
|     (*nativeRenderTable->Materialfv) (face, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMateriali (GLenum face,
 | |
| 	      GLenum pname,
 | |
| 	      GLint  param)
 | |
| {
 | |
|     vCnt[materialiIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMateriali (0x%x, 0x%x, %d)\n", face, pname, param);
 | |
|     (*nativeRenderTable->Materiali) (face, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMaterialiv (GLenum	   face,
 | |
| 	       GLenum	   pname,
 | |
| 	       const GLint *params)
 | |
| {
 | |
|     vCnt[materialivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMaterialiv (0x%x, 0x%x, %p)\n",
 | |
| 		 face, pname, params);
 | |
|     (*nativeRenderTable->Materialiv) (face, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMatrixMode (GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glMatrixMode (0x%x)\n", mode);
 | |
|     (*nativeRenderTable->MatrixMode) (mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultMatrixd (const GLdouble *m)
 | |
| {
 | |
|     fprintf (logFp, "glMultMatrixd (%p)\n", m);
 | |
|     (*nativeRenderTable->MultMatrixd) (m);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultMatrixf (const GLfloat *m)
 | |
| {
 | |
|     fprintf (logFp, "glMultMatrixf (%p)\n", m);
 | |
|     (*nativeRenderTable->MultMatrixf) (m);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logNewList (GLuint list,
 | |
| 	    GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glNewList (%d, 0x%x)\n", list, mode);
 | |
|     (*nativeRenderTable->NewList) (list, mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logNormal3bv (const GLbyte *v)
 | |
| {
 | |
|     vCnt[normal3bvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glNormal3bv (%p)\n", v);
 | |
|     (*nativeRenderTable->Normal3bv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logNormal3dv (const GLdouble *v)
 | |
| {
 | |
|     vCnt[normal3dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glNormal3dv (%p)\n", v);
 | |
|     (*nativeRenderTable->Normal3dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logNormal3fv (const GLfloat *v)
 | |
| {
 | |
|     vCnt[normal3fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glNormal3fv (%p)\n", v);
 | |
|     (*nativeRenderTable->Normal3fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logNormal3iv (const GLint *v)
 | |
| {
 | |
|     vCnt[normal3ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glNormal3iv (%p)\n", v);
 | |
|     (*nativeRenderTable->Normal3iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logNormal3sv (const GLshort *v)
 | |
| {
 | |
|     vCnt[normal3svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glNormal3sv (%p)\n", v);
 | |
|     (*nativeRenderTable->Normal3sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logNormalPointer (GLenum     type,
 | |
| 		  GLsizei    stride,
 | |
| 		  const void *pointer)
 | |
| {
 | |
|     fprintf (logFp, "glNormalPointer (0x%x, %d, %p)\n", type, stride, pointer);
 | |
|     (*nativeRenderTable->NormalPointer) (type, stride, pointer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logOrtho (GLdouble left,
 | |
| 	  GLdouble right,
 | |
| 	  GLdouble bottom,
 | |
| 	  GLdouble top,
 | |
| 	  GLdouble zNear,
 | |
| 	  GLdouble zFar)
 | |
| {
 | |
|     fprintf (logFp, "glOrtho (%f, %f, %f, %f, %f, %f)\n",
 | |
| 	     left, right, bottom, top, zNear, zFar);
 | |
|     (*nativeRenderTable->Ortho) (left, right, bottom, top, zNear, zFar);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPassThrough (GLfloat token)
 | |
| {
 | |
|     fprintf (logFp, "glPassThrough (%f)\n", token);
 | |
|     (*nativeRenderTable->PassThrough) (token);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPixelMapfv (GLenum	     map,
 | |
| 	       GLsizei	     mapsize,
 | |
| 	       const GLfloat *values)
 | |
| {
 | |
|     fprintf (logFp, "glPixelMapfv (0x%x, %d, %p)\n", map, mapsize, values);
 | |
|     (*nativeRenderTable->PixelMapfv) (map, mapsize, values);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPixelMapuiv (GLenum	     map,
 | |
| 		GLsizei	     mapsize,
 | |
| 		const GLuint *values)
 | |
| {
 | |
|     fprintf (logFp, "glPixelMapuiv (0x%x, %d, %p)\n", map, mapsize, values);
 | |
|     (*nativeRenderTable->PixelMapuiv) (map, mapsize, values);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPixelMapusv (GLenum	       map,
 | |
| 		GLsizei	       mapsize,
 | |
| 		const GLushort *values)
 | |
| {
 | |
|     fprintf (logFp, "glPixelMapusv (0x%x, %d, %p)\n", map, mapsize, values);
 | |
|     (*nativeRenderTable->PixelMapusv) (map, mapsize, values);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPixelStoref (GLenum  pname,
 | |
| 		GLfloat param)
 | |
| {
 | |
|     fprintf (logFp, "glPixelStoref (0x%x, %f)\n", pname, param);
 | |
|     (*nativeRenderTable->PixelStoref) (pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPixelStorei (GLenum pname,
 | |
| 		GLint  param)
 | |
| {
 | |
|     fprintf (logFp, "glPixelStorei (0x%x, %d)\n", pname, param);
 | |
|     (*nativeRenderTable->PixelStorei) (pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPixelTransferf (GLenum pname, GLfloat param)
 | |
| {
 | |
|     fprintf (logFp, "glPixelTransferf (0x%x, %f)\n", pname, param);
 | |
|     (*nativeRenderTable->PixelTransferf) (pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPixelTransferi (GLenum pname,
 | |
| 		   GLint  param)
 | |
| {
 | |
|     fprintf (logFp, "glPixelTransferi (0x%x, %d)\n", pname, param);
 | |
|     (*nativeRenderTable->PixelTransferi) (pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPixelZoom (GLfloat xfactor,
 | |
| 	      GLfloat yfactor)
 | |
| {
 | |
|     fprintf (logFp, "glPixelZoom (%f, %f)\n", xfactor, yfactor);
 | |
|     (*nativeRenderTable->PixelZoom) (xfactor, yfactor);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPointSize (GLfloat size)
 | |
| {
 | |
|     fprintf (logFp, "glPointSize" );
 | |
|     (*nativeRenderTable->PointSize) (size);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPolygonMode (GLenum face,
 | |
| 		GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glPolygonMode (0x%x, 0x%x)\n", face, mode );
 | |
|     (*nativeRenderTable->PolygonMode) (face, mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPolygonOffset (GLfloat factor,
 | |
| 		  GLfloat units)
 | |
| {
 | |
|     fprintf (logFp, "glPolygonOffset (%f, %f)\n", factor, units);
 | |
|     (*nativeRenderTable->PolygonOffset) (factor, units);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPolygonStipple (const GLubyte *mask)
 | |
| {
 | |
|     fprintf (logFp, "glPolygonStipple (%p)\n", mask);
 | |
|     (*nativeRenderTable->PolygonStipple) (mask);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPopAttrib (void)
 | |
| {
 | |
|     fprintf (logFp, "glPopAttrib ()\n");
 | |
|     (*nativeRenderTable->PopAttrib) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPopClientAttrib (void)
 | |
| {
 | |
|     fprintf (logFp, "glPopClientAttrib ()\n" );
 | |
|     (*nativeRenderTable->PopClientAttrib) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPopMatrix (void)
 | |
| {
 | |
|     fprintf (logFp, "glPopMatrix ()\n" );
 | |
|     (*nativeRenderTable->PopMatrix) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPopName (void)
 | |
| {
 | |
|     fprintf (logFp, "glPopName ()\n");
 | |
|     (*nativeRenderTable->PopName) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPrioritizeTextures (GLsizei	      n,
 | |
| 		       const GLuint   *textures,
 | |
| 		       const GLclampf *priorities)
 | |
| {
 | |
|     fprintf (logFp, "glPrioritizeTextures (%d, %p, %p)\n",
 | |
| 	     n, textures, priorities);
 | |
|     (*nativeRenderTable->PrioritizeTextures) (n, textures, priorities);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPushAttrib (GLbitfield mask)
 | |
| {
 | |
|     fprintf (logFp, "glPushAttrib (0x%x)\n", mask);
 | |
|     (*nativeRenderTable->PushAttrib) (mask);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPushClientAttrib (GLbitfield mask)
 | |
| {
 | |
|     fprintf (logFp, "glPushClientAttrib (0x%x)\n", mask);
 | |
|     (*nativeRenderTable->PushClientAttrib) (mask);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPushMatrix (void)
 | |
| {
 | |
|     fprintf (logFp, "glPushMatrix ()\n" );
 | |
|     (*nativeRenderTable->PushMatrix) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPushName (GLuint name)
 | |
| {
 | |
|     fprintf (logFp, "glPushName (%d)\n", name);
 | |
|     (*nativeRenderTable->PushName) (name);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos2dv (const GLdouble *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos2dv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos2dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos2fv (const GLfloat *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos2dv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos2fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos2iv (const GLint *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos2iv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos2iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos2sv (const GLshort *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos2sv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos2sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos3dv (const GLdouble *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos3dv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos3dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos3fv (const GLfloat *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos3fv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos3fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos3iv (const GLint *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos3iv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos3iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos3sv (const GLshort *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos3sv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos3sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos4dv (const GLdouble *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos4dv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos4dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos4fv (const GLfloat *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos4fv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos4fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos4iv (const GLint *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos4iv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos4iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRasterPos4sv (const GLshort *v)
 | |
| {
 | |
|     fprintf (logFp, "glRasterPos4sv (%p)\n", v);
 | |
|     (*nativeRenderTable->RasterPos4sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logReadBuffer (GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glReadBuffer (0x%x)\n", mode);
 | |
|     (*nativeRenderTable->ReadBuffer) (mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logReadPixels (GLint   x,
 | |
| 	       GLint   y,
 | |
| 	       GLsizei width,
 | |
| 	       GLsizei height,
 | |
| 	       GLenum  format,
 | |
| 	       GLenum  type,
 | |
| 	       void    *pixels)
 | |
| {
 | |
|     fprintf (logFp, "glReadPixels (%d, %d, %d, %d, 0x%x, 0x%x, %p)\n",
 | |
| 	     x, y, width, height, format, type, pixels);
 | |
|     (*nativeRenderTable->ReadPixels) (x, y, width, height, format, type,
 | |
| 				      pixels);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRectdv (const GLdouble *v1,
 | |
| 	   const GLdouble *v2)
 | |
| {
 | |
|     fprintf (logFp, "glRectdv (%p, %p)\n", v1, v2);
 | |
|     (*nativeRenderTable->Rectdv) (v1, v2);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRectfv (const GLfloat *v1,
 | |
| 	   const GLfloat *v2)
 | |
| {
 | |
|     fprintf (logFp, "glRectfv (%p, %p)\n", v1, v2);
 | |
|     (*nativeRenderTable->Rectfv) (v1, v2);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRectiv (const GLint *v1,
 | |
| 	   const GLint *v2)
 | |
| {
 | |
|     fprintf (logFp, "glRectiv (%p, %p)\n", v1, v2);
 | |
|     (*nativeRenderTable->Rectiv) (v1, v2);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRectsv (const GLshort *v1,
 | |
| 	   const GLshort *v2)
 | |
| {
 | |
|     fprintf (logFp, "glRectsv (%p, %p)\n", v1, v2);
 | |
|     (*nativeRenderTable->Rectsv) (v1, v2);
 | |
| }
 | |
| 
 | |
| static GLint
 | |
| logRenderMode (GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glRenderMode (0x%x)\n", mode);
 | |
|     return (*nativeRenderTable->RenderMode) (mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRotated (GLdouble angle,
 | |
| 	    GLdouble x,
 | |
| 	    GLdouble y,
 | |
| 	    GLdouble z)
 | |
| {
 | |
|     fprintf (logFp, "glRotated (%f, %f, %f, %f)\n", angle, x, y, z);
 | |
|     (*nativeRenderTable->Rotated) (angle, x, y, z);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRotatef (GLfloat angle,
 | |
| 	    GLfloat x,
 | |
| 	    GLfloat y,
 | |
| 	    GLfloat z)
 | |
| {
 | |
|     fprintf (logFp, "glRotatef (%f, %f, %f, %f)\n", angle, x, y, z);
 | |
|     (*nativeRenderTable->Rotatef) (angle, x, y, z);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logScaled (GLdouble x,
 | |
| 	   GLdouble y,
 | |
| 	   GLdouble z)
 | |
| {
 | |
|     fprintf (logFp, "glScaled (%f, %f, %f)\n", x, y, z);
 | |
|     (*nativeRenderTable->Scaled) (x, y, z);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logScalef (GLfloat x,
 | |
| 	   GLfloat y,
 | |
| 	   GLfloat z)
 | |
| {
 | |
|     fprintf (logFp, "glScalef (%f, %f, %f)\n", x, y, z);
 | |
|     (*nativeRenderTable->Scalef) (x, y, z);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logScissor (GLint   x,
 | |
| 	    GLint   y,
 | |
| 	    GLsizei width,
 | |
| 	    GLsizei height)
 | |
| {
 | |
|     fprintf (logFp, "glScissor (%d, %d, %d, %d)\n", x, y, width, height);
 | |
|     (*nativeRenderTable->Scissor) (x, y, width, height);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSelectBuffer (GLsizei size,
 | |
| 		 GLuint  *buffer)
 | |
| {
 | |
|     fprintf (logFp, "glSelectBuffer (%d, %p)\n", size, buffer);
 | |
|     (*nativeRenderTable->SelectBuffer) (size, buffer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logShadeModel (GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glShadeModel (0x%x)\n", mode);
 | |
|     (*nativeRenderTable->ShadeModel) (mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logStencilFunc (GLenum func,
 | |
| 		GLint  ref,
 | |
| 		GLuint mask)
 | |
| {
 | |
|     fprintf (logFp, "glStencilFunc (0x%x, %d, %d)\n", func, ref, mask);
 | |
|     (*nativeRenderTable->StencilFunc) (func, ref, mask);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logStencilMask (GLuint mask)
 | |
| {
 | |
|     fprintf (logFp, "glStencilMask (0x%x)\n", mask);
 | |
|     (*nativeRenderTable->StencilMask) (mask);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logStencilOp (GLenum fail,
 | |
| 	      GLenum zfail,
 | |
| 	      GLenum zpass)
 | |
| {
 | |
|     fprintf (logFp, "glStencilOp (0x%x, 0x%x, 0x%x)\n", fail, zfail, zpass);
 | |
|     (*nativeRenderTable->StencilOp) (fail, zfail, zpass);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord1dv (const GLdouble *v)
 | |
| {
 | |
|     vCnt[texCoord1dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord1dv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord1dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord1fv (const GLfloat *v)
 | |
| {
 | |
|     vCnt[texCoord1fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord1fv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord1fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord1iv (const GLint *v)
 | |
| {
 | |
|     vCnt[texCoord1ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord1iv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord1iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord1sv (const GLshort *v)
 | |
| {
 | |
|     vCnt[texCoord1svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord1sv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord1sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord2dv (const GLdouble *v)
 | |
| {
 | |
|     vCnt[texCoord2dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord2dv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord2dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord2fv (const GLfloat *v)
 | |
| {
 | |
|     vCnt[texCoord2fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord2fv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord2fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord2iv (const GLint *v)
 | |
| {
 | |
|     vCnt[texCoord2ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord2iv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord2iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord2sv (const GLshort *v)
 | |
| {
 | |
|     vCnt[texCoord2svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord2sv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord2sv) (v);
 | |
| }
 | |
| 
 | |
| 
 | |
| static void
 | |
| logTexCoord3dv (const GLdouble *v)
 | |
| {
 | |
|     vCnt[texCoord3dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord3dv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord3dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord3fv (const GLfloat *v)
 | |
| {
 | |
|     vCnt[texCoord3fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord3fv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord3fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord3iv (const GLint *v)
 | |
| {
 | |
|     vCnt[texCoord3ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord3iv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord3iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord3sv (const GLshort *v)
 | |
| {
 | |
|     vCnt[texCoord3svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord3sv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord3sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord4dv (const GLdouble *v)
 | |
| {
 | |
|     vCnt[texCoord4dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord4dv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord4dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord4fv (const GLfloat *v)
 | |
| {
 | |
|     vCnt[texCoord4fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord4fv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord4fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord4iv (const GLint *v)
 | |
| {
 | |
|     vCnt[texCoord4ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord4iv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord4iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoord4sv (const GLshort *v)
 | |
| {
 | |
|     vCnt[texCoord4svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glTexCoord4sv (%p)\n", v);
 | |
|     (*nativeRenderTable->TexCoord4sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexCoordPointer (GLint      size,
 | |
| 		    GLenum     type,
 | |
| 		    GLsizei    stride,
 | |
| 		    const void *pointer)
 | |
| {
 | |
|     fprintf (logFp, "glTexCoordPointer (%d, 0x%x, %d, %p)\n",
 | |
| 	     size, type, stride, pointer);
 | |
|     (*nativeRenderTable->TexCoordPointer) (size, type, stride, pointer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexEnvf (GLenum  target,
 | |
| 	    GLenum  pname,
 | |
| 	    GLfloat param)
 | |
| {
 | |
|     fprintf (logFp, "glTexEnvf (0x%x, 0x%x, %f)\n", target, pname, param);
 | |
|     (*nativeRenderTable->TexEnvf) (target, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexEnvfv (GLenum	   target,
 | |
| 	     GLenum	   pname,
 | |
| 	     const GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glTexEnvfv (0x%x, 0x%x, %p)\n", target, pname, params);
 | |
|     (*nativeRenderTable->TexEnvfv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexEnvi (GLenum target,
 | |
| 	    GLenum pname,
 | |
| 	    GLint  param)
 | |
| {
 | |
|     fprintf (logFp, "glTexEnvi (0x%x, 0x%x, %d)\n", target, pname, param);
 | |
|     (*nativeRenderTable->TexEnvi) (target, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexEnviv (GLenum	 target,
 | |
| 	     GLenum	 pname,
 | |
| 	     const GLint *params)
 | |
| {
 | |
|     fprintf (logFp, "glTexEnviv (0x%x, 0x%x, %p)\n", target, pname, params);
 | |
|     (*nativeRenderTable->TexEnviv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexGend (GLenum   coord,
 | |
| 	    GLenum   pname,
 | |
| 	    GLdouble param)
 | |
| {
 | |
|     fprintf (logFp, "glTexGend (0x%x, 0x%x, %f)\n", coord, pname, param);
 | |
|     (*nativeRenderTable->TexGend) (coord, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexGendv (GLenum	    coord,
 | |
| 	     GLenum	    pname,
 | |
| 	     const GLdouble *params)
 | |
| {
 | |
|     fprintf (logFp, "glTexGendv (0x%x, 0x%x, %p)\n", coord, pname, params);
 | |
|     (*nativeRenderTable->TexGendv) (coord, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexGenf (GLenum  coord,
 | |
| 	    GLenum  pname,
 | |
| 	    GLfloat param)
 | |
| {
 | |
|     fprintf (logFp, "glTexGenf (0x%x, 0x%x, %f)\n", coord, pname, param);
 | |
|     (*nativeRenderTable->TexGenf) (coord, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexGenfv (GLenum	   coord,
 | |
| 	     GLenum	   pname,
 | |
| 	     const GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glTexGenfv (0x%x, 0x%x, %p)\n", coord, pname, params);
 | |
|     (*nativeRenderTable->TexGenfv) (coord, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexGeni (GLenum coord,
 | |
| 	    GLenum pname,
 | |
| 	    GLint  param)
 | |
| {
 | |
|     fprintf (logFp, "glTexGeni (0x%x, 0x%x, %d)\n", coord, pname, param);
 | |
|     (*nativeRenderTable->TexGeni) (coord, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexGeniv (GLenum	 coord,
 | |
| 	     GLenum	 pname,
 | |
| 	     const GLint *params)
 | |
| {
 | |
|     fprintf (logFp, "glTexGeniv (0x%x, 0x%x, %p)\n", coord, pname, params);
 | |
|     (*nativeRenderTable->TexGeniv) (coord, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexImage1D (GLenum	  target,
 | |
| 	       GLint	  level,
 | |
| 	       GLint	  internalformat,
 | |
| 	       GLsizei	  width,
 | |
| 	       GLint	  border,
 | |
| 	       GLenum	  format,
 | |
| 	       GLenum	  type,
 | |
| 	       const void *pixels)
 | |
| {
 | |
|     fprintf (logFp, "glTexImage1D (0x%x, %d, %d, %d, %d, 0x%x, 0x%x, %p)\n",
 | |
| 	     target, level, internalformat, width, border, format, type,
 | |
| 	     pixels);
 | |
|     (*nativeRenderTable->TexImage1D) (target, level, internalformat,
 | |
| 				      width, border, format, type,
 | |
| 				      pixels);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexImage2D (GLenum     target,
 | |
| 	       GLint	  level,
 | |
| 	       GLint	  internalformat,
 | |
| 	       GLsizei	  width,
 | |
| 	       GLsizei	  height,
 | |
| 	       GLint	  border,
 | |
| 	       GLenum	  format,
 | |
| 	       GLenum	  type,
 | |
| 	       const void *pixels)
 | |
| {
 | |
|     fprintf (logFp, "glTexImage2D (0x%x, %d, %d, %d, %d, %d, "
 | |
| 	     "0x%x, 0x%x, %p)\n", target, level, internalformat,
 | |
| 	     width, height, border, format, type, pixels);
 | |
|     (*nativeRenderTable->TexImage2D) (target, level, internalformat,
 | |
| 				      width, height, border, format, type,
 | |
| 				      pixels);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexParameterf (GLenum  target,
 | |
| 		  GLenum  pname,
 | |
| 		  GLfloat param)
 | |
| {
 | |
|     fprintf (logFp, "glTexParameterf (0x%x, 0x%x, %f)\n",
 | |
| 	     target, pname, param);
 | |
|     (*nativeRenderTable->TexParameterf) (target, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexParameterfv (GLenum	 target,
 | |
| 		   GLenum	 pname,
 | |
| 		   const GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glTexParameterfv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->TexParameterfv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexParameteri (GLenum target,
 | |
| 		  GLenum pname,
 | |
| 		  GLint  param)
 | |
| {
 | |
|     fprintf (logFp, "glTexParameteri (0x%x, 0x%x, 0x%x)\n",
 | |
| 	     target, pname, param);
 | |
|     (*nativeRenderTable->TexParameteri) (target, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexParameteriv (GLenum      target,
 | |
| 		   GLenum      pname,
 | |
| 		   const GLint *params)
 | |
| {
 | |
|     fprintf (logFp, "glTexParameteriv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->TexParameteriv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexSubImage1D (GLenum     target,
 | |
| 		  GLint	     level,
 | |
| 		  GLint	     xoffset,
 | |
| 		  GLsizei    width,
 | |
| 		  GLenum     format,
 | |
| 		  GLenum     type,
 | |
| 		  const void *pixels)
 | |
| {
 | |
|     fprintf (logFp, "glTexSubImage1D (0x%x, %d, %d, %d, 0x%x, 0x%x, %p)\n",
 | |
| 	     target, level, xoffset, width, format, type, pixels);
 | |
|     (*nativeRenderTable->TexSubImage1D) (target, level, xoffset, width,
 | |
| 					 format, type, pixels);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexSubImage2D (GLenum     target,
 | |
| 		  GLint	     level,
 | |
| 		  GLint	     xoffset,
 | |
| 		  GLint	     yoffset,
 | |
| 		  GLsizei    width,
 | |
| 		  GLsizei    height,
 | |
| 		  GLenum     format,
 | |
| 		  GLenum     type,
 | |
| 		  const void *pixels)
 | |
| {
 | |
|     fprintf (logFp, "glTexSubImage2D (0x%x, %d, %d, %d, %d, %d, "
 | |
| 	     "0x%x, 0x%x, %p)\n", target, level, xoffset, yoffset,
 | |
| 	     width, height, format, type, pixels);
 | |
|     (*nativeRenderTable->TexSubImage2D) (target, level, xoffset, yoffset,
 | |
| 					 width, height, format, type,
 | |
| 					 pixels);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTranslated (GLdouble x,
 | |
| 	       GLdouble y,
 | |
| 	       GLdouble z)
 | |
| {
 | |
|     fprintf (logFp, "glTranslated (%f, %f, %f)\n", x, y, z);
 | |
|     (*nativeRenderTable->Translated) (x, y, z);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTranslatef (GLfloat x,
 | |
| 	       GLfloat y,
 | |
| 	       GLfloat z)
 | |
| {
 | |
|     fprintf (logFp, "glTranslatef (%f, %f, %f)\n", x, y, z);
 | |
|     (*nativeRenderTable->Translatef) (x, y, z);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex2dv (const GLdouble *v)
 | |
| {
 | |
|     vCnt[vertex2dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex2dv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex2dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex2fv (const GLfloat *v)
 | |
| {
 | |
|     vCnt[vertex2fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex2dv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex2fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex2iv (const GLint *v)
 | |
| {
 | |
|     vCnt[vertex2ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex2iv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex2iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex2sv (const GLshort *v)
 | |
| {
 | |
|     vCnt[vertex2svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex2sv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex2sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex3dv (const GLdouble *v)
 | |
| {
 | |
|     vCnt[vertex3dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex3dv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex3dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex3fv (const GLfloat *v)
 | |
| {
 | |
|     vCnt[vertex3fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex3fv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex3fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex3iv (const GLint *v)
 | |
| {
 | |
|     vCnt[vertex3ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex3iv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex3iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex3sv (const GLshort *v)
 | |
| {
 | |
|     vCnt[vertex3svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex3sv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex3sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex4dv (const GLdouble *v)
 | |
| {
 | |
|     vCnt[vertex4dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex4dv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex4dv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex4fv (const GLfloat *v)
 | |
| {
 | |
|     vCnt[vertex4fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex4fv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex4fv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex4iv (const GLint *v)
 | |
| {
 | |
|     vCnt[vertex4ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex4iv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex4iv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertex4sv (const GLshort *v)
 | |
| {
 | |
|     vCnt[vertex4svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glVertex4sv (%p)\n", v);
 | |
|     (*nativeRenderTable->Vertex4sv) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logVertexPointer (GLint	     size,
 | |
| 		  GLenum     type,
 | |
| 		  GLsizei    stride,
 | |
| 		  const void *pointer)
 | |
| {
 | |
|     fprintf (logFp, "glVertexPointer (%d, 0x%x, %d, %p)\n",
 | |
| 	     size, type, stride, pointer);
 | |
|     (*nativeRenderTable->VertexPointer) (size, type, stride, pointer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logViewport (GLint   x,
 | |
| 	     GLint   y,
 | |
| 	     GLsizei width,
 | |
| 	     GLsizei height)
 | |
| {
 | |
|     fprintf (logFp, "glViewport (%d %d %d %d)\n", x, y, width, height);
 | |
|     (*nativeRenderTable->Viewport) (x, y, width, height);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logBlendColor (GLclampf red,
 | |
| 	       GLclampf green,
 | |
| 	       GLclampf blue,
 | |
| 	       GLclampf alpha)
 | |
| {
 | |
|     fprintf (logFp, "glBlendColor (%f, %f, %f, %f)\n",
 | |
| 	     red, green, blue, alpha);
 | |
|     (*nativeRenderTable->BlendColor) (red, green, blue, alpha);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logBlendEquation (GLenum mode)
 | |
| {
 | |
|     fprintf (logFp, "glBlendEquation (0x%x)\n", mode);
 | |
|     (*nativeRenderTable->BlendEquation) (mode);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColorTable (GLenum       target,
 | |
| 	       GLenum       internalformat,
 | |
| 	       GLsizei      width,
 | |
| 	       GLenum       format,
 | |
| 	       GLenum	    type,
 | |
| 	       const GLvoid *table)
 | |
| {
 | |
|     fprintf (logFp, "glColorTable (0x%x, 0x%x, %d, 0x%x, 0x%x, %p)\n",
 | |
| 	     target, internalformat, width, format, type, table);
 | |
|     (*nativeRenderTable->ColorTable) (target, internalformat, width,
 | |
| 				      format, type, table);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColorTableParameterfv (GLenum	target,
 | |
| 			  GLenum	pname,
 | |
| 			  const GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glColorTableParameterfv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->ColorTableParameterfv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColorTableParameteriv (GLenum      target,
 | |
| 			  GLenum      pname,
 | |
| 			  const GLint *params)
 | |
| {
 | |
|     fprintf (logFp, "glColorTableParameterfv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->ColorTableParameteriv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCopyColorTable (GLenum  target,
 | |
| 		   GLenum  internalformat,
 | |
| 		   GLint   x,
 | |
| 		   GLint   y,
 | |
| 		   GLsizei width)
 | |
| {
 | |
|     fprintf (logFp, "glCopyColorTable (0x%x, 0x%x, %d, %d, %d)\n",
 | |
| 	     target, internalformat, x, y, width);
 | |
|     (*nativeRenderTable->CopyColorTable) (target, internalformat,
 | |
| 					  x, y, width);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetColorTable (GLenum target,
 | |
| 		  GLenum format,
 | |
| 		  GLenum type,
 | |
| 		  GLvoid *table)
 | |
| {
 | |
|     fprintf (logFp, "glGetColorTable (0x%x, 0x%x, 0x%x, %p)\n",
 | |
| 	     target, format, type, table);
 | |
|     (*nativeRenderTable->GetColorTable) (target, format, type, table);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetColorTableParameterfv (GLenum  target,
 | |
| 			     GLenum  pname,
 | |
| 			     GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetColorTableParameterfv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetColorTableParameterfv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetColorTableParameteriv (GLenum target,
 | |
| 			     GLenum pname,
 | |
| 			     GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetColorTableParameteriv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetColorTableParameteriv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logColorSubTable (GLenum       target,
 | |
| 		  GLsizei      start,
 | |
| 		  GLsizei      count,
 | |
| 		  GLenum       format,
 | |
| 		  GLenum       type,
 | |
| 		  const GLvoid *data)
 | |
| {
 | |
|     fprintf (logFp, "glColorSubTable (0x%x, %d, %d, 0x%x, 0x%x, %p)\n",
 | |
| 	     target, start, count, format, type, data);
 | |
|     (*nativeRenderTable->ColorSubTable) (target, start, count,
 | |
| 					 format, type, data);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCopyColorSubTable (GLenum  target,
 | |
| 		      GLsizei start,
 | |
| 		      GLint   x,
 | |
| 		      GLint   y,
 | |
| 		      GLsizei width)
 | |
| {
 | |
|     fprintf (logFp, "glCopyColorSubTable (0x%x, %d, %d, %d, %d)\n",
 | |
| 	     target, start, x, y, width);
 | |
|     (*nativeRenderTable->CopyColorSubTable) (target, start, x, y, width);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logConvolutionFilter1D (GLenum	     target,
 | |
| 			GLenum	     internalformat,
 | |
| 			GLsizei	     width,
 | |
| 			GLenum	     format,
 | |
| 			GLenum	     type,
 | |
| 			const GLvoid *image)
 | |
| {
 | |
|     fprintf (logFp, "glConvolutionFilter1D (0x%x, 0x%x, %d, 0x%x, 0x%x, %p)\n",
 | |
| 	     target, internalformat, width, format, type, image);
 | |
|     (*nativeRenderTable->ConvolutionFilter1D) (target, internalformat,
 | |
| 					       width, format, type, image);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logConvolutionFilter2D (GLenum	     target,
 | |
| 			GLenum	     internalformat,
 | |
| 			GLsizei	     width,
 | |
| 			GLsizei	     height,
 | |
| 			GLenum	     format,
 | |
| 			GLenum	     type,
 | |
| 			const GLvoid *image)
 | |
| {
 | |
|     fprintf (logFp, "glConvolutionFilter2D (0x%x, 0x%x, %d, %d, "
 | |
| 	     "0x%x, 0x%x, %p)\n", target, internalformat, width, height,
 | |
| 	     format, type, image);
 | |
|     (*nativeRenderTable->ConvolutionFilter2D) (target, internalformat,
 | |
| 					       width, height, format,
 | |
| 					       type, image);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logConvolutionParameterf (GLenum  target,
 | |
| 			  GLenum  pname,
 | |
| 			  GLfloat param)
 | |
| {
 | |
|     fprintf (logFp, "glConvolutionParameterf (0x%x, 0x%x, %f)\n",
 | |
| 	     target, pname, param);
 | |
|     (*nativeRenderTable->ConvolutionParameterf) (target, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logConvolutionParameterfv (GLenum	 target,
 | |
| 			   GLenum	 pname,
 | |
| 			   const GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glConvolutionParameterfv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->ConvolutionParameterfv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logConvolutionParameteri (GLenum target,
 | |
| 			  GLenum pname,
 | |
| 			  GLint  param)
 | |
| {
 | |
|     fprintf (logFp, "glConvolutionParameterf (0x%x, 0x%x, %d)\n",
 | |
| 	     target, pname, param);
 | |
|     (*nativeRenderTable->ConvolutionParameteri) (target, pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logConvolutionParameteriv (GLenum      target,
 | |
| 			   GLenum      pname,
 | |
| 			   const GLint *params)
 | |
| {
 | |
|     fprintf (logFp, "glConvolutionParameteriv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->ConvolutionParameteriv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCopyConvolutionFilter1D (GLenum  target,
 | |
| 			    GLenum  internalformat,
 | |
| 			    GLint   x,
 | |
| 			    GLint   y,
 | |
| 			    GLsizei width)
 | |
| {
 | |
|     fprintf (logFp, "glCopyConvolutionFilter1D (0x%x, 0x%x, %d, %d, %d)\n",
 | |
| 	     target, internalformat, x, y, width);
 | |
|     (*nativeRenderTable->CopyConvolutionFilter1D) (target, internalformat,
 | |
| 						   x, y, width);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCopyConvolutionFilter2D (GLenum  target,
 | |
| 			    GLenum  internalformat,
 | |
| 			    GLint   x,
 | |
| 			    GLint   y,
 | |
| 			    GLsizei width,
 | |
| 			    GLsizei height)
 | |
| {
 | |
|     fprintf (logFp, "glCopyConvolutionFilter2D (0x%x, 0x%x, %d, %d, %d, %d)\n",
 | |
| 	     target, internalformat, x, y, width, height);
 | |
|     (*nativeRenderTable->CopyConvolutionFilter2D) (target, internalformat,
 | |
| 						   x, y, width, height);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetConvolutionFilter (GLenum target,
 | |
| 			 GLenum format,
 | |
| 			 GLenum type,
 | |
| 			 GLvoid *image)
 | |
| {
 | |
|     fprintf (logFp, "glGetConvolutionFilter (0x%x, 0x%x, 0x%x, %p)\n",
 | |
| 	     target, format, type, image);
 | |
|     (*nativeRenderTable->GetConvolutionFilter) (target, format, type,
 | |
| 						image);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetConvolutionParameterfv (GLenum  target,
 | |
| 			      GLenum  pname,
 | |
| 			      GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetConvolutionParameterfv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetConvolutionParameterfv) (target, pname,
 | |
| 						     params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetConvolutionParameteriv (GLenum target,
 | |
| 			      GLenum pname,
 | |
| 			      GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetConvolutionParameteriv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetConvolutionParameteriv) (target, pname,
 | |
| 						     params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetSeparableFilter (GLenum target,
 | |
| 		       GLenum format,
 | |
| 		       GLenum type,
 | |
| 		       GLvoid *row,
 | |
| 		       GLvoid *column,
 | |
| 		       GLvoid *span)
 | |
| {
 | |
|     fprintf (logFp, "glGetSeparableFilter (0x%x, 0x%x, 0x%x, %p, %p, %p)\n",
 | |
| 	     target, format, type, row, column, span);
 | |
|     (*nativeRenderTable->GetSeparableFilter) (target, format, type,
 | |
| 					      row, column, span);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSeparableFilter2D (GLenum	   target,
 | |
| 		      GLenum	   internalformat,
 | |
| 		      GLsizei	   width,
 | |
| 		      GLsizei	   height,
 | |
| 		      GLenum	   format,
 | |
| 		      GLenum	   type,
 | |
| 		      const GLvoid *row,
 | |
| 		      const GLvoid *column)
 | |
| {
 | |
|     fprintf (logFp, "glSeparableFilter2D (0x%x, 0x%x, %d, %d, "
 | |
| 	     "0x%x, 0x%x, %p, %p)\n", target, internalformat, width, height,
 | |
| 	     format, type, row, column);
 | |
|     (*nativeRenderTable->SeparableFilter2D) (target, internalformat,
 | |
| 					     width, height, format,
 | |
| 					     type, row, column);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetHistogram (GLenum	   target,
 | |
| 		 GLboolean reset,
 | |
| 		 GLenum	   format,
 | |
| 		 GLenum	   type,
 | |
| 		 GLvoid	   *values)
 | |
| {
 | |
|     fprintf (logFp, "glGetHistogram (0x%x, %d, 0x%x, 0x%x, %p)\n",
 | |
| 	     target, reset, format, type, values);
 | |
|     (*nativeRenderTable->GetHistogram) (target, reset, format, type,
 | |
| 					values);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetHistogramParameterfv (GLenum  target,
 | |
| 			    GLenum  pname,
 | |
| 			    GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetHistogramParameterfv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetHistogramParameterfv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetHistogramParameteriv (GLenum target,
 | |
| 			    GLenum pname,
 | |
| 			    GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetHistogramParameteriv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetHistogramParameteriv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetMinmax (GLenum	target,
 | |
| 	      GLboolean reset,
 | |
| 	      GLenum	format,
 | |
| 	      GLenum	type,
 | |
| 	      GLvoid	*values)
 | |
| {
 | |
|     fprintf (logFp, "glGetMinmax (0x%x, %d, 0x%x, 0x%x, %p)\n",
 | |
| 	     target, reset, format, type, values);
 | |
|     (*nativeRenderTable->GetMinmax) (target, reset, format, type, values);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetMinmaxParameterfv (GLenum  target,
 | |
| 			 GLenum  pname,
 | |
| 			 GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "GetMinmaxParameterfv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetMinmaxParameterfv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetMinmaxParameteriv (GLenum target,
 | |
| 			 GLenum pname,
 | |
| 			 GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "GetMinmaxParameteriv (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetMinmaxParameteriv) (target, pname, params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logHistogram (GLenum	target,
 | |
| 	      GLsizei	width,
 | |
| 	      GLenum	internalformat,
 | |
| 	      GLboolean sink)
 | |
| {
 | |
|     fprintf (logFp, "glHistogram (0x%x, %d, 0x%x, %d)\n",
 | |
| 	     target, width, internalformat, sink);
 | |
|     (*nativeRenderTable->Histogram) (target, width, internalformat, sink);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMinmax (GLenum    target,
 | |
| 	   GLenum    internalformat,
 | |
| 	   GLboolean sink)
 | |
| {
 | |
|     fprintf (logFp, "glMinmax (0x%x, 0x%x, %d)\n",
 | |
| 	     target, internalformat, sink);
 | |
|     (*nativeRenderTable->Minmax) (target, internalformat, sink);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logResetHistogram (GLenum target)
 | |
| {
 | |
|     fprintf (logFp, "glResetHistogram (0x%x)\n", target);
 | |
|     (*nativeRenderTable->ResetHistogram) (target);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logResetMinmax (GLenum target)
 | |
| {
 | |
|     fprintf (logFp, "glResetMinmax (0x%x)\n", target);
 | |
|     (*nativeRenderTable->ResetMinmax) (target);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logCopyTexSubImage3D (GLenum  target,
 | |
| 		      GLint   level,
 | |
| 		      GLint   xoffset,
 | |
| 		      GLint   yoffset,
 | |
| 		      GLint   zoffset,
 | |
| 		      GLint   x,
 | |
| 		      GLint   y,
 | |
| 		      GLsizei width,
 | |
| 		      GLsizei height)
 | |
| {
 | |
|     fprintf (logFp, "glCopyTexSubImage3D (0x%x, %d, %d, %d, %d, %d, %d, "
 | |
| 	     "%d, %d)\n", target, level, xoffset, yoffset, zoffset,
 | |
| 	     x, y, width, height);
 | |
|     (*nativeRenderTable->CopyTexSubImage3D) (target, level,
 | |
| 					     xoffset, yoffset, zoffset,
 | |
| 					     x, y, width, height);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexImage3D (GLenum	    target,
 | |
| 	       GLint	    level,
 | |
| 	       GLint	    internalformat,
 | |
| 	       GLsizei	    width,
 | |
| 	       GLsizei	    height,
 | |
| 	       GLsizei	    depth,
 | |
| 	       GLint	    border,
 | |
| 	       GLenum	    format,
 | |
| 	       GLenum	    type,
 | |
| 	       const GLvoid *pixels)
 | |
| {
 | |
|     fprintf (logFp, "glTexImage3D (0x%x, %d, %d, %d, %d, %d, %d, "
 | |
| 	     "0x%x, 0x%x, %p)\n", target, level, internalformat,
 | |
| 	     width, height, depth, border, format, type, pixels);
 | |
|     (*nativeRenderTable->TexImage3D) (target, level, internalformat,
 | |
| 				      width, height, depth, border,
 | |
| 				      format, type, pixels);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logTexSubImage3D (GLenum       target,
 | |
| 		  GLint	       level,
 | |
| 		  GLint	       xoffset,
 | |
| 		  GLint	       yoffset,
 | |
| 		  GLint	       zoffset,
 | |
| 		  GLsizei      width,
 | |
| 		  GLsizei      height,
 | |
| 		  GLsizei      depth,
 | |
| 		  GLenum       format,
 | |
| 		  GLenum       type,
 | |
| 		  const GLvoid *pixels)
 | |
| {
 | |
|     fprintf (logFp, "glTexSubImage3D (0x%x, %d, %d, %d, %d, %d, %d, %d, "
 | |
| 	     "0x%x, 0x%x, %p)\n", target, level, xoffset, yoffset, zoffset,
 | |
| 	     width, height, depth, format, type, pixels);
 | |
|     (*nativeRenderTable->TexSubImage3D) (target, level,
 | |
| 					 xoffset, yoffset, zoffset,
 | |
| 					 width, height, depth,
 | |
| 					 format, type, pixels);
 | |
| }
 | |
| 
 | |
| /* GL_ARB_multitexture */
 | |
| 
 | |
| static void
 | |
| logActiveTextureARB (GLenum texture)
 | |
| {
 | |
|     fprintf (logFp, "glActiveTextureARB (0x%x)\n", texture);
 | |
|     (*nativeRenderTable->ActiveTextureARB) (texture);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logClientActiveTextureARB (GLenum texture)
 | |
| {
 | |
|     fprintf (logFp, "glClientActiveTextureARB (0x%x)\n", texture);
 | |
|     (*nativeRenderTable->ClientActiveTextureARB) (texture);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord1dvARB (GLenum	       target,
 | |
| 			const GLdouble *v)
 | |
| {
 | |
|     vCnt[multiTexCoord1dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord1dvARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord1dvARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord1fvARB (GLenum	      target,
 | |
| 			const GLfloat *v)
 | |
| {
 | |
|     vCnt[multiTexCoord1fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord1fvARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord1fvARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord1ivARB (GLenum	    target,
 | |
| 			const GLint *v)
 | |
| {
 | |
|     vCnt[multiTexCoord1ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord1ivARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord1ivARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord1svARB (GLenum	      target,
 | |
| 			const GLshort *v)
 | |
| {
 | |
|     vCnt[multiTexCoord1svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord1svARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord1svARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord2dvARB (GLenum	       target,
 | |
| 			const GLdouble *v)
 | |
| {
 | |
|     vCnt[multiTexCoord2dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord2dvARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord2dvARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord2fvARB (GLenum	      target,
 | |
| 			const GLfloat *v)
 | |
| {
 | |
|     vCnt[multiTexCoord2fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord2fvARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord2fvARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord2ivARB (GLenum	    target,
 | |
| 			const GLint *v)
 | |
| {
 | |
|     vCnt[multiTexCoord2ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord2ivARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord2ivARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord2svARB (GLenum	      target,
 | |
| 			const GLshort *v)
 | |
| {
 | |
|     vCnt[multiTexCoord2svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord2svARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord2svARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord3dvARB (GLenum	       target,
 | |
| 			const GLdouble *v)
 | |
| {
 | |
|     vCnt[multiTexCoord3dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord3dvARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord3dvARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord3fvARB (GLenum	      target,
 | |
| 			const GLfloat *v)
 | |
| {
 | |
|     vCnt[multiTexCoord3fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord3fvARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord3fvARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord3ivARB (GLenum	    target,
 | |
| 			const GLint *v)
 | |
| {
 | |
|     vCnt[multiTexCoord3ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord3ivARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord3ivARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord3svARB (GLenum	      target,
 | |
| 			const GLshort *v)
 | |
| {
 | |
|     vCnt[multiTexCoord3svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord3svARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord3svARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord4dvARB (GLenum	       target,
 | |
| 			const GLdouble *v)
 | |
| {
 | |
|     vCnt[multiTexCoord4dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord4dvARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord4dvARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord4fvARB (GLenum	      target,
 | |
| 			const GLfloat *v)
 | |
| {
 | |
|     vCnt[multiTexCoord4fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord4fvARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord4fvARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord4ivARB (GLenum	    target,
 | |
| 			const GLint *v)
 | |
| {
 | |
|     vCnt[multiTexCoord4ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord4ivARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord4ivARB) (target, v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logMultiTexCoord4svARB (GLenum	      target,
 | |
| 			const GLshort *v)
 | |
| {
 | |
|     vCnt[multiTexCoord4svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glMultiTexCoord4svARB (0x%x, %p)\n", target, v);
 | |
|     (*nativeRenderTable->MultiTexCoord4svARB) (target, v);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_ARB_multisample */
 | |
| 
 | |
| static void
 | |
| logSampleCoverageARB (GLclampf  value,
 | |
| 		      GLboolean invert)
 | |
| {
 | |
|     fprintf (logFp, "glSampleCoverageARB (%f, %d)\n", value, invert);
 | |
|     (*nativeRenderTable->SampleCoverageARB) (value, invert);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_EXT_texture_object */
 | |
| 
 | |
| static GLboolean
 | |
| logAreTexturesResidentEXT (GLsizei	n,
 | |
| 			   const GLuint *textures,
 | |
| 			   GLboolean	*residences)
 | |
| {
 | |
|     fprintf (logFp, "glAreTexturesResidentEXT (%d, %p, %p)\n",
 | |
| 	     n, textures, residences);
 | |
|     return (*nativeRenderTable->AreTexturesResidentEXT) (n, textures,
 | |
| 							 residences);
 | |
| }
 | |
| static void
 | |
| logGenTexturesEXT (GLsizei n,
 | |
| 		   GLuint  *textures)
 | |
| {
 | |
|     fprintf (logFp, "glGenTexturesEXT (%d, %p)\n", n, textures);
 | |
|     (*nativeRenderTable->GenTexturesEXT) (n, textures);
 | |
| }
 | |
| 
 | |
| static GLboolean
 | |
| logIsTextureEXT (GLuint texture)
 | |
| {
 | |
|     fprintf (logFp, "glIsTextureEXT (%d)\n", texture);
 | |
|     return (*nativeRenderTable->IsTextureEXT) (texture);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_SGIS_multisample */
 | |
| 
 | |
| static void
 | |
| logSampleMaskSGIS (GLclampf  value,
 | |
| 		   GLboolean invert)
 | |
| {
 | |
|     fprintf (logFp, "glSampleMaskSGIS (%f, %d)\n", value, invert);
 | |
|     (*nativeRenderTable->SampleMaskSGIS) (value, invert);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSamplePatternSGIS (GLenum pattern)
 | |
| {
 | |
|     fprintf (logFp, "glSamplePatternSGIS (0x%x)\n", pattern);
 | |
|     (*nativeRenderTable->SamplePatternSGIS) (pattern);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_EXT_point_parameters */
 | |
| 
 | |
| static void
 | |
| logPointParameterfEXT (GLenum  pname,
 | |
| 		       GLfloat param)
 | |
| {
 | |
|     fprintf (logFp, "glPointParameterfEXT (0x%x, %f)\n", pname, param);
 | |
|     (*nativeRenderTable->PointParameterfEXT) (pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPointParameterfvEXT (GLenum	      pname,
 | |
| 			const GLfloat *params)
 | |
| {
 | |
|     fprintf (logFp, "glPointParameterfvEXT (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->PointParameterfvEXT) (pname, params);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_MESA_window_pos */
 | |
| 
 | |
| static void
 | |
| logWindowPos3fMESA (GLfloat x,
 | |
| 		    GLfloat y,
 | |
| 		    GLfloat z)
 | |
| {
 | |
|     fprintf (logFp, "glWindowPos3fMESA (%f, %f, %f)\n", x, y, z);
 | |
|     (*nativeRenderTable->WindowPos3fMESA) (x, y, z);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_EXT_blend_func_separate */
 | |
| 
 | |
| static void
 | |
| logBlendFuncSeparateEXT (GLenum sfactorRGB,
 | |
| 			 GLenum dfactorRGB,
 | |
| 			 GLenum sfactorAlpha,
 | |
| 			 GLenum dfactorAlpha)
 | |
| {
 | |
|     fprintf (logFp, "glBlendFuncSeparateEXT (0x%x, 0x%x, 0x%x, 0x%x)\n",
 | |
| 	     sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
 | |
|     (*nativeRenderTable->BlendFuncSeparateEXT) (sfactorRGB,
 | |
| 						dfactorRGB,
 | |
| 						sfactorAlpha,
 | |
| 						dfactorAlpha);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_EXT_fog_coord */
 | |
| 
 | |
| static void
 | |
| logFogCoordfvEXT (const GLfloat *coord)
 | |
| {
 | |
|     vCnt[fogCoordfvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glFogCoordfvEXT (%p)\n", coord);
 | |
|     (*nativeRenderTable->FogCoordfvEXT) (coord);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFogCoorddvEXT (const GLdouble *coord)
 | |
| {
 | |
|     vCnt[fogCoorddvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glFogCoorddvEXT (%p)\n", coord);
 | |
|     (*nativeRenderTable->FogCoorddvEXT) (coord);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFogCoordPointerEXT (GLenum	    type,
 | |
| 		       GLsizei	    stride,
 | |
| 		       const GLvoid *pointer)
 | |
| {
 | |
|     fprintf (logFp, "glFogCoordPointerEXT (0x%x, %d, %p)\n",
 | |
| 	     type, stride, pointer);
 | |
|     (*nativeRenderTable->FogCoordPointerEXT) (type, stride, pointer);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_EXT_secondary_color */
 | |
| 
 | |
| static void
 | |
| logSecondaryColor3bvEXT (const GLbyte *v)
 | |
| {
 | |
|     vCnt[secondaryColor3bvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glSecondaryColor3bvEXT (%p)\n", v);
 | |
|     (*nativeRenderTable->SecondaryColor3bvEXT) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSecondaryColor3dvEXT (const GLdouble *v)
 | |
| {
 | |
|     vCnt[secondaryColor3dvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glSecondaryColor3dvEXT (%p)\n", v);
 | |
|     (*nativeRenderTable->SecondaryColor3dvEXT) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSecondaryColor3fvEXT (const GLfloat *v)
 | |
| {
 | |
|     vCnt[secondaryColor3fvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glSecondaryColor3fvEXT (%p)\n", v);
 | |
|     (*nativeRenderTable->SecondaryColor3fvEXT) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSecondaryColor3ivEXT (const GLint *v)
 | |
| {
 | |
|     vCnt[secondaryColor3ivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glSecondaryColor3ivEXT (%p)\n", v);
 | |
|     (*nativeRenderTable->SecondaryColor3ivEXT) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSecondaryColor3svEXT (const GLshort *v)
 | |
| {
 | |
|     vCnt[secondaryColor3svIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glSecondaryColor3svEXT (%p)\n", v);
 | |
|     (*nativeRenderTable->SecondaryColor3svEXT) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSecondaryColor3ubvEXT (const GLubyte *v)
 | |
| {
 | |
|     vCnt[secondaryColor3ubvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glSecondaryColor3ubvEXT (%p)\n", v);
 | |
|     (*nativeRenderTable->SecondaryColor3ubvEXT) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSecondaryColor3uivEXT (const GLuint *v)
 | |
| {
 | |
|     vCnt[secondaryColor3uivIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glSecondaryColor3uivEXT (%p)\n", v);
 | |
|     (*nativeRenderTable->SecondaryColor3uivEXT) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSecondaryColor3usvEXT (const GLushort *v)
 | |
| {
 | |
|     vCnt[secondaryColor3usvIndex].n++;
 | |
|     if (logVertexAttribs)
 | |
| 	fprintf (logFp, "glSecondaryColor3usvEXT (%p)\n", v);
 | |
|     (*nativeRenderTable->SecondaryColor3usvEXT) (v);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logSecondaryColorPointerEXT (GLint	  size,
 | |
| 			     GLenum	  type,
 | |
| 			     GLsizei	  stride,
 | |
| 			     const GLvoid *pointer)
 | |
| {
 | |
|     fprintf (logFp, "glSecondaryColorPointerEXT (%d, 0x%x, %d, %p)\n",
 | |
| 	     size, type, stride, pointer);
 | |
|     (*nativeRenderTable->SecondaryColorPointerEXT) (size, type,
 | |
| 						    stride, pointer);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_NV_point_sprite */
 | |
| 
 | |
| static void
 | |
| logPointParameteriNV (GLenum pname,
 | |
| 		      GLint  param)
 | |
| {
 | |
|     fprintf (logFp, "glPointParameteriNV (0x%x, %d)\n", pname, param);
 | |
|     (*nativeRenderTable->PointParameteriNV) (pname, param);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logPointParameterivNV (GLenum	   pname,
 | |
| 		       const GLint *params)
 | |
| {
 | |
|     fprintf (logFp, "glPointParameterivNV (0x%x, %p)\n", pname, params);
 | |
|     (*nativeRenderTable->PointParameterivNV) (pname, params);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_EXT_stencil_two_side */
 | |
| 
 | |
| static void
 | |
| logActiveStencilFaceEXT (GLenum face)
 | |
| {
 | |
|     fprintf (logFp, "glActiveStencilFaceEXT (0x%x)\n", face);
 | |
|     (*nativeRenderTable->ActiveStencilFaceEXT) (face);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* GL_EXT_framebuffer_object */
 | |
| 
 | |
| static GLboolean
 | |
| logIsRenderbufferEXT (GLuint renderbuffer)
 | |
| {
 | |
|     fprintf (logFp, "glIsRenderbufferEXT (%d)\n", renderbuffer);
 | |
|     return (*nativeRenderTable->IsRenderbufferEXT) (renderbuffer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logBindRenderbufferEXT (GLenum target,
 | |
| 			GLuint renderbuffer)
 | |
| {
 | |
|     fprintf (logFp, "glBindRenderbufferEXT (0x%x, %d)\n",
 | |
| 	     target, renderbuffer);
 | |
|     (*nativeRenderTable->BindRenderbufferEXT) (target, renderbuffer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDeleteRenderbuffersEXT (GLsizei	n,
 | |
| 			   const GLuint *renderbuffers)
 | |
| {
 | |
|     fprintf (logFp, "glDeleteRenderbuffersEXT (%d, %p)\n", n, renderbuffers);
 | |
|     (*nativeRenderTable->DeleteRenderbuffersEXT) (n, renderbuffers);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGenRenderbuffersEXT (GLsizei n,
 | |
| 			GLuint  *renderbuffers)
 | |
| {
 | |
|     fprintf (logFp, "glGenRenderbuffersEXT (%d, %p)\n", n, renderbuffers);
 | |
|     (*nativeRenderTable->GenRenderbuffersEXT) (n, renderbuffers);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logRenderbufferStorageEXT (GLenum  target,
 | |
| 			   GLenum  internalformat,
 | |
| 			   GLsizei width,
 | |
| 			   GLsizei height)
 | |
| {
 | |
|     fprintf (logFp, "glRenderbufferStorageEXT (0x%x, 0x%x, %d, %d)\n",
 | |
| 	     target, internalformat, width, height);
 | |
|     (*nativeRenderTable->RenderbufferStorageEXT) (target,
 | |
| 						  internalformat,
 | |
| 						  width, height);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetRenderbufferParameterivEXT (GLenum target,
 | |
| 				  GLenum pname,
 | |
| 				  GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetRenderbufferParameterivEXT (0x%x, 0x%x, %p)\n",
 | |
| 	     target, pname, params);
 | |
|     (*nativeRenderTable->GetRenderbufferParameterivEXT) (target,
 | |
| 							 pname,
 | |
| 							 params);
 | |
| }
 | |
| 
 | |
| static GLboolean
 | |
| logIsFramebufferEXT (GLuint framebuffer)
 | |
| {
 | |
|     fprintf (logFp, "glIsFramebufferEXT (%d)\n", framebuffer);
 | |
|     return (*nativeRenderTable->IsFramebufferEXT) (framebuffer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logBindFramebufferEXT (GLenum target,
 | |
| 		       GLuint framebuffer)
 | |
| {
 | |
|     fprintf (logFp, "glBindFramebufferEXT (0x%x, %d)\n", target, framebuffer);
 | |
|     (*nativeRenderTable->BindFramebufferEXT) (target, framebuffer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logDeleteFramebuffersEXT (GLsizei      n,
 | |
| 			  const GLuint *framebuffers)
 | |
| {
 | |
|     fprintf (logFp, "glDeleteFramebuffersEXT (%d, %p)\n", n, framebuffers);
 | |
|     (*nativeRenderTable->DeleteFramebuffersEXT) (n, framebuffers);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGenFramebuffersEXT (GLsizei n,
 | |
| 		       GLuint  *framebuffers)
 | |
| {
 | |
|     fprintf (logFp, "glGenFramebuffersEXT (%d, %p)\n", n, framebuffers);
 | |
|     (*nativeRenderTable->GenFramebuffersEXT) (n, framebuffers);
 | |
| }
 | |
| 
 | |
| static GLenum
 | |
| logCheckFramebufferStatusEXT (GLenum target)
 | |
| {
 | |
|     fprintf (logFp, "glCheckFramebufferStatusEXT (0x%x)\n", target);
 | |
|     return (*nativeRenderTable->CheckFramebufferStatusEXT) (target);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFramebufferTexture1DEXT (GLenum target,
 | |
| 			    GLenum attachment,
 | |
| 			    GLenum textarget,
 | |
| 			    GLuint texture,
 | |
| 			    GLint  level)
 | |
| {
 | |
|     fprintf (logFp, "glFramebufferTexture1DEXT (0x%x, 0x%x, 0x%x, %d, %d)\n",
 | |
| 	     target, attachment, textarget, texture, level);
 | |
|     (*nativeRenderTable->FramebufferTexture1DEXT) (target, attachment,
 | |
| 						   textarget, texture,
 | |
| 						   level);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFramebufferTexture2DEXT (GLenum target,
 | |
| 			    GLenum attachment,
 | |
| 			    GLenum textarget,
 | |
| 			    GLuint texture,
 | |
| 			    GLint  level)
 | |
| {
 | |
|     fprintf (logFp, "glFramebufferTexture2DEXT (0x%x, 0x%x, 0x%x, %d, %d)\n",
 | |
| 	     target, attachment, textarget, texture, level);
 | |
|     (*nativeRenderTable->FramebufferTexture2DEXT) (target, attachment,
 | |
| 						   textarget, texture,
 | |
| 						   level);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFramebufferTexture3DEXT (GLenum target,
 | |
| 			    GLenum attachment,
 | |
| 			    GLenum textarget,
 | |
| 			    GLuint texture,
 | |
| 			    GLint  level,
 | |
| 			    GLint  zoffset)
 | |
| {
 | |
|     fprintf (logFp, "glFramebufferTexture3DEXT (0x%x, 0x%x, 0x%x, "
 | |
| 	     "%d, %d, %d)\n", target, attachment, textarget, texture,
 | |
| 	     level, zoffset);
 | |
|     (*nativeRenderTable->FramebufferTexture3DEXT) (target, attachment,
 | |
| 						   textarget, texture,
 | |
| 						   level, zoffset);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logFramebufferRenderbufferEXT (GLenum target,
 | |
| 			       GLenum attachment,
 | |
| 			       GLenum buffertarget,
 | |
| 			       GLuint renderbuffer)
 | |
| {
 | |
|     fprintf (logFp, "glFramebufferRenderbufferEXT (0x%x, 0x%x, 0x%x, %d)\n",
 | |
| 	     target, attachment, buffertarget, renderbuffer);
 | |
|     (*nativeRenderTable->FramebufferRenderbufferEXT) (target,
 | |
| 						      attachment,
 | |
| 						      buffertarget,
 | |
| 						      renderbuffer);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGetFramebufferAttachmentParameterivEXT (GLenum target,
 | |
| 					   GLenum attach,
 | |
| 					   GLenum pname,
 | |
| 					   GLint  *params)
 | |
| {
 | |
|     fprintf (logFp, "glGetFramebufferAttachmentParameterivEXT (0x%x, "
 | |
| 	     "0x%x, 0x%x, %p)\n", target, attach, pname, params);
 | |
|     (*nativeRenderTable->GetFramebufferAttachmentParameterivEXT) (target,
 | |
| 								  attach,
 | |
| 								  pname,
 | |
| 								  params);
 | |
| }
 | |
| 
 | |
| static void
 | |
| logGenerateMipmapEXT (GLenum target)
 | |
| {
 | |
|     fprintf (logFp, "glGenerateMipmapEXT (0x%x)\n", target);
 | |
|     (*nativeRenderTable->GenerateMipmapEXT) (target);
 | |
| }
 | |
| 
 | |
| static struct _glapi_table __logRenderTable = {
 | |
|     logNewList,
 | |
|     logEndList,
 | |
|     logCallList,
 | |
|     logCallLists,
 | |
|     logDeleteLists,
 | |
|     logGenLists,
 | |
|     logListBase,
 | |
|     logBegin,
 | |
|     logBitmap,
 | |
|     0, /* glColor3b */
 | |
|     logColor3bv,
 | |
|     0, /* glColor3d */
 | |
|     logColor3dv,
 | |
|     0, /* glColor3f */
 | |
|     logColor3fv,
 | |
|     0, /* glColor3i */
 | |
|     logColor3iv,
 | |
|     0, /* glColor3s */
 | |
|     logColor3sv,
 | |
|     0, /* glColor3ub */
 | |
|     logColor3ubv,
 | |
|     0, /* glColor3ui */
 | |
|     logColor3uiv,
 | |
|     0, /* glColor3us */
 | |
|     logColor3usv,
 | |
|     0, /* glColor4b */
 | |
|     logColor4bv,
 | |
|     0, /* glColor4d */
 | |
|     logColor4dv,
 | |
|     0, /* glColor4f */
 | |
|     logColor4fv,
 | |
|     0, /* glColor4i */
 | |
|     logColor4iv,
 | |
|     0, /* glColor4s */
 | |
|     logColor4sv,
 | |
|     0, /* glColor4ub */
 | |
|     logColor4ubv,
 | |
|     0, /* glColor4ui */
 | |
|     logColor4uiv,
 | |
|     0, /* glColor4us */
 | |
|     logColor4usv,
 | |
|     0, /* glEdgeFlag */
 | |
|     logEdgeFlagv,
 | |
|     logEnd,
 | |
|     0, /* glIndexd */
 | |
|     logIndexdv,
 | |
|     0, /* glIndexf */
 | |
|     logIndexfv,
 | |
|     0, /* glIndexi */
 | |
|     logIndexiv,
 | |
|     0, /* glIndexs */
 | |
|     logIndexsv,
 | |
|     0, /* glNormal3b */
 | |
|     logNormal3bv,
 | |
|     0, /* glNormal3d */
 | |
|     logNormal3dv,
 | |
|     0, /* glNormal3f */
 | |
|     logNormal3fv,
 | |
|     0, /* glNormal3i */
 | |
|     logNormal3iv,
 | |
|     0, /* glNormal3s */
 | |
|     logNormal3sv,
 | |
|     0, /* glRasterPos2d */
 | |
|     logRasterPos2dv,
 | |
|     0, /* glRasterPos2f */
 | |
|     logRasterPos2fv,
 | |
|     0, /* glRasterPos2i */
 | |
|     logRasterPos2iv,
 | |
|     0, /* glRasterPos2s */
 | |
|     logRasterPos2sv,
 | |
|     0, /* glRasterPos3d */
 | |
|     logRasterPos3dv,
 | |
|     0, /* glRasterPos3f */
 | |
|     logRasterPos3fv,
 | |
|     0, /* glRasterPos3i */
 | |
|     logRasterPos3iv,
 | |
|     0, /* glRasterPos3s */
 | |
|     logRasterPos3sv,
 | |
|     0, /* glRasterPos4d */
 | |
|     logRasterPos4dv,
 | |
|     0, /* glRasterPos4f */
 | |
|     logRasterPos4fv,
 | |
|     0, /* glRasterPos4i */
 | |
|     logRasterPos4iv,
 | |
|     0, /* glRasterPos4s */
 | |
|     logRasterPos4sv,
 | |
|     0, /* glRectd */
 | |
|     logRectdv,
 | |
|     0, /* glRectf */
 | |
|     logRectfv,
 | |
|     0, /* glRecti */
 | |
|     logRectiv,
 | |
|     0, /* glRects */
 | |
|     logRectsv,
 | |
|     0, /* glTexCoord1d */
 | |
|     logTexCoord1dv,
 | |
|     0, /* glTexCoord1f */
 | |
|     logTexCoord1fv,
 | |
|     0, /* glTexCoord1i */
 | |
|     logTexCoord1iv,
 | |
|     0, /* glTexCoord1s */
 | |
|     logTexCoord1sv,
 | |
|     0, /* glTexCoord2d */
 | |
|     logTexCoord2dv,
 | |
|     0, /* glTexCoord2f */
 | |
|     logTexCoord2fv,
 | |
|     0, /* glTexCoord2i */
 | |
|     logTexCoord2iv,
 | |
|     0, /* glTexCoord2s */
 | |
|     logTexCoord2sv,
 | |
|     0, /* glTexCoord3d */
 | |
|     logTexCoord3dv,
 | |
|     0, /* glTexCoord3f */
 | |
|     logTexCoord3fv,
 | |
|     0, /* glTexCoord3i */
 | |
|     logTexCoord3iv,
 | |
|     0, /* glTexCoord3s */
 | |
|     logTexCoord3sv,
 | |
|     0, /* glTexCoord4d */
 | |
|     logTexCoord4dv,
 | |
|     0, /* glTexCoord4f */
 | |
|     logTexCoord4fv,
 | |
|     0, /* glTexCoord4i */
 | |
|     logTexCoord4iv,
 | |
|     0, /* glTexCoord4s */
 | |
|     logTexCoord4sv,
 | |
|     0, /* glVertex2d */
 | |
|     logVertex2dv,
 | |
|     0, /* glVertex2f */
 | |
|     logVertex2fv,
 | |
|     0, /* glVertex2i */
 | |
|     logVertex2iv,
 | |
|     0, /* glVertex2s */
 | |
|     logVertex2sv,
 | |
|     0, /* glVertex3d */
 | |
|     logVertex3dv,
 | |
|     0, /* glVertex3f */
 | |
|     logVertex3fv,
 | |
|     0, /* glVertex3i */
 | |
|     logVertex3iv,
 | |
|     0, /* glVertex3s */
 | |
|     logVertex3sv,
 | |
|     0, /* glVertex4d */
 | |
|     logVertex4dv,
 | |
|     0, /* glVertex4f */
 | |
|     logVertex4fv,
 | |
|     0, /* glVertex4i */
 | |
|     logVertex4iv,
 | |
|     0, /* glVertex4s */
 | |
|     logVertex4sv,
 | |
|     logClipPlane,
 | |
|     logColorMaterial,
 | |
|     logCullFace,
 | |
|     logFogf,
 | |
|     logFogfv,
 | |
|     logFogi,
 | |
|     logFogiv,
 | |
|     logFrontFace,
 | |
|     logHint,
 | |
|     logLightf,
 | |
|     logLightfv,
 | |
|     logLighti,
 | |
|     logLightiv,
 | |
|     logLightModelf,
 | |
|     logLightModelfv,
 | |
|     logLightModeli,
 | |
|     logLightModeliv,
 | |
|     logLineStipple,
 | |
|     logLineWidth,
 | |
|     logMaterialf,
 | |
|     logMaterialfv,
 | |
|     logMateriali,
 | |
|     logMaterialiv,
 | |
|     logPointSize,
 | |
|     logPolygonMode,
 | |
|     logPolygonStipple,
 | |
|     logScissor,
 | |
|     logShadeModel,
 | |
|     logTexParameterf,
 | |
|     logTexParameterfv,
 | |
|     logTexParameteri,
 | |
|     logTexParameteriv,
 | |
|     logTexImage1D,
 | |
|     logTexImage2D,
 | |
|     logTexEnvf,
 | |
|     logTexEnvfv,
 | |
|     logTexEnvi,
 | |
|     logTexEnviv,
 | |
|     logTexGend,
 | |
|     logTexGendv,
 | |
|     logTexGenf,
 | |
|     logTexGenfv,
 | |
|     logTexGeni,
 | |
|     logTexGeniv,
 | |
|     logFeedbackBuffer,
 | |
|     logSelectBuffer,
 | |
|     logRenderMode,
 | |
|     logInitNames,
 | |
|     logLoadName,
 | |
|     logPassThrough,
 | |
|     logPopName,
 | |
|     logPushName,
 | |
|     logDrawBuffer,
 | |
|     logClear,
 | |
|     logClearAccum,
 | |
|     logClearIndex,
 | |
|     logClearColor,
 | |
|     logClearStencil,
 | |
|     logClearDepth,
 | |
|     logStencilMask,
 | |
|     logColorMask,
 | |
|     logDepthMask,
 | |
|     logIndexMask,
 | |
|     logAccum,
 | |
|     logDisable,
 | |
|     logEnable,
 | |
|     logFinish,
 | |
|     logFlush,
 | |
|     logPopAttrib,
 | |
|     logPushAttrib,
 | |
|     logMap1d,
 | |
|     logMap1f,
 | |
|     logMap2d,
 | |
|     logMap2f,
 | |
|     logMapGrid1d,
 | |
|     logMapGrid1f,
 | |
|     logMapGrid2d,
 | |
|     logMapGrid2f,
 | |
|     0, /* glEvalCoord1d */
 | |
|     logEvalCoord1dv,
 | |
|     0, /* glEvalCoord1f */
 | |
|     logEvalCoord1fv,
 | |
|     0, /* glEvalCoord2d */
 | |
|     logEvalCoord2dv,
 | |
|     0, /* glEvalCoord2f */
 | |
|     logEvalCoord2fv,
 | |
|     logEvalMesh1,
 | |
|     logEvalPoint1,
 | |
|     logEvalMesh2,
 | |
|     logEvalPoint2,
 | |
|     logAlphaFunc,
 | |
|     logBlendFunc,
 | |
|     logLogicOp,
 | |
|     logStencilFunc,
 | |
|     logStencilOp,
 | |
|     logDepthFunc,
 | |
|     logPixelZoom,
 | |
|     logPixelTransferf,
 | |
|     logPixelTransferi,
 | |
|     logPixelStoref,
 | |
|     logPixelStorei,
 | |
|     logPixelMapfv,
 | |
|     logPixelMapuiv,
 | |
|     logPixelMapusv,
 | |
|     logReadBuffer,
 | |
|     logCopyPixels,
 | |
|     logReadPixels,
 | |
|     logDrawPixels,
 | |
|     logGetBooleanv,
 | |
|     logGetClipPlane,
 | |
|     logGetDoublev,
 | |
|     logGetError,
 | |
|     logGetFloatv,
 | |
|     logGetIntegerv,
 | |
|     logGetLightfv,
 | |
|     logGetLightiv,
 | |
|     logGetMapdv,
 | |
|     logGetMapfv,
 | |
|     logGetMapiv,
 | |
|     logGetMaterialfv,
 | |
|     logGetMaterialiv,
 | |
|     logGetPixelMapfv,
 | |
|     logGetPixelMapuiv,
 | |
|     logGetPixelMapusv,
 | |
|     logGetPolygonStipple,
 | |
|     logGetString,
 | |
|     logGetTexEnvfv,
 | |
|     logGetTexEnviv,
 | |
|     logGetTexGendv,
 | |
|     logGetTexGenfv,
 | |
|     logGetTexGeniv,
 | |
|     logGetTexImage,
 | |
|     logGetTexParameterfv,
 | |
|     logGetTexParameteriv,
 | |
|     logGetTexLevelParameterfv,
 | |
|     logGetTexLevelParameteriv,
 | |
|     logIsEnabled,
 | |
|     logIsList,
 | |
|     logDepthRange,
 | |
|     logFrustum,
 | |
|     logLoadIdentity,
 | |
|     logLoadMatrixf,
 | |
|     logLoadMatrixd,
 | |
|     logMatrixMode,
 | |
|     logMultMatrixf,
 | |
|     logMultMatrixd,
 | |
|     logOrtho,
 | |
|     logPopMatrix,
 | |
|     logPushMatrix,
 | |
|     logRotated,
 | |
|     logRotatef,
 | |
|     logScaled,
 | |
|     logScalef,
 | |
|     logTranslated,
 | |
|     logTranslatef,
 | |
|     logViewport,
 | |
|     logArrayElement,
 | |
|     logBindTexture,
 | |
|     logColorPointer,
 | |
|     logDisableClientState,
 | |
|     logDrawArrays,
 | |
|     logDrawElements,
 | |
|     logEdgeFlagPointer,
 | |
|     logEnableClientState,
 | |
|     logIndexPointer,
 | |
|     0, /* glIndexub */
 | |
|     logIndexubv,
 | |
|     logInterleavedArrays,
 | |
|     logNormalPointer,
 | |
|     logPolygonOffset,
 | |
|     logTexCoordPointer,
 | |
|     logVertexPointer,
 | |
|     logAreTexturesResident,
 | |
|     logCopyTexImage1D,
 | |
|     logCopyTexImage2D,
 | |
|     logCopyTexSubImage1D,
 | |
|     logCopyTexSubImage2D,
 | |
|     logDeleteTextures,
 | |
|     logGenTextures,
 | |
|     logGetPointerv,
 | |
|     logIsTexture,
 | |
|     logPrioritizeTextures,
 | |
|     logTexSubImage1D,
 | |
|     logTexSubImage2D,
 | |
|     logPopClientAttrib,
 | |
|     logPushClientAttrib,
 | |
|     logBlendColor,
 | |
|     logBlendEquation,
 | |
|     0, /* glDrawRangeElements */
 | |
|     logColorTable,
 | |
|     logColorTableParameterfv,
 | |
|     logColorTableParameteriv,
 | |
|     logCopyColorTable,
 | |
|     logGetColorTable,
 | |
|     logGetColorTableParameterfv,
 | |
|     logGetColorTableParameteriv,
 | |
|     logColorSubTable,
 | |
|     logCopyColorSubTable,
 | |
|     logConvolutionFilter1D,
 | |
|     logConvolutionFilter2D,
 | |
|     logConvolutionParameterf,
 | |
|     logConvolutionParameterfv,
 | |
|     logConvolutionParameteri,
 | |
|     logConvolutionParameteriv,
 | |
|     logCopyConvolutionFilter1D,
 | |
|     logCopyConvolutionFilter2D,
 | |
|     logGetConvolutionFilter,
 | |
|     logGetConvolutionParameterfv,
 | |
|     logGetConvolutionParameteriv,
 | |
|     logGetSeparableFilter,
 | |
|     logSeparableFilter2D,
 | |
|     logGetHistogram,
 | |
|     logGetHistogramParameterfv,
 | |
|     logGetHistogramParameteriv,
 | |
|     logGetMinmax,
 | |
|     logGetMinmaxParameterfv,
 | |
|     logGetMinmaxParameteriv,
 | |
|     logHistogram,
 | |
|     logMinmax,
 | |
|     logResetHistogram,
 | |
|     logResetMinmax,
 | |
|     logTexImage3D,
 | |
|     logTexSubImage3D,
 | |
|     logCopyTexSubImage3D,
 | |
|     logActiveTextureARB,
 | |
|     logClientActiveTextureARB,
 | |
|     0, /* glMultiTexCoord1dARB */
 | |
|     logMultiTexCoord1dvARB,
 | |
|     0, /* glMultiTexCoord1fARB */
 | |
|     logMultiTexCoord1fvARB,
 | |
|     0, /* glMultiTexCoord1iARB */
 | |
|     logMultiTexCoord1ivARB,
 | |
|     0, /* glMultiTexCoord1sARB */
 | |
|     logMultiTexCoord1svARB,
 | |
|     0, /* glMultiTexCoord2dARB */
 | |
|     logMultiTexCoord2dvARB,
 | |
|     0, /* glMultiTexCoord2fARB */
 | |
|     logMultiTexCoord2fvARB,
 | |
|     0, /* glMultiTexCoord2iARB */
 | |
|     logMultiTexCoord2ivARB,
 | |
|     0, /* glMultiTexCoord2sARB */
 | |
|     logMultiTexCoord2svARB,
 | |
|     0, /* glMultiTexCoord3dARB */
 | |
|     logMultiTexCoord3dvARB,
 | |
|     0, /* glMultiTexCoord3fARB */
 | |
|     logMultiTexCoord3fvARB,
 | |
|     0, /* glMultiTexCoord3iARB */
 | |
|     logMultiTexCoord3ivARB,
 | |
|     0, /* glMultiTexCoord3sARB */
 | |
|     logMultiTexCoord3svARB,
 | |
|     0, /* glMultiTexCoord4dARB */
 | |
|     logMultiTexCoord4dvARB,
 | |
|     0, /* glMultiTexCoord4fARB */
 | |
|     logMultiTexCoord4fvARB,
 | |
|     0, /* glMultiTexCoord4iARB */
 | |
|     logMultiTexCoord4ivARB,
 | |
|     0, /* glMultiTexCoord4sARB */
 | |
|     logMultiTexCoord4svARB,
 | |
|     0, /* glLoadTransposeMatrixfARB */
 | |
|     0, /* glLoadTransposeMatrixdARB */
 | |
|     0, /* glMultTransposeMatrixfARB */
 | |
|     0, /* glMultTransposeMatrixdARB */
 | |
|     logSampleCoverageARB,
 | |
|     0, /* glDrawBuffersARB */
 | |
|     0, /* glPolygonOffsetEXT */
 | |
|     0, /* glGetTexFilterFuncSGIS */
 | |
|     0, /* glTexFilterFuncSGIS */
 | |
|     0, /* glGetHistogramEXT */
 | |
|     0, /* glGetHistogramParameterfvEXT */
 | |
|     0, /* glGetHistogramParameterivEXT */
 | |
|     0, /* glGetMinmaxEXT */
 | |
|     0, /* glGetMinmaxParameterfvEXT */
 | |
|     0, /* glGetMinmaxParameterivEXT */
 | |
|     0, /* glGetConvolutionFilterEXT */
 | |
|     0, /* glGetConvolutionParameterfvEXT */
 | |
|     0, /* glGetConvolutionParameterivEXT */
 | |
|     0, /* glGetSeparableFilterEXT */
 | |
|     0, /* glGetColorTableSGI */
 | |
|     0, /* glGetColorTableParameterfvSGI */
 | |
|     0, /* glGetColorTableParameterivSGI */
 | |
|     0, /* glPixelTexGenSGIX */
 | |
|     0, /* glPixelTexGenParameteriSGIS */
 | |
|     0, /* glPixelTexGenParameterivSGIS */
 | |
|     0, /* glPixelTexGenParameterfSGIS */
 | |
|     0, /* glPixelTexGenParameterfvSGIS */
 | |
|     0, /* glGetPixelTexGenParameterivSGIS */
 | |
|     0, /* glGetPixelTexGenParameterfvSGIS */
 | |
|     0, /* glTexImage4DSGIS */
 | |
|     0, /* glTexSubImage4DSGIS */
 | |
|     logAreTexturesResidentEXT,
 | |
|     logGenTexturesEXT,
 | |
|     logIsTextureEXT,
 | |
|     0, /* glDetailTexFuncSGIS */
 | |
|     0, /* glGetDetailTexFuncSGIS */
 | |
|     0, /* glSharpenTexFuncSGIS */
 | |
|     0, /* glGetSharpenTexFuncSGIS */
 | |
|     logSampleMaskSGIS,
 | |
|     logSamplePatternSGIS,
 | |
|     0, /* glColorPointerEXT */
 | |
|     0, /* glEdgeFlagPointerEXT */
 | |
|     0, /* glIndexPointerEXT */
 | |
|     0, /* glNormalPointerEXT */
 | |
|     0, /* glTexCoordPointerEXT */
 | |
|     0, /* glVertexPointerEXT */
 | |
|     0, /* glSpriteParameterfSGIX */
 | |
|     0, /* glSpriteParameterfvSGIX */
 | |
|     0, /* glSpriteParameteriSGIX */
 | |
|     0, /* glSpriteParameterivSGIX */
 | |
|     logPointParameterfEXT,
 | |
|     logPointParameterfvEXT,
 | |
|     0, /* glGetInstrumentsSGIX */
 | |
|     0, /* glInstrumentsBufferSGIX */
 | |
|     0, /* glPollInstrumentsSGIX */
 | |
|     0, /* glReadInstrumentsSGIX */
 | |
|     0, /* glStartInstrumentsSGIX */
 | |
|     0, /* glStopInstrumentsSGIX */
 | |
|     0, /* glFrameZoomSGIX */
 | |
|     0, /* glTagSampleBufferSGIX */
 | |
|     0, /* glReferencePlaneSGIX */
 | |
|     0, /* glFlushRasterSGIX */
 | |
|     0, /* glGetListParameterfvSGIX */
 | |
|     0, /* glGetListParameterivSGIX */
 | |
|     0, /* glListParameterfSGIX */
 | |
|     0, /* glListParameterfvSGIX */
 | |
|     0, /* glListParameteriSGIX */
 | |
|     0, /* glListParameterivSGIX */
 | |
|     0, /* glFragmentColorMaterialSGIX */
 | |
|     0, /* glFragmentLightfSGIX */
 | |
|     0, /* glFragmentLightfvSGIX */
 | |
|     0, /* glFragmentLightiSGIX */
 | |
|     0, /* glFragmentLightivSGIX */
 | |
|     0, /* glFragmentLightModelfSGIX */
 | |
|     0, /* glFragmentLightModelfvSGIX */
 | |
|     0, /* glFragmentLightModeliSGIX */
 | |
|     0, /* glFragmentLightModelivSGIX */
 | |
|     0, /* glFragmentMaterialfSGIX */
 | |
|     0, /* glFragmentMaterialfvSGIX */
 | |
|     0, /* glFragmentMaterialiSGIX */
 | |
|     0, /* glFragmentMaterialivSGIX */
 | |
|     0, /* glGetFragmentLightfvSGIX */
 | |
|     0, /* glGetFragmentLightivSGIX */
 | |
|     0, /* glGetFragmentMaterialfvSGIX */
 | |
|     0, /* glGetFragmentMaterialivSGIX */
 | |
|     0, /* glLightEnviSGIX */
 | |
|     0, /* glVertexWeightfEXT */
 | |
|     0, /* glVertexWeightfvEXT */
 | |
|     0, /* glVertexWeightPointerEXT */
 | |
|     0, /* glFlushVertexArrayRangeNV */
 | |
|     0, /* glVertexArrayRangeNV */
 | |
|     0, /* glCombinerParameterfvNV */
 | |
|     0, /* glCombinerParameterfNV */
 | |
|     0, /* glCombinerParameterivNV */
 | |
|     0, /* glCombinerParameteriNV */
 | |
|     0, /* glCombinerInputNV */
 | |
|     0, /* glCombinerOutputNV */
 | |
|     0, /* glFinalCombinerInputNV */
 | |
|     0, /* glGetCombinerInputParameterfvNV */
 | |
|     0, /* glGetCombinerInputParameterivNV */
 | |
|     0, /* glGetCombinerOutputParameterfvNV */
 | |
|     0, /* glGetCombinerOutputParameterivNV */
 | |
|     0, /* glGetFinalCombinerInputParameterfvNV */
 | |
|     0, /* glGetFinalCombinerInputParameterivNV */
 | |
|     0, /* glResizeBuffersMESA */
 | |
|     0, /* glWindowPos2dMESA */
 | |
|     0, /* glWindowPos2dvMESA */
 | |
|     0, /* glWindowPos2fMESA */
 | |
|     0, /* glWindowPos2fvMESA */
 | |
|     0, /* glWindowPos2iMESA */
 | |
|     0, /* glWindowPos2ivMESA */
 | |
|     0, /* glWindowPos2sMESA */
 | |
|     0, /* glWindowPos2svMESA */
 | |
|     0, /* glWindowPos3dMESA */
 | |
|     0, /* glWindowPos3dvMESA */
 | |
|     logWindowPos3fMESA,
 | |
|     0, /* glWindowPos3fvMESA */
 | |
|     0, /* glWindowPos3iMESA */
 | |
|     0, /* glWindowPos3ivMESA */
 | |
|     0, /* glWindowPos3sMESA */
 | |
|     0, /* glWindowPos3svMESA */
 | |
|     0, /* glWindowPos4dMESA */
 | |
|     0, /* glWindowPos4dvMESA */
 | |
|     0, /* glWindowPos4fMESA */
 | |
|     0, /* glWindowPos4fvMESA */
 | |
|     0, /* glWindowPos4iMESA */
 | |
|     0, /* glWindowPos4ivMESA */
 | |
|     0, /* glWindowPos4sMESA */
 | |
|     0, /* glWindowPos4svMESA */
 | |
|     logBlendFuncSeparateEXT,
 | |
|     0, /* glIndexMaterialEXT */
 | |
|     0, /* glIndexFuncEXT */
 | |
|     0, /* glLockArraysEXT */
 | |
|     0, /* glUnlockArraysEXT */
 | |
|     0, /* glCullParameterdvEXT */
 | |
|     0, /* glCullParameterfvEXT */
 | |
|     0, /* glHintPGI */
 | |
|     0, /* glFogCoordfEXT */
 | |
|     logFogCoordfvEXT,
 | |
|     0, /* glFogCoorddEXT */
 | |
|     logFogCoorddvEXT,
 | |
|     logFogCoordPointerEXT,
 | |
|     0, /* glGetColorTableEXT */
 | |
|     0, /* glGetColorTableParameterivEXT */
 | |
|     0, /* glGetColorTableParameterfvEXT */
 | |
|     0, /* glTbufferMask3DFX */
 | |
|     0, /* glCompressedTexImage3DARB */
 | |
|     0, /* glCompressedTexImage2DARB */
 | |
|     0, /* glCompressedTexImage1DARB */
 | |
|     0, /* glCompressedTexSubImage3DARB */
 | |
|     0, /* glCompressedTexSubImage2DARB */
 | |
|     0, /* glCompressedTexSubImage1DARB */
 | |
|     0, /* glGetCompressedTexImageARB */
 | |
|     0, /* glSecondaryColor3bEXT */
 | |
|     logSecondaryColor3bvEXT,
 | |
|     0, /* glSecondaryColor3dEXT */
 | |
|     logSecondaryColor3dvEXT,
 | |
|     0, /* glSecondaryColor3fEXT */
 | |
|     logSecondaryColor3fvEXT,
 | |
|     0, /* glSecondaryColor3iEXT */
 | |
|     logSecondaryColor3ivEXT,
 | |
|     0, /* glSecondaryColor3sEXT */
 | |
|     logSecondaryColor3svEXT,
 | |
|     0, /* glSecondaryColor3ubEXT */
 | |
|     logSecondaryColor3ubvEXT,
 | |
|     0, /* glSecondaryColor3uiEXT */
 | |
|     logSecondaryColor3uivEXT,
 | |
|     0, /* glSecondaryColor3usEXT */
 | |
|     logSecondaryColor3usvEXT,
 | |
|     logSecondaryColorPointerEXT,
 | |
|     0, /* glAreProgramsResidentNV */
 | |
|     0, /* glBindProgramNV */
 | |
|     0, /* glDeleteProgramsNV */
 | |
|     0, /* glExecuteProgramNV */
 | |
|     0, /* glGenProgramsNV */
 | |
|     0, /* glGetProgramParameterdvNV */
 | |
|     0, /* glGetProgramParameterfvNV */
 | |
|     0, /* glGetProgramivNV */
 | |
|     0, /* glGetProgramStringNV */
 | |
|     0, /* glGetTrackMatrixivNV */
 | |
|     0, /* glGetVertexAttribdvARB */
 | |
|     0, /* glGetVertexAttribfvARB */
 | |
|     0, /* glGetVertexAttribivARB */
 | |
|     0, /* glGetVertexAttribPointervNV */
 | |
|     0, /* glIsProgramNV */
 | |
|     0, /* glLoadProgramNV */
 | |
|     0, /* glProgramParameter4dNV */
 | |
|     0, /* glProgramParameter4dvNV */
 | |
|     0, /* glProgramParameter4fNV */
 | |
|     0, /* glProgramParameter4fvNV */
 | |
|     0, /* glProgramParameters4dvNV */
 | |
|     0, /* glProgramParameters4fvNV */
 | |
|     0, /* glRequestResidentProgramsNV */
 | |
|     0, /* glTrackMatrixNV */
 | |
|     0, /* glVertexAttribPointerNV */
 | |
|     0, /* glVertexAttrib1dARB */
 | |
|     0, /* glVertexAttrib1dvARB */
 | |
|     0, /* glVertexAttrib1fARB */
 | |
|     0, /* glVertexAttrib1fvARB */
 | |
|     0, /* glVertexAttrib1sARB */
 | |
|     0, /* glVertexAttrib1svARB */
 | |
|     0, /* glVertexAttrib2dARB */
 | |
|     0, /* glVertexAttrib2dvARB */
 | |
|     0, /* glVertexAttrib2fARB */
 | |
|     0, /* glVertexAttrib2fvARB */
 | |
|     0, /* glVertexAttrib2sARB */
 | |
|     0, /* glVertexAttrib2svARB */
 | |
|     0, /* glVertexAttrib3dARB */
 | |
|     0, /* glVertexAttrib3dvARB */
 | |
|     0, /* glVertexAttrib3fARB */
 | |
|     0, /* glVertexAttrib3fvARB */
 | |
|     0, /* glVertexAttrib3sARB */
 | |
|     0, /* glVertexAttrib3svARB */
 | |
|     0, /* glVertexAttrib4dARB */
 | |
|     0, /* glVertexAttrib4dvARB */
 | |
|     0, /* glVertexAttrib4fARB */
 | |
|     0, /* glVertexAttrib4fvARB */
 | |
|     0, /* glVertexAttrib4sARB */
 | |
|     0, /* glVertexAttrib4svARB */
 | |
|     0, /* glVertexAttrib4NubARB */
 | |
|     0, /* glVertexAttrib4NubvARB */
 | |
|     0, /* glVertexAttribs1dvNV */
 | |
|     0, /* glVertexAttribs1fvNV */
 | |
|     0, /* glVertexAttribs1svNV */
 | |
|     0, /* glVertexAttribs2dvNV */
 | |
|     0, /* glVertexAttribs2fvNV */
 | |
|     0, /* glVertexAttribs2svNV */
 | |
|     0, /* glVertexAttribs3dvNV */
 | |
|     0, /* glVertexAttribs3fvNV */
 | |
|     0, /* glVertexAttribs3svNV */
 | |
|     0, /* glVertexAttribs4dvNV */
 | |
|     0, /* glVertexAttribs4fvNV */
 | |
|     0, /* glVertexAttribs4svNV */
 | |
|     0, /* glVertexAttribs4ubvNV */
 | |
|     logPointParameteriNV,
 | |
|     logPointParameterivNV,
 | |
|     0, /* glMultiDrawArraysEXT */
 | |
|     0, /* glMultiDrawElementsEXT */
 | |
|     logActiveStencilFaceEXT,
 | |
|     0, /* glDeleteFencesNV */
 | |
|     0, /* glGenFencesNV */
 | |
|     0, /* glIsFenceNV */
 | |
|     0, /* glTestFenceNV */
 | |
|     0, /* glGetFenceivNV */
 | |
|     0, /* glFinishFenceNV */
 | |
|     0, /* glSetFenceNV */
 | |
|     0, /* glVertexAttrib4bvARB */
 | |
|     0, /* glVertexAttrib4ivARB */
 | |
|     0, /* glVertexAttrib4ubvARB */
 | |
|     0, /* glVertexAttrib4usvARB */
 | |
|     0, /* glVertexAttrib4uivARB */
 | |
|     0, /* glVertexAttrib4NbvARB */
 | |
|     0, /* glVertexAttrib4NsvARB */
 | |
|     0, /* glVertexAttrib4NivARB */
 | |
|     0, /* glVertexAttrib4NusvARB */
 | |
|     0, /* glVertexAttrib4NuivARB */
 | |
|     0, /* glVertexAttribPointerARB */
 | |
|     0, /* glEnableVertexAttribArrayARB */
 | |
|     0, /* glDisableVertexAttribArrayARB */
 | |
|     0, /* glProgramStringARB */
 | |
|     0, /* glProgramEnvParameter4dARB */
 | |
|     0, /* glProgramEnvParameter4dvARB */
 | |
|     0, /* glProgramEnvParameter4fARB */
 | |
|     0, /* glProgramEnvParameter4fvARB */
 | |
|     0, /* glProgramLocalParameter4dARB */
 | |
|     0, /* glProgramLocalParameter4dvARB */
 | |
|     0, /* glProgramLocalParameter4fARB */
 | |
|     0, /* glProgramLocalParameter4fvARB */
 | |
|     0, /* glGetProgramEnvParameterdvARB */
 | |
|     0, /* glGetProgramEnvParameterfvARB */
 | |
|     0, /* glGetProgramLocalParameterdvARB */
 | |
|     0, /* glGetProgramLocalParameterfvARB */
 | |
|     0, /* glGetProgramivARB */
 | |
|     0, /* glGetProgramStringARB */
 | |
|     0, /* glProgramNamedParameter4fNV */
 | |
|     0, /* glProgramNamedParameter4dNV */
 | |
|     0, /* glProgramNamedParameter4fvNV */
 | |
|     0, /* glProgramNamedParameter4dvNV */
 | |
|     0, /* glGetProgramNamedParameterfvNV */
 | |
|     0, /* glGetProgramNamedParameterdvNV */
 | |
|     0, /* glBindBufferARB */
 | |
|     0, /* glBufferDataARB */
 | |
|     0, /* glBufferSubDataARB */
 | |
|     0, /* glDeleteBuffersARB */
 | |
|     0, /* glGenBuffersARB */
 | |
|     0, /* glGetBufferParameterivARB */
 | |
|     0, /* glGetBufferPointervARB */
 | |
|     0, /* glGetBufferSubDataARB */
 | |
|     0, /* glIsBufferARB */
 | |
|     0, /* glMapBufferARB */
 | |
|     0, /* glUnmapBufferARB */
 | |
|     0, /* glDepthBoundsEXT */
 | |
|     0, /* glGenQueriesARB */
 | |
|     0, /* glDeleteQueriesARB */
 | |
|     0, /* glIsQueryARB */
 | |
|     0, /* glBeginQueryARB */
 | |
|     0, /* glEndQueryARB */
 | |
|     0, /* glGetQueryivARB */
 | |
|     0, /* glGetQueryObjectivARB */
 | |
|     0, /* glGetQueryObjectuivARB */
 | |
|     0, /* glMultiModeDrawArraysIBM */
 | |
|     0, /* glMultiModeDrawElementsIBM */
 | |
|     0, /* glBlendEquationSeparateEXT */
 | |
|     0, /* glDeleteObjectARB */
 | |
|     0, /* glGetHandleARB */
 | |
|     0, /* glDetachObjectARB */
 | |
|     0, /* glCreateShaderObjectARB */
 | |
|     0, /* glShaderSourceARB */
 | |
|     0, /* glCompileShaderARB */
 | |
|     0, /* glCreateProgramObjectARB */
 | |
|     0, /* glAttachObjectARB */
 | |
|     0, /* glLinkProgramARB */
 | |
|     0, /* glUseProgramObjectARB */
 | |
|     0, /* glValidateProgramARB */
 | |
|     0, /* glUniform1fARB */
 | |
|     0, /* glUniform2fARB */
 | |
|     0, /* glUniform3fARB */
 | |
|     0, /* glUniform4fARB */
 | |
|     0, /* glUniform1iARB */
 | |
|     0, /* glUniform2iARB */
 | |
|     0, /* glUniform3iARB */
 | |
|     0, /* glUniform4iARB */
 | |
|     0, /* glUniform1fvARB */
 | |
|     0, /* glUniform2fvARB */
 | |
|     0, /* glUniform3fvARB */
 | |
|     0, /* glUniform4fvARB */
 | |
|     0, /* glUniform1ivARB */
 | |
|     0, /* glUniform2ivARB */
 | |
|     0, /* glUniform3ivARB */
 | |
|     0, /* glUniform4ivARB */
 | |
|     0, /* glUniformMatrix2fvARB */
 | |
|     0, /* glUniformMatrix3fvARB */
 | |
|     0, /* glUniformMatrix4fvARB */
 | |
|     0, /* glGetObjectParameterfvARB */
 | |
|     0, /* glGetObjectParameterivARB */
 | |
|     0, /* glGetInfoLogARB */
 | |
|     0, /* glGetAttachedObjectsARB */
 | |
|     0, /* glGetUniformLocationARB */
 | |
|     0, /* glGetActiveUniformARB */
 | |
|     0, /* glGetUniformfvARB */
 | |
|     0, /* glGetUniformivARB */
 | |
|     0, /* glGetShaderSourceARB */
 | |
|     0, /* glBindAttribLocationARB */
 | |
|     0, /* glGetActiveAttribARB */
 | |
|     0, /* glGetAttribLocationARB */
 | |
|     0, /* glGetVertexAttribdvNV */
 | |
|     0, /* glGetVertexAttribfvNV */
 | |
|     0, /* glGetVertexAttribivNV */
 | |
|     0, /* glVertexAttrib1dNV */
 | |
|     0, /* glVertexAttrib1dvNV */
 | |
|     0, /* glVertexAttrib1fNV */
 | |
|     0, /* glVertexAttrib1fvNV */
 | |
|     0, /* glVertexAttrib1sNV */
 | |
|     0, /* glVertexAttrib1svNV */
 | |
|     0, /* glVertexAttrib2dNV */
 | |
|     0, /* glVertexAttrib2dvNV */
 | |
|     0, /* glVertexAttrib2fNV */
 | |
|     0, /* glVertexAttrib2fvNV */
 | |
|     0, /* glVertexAttrib2sNV */
 | |
|     0, /* glVertexAttrib2svNV */
 | |
|     0, /* glVertexAttrib3dNV */
 | |
|     0, /* glVertexAttrib3dvNV */
 | |
|     0, /* glVertexAttrib3fNV */
 | |
|     0, /* glVertexAttrib3fvNV */
 | |
|     0, /* glVertexAttrib3sNV */
 | |
|     0, /* glVertexAttrib3svNV */
 | |
|     0, /* glVertexAttrib4dNV */
 | |
|     0, /* glVertexAttrib4dvNV */
 | |
|     0, /* glVertexAttrib4fNV */
 | |
|     0, /* glVertexAttrib4fvNV */
 | |
|     0, /* glVertexAttrib4sNV */
 | |
|     0, /* glVertexAttrib4svNV */
 | |
|     0, /* glVertexAttrib4ubNV */
 | |
|     0, /* glVertexAttrib4ubvNV */
 | |
|     0, /* glGenFragmentShadersATI */
 | |
|     0, /* glBindFragmentShaderATI */
 | |
|     0, /* glDeleteFragmentShaderATI */
 | |
|     0, /* glBeginFragmentShaderATI */
 | |
|     0, /* glEndFragmentShaderATI */
 | |
|     0, /* glPassTexCoordATI */
 | |
|     0, /* glSampleMapATI */
 | |
|     0, /* glColorFragmentOp1ATI */
 | |
|     0, /* glColorFragmentOp2ATI */
 | |
|     0, /* glColorFragmentOp3ATI */
 | |
|     0, /* glAlphaFragmentOp1ATI */
 | |
|     0, /* glAlphaFragmentOp2ATI */
 | |
|     0, /* glAlphaFragmentOp3ATI */
 | |
|     0, /* glSetFragmentShaderConstantATI */
 | |
|     logIsRenderbufferEXT,
 | |
|     logBindRenderbufferEXT,
 | |
|     logDeleteRenderbuffersEXT,
 | |
|     logGenRenderbuffersEXT,
 | |
|     logRenderbufferStorageEXT,
 | |
|     logGetRenderbufferParameterivEXT,
 | |
|     logIsFramebufferEXT,
 | |
|     logBindFramebufferEXT,
 | |
|     logDeleteFramebuffersEXT,
 | |
|     logGenFramebuffersEXT,
 | |
|     logCheckFramebufferStatusEXT,
 | |
|     logFramebufferTexture1DEXT,
 | |
|     logFramebufferTexture2DEXT,
 | |
|     logFramebufferTexture3DEXT,
 | |
|     logFramebufferRenderbufferEXT,
 | |
|     logGetFramebufferAttachmentParameterivEXT,
 | |
|     logGenerateMipmapEXT,
 | |
|     0, /* glStencilFuncSeparate */
 | |
|     0, /* glStencilOpSeparate */
 | |
|     0, /* glStencilMaskSeparate */
 | |
|     0, /* glGetQueryObjecti64vEXT */
 | |
|     0  /* glGetQueryObjectui64vEXT */
 | |
| };
 | |
| 
 | |
| static Bool isCurrent = FALSE;
 | |
| 
 | |
| static void (*flushContextCache) (void);
 | |
| static void (*setRenderTables)   (struct _glapi_table *table);
 | |
| 
 | |
| static void
 | |
| GlxLogFlushContextCache (void)
 | |
| {
 | |
|     if (isCurrent)
 | |
|     {
 | |
| 	fprintf (logFp, "LOSE CURRENT\n");
 | |
| 	isCurrent = FALSE;
 | |
|     }
 | |
| 
 | |
|     (*flushContextCache) ();
 | |
| }
 | |
| 
 | |
| static void
 | |
| GlxLogSetRenderTables (struct _glapi_table *table)
 | |
| {
 | |
|     nativeRenderTable = table;
 | |
| 
 | |
|     if (table)
 | |
|     {
 | |
| 	fprintf (logFp, "FORCE CURRENT\n");
 | |
| 	isCurrent = TRUE;
 | |
| 
 | |
| 	(*setRenderTables) (&__logRenderTable);
 | |
|     }
 | |
|     else
 | |
|     {
 | |
| 	(*setRenderTables) (0);
 | |
|     }
 | |
| }
 | |
| 
 | |
| void
 | |
| xglInitGlxLog (void)
 | |
| {
 | |
|     if (logFp)
 | |
| 	return;
 | |
| 
 | |
|     if (__xglGLXLogFp)
 | |
|     {
 | |
| 	logFp = __xglGLXLogFp;
 | |
| 
 | |
| 	flushContextCache = __xglGLXFunc.flushContextCache;
 | |
| 	setRenderTables   = __xglGLXFunc.setRenderTables;
 | |
| 
 | |
| 	__xglGLXFunc.flushContextCache = GlxLogFlushContextCache;
 | |
| 	__xglGLXFunc.setRenderTables   = GlxLogSetRenderTables;
 | |
|     }
 | |
| }
 | |
| 
 | |
| #endif
 |