home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 5 / MA_Cover_5.iso / ppc / mesa / src / pointers.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-31  |  19.7 KB  |  567 lines

  1. /* $Id: pointers.c,v 1.20 1997/10/29 01:29:09 brianp Exp $ */
  2.  
  3. /*
  4.  * Mesa 3-D graphics library
  5.  * Version:  2.5
  6.  * Copyright (C) 1995-1997  Brian Paul
  7.  *
  8.  * This library is free software; you can redistribute it and/or
  9.  * modify it under the terms of the GNU Library General Public
  10.  * License as published by the Free Software Foundation; either
  11.  * version 2 of the License, or (at your option) any later version.
  12.  *
  13.  * This library is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  * Library General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU Library General Public
  19.  * License along with this library; if not, write to the Free
  20.  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  */
  22.  
  23.  
  24. /*
  25.  * $Log: pointers.c,v $
  26.  * Revision 1.20  1997/10/29 01:29:09  brianp
  27.  * added GL_EXT_point_parameters extension from Daniel Barrero
  28.  *
  29.  * Revision 1.19  1997/09/27 00:16:30  brianp
  30.  * added GL_EXT_paletted_texture extension
  31.  *
  32.  * Revision 1.18  1997/07/24 01:23:44  brianp
  33.  * changed precompiled header symbol from PCH to PC_HEADER
  34.  *
  35.  * Revision 1.17  1997/06/20 02:50:55  brianp
  36.  * added Color4ubv API pointer
  37.  *
  38.  * Revision 1.16  1997/05/28 03:26:02  brianp
  39.  * added precompiled header (PCH) support
  40.  *
  41.  * Revision 1.15  1997/05/24 12:08:25  brianp
  42.  * broke gl_init_api_function_pointers() into sub-functions
  43.  *
  44.  * Revision 1.14  1997/04/24 01:50:53  brianp
  45.  * optimized glColor3f, glColor3fv, glColor4fv
  46.  *
  47.  * Revision 1.13  1997/04/21 01:22:27  brianp
  48.  * added gl_save_Rectf()
  49.  *
  50.  * Revision 1.12  1997/04/20 20:28:49  brianp
  51.  * replaced abort() with gl_problem()
  52.  *
  53.  * Revision 1.11  1997/04/20 16:18:15  brianp
  54.  * added glOrtho and glFrustum API pointers
  55.  *
  56.  * Revision 1.10  1997/04/16 23:55:33  brianp
  57.  * added optimized glTexCoord2f code
  58.  *
  59.  * Revision 1.9  1997/04/14 22:18:23  brianp
  60.  * added optimized glVertex3fv code
  61.  *
  62.  * Revision 1.8  1997/04/14 02:00:39  brianp
  63.  * #include "texstate.h" instead of "texture.h"
  64.  *
  65.  * Revision 1.7  1997/04/12 12:33:12  brianp
  66.  * added #include "rect.h"
  67.  *
  68.  * Revision 1.6  1997/04/07 02:57:13  brianp
  69.  * added API.Vertex[23] functions
  70.  *
  71.  * Revision 1.5  1997/04/01 04:25:18  brianp
  72.  * added pointer for LoadIdentity, changed #include's
  73.  *
  74.  * Revision 1.4  1997/02/10 19:49:29  brianp
  75.  * added glResizeBuffersMESA() code
  76.  *
  77.  * Revision 1.3  1997/02/09 18:50:42  brianp
  78.  * added GL_EXT_texture3D support
  79.  *
  80.  * Revision 1.2  1996/10/16 00:52:22  brianp
  81.  * gl_initialize_api_function_pointers() now gl_init_api_function_pointers()
  82.  *
  83.  * Revision 1.1  1996/09/13 01:38:16  brianp
  84.  * Initial revision
  85.  *
  86.  */
  87.  
  88.  
  89. #ifdef PC_HEADER
  90. #include "all.h"
  91. #else
  92. #include <stdio.h>
  93. #include <stdlib.h>
  94. #include <string.h>
  95. #include "accum.h"
  96. #include "alpha.h"
  97. #include "attrib.h"
  98. #include "bitmap.h"
  99. #include "blend.h"
  100. #include "clip.h"
  101. #include "context.h"
  102. #include "colortab.h"
  103. #include "copypix.h"
  104. #include "depth.h"
  105. #include "drawpix.h"
  106. #include "enable.h"
  107. #include "eval.h"
  108. #include "feedback.h"
  109. #include "fog.h"
  110. #include "get.h"
  111. #include "light.h"
  112. #include "lines.h"
  113. #include "dlist.h"
  114. #include "logic.h"
  115. #include "macros.h"
  116. #include "masking.h"
  117. #include "matrix.h"
  118. #include "misc.h"
  119. #include "pixel.h"
  120. #include "points.h"
  121. #include "polygon.h"
  122. #include "rastpos.h"
  123. #include "readpix.h"
  124. #include "rect.h"
  125. #include "scissor.h"
  126. #include "stencil.h"
  127. #include "teximage.h"
  128. #include "texobj.h"
  129. #include "texstate.h"
  130. #include "types.h"
  131. #include "varray.h"
  132. #include "vbfill.h"
  133. #include "winpos.h"
  134. #endif
  135.  
  136.  
  137.  
  138. /*
  139.  * For debugging
  140.  */
  141. static void check_pointers( struct gl_api_table *table )
  142. {
  143.    void **entry;
  144.    int numentries = sizeof( struct gl_api_table ) / sizeof(void*);
  145.    int i;
  146.  
  147.    entry = (void **) table;
  148.  
  149.    for (i=0;i<numentries;i++) {
  150.       if (!entry[i]) {
  151.          printf("found uninitialized function pointer at %d\n", i );
  152.          gl_problem(NULL, "Missing pointer in pointers.c");
  153.          /*abort()*/
  154.       }
  155.    }
  156. }
  157.  
  158.  
  159. /*
  160.  * Assign all the pointers in 'table' to point to Mesa's immediate-mode
  161.  * execution functions.
  162.  */
  163. static void init_exec_pointers( struct gl_api_table *table )
  164. {
  165.    table->Accum = gl_Accum;
  166.    table->AlphaFunc = gl_AlphaFunc;
  167.    table->AreTexturesResident = gl_AreTexturesResident;
  168.    table->ArrayElement = gl_ArrayElement;
  169.    table->Begin = gl_Begin;
  170.    table->BindTexture = gl_BindTexture;
  171.    table->Bitmap = gl_Bitmap;
  172.    table->BlendColor = gl_BlendColor;
  173.    table->BlendEquation = gl_BlendEquation;
  174.    table->BlendFunc = gl_BlendFunc;
  175.    table->CallList = gl_CallList;
  176.    table->CallLists = gl_CallLists;
  177.    table->Clear = gl_Clear;
  178.    table->ClearAccum = gl_ClearAccum;
  179.    table->ClearColor = gl_ClearColor;
  180.    table->ClearDepth = gl_ClearDepth;
  181.    table->ClearIndex = gl_ClearIndex;
  182.    table->ClearStencil = gl_ClearStencil;
  183.    table->ClipPlane = gl_ClipPlane;
  184.    table->Color3f = gl_Color3f;
  185.    table->Color3fv = gl_Color3fv;
  186.    table->Color4f = gl_Color4f;
  187.    table->Color4fv = gl_Color4fv;
  188.    table->Color4ub = gl_Color4ub;
  189.    table->Color4ubv = gl_Color4ubv;
  190.    table->ColorMask = gl_ColorMask;
  191.    table->ColorMaterial = gl_ColorMaterial;
  192.    table->ColorPointer = gl_ColorPointer;
  193.    table->ColorTable = gl_ColorTable;
  194.    table->ColorSubTable = gl_ColorSubTable;
  195.    table->CopyPixels = gl_CopyPixels;
  196.    table->CopyTexImage1D = gl_CopyTexImage1D;
  197.    table->CopyTexImage2D = gl_CopyTexImage2D;
  198.    table->CopyTexSubImage1D = gl_CopyTexSubImage1D;
  199.    table->CopyTexSubImage2D = gl_CopyTexSubImage2D;
  200.    table->CopyTexSubImage3DEXT = gl_CopyTexSubImage3DEXT;
  201.    table->CullFace = gl_CullFace;
  202.    table->DeleteLists = gl_DeleteLists;
  203.    table->DeleteTextures = gl_DeleteTextures;
  204.    table->DepthFunc = gl_DepthFunc;
  205.    table->DepthMask = gl_DepthMask;
  206.    table->DepthRange = gl_DepthRange;
  207.    table->Disable = gl_Disable;
  208.    table->DisableClientState = gl_DisableClientState;
  209.    table->DrawArrays = gl_DrawArrays;
  210.    table->DrawBuffer = gl_DrawBuffer;
  211.    table->DrawElements = gl_DrawElements;
  212.    table->DrawPixels = gl_DrawPixels;
  213.    table->EdgeFlag = gl_EdgeFlag;
  214.    table->EdgeFlagPointer = gl_EdgeFlagPointer;
  215.    table->Enable = gl_Enable;
  216.    table->EnableClientState = gl_EnableClientState;
  217.    table->End = gl_End;
  218.    table->EndList = gl_EndList;
  219.    table->EvalCoord1f = gl_EvalCoord1f;
  220.    table->EvalCoord2f = gl_EvalCoord2f;
  221.    table->EvalMesh1 = gl_EvalMesh1;
  222.    table->EvalMesh2 = gl_EvalMesh2;
  223.    table->EvalPoint1 = gl_EvalPoint1;
  224.    table->EvalPoint2 = gl_EvalPoint2;
  225.    table->FeedbackBuffer = gl_FeedbackBuffer;
  226.    table->Finish = gl_Finish;
  227.    table->Flush = gl_Flush;
  228.    table->Fogfv = gl_Fogfv;
  229.    table->FrontFace = gl_FrontFace;
  230.    table->Frustum = gl_Frustum;
  231.    table->GenLists = gl_GenLists;
  232.    table->GenTextures = gl_GenTextures;
  233.    table->GetBooleanv = gl_GetBooleanv;
  234.    table->GetClipPlane = gl_GetClipPlane;
  235.    table->GetColorTable = gl_GetColorTable;
  236.    table->GetColorTableParameteriv = gl_GetColorTableParameteriv;
  237.    table->GetDoublev = gl_GetDoublev;
  238.    table->GetError = gl_GetError;
  239.    table->GetFloatv = gl_GetFloatv;
  240.    table->GetIntegerv = gl_GetIntegerv;
  241.    table->GetPointerv = gl_GetPointerv;
  242.    table->GetLightfv = gl_GetLightfv;
  243.    table->GetLightiv = gl_GetLightiv;
  244.    table->GetMapdv = gl_GetMapdv;
  245.    table->GetMapfv = gl_GetMapfv;
  246.    table->GetMapiv = gl_GetMapiv;
  247.    table->GetMaterialfv = gl_GetMaterialfv;
  248.    table->GetMaterialiv = gl_GetMaterialiv;
  249.    table->GetPixelMapfv = gl_GetPixelMapfv;
  250.    table->GetPixelMapuiv = gl_GetPixelMapuiv;
  251.    table->GetPixelMapusv = gl_GetPixelMapusv;
  252.    table->GetPolygonStipple = gl_GetPolygonStipple;
  253.    table->GetString = gl_GetString;
  254.    table->GetTexEnvfv = gl_GetTexEnvfv;
  255.    table->GetTexEnviv = gl_GetTexEnviv;
  256.    table->GetTexGendv = gl_GetTexGendv;
  257.    table->GetTexGenfv = gl_GetTexGenfv;
  258.    table->GetTexGeniv = gl_GetTexGeniv;
  259.    table->GetTexImage = gl_GetTexImage;
  260.    table->GetTexLevelParameterfv = gl_GetTexLevelParameterfv;
  261.    table->GetTexLevelParameteriv = gl_GetTexLevelParameteriv;
  262.    table->GetTexParameterfv = gl_GetTexParameterfv;
  263.    table->GetTexParameteriv = gl_GetTexParameteriv;
  264.    table->Hint = gl_Hint;
  265.    table->Indexf = gl_Indexf;
  266.    table->Indexi = gl_Indexi;
  267.    table->IndexMask = gl_IndexMask;
  268.    table->IndexPointer = gl_IndexPointer;
  269.    table->InitNames = gl_InitNames;
  270.    table->InterleavedArrays = gl_InterleavedArrays;
  271.    table->IsEnabled = gl_IsEnabled;
  272.    table->IsList = gl_IsList;
  273.    table->IsTexture = gl_IsTexture;
  274.    table->LightModelfv = gl_LightModelfv;
  275.    table->Lightfv = gl_Lightfv;
  276.    table->LineStipple = gl_LineStipple;
  277.    table->LineWidth = gl_LineWidth;
  278.    table->ListBase = gl_ListBase;
  279.    table->LoadIdentity = gl_LoadIdentity;
  280.    table->LoadMatrixf = gl_LoadMatrixf;
  281.    table->LoadName = gl_LoadName;
  282.    table->LogicOp = gl_LogicOp;
  283.    table->Map1f = gl_Map1f;
  284.    table->Map2f = gl_Map2f;
  285.    table->MapGrid1f = gl_MapGrid1f;
  286.    table->MapGrid2f = gl_MapGrid2f;
  287.    table->Materialfv = gl_Materialfv;
  288.    table->MatrixMode = gl_MatrixMode;
  289.    table->MultMatrixf = gl_MultMatrixf;
  290.    table->NewList = gl_NewList;
  291.    table->Normal3f = gl_Normal3f;
  292.    table->NormalPointer = gl_NormalPointer;
  293.    table->Normal3fv = gl_Normal3fv;
  294.    table->Ortho = gl_Ortho;
  295.    table->PassThrough = gl_PassThrough;
  296.    table->PixelMapfv = gl_PixelMapfv;
  297.    table->PixelStorei = gl_PixelStorei;
  298.    table->PixelTransferf = gl_PixelTransferf;
  299.    table->PixelZoom = gl_PixelZoom;
  300.    table->PointSize = gl_PointSize;
  301.    table->PolygonMode = gl_PolygonMode;
  302.    table->PolygonOffset = gl_PolygonOffset;
  303.    table->PolygonStipple = gl_PolygonStipple;
  304.    table->PopAttrib = gl_PopAttrib;
  305.    table->PopClientAttrib = gl_PopClientAttrib;
  306.    table->PopMatrix = gl_PopMatrix;
  307.    table->PopName = gl_PopName;
  308.    table->PrioritizeTextures = gl_PrioritizeTextures;
  309.    table->PushAttrib = gl_PushAttrib;
  310.    table->PushClientAttrib = gl_PushClientAttrib;
  311.    table->PushMatrix = gl_PushMatrix;
  312.    table->PushName = gl_PushName;
  313.    table->RasterPos4f = gl_RasterPos4f;
  314.    table->ReadBuffer = gl_ReadBuffer;
  315.    table->ReadPixels = gl_ReadPixels;
  316.    table->Rectf = gl_Rectf;
  317.    table->RenderMode = gl_RenderMode;
  318.    table->Rotatef = gl_Rotatef;
  319.    table->Scalef = gl_Scalef;
  320.    table->Scissor = gl_Scissor;
  321.    table->SelectBuffer = gl_SelectBuffer;
  322.    table->ShadeModel = gl_ShadeModel;
  323.    table->StencilFunc = gl_StencilFunc;
  324.    table->StencilMask = gl_StencilMask;
  325.    table->StencilOp = gl_StencilOp;
  326.    table->TexCoord2f = gl_TexCoord2f;
  327.    table->TexCoord4f = gl_TexCoord4f;
  328.    table->TexCoordPointer = gl_TexCoordPointer;
  329.    table->TexEnvfv = gl_TexEnvfv;
  330.    table->TexGenfv = gl_TexGenfv;
  331.    table->TexImage1D = gl_TexImage1D;
  332.    table->TexImage2D = gl_TexImage2D;
  333.    table->TexImage3DEXT = gl_TexImage3DEXT;
  334.    table->TexSubImage1D = gl_TexSubImage1D;
  335.    table->TexSubImage2D = gl_TexSubImage2D;
  336.    table->TexSubImage3DEXT = gl_TexSubImage3DEXT;
  337.    table->PointParameterfvEXT = gl_PointParameterfvEXT;
  338.    table->TexParameterfv = gl_TexParameterfv;
  339.    table->Translatef = gl_Translatef;
  340.    table->Vertex2f = gl_vertex2f_nop;
  341.    table->Vertex3f = gl_vertex3f_nop;
  342.    table->Vertex4f = gl_vertex4f_nop;
  343.    table->Vertex3fv = gl_vertex3fv_nop;
  344.    table->VertexPointer = gl_VertexPointer;
  345.    table->Viewport = gl_Viewport;
  346.  
  347.    /* GL_MESA_window_pos extension */
  348.    table->WindowPos4fMESA = gl_WindowPos4fMESA;
  349.  
  350.    /* GL_MESA_resize_buffers extension */
  351.    table->ResizeBuffersMESA = gl_ResizeBuffersMESA;
  352. }
  353.  
  354.  
  355.  
  356. /*
  357.  * Assign all the pointers in 'table' to point to Mesa's display list
  358.  * building functions.
  359.  */
  360. static void init_dlist_pointers( struct gl_api_table *table )
  361. {
  362.    table->Accum = gl_save_Accum;
  363.    table->AlphaFunc = gl_save_AlphaFunc;
  364.    table->AreTexturesResident = gl_AreTexturesResident;
  365.    table->ArrayElement = gl_save_ArrayElement;
  366.    table->Begin = gl_save_Begin;
  367.    table->BindTexture = gl_save_BindTexture;
  368.    table->Bitmap = gl_save_Bitmap;
  369.    table->BlendColor = gl_save_BlendColor;
  370.    table->BlendEquation = gl_save_BlendEquation;
  371.    table->BlendFunc = gl_save_BlendFunc;
  372.    table->CallList = gl_save_CallList;
  373.    table->CallLists = gl_save_CallLists;
  374.    table->Clear = gl_save_Clear;
  375.    table->ClearAccum = gl_save_ClearAccum;
  376.    table->ClearColor = gl_save_ClearColor;
  377.    table->ClearDepth = gl_save_ClearDepth;
  378.    table->ClearIndex = gl_save_ClearIndex;
  379.    table->ClearStencil = gl_save_ClearStencil;
  380.    table->ClipPlane = gl_save_ClipPlane;
  381.    table->Color3f = gl_save_Color3f;
  382.    table->Color3fv = gl_save_Color3fv;
  383.    table->Color4f = gl_save_Color4f;
  384.    table->Color4fv = gl_save_Color4fv;
  385.    table->Color4ub = gl_save_Color4ub;
  386.    table->Color4ubv = gl_save_Color4ubv;
  387.    table->ColorMask = gl_save_ColorMask;
  388.    table->ColorMaterial = gl_save_ColorMaterial;
  389.    table->ColorPointer = gl_ColorPointer;
  390.    table->ColorTable = gl_save_ColorTable;
  391.    table->ColorSubTable = gl_save_ColorSubTable;
  392.    table->CopyPixels = gl_save_CopyPixels;
  393.    table->CopyTexImage1D = gl_save_CopyTexImage1D;
  394.    table->CopyTexImage2D = gl_save_CopyTexImage2D;
  395.    table->CopyTexSubImage1D = gl_save_CopyTexSubImage1D;
  396.    table->CopyTexSubImage2D = gl_save_CopyTexSubImage2D;
  397.    table->CopyTexSubImage3DEXT = gl_save_CopyTexSubImage3DEXT;
  398.    table->CullFace = gl_save_CullFace;
  399.    table->DeleteLists = gl_DeleteLists;   /* NOT SAVED */
  400.    table->DeleteTextures = gl_DeleteTextures;  /* NOT SAVED */
  401.    table->DepthFunc = gl_save_DepthFunc;
  402.    table->DepthMask = gl_save_DepthMask;
  403.    table->DepthRange = gl_save_DepthRange;
  404.    table->Disable = gl_save_Disable;
  405.    table->DisableClientState = gl_DisableClientState;  /* NOT SAVED */
  406.    table->DrawArrays = gl_save_DrawArrays;
  407.    table->DrawBuffer = gl_save_DrawBuffer;
  408.    table->DrawElements = gl_save_DrawElements;
  409.    table->DrawPixels = gl_DrawPixels;   /* SPECIAL CASE */
  410.    table->EdgeFlag = gl_save_EdgeFlag;
  411.    table->EdgeFlagPointer = gl_EdgeFlagPointer;
  412.    table->Enable = gl_save_Enable;
  413.    table->EnableClientState = gl_EnableClientState;   /* NOT SAVED */
  414.    table->End = gl_save_End;
  415.    table->EndList = gl_EndList;   /* NOT SAVED */
  416.    table->EvalCoord1f = gl_save_EvalCoord1f;
  417.    table->EvalCoord2f = gl_save_EvalCoord2f;
  418.    table->EvalMesh1 = gl_save_EvalMesh1;
  419.    table->EvalMesh2 = gl_save_EvalMesh2;
  420.    table->EvalPoint1 = gl_save_EvalPoint1;
  421.    table->EvalPoint2 = gl_save_EvalPoint2;
  422.    table->FeedbackBuffer = gl_FeedbackBuffer;   /* NOT SAVED */
  423.    table->Finish = gl_Finish;   /* NOT SAVED */
  424.    table->Flush = gl_Flush;   /* NOT SAVED */
  425.    table->Fogfv = gl_save_Fogfv;
  426.    table->FrontFace = gl_save_FrontFace;
  427.    table->Frustum = gl_save_Frustum;
  428.    table->GenLists = gl_GenLists;   /* NOT SAVED */
  429.    table->GenTextures = gl_GenTextures;   /* NOT SAVED */
  430.  
  431.    /* NONE OF THESE COMMANDS ARE COMPILED INTO DISPLAY LISTS */
  432.    table->GetBooleanv = gl_GetBooleanv;
  433.    table->GetClipPlane = gl_GetClipPlane;
  434.    table->GetColorTable = gl_GetColorTable;
  435.    table->GetColorTableParameteriv = gl_GetColorTableParameteriv;
  436.    table->GetDoublev = gl_GetDoublev;
  437.    table->GetError = gl_GetError;
  438.    table->GetFloatv = gl_GetFloatv;
  439.    table->GetIntegerv = gl_GetIntegerv;
  440.    table->GetString = gl_GetString;
  441.    table->GetLightfv = gl_GetLightfv;
  442.    table->GetLightiv = gl_GetLightiv;
  443.    table->GetMapdv = gl_GetMapdv;
  444.    table->GetMapfv = gl_GetMapfv;
  445.    table->GetMapiv = gl_GetMapiv;
  446.    table->GetMaterialfv = gl_GetMaterialfv;
  447.    table->GetMaterialiv = gl_GetMaterialiv;
  448.    table->GetPixelMapfv = gl_GetPixelMapfv;
  449.    table->GetPixelMapuiv = gl_GetPixelMapuiv;
  450.    table->GetPixelMapusv = gl_GetPixelMapusv;
  451.    table->GetPointerv = gl_GetPointerv;
  452.    table->GetPolygonStipple = gl_GetPolygonStipple;
  453.    table->GetTexEnvfv = gl_GetTexEnvfv;
  454.    table->GetTexEnviv = gl_GetTexEnviv;
  455.    table->GetTexGendv = gl_GetTexGendv;
  456.    table->GetTexGenfv = gl_GetTexGenfv;
  457.    table->GetTexGeniv = gl_GetTexGeniv;
  458.    table->GetTexImage = gl_GetTexImage;
  459.    table->GetTexLevelParameterfv = gl_GetTexLevelParameterfv;
  460.    table->GetTexLevelParameteriv = gl_GetTexLevelParameteriv;
  461.    table->GetTexParameterfv = gl_GetTexParameterfv;
  462.    table->GetTexParameteriv = gl_GetTexParameteriv;
  463.  
  464.    table->Hint = gl_save_Hint;
  465.    table->IndexMask = gl_save_IndexMask;
  466.    table->Indexf = gl_save_Indexf;
  467.    table->Indexi = gl_save_Indexi;
  468.    table->IndexPointer = gl_IndexPointer;
  469.    table->InitNames = gl_save_InitNames;
  470.    table->InterleavedArrays = gl_save_InterleavedArrays;
  471.    table->IsEnabled = gl_IsEnabled;   /* NOT SAVED */
  472.    table->IsTexture = gl_IsTexture;   /* NOT SAVED */
  473.    table->IsList = gl_IsList;   /* NOT SAVED */
  474.    table->LightModelfv = gl_save_LightModelfv;
  475.    table->Lightfv = gl_save_Lightfv;
  476.    table->LineStipple = gl_save_LineStipple;
  477.    table->LineWidth = gl_save_LineWidth;
  478.    table->ListBase = gl_save_ListBase;
  479.    table->LoadIdentity = gl_save_LoadIdentity;
  480.    table->LoadMatrixf = gl_save_LoadMatrixf;
  481.    table->LoadName = gl_save_LoadName;
  482.    table->LogicOp = gl_save_LogicOp;
  483.    table->Map1f = gl_save_Map1f;
  484.    table->Map2f = gl_save_Map2f;
  485.    table->MapGrid1f = gl_save_MapGrid1f;
  486.    table->MapGrid2f = gl_save_MapGrid2f;
  487.    table->Materialfv = gl_save_Materialfv;
  488.    table->MatrixMode = gl_save_MatrixMode;
  489.    table->MultMatrixf = gl_save_MultMatrixf;
  490.    table->NewList = gl_save_NewList;
  491.    table->Normal3f = gl_save_Normal3f;
  492.    table->Normal3fv = gl_save_Normal3fv;
  493.    table->NormalPointer = gl_NormalPointer;  /* NOT SAVED */
  494.    table->Ortho = gl_save_Ortho;
  495.    table->PointParameterfvEXT = gl_save_PointParameterfvEXT;
  496.    table->PassThrough = gl_save_PassThrough;
  497.    table->PixelMapfv = gl_save_PixelMapfv;
  498.    table->PixelStorei = gl_PixelStorei;   /* NOT SAVED */
  499.    table->PixelTransferf = gl_save_PixelTransferf;
  500.    table->PixelZoom = gl_save_PixelZoom;
  501.    table->PointSize = gl_save_PointSize;
  502.    table->PolygonMode = gl_save_PolygonMode;
  503.    table->PolygonOffset = gl_save_PolygonOffset;
  504.    table->PolygonStipple = gl_save_PolygonStipple;
  505.    table->PopAttrib = gl_save_PopAttrib;
  506.    table->PopClientAttrib = gl_PopClientAttrib;  /* NOT SAVED */
  507.    table->PopMatrix = gl_save_PopMatrix;
  508.    table->PopName = gl_save_PopName;
  509.    table->PrioritizeTextures = gl_save_PrioritizeTextures;
  510.    table->PushAttrib = gl_save_PushAttrib;
  511.    table->PushClientAttrib = gl_PushClientAttrib;  /* NOT SAVED */
  512.    table->PushMatrix = gl_save_PushMatrix;
  513.    table->PushName = gl_save_PushName;
  514.    table->RasterPos4f = gl_save_RasterPos4f;
  515.    table->ReadBuffer = gl_save_ReadBuffer;
  516.    table->ReadPixels = gl_ReadPixels;   /* NOT SAVED */
  517.    table->Rectf = gl_save_Rectf;
  518.    table->RenderMode = gl_RenderMode;   /* NOT SAVED */
  519.    table->Rotatef = gl_save_Rotatef;
  520.    table->Scalef = gl_save_Scalef;
  521.    table->Scissor = gl_save_Scissor;
  522.    table->SelectBuffer = gl_SelectBuffer;   /* NOT SAVED */
  523.    table->ShadeModel = gl_save_ShadeModel;
  524.    table->StencilFunc = gl_save_StencilFunc;
  525.    table->StencilMask = gl_save_StencilMask;
  526.    table->StencilOp = gl_save_StencilOp;
  527.    table->TexCoord2f = gl_save_TexCoord2f;
  528.    table->TexCoord4f = gl_save_TexCoord4f;
  529.    table->TexCoordPointer = gl_TexCoordPointer;  /* NOT SAVED */
  530.    table->TexEnvfv = gl_save_TexEnvfv;
  531.    table->TexGenfv = gl_save_TexGenfv;
  532.    table->TexImage1D = gl_save_TexImage1D;
  533.    table->TexImage2D = gl_save_TexImage2D;
  534.    table->TexImage3DEXT = gl_save_TexImage3DEXT;
  535.    table->TexSubImage1D = gl_save_TexSubImage1D;
  536.    table->TexSubImage2D = gl_save_TexSubImage2D;
  537.    table->TexSubImage3DEXT = gl_save_TexSubImage3DEXT;
  538.    table->TexParameterfv = gl_save_TexParameterfv;
  539.    table->Translatef = gl_save_Translatef;
  540.    table->Vertex2f = gl_save_Vertex2f;
  541.    table->Vertex3f = gl_save_Vertex3f;
  542.    table->Vertex4f = gl_save_Vertex4f;
  543.    table->Vertex3fv = gl_save_Vertex3fv;
  544.    table->VertexPointer = gl_VertexPointer;  /* NOT SAVED */
  545.    table->Viewport = gl_save_Viewport;
  546.  
  547.    /* GL_SAVE_MESA_window_pos extension */
  548.    table->WindowPos4fMESA = gl_save_WindowPos4fMESA;
  549.  
  550.    /* GL_MESA_resize_buffers extension */
  551.    table->ResizeBuffersMESA = gl_ResizeBuffersMESA;
  552. }
  553.  
  554.  
  555.  
  556. void gl_init_api_function_pointers( GLcontext *ctx )
  557. {
  558.    init_exec_pointers( &ctx->Exec );
  559.  
  560.    init_dlist_pointers( &ctx->Save );
  561.  
  562.    /* make sure there's no NULL pointers */
  563.    check_pointers( &ctx->Exec );
  564.    check_pointers( &ctx->Save );
  565. }
  566.  
  567.