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 #endif 134 135 136 137 /* 138 * For debugging 139 */ 140 static void check_pointers( struct gl_api_table *table ) 141 { 142 void **entry; 143 int numentries = sizeof( struct gl_api_table ) / sizeof(void*); 144 int i; 145 146 entry = (void **) table; 147 148 for (i=0;i<numentries;i++) { 149 if (!entry[i]) { 150 printf("found uninitialized function pointer at %d\n", i ); 151 gl_problem(NULL, "Missing pointer in pointers.c"); 152 /*abort()*/ 153 } 154 } 155 } 156 157 158 /* 159 * Assign all the pointers in 'table' to point to Mesa's immediate-mode 160 * execution functions. 161 */ 162 static void init_exec_pointers( struct gl_api_table *table ) 163 { 164 table->Accum = gl_Accum; 165 table->AlphaFunc = gl_AlphaFunc; 166 table->AreTexturesResident = gl_AreTexturesResident; 167 table->ArrayElement = gl_ArrayElement; 168 table->Begin = gl_Begin; 169 table->BindTexture = gl_BindTexture; 170 table->Bitmap = gl_Bitmap; 171 table->BlendFunc = gl_BlendFunc; 172 table->CallList = gl_CallList; 173 table->CallLists = gl_CallLists; 174 table->Clear = gl_Clear; 175 table->ClearAccum = gl_ClearAccum; 176 table->ClearColor = gl_ClearColor; 177 table->ClearDepth = gl_ClearDepth; 178 table->ClearIndex = gl_ClearIndex; 179 table->ClearStencil = gl_ClearStencil; 180 table->ClipPlane = gl_ClipPlane; 181 table->Color3f = gl_Color3f; 182 table->Color3fv = gl_Color3fv; 183 table->Color4f = gl_Color4f; 184 table->Color4fv = gl_Color4fv; 185 table->Color4ub = gl_Color4ub; 186 table->Color4ubv = gl_Color4ubv; 187 table->ColorMask = gl_ColorMask; 188 table->ColorMaterial = gl_ColorMaterial; 189 table->ColorPointer = gl_ColorPointer; 190 table->ColorTable = gl_ColorTable; 191 table->ColorSubTable = gl_ColorSubTable; 192 table->CopyPixels = gl_CopyPixels; 193 table->CopyTexImage1D = gl_CopyTexImage1D; 194 table->CopyTexImage2D = gl_CopyTexImage2D; 195 table->CopyTexSubImage1D = gl_CopyTexSubImage1D; 196 table->CopyTexSubImage2D = gl_CopyTexSubImage2D; 197 table->CullFace = gl_CullFace; 198 table->DeleteLists = gl_DeleteLists; 199 table->DeleteTextures = gl_DeleteTextures; 200 table->DepthFunc = gl_DepthFunc; 201 table->DepthMask = gl_DepthMask; 202 table->DepthRange = gl_DepthRange; 203 table->Disable = gl_Disable; 204 table->DisableClientState = gl_DisableClientState; 205 table->DrawArrays = gl_DrawArrays; 206 table->DrawBuffer = gl_DrawBuffer; 207 table->DrawElements = gl_DrawElements; 208 table->DrawPixels = gl_DrawPixels; 209 table->EdgeFlag = gl_EdgeFlag; 210 table->EdgeFlagPointer = gl_EdgeFlagPointer; 211 table->Enable = gl_Enable; 212 table->EnableClientState = gl_EnableClientState; 213 table->End = gl_End; 214 table->EndList = gl_EndList; 215 table->EvalCoord1f = gl_EvalCoord1f; 216 table->EvalCoord2f = gl_EvalCoord2f; 217 table->EvalMesh1 = gl_EvalMesh1; 218 table->EvalMesh2 = gl_EvalMesh2; 219 table->EvalPoint1 = gl_EvalPoint1; 220 table->EvalPoint2 = gl_EvalPoint2; 221 table->FeedbackBuffer = gl_FeedbackBuffer; 222 table->Finish = gl_Finish; 223 table->Flush = gl_Flush; 224 table->Fogfv = gl_Fogfv; 225 table->FrontFace = gl_FrontFace; 226 table->Frustum = gl_Frustum; 227 table->GenLists = gl_GenLists; 228 table->GenTextures = gl_GenTextures; 229 table->GetBooleanv = gl_GetBooleanv; 230 table->GetClipPlane = gl_GetClipPlane; 231 table->GetColorTable = gl_GetColorTable; 232 table->GetColorTableParameteriv = gl_GetColorTableParameteriv; 233 table->GetDoublev = gl_GetDoublev; 234 table->GetError = gl_GetError; 235 table->GetFloatv = gl_GetFloatv; 236 table->GetIntegerv = gl_GetIntegerv; 237 table->GetPointerv = gl_GetPointerv; 238 table->GetLightfv = gl_GetLightfv; 239 table->GetLightiv = gl_GetLightiv; 240 table->GetMapdv = gl_GetMapdv; 241 table->GetMapfv = gl_GetMapfv; 242 table->GetMapiv = gl_GetMapiv; 243 table->GetMaterialfv = gl_GetMaterialfv; 244 table->GetMaterialiv = gl_GetMaterialiv; 245 table->GetPixelMapfv = gl_GetPixelMapfv; 246 table->GetPixelMapuiv = gl_GetPixelMapuiv; 247 table->GetPixelMapusv = gl_GetPixelMapusv; 248 table->GetPolygonStipple = gl_GetPolygonStipple; 249 table->GetString = gl_GetString; 250 table->GetTexEnvfv = gl_GetTexEnvfv; 251 table->GetTexEnviv = gl_GetTexEnviv; 252 table->GetTexGendv = gl_GetTexGendv; 253 table->GetTexGenfv = gl_GetTexGenfv; 254 table->GetTexGeniv = gl_GetTexGeniv; 255 table->GetTexImage = gl_GetTexImage; 256 table->GetTexLevelParameterfv = gl_GetTexLevelParameterfv; 257 table->GetTexLevelParameteriv = gl_GetTexLevelParameteriv; 258 table->GetTexParameterfv = gl_GetTexParameterfv; 259 table->GetTexParameteriv = gl_GetTexParameteriv; 260 table->Hint = gl_Hint; 261 table->Indexf = gl_Indexf; 262 table->Indexi = gl_Indexi; 263 table->IndexMask = gl_IndexMask; 264 table->IndexPointer = gl_IndexPointer; 265 table->InitNames = gl_InitNames; 266 table->InterleavedArrays = gl_InterleavedArrays; 267 table->IsEnabled = gl_IsEnabled; 268 table->IsList = gl_IsList; 269 table->IsTexture = gl_IsTexture; 270 table->LightModelfv = gl_LightModelfv; 271 table->Lightfv = gl_Lightfv; 272 table->LineStipple = gl_LineStipple; 273 table->LineWidth = gl_LineWidth; 274 table->ListBase = gl_ListBase; 275 table->LoadIdentity = gl_LoadIdentity; 276 table->LoadMatrixf = gl_LoadMatrixf; 277 table->LoadName = gl_LoadName; 278 table->LogicOp = gl_LogicOp; 279 table->Map1f = gl_Map1f; 280 table->Map2f = gl_Map2f; 281 table->MapGrid1f = gl_MapGrid1f; 282 table->MapGrid2f = gl_MapGrid2f; 283 table->Materialfv = gl_Materialfv; 284 table->MatrixMode = gl_MatrixMode; 285 table->MultMatrixf = gl_MultMatrixf; 286 table->NewList = gl_NewList; 287 table->Normal3f = gl_Normal3f; 288 table->NormalPointer = gl_NormalPointer; 289 table->Normal3fv = gl_Normal3fv; 290 table->Ortho = gl_Ortho; 291 table->PassThrough = gl_PassThrough; 292 table->PixelMapfv = gl_PixelMapfv; 293 table->PixelStorei = gl_PixelStorei; 294 table->PixelTransferf = gl_PixelTransferf; 295 table->PixelZoom = gl_PixelZoom; 296 table->PointSize = gl_PointSize; 297 table->PolygonMode = gl_PolygonMode; 298 table->PolygonOffset = gl_PolygonOffset; 299 table->PolygonStipple = gl_PolygonStipple; 300 table->PopAttrib = gl_PopAttrib; 301 table->PopClientAttrib = gl_PopClientAttrib; 302 table->PopMatrix = gl_PopMatrix; 303 table->PopName = gl_PopName; 304 table->PrioritizeTextures = gl_PrioritizeTextures; 305 table->PushAttrib = gl_PushAttrib; 306 table->PushClientAttrib = gl_PushClientAttrib; 307 table->PushMatrix = gl_PushMatrix; 308 table->PushName = gl_PushName; 309 table->RasterPos4f = gl_RasterPos4f; 310 table->ReadBuffer = gl_ReadBuffer; 311 table->ReadPixels = gl_ReadPixels; 312 table->Rectf = gl_Rectf; 313 table->RenderMode = gl_RenderMode; 314 table->Rotatef = gl_Rotatef; 315 table->Scalef = gl_Scalef; 316 table->Scissor = gl_Scissor; 317 table->SelectBuffer = gl_SelectBuffer; 318 table->ShadeModel = gl_ShadeModel; 319 table->StencilFunc = gl_StencilFunc; 320 table->StencilMask = gl_StencilMask; 321 table->StencilOp = gl_StencilOp; 322 table->TexCoord2f = gl_TexCoord2f; 323 table->TexCoord4f = gl_TexCoord4f; 324 table->TexCoordPointer = gl_TexCoordPointer; 325 table->TexEnvfv = gl_TexEnvfv; 326 table->TexGenfv = gl_TexGenfv; 327 table->TexImage1D = gl_TexImage1D; 328 table->TexImage2D = gl_TexImage2D; 329 table->TexSubImage1D = gl_TexSubImage1D; 330 table->TexSubImage2D = gl_TexSubImage2D; 331 table->TexParameterfv = gl_TexParameterfv; 332 table->Translatef = gl_Translatef; 333 table->Vertex2f = gl_vertex2f_nop; 334 table->Vertex3f = gl_vertex3f_nop; 335 table->Vertex4f = gl_vertex4f_nop; 336 table->Vertex3fv = gl_vertex3fv_nop; 337 table->VertexPointer = gl_VertexPointer; 338 table->Viewport = gl_Viewport; 339 } 340 341 342 343 /* 344 * Assign all the pointers in 'table' to point to Mesa's display list 345 * building functions. 346 */ 347 static void init_dlist_pointers( struct gl_api_table *table ) 348 { 349 table->Accum = gl_save_Accum; 350 table->AlphaFunc = gl_save_AlphaFunc; 351 table->AreTexturesResident = gl_AreTexturesResident; 352 table->ArrayElement = gl_save_ArrayElement; 353 table->Begin = gl_save_Begin; 354 table->BindTexture = gl_save_BindTexture; 355 table->Bitmap = gl_save_Bitmap; 356 table->BlendFunc = gl_save_BlendFunc; 357 table->CallList = gl_save_CallList; 358 table->CallLists = gl_save_CallLists; 359 table->Clear = gl_save_Clear; 360 table->ClearAccum = gl_save_ClearAccum; 361 table->ClearColor = gl_save_ClearColor; 362 table->ClearDepth = gl_save_ClearDepth; 363 table->ClearIndex = gl_save_ClearIndex; 364 table->ClearStencil = gl_save_ClearStencil; 365 table->ClipPlane = gl_save_ClipPlane; 366 table->Color3f = gl_save_Color3f; 367 table->Color3fv = gl_save_Color3fv; 368 table->Color4f = gl_save_Color4f; 369 table->Color4fv = gl_save_Color4fv; 370 table->Color4ub = gl_save_Color4ub; 371 table->Color4ubv = gl_save_Color4ubv; 372 table->ColorMask = gl_save_ColorMask; 373 table->ColorMaterial = gl_save_ColorMaterial; 374 table->ColorPointer = gl_ColorPointer; 375 table->ColorTable = gl_save_ColorTable; 376 table->ColorSubTable = gl_save_ColorSubTable; 377 table->CopyPixels = gl_save_CopyPixels; 378 table->CopyTexImage1D = gl_save_CopyTexImage1D; 379 table->CopyTexImage2D = gl_save_CopyTexImage2D; 380 table->CopyTexSubImage1D = gl_save_CopyTexSubImage1D; 381 table->CopyTexSubImage2D = gl_save_CopyTexSubImage2D; 382 table->CullFace = gl_save_CullFace; 383 table->DeleteLists = gl_DeleteLists; /* NOT SAVED */ 384 table->DeleteTextures = gl_DeleteTextures; /* NOT SAVED */ 385 table->DepthFunc = gl_save_DepthFunc; 386 table->DepthMask = gl_save_DepthMask; 387 table->DepthRange = gl_save_DepthRange; 388 table->Disable = gl_save_Disable; 389 table->DisableClientState = gl_DisableClientState; /* NOT SAVED */ 390 table->DrawArrays = gl_save_DrawArrays; 391 table->DrawBuffer = gl_save_DrawBuffer; 392 table->DrawElements = gl_save_DrawElements; 393 table->DrawPixels = gl_DrawPixels; /* SPECIAL CASE */ 394 table->EdgeFlag = gl_save_EdgeFlag; 395 table->EdgeFlagPointer = gl_EdgeFlagPointer; 396 table->Enable = gl_save_Enable; 397 table->EnableClientState = gl_EnableClientState; /* NOT SAVED */ 398 table->End = gl_save_End; 399 table->EndList = gl_EndList; /* NOT SAVED */ 400 table->EvalCoord1f = gl_save_EvalCoord1f; 401 table->EvalCoord2f = gl_save_EvalCoord2f; 402 table->EvalMesh1 = gl_save_EvalMesh1; 403 table->EvalMesh2 = gl_save_EvalMesh2; 404 table->EvalPoint1 = gl_save_EvalPoint1; 405 table->EvalPoint2 = gl_save_EvalPoint2; 406 table->FeedbackBuffer = gl_FeedbackBuffer; /* NOT SAVED */ 407 table->Finish = gl_Finish; /* NOT SAVED */ 408 table->Flush = gl_Flush; /* NOT SAVED */ 409 table->Fogfv = gl_save_Fogfv; 410 table->FrontFace = gl_save_FrontFace; 411 table->Frustum = gl_save_Frustum; 412 table->GenLists = gl_GenLists; /* NOT SAVED */ 413 table->GenTextures = gl_GenTextures; /* NOT SAVED */ 414 415 /* NONE OF THESE COMMANDS ARE COMPILED INTO DISPLAY LISTS */ 416 table->GetBooleanv = gl_GetBooleanv; 417 table->GetClipPlane = gl_GetClipPlane; 418 table->GetColorTable = gl_GetColorTable; 419 table->GetColorTableParameteriv = gl_GetColorTableParameteriv; 420 table->GetDoublev = gl_GetDoublev; 421 table->GetError = gl_GetError; 422 table->GetFloatv = gl_GetFloatv; 423 table->GetIntegerv = gl_GetIntegerv; 424 table->GetString = gl_GetString; 425 table->GetLightfv = gl_GetLightfv; 426 table->GetLightiv = gl_GetLightiv; 427 table->GetMapdv = gl_GetMapdv; 428 table->GetMapfv = gl_GetMapfv; 429 table->GetMapiv = gl_GetMapiv; 430 table->GetMaterialfv = gl_GetMaterialfv; 431 table->GetMaterialiv = gl_GetMaterialiv; 432 table->GetPixelMapfv = gl_GetPixelMapfv; 433 table->GetPixelMapuiv = gl_GetPixelMapuiv; 434 table->GetPixelMapusv = gl_GetPixelMapusv; 435 table->GetPointerv = gl_GetPointerv; 436 table->GetPolygonStipple = gl_GetPolygonStipple; 437 table->GetTexEnvfv = gl_GetTexEnvfv; 438 table->GetTexEnviv = gl_GetTexEnviv; 439 table->GetTexGendv = gl_GetTexGendv; 440 table->GetTexGenfv = gl_GetTexGenfv; 441 table->GetTexGeniv = gl_GetTexGeniv; 442 table->GetTexImage = gl_GetTexImage; 443 table->GetTexLevelParameterfv = gl_GetTexLevelParameterfv; 444 table->GetTexLevelParameteriv = gl_GetTexLevelParameteriv; 445 table->GetTexParameterfv = gl_GetTexParameterfv; 446 table->GetTexParameteriv = gl_GetTexParameteriv; 447 448 table->Hint = gl_save_Hint; 449 table->IndexMask = gl_save_IndexMask; 450 table->Indexf = gl_save_Indexf; 451 table->Indexi = gl_save_Indexi; 452 table->IndexPointer = gl_IndexPointer; 453 table->InitNames = gl_save_InitNames; 454 table->InterleavedArrays = gl_save_InterleavedArrays; 455 table->IsEnabled = gl_IsEnabled; /* NOT SAVED */ 456 table->IsTexture = gl_IsTexture; /* NOT SAVED */ 457 table->IsList = gl_IsList; /* NOT SAVED */ 458 table->LightModelfv = gl_save_LightModelfv; 459 table->Lightfv = gl_save_Lightfv; 460 table->LineStipple = gl_save_LineStipple; 461 table->LineWidth = gl_save_LineWidth; 462 table->ListBase = gl_save_ListBase; 463 table->LoadIdentity = gl_save_LoadIdentity; 464 table->LoadMatrixf = gl_save_LoadMatrixf; 465 table->LoadName = gl_save_LoadName; 466 table->LogicOp = gl_save_LogicOp; 467 table->Map1f = gl_save_Map1f; 468 table->Map2f = gl_save_Map2f; 469 table->MapGrid1f = gl_save_MapGrid1f; 470 table->MapGrid2f = gl_save_MapGrid2f; 471 table->Materialfv = gl_save_Materialfv; 472 table->MatrixMode = gl_save_MatrixMode; 473 table->MultMatrixf = gl_save_MultMatrixf; 474 table->NewList = gl_save_NewList; 475 table->Normal3f = gl_save_Normal3f; 476 table->Normal3fv = gl_save_Normal3fv; 477 table->NormalPointer = gl_NormalPointer; /* NOT SAVED */ 478 table->Ortho = gl_save_Ortho; 479 table->PassThrough = gl_save_PassThrough; 480 table->PixelMapfv = gl_save_PixelMapfv; 481 table->PixelStorei = gl_PixelStorei; /* NOT SAVED */ 482 table->PixelTransferf = gl_save_PixelTransferf; 483 table->PixelZoom = gl_save_PixelZoom; 484 table->PointSize = gl_save_PointSize; 485 table->PolygonMode = gl_save_PolygonMode; 486 table->PolygonOffset = gl_save_PolygonOffset; 487 table->PolygonStipple = gl_save_PolygonStipple; 488 table->PopAttrib = gl_save_PopAttrib; 489 table->PopClientAttrib = gl_PopClientAttrib; /* NOT SAVED */ 490 table->PopMatrix = gl_save_PopMatrix; 491 table->PopName = gl_save_PopName; 492 table->PrioritizeTextures = gl_save_PrioritizeTextures; 493 table->PushAttrib = gl_save_PushAttrib; 494 table->PushClientAttrib = gl_PushClientAttrib; /* NOT SAVED */ 495 table->PushMatrix = gl_save_PushMatrix; 496 table->PushName = gl_save_PushName; 497 table->RasterPos4f = gl_save_RasterPos4f; 498 table->ReadBuffer = gl_save_ReadBuffer; 499 table->ReadPixels = gl_ReadPixels; /* NOT SAVED */ 500 table->Rectf = gl_save_Rectf; 501 table->RenderMode = gl_RenderMode; /* NOT SAVED */ 502 table->Rotatef = gl_save_Rotatef; 503 table->Scalef = gl_save_Scalef; 504 table->Scissor = gl_save_Scissor; 505 table->SelectBuffer = gl_SelectBuffer; /* NOT SAVED */ 506 table->ShadeModel = gl_save_ShadeModel; 507 table->StencilFunc = gl_save_StencilFunc; 508 table->StencilMask = gl_save_StencilMask; 509 table->StencilOp = gl_save_StencilOp; 510 table->TexCoord2f = gl_save_TexCoord2f; 511 table->TexCoord4f = gl_save_TexCoord4f; 512 table->TexCoordPointer = gl_TexCoordPointer; /* NOT SAVED */ 513 table->TexEnvfv = gl_save_TexEnvfv; 514 table->TexGenfv = gl_save_TexGenfv; 515 table->TexImage1D = gl_save_TexImage1D; 516 table->TexImage2D = gl_save_TexImage2D; 517 table->TexSubImage1D = gl_save_TexSubImage1D; 518 table->TexSubImage2D = gl_save_TexSubImage2D; 519 table->TexParameterfv = gl_save_TexParameterfv; 520 table->Translatef = gl_save_Translatef; 521 table->Vertex2f = gl_save_Vertex2f; 522 table->Vertex3f = gl_save_Vertex3f; 523 table->Vertex4f = gl_save_Vertex4f; 524 table->Vertex3fv = gl_save_Vertex3fv; 525 table->VertexPointer = gl_VertexPointer; /* NOT SAVED */ 526 table->Viewport = gl_save_Viewport; 527 } 528 529 530 531 void gl_init_api_function_pointers( GLcontext *ctx ) 532 { 533 init_exec_pointers( &ctx->Exec ); 534 535 init_dlist_pointers( &ctx->Save ); 536 537 /* make sure there's no NULL pointers */ 538 check_pointers( &ctx->Exec ); 539 check_pointers( &ctx->Save ); 540 } 541 542