| 1 | /* $Id: extensions.c,v 1.2 2000-03-01 18:49:28 jeroen Exp $ */
|
|---|
| 2 |
|
|---|
| 3 | /*
|
|---|
| 4 | * Mesa 3-D graphics library
|
|---|
| 5 | * Version: 3.1
|
|---|
| 6 | *
|
|---|
| 7 | * Copyright (C) 1999 Brian Paul All Rights Reserved.
|
|---|
| 8 | *
|
|---|
| 9 | * Permission is hereby granted, free of charge, to any person obtaining a
|
|---|
| 10 | * copy of this software and associated documentation files (the "Software"),
|
|---|
| 11 | * to deal in the Software without restriction, including without limitation
|
|---|
| 12 | * the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|---|
| 13 | * and/or sell copies of the Software, and to permit persons to whom the
|
|---|
| 14 | * Software is furnished to do so, subject to the following conditions:
|
|---|
| 15 | *
|
|---|
| 16 | * The above copyright notice and this permission notice shall be included
|
|---|
| 17 | * in all copies or substantial portions of the Software.
|
|---|
| 18 | *
|
|---|
| 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|---|
| 20 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|---|
| 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|---|
| 22 | * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|---|
| 23 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|---|
| 24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|---|
| 25 | */
|
|---|
| 26 |
|
|---|
| 27 |
|
|---|
| 28 | #ifndef XFree86Server
|
|---|
| 29 | #include <stdlib.h>
|
|---|
| 30 | #else
|
|---|
| 31 | #include "GL/xf86glx.h"
|
|---|
| 32 | #endif
|
|---|
| 33 | #include "types.h"
|
|---|
| 34 | #include "context.h"
|
|---|
| 35 | #include "extensions.h"
|
|---|
| 36 | #include "simple_list.h"
|
|---|
| 37 |
|
|---|
| 38 |
|
|---|
| 39 | #define MAX_EXT_NAMELEN 80
|
|---|
| 40 |
|
|---|
| 41 | struct extension {
|
|---|
| 42 | struct extension *next, *prev;
|
|---|
| 43 | int enabled;
|
|---|
| 44 | char name[MAX_EXT_NAMELEN+1];
|
|---|
| 45 | void (*notify)( GLcontext *, GLboolean );
|
|---|
| 46 | };
|
|---|
| 47 |
|
|---|
| 48 |
|
|---|
| 49 |
|
|---|
| 50 | static struct { int enabled; const char *name; } default_extensions[] = {
|
|---|
| 51 | { ALWAYS_ENABLED, "GL_EXT_blend_color" },
|
|---|
| 52 | { DEFAULT_OFF, "ARB_imaging" },
|
|---|
| 53 | { DEFAULT_ON, "GL_EXT_blend_minmax" },
|
|---|
| 54 | { DEFAULT_ON, "GL_EXT_blend_logic_op" },
|
|---|
| 55 | { DEFAULT_ON, "GL_EXT_blend_subtract" },
|
|---|
| 56 | { DEFAULT_ON, "GL_EXT_paletted_texture" },
|
|---|
| 57 | { DEFAULT_ON, "GL_EXT_point_parameters" },
|
|---|
| 58 | { ALWAYS_ENABLED, "GL_EXT_polygon_offset" },
|
|---|
| 59 | { ALWAYS_ENABLED, "GL_EXT_vertex_array" },
|
|---|
| 60 | { ALWAYS_ENABLED, "GL_EXT_texture_object" },
|
|---|
| 61 | { DEFAULT_ON, "GL_EXT_texture3D" },
|
|---|
| 62 | { ALWAYS_ENABLED, "GL_MESA_window_pos" },
|
|---|
| 63 | { ALWAYS_ENABLED, "GL_MESA_resize_buffers" },
|
|---|
| 64 | { DEFAULT_ON, "GL_EXT_shared_texture_palette" },
|
|---|
| 65 | { ALWAYS_ENABLED, "GL_EXT_rescale_normal" },
|
|---|
| 66 | { ALWAYS_ENABLED, "GL_EXT_abgr" },
|
|---|
| 67 | { ALWAYS_ENABLED, "GL_SGIS_texture_edge_clamp" },
|
|---|
| 68 | { ALWAYS_ENABLED, "GL_EXT_stencil_wrap" },
|
|---|
| 69 | { DEFAULT_ON, "GL_INGR_blend_func_separate" },
|
|---|
| 70 | { DEFAULT_ON, "GL_ARB_multitexture" },
|
|---|
| 71 | { ALWAYS_ENABLED, "GL_NV_texgen_reflection" },
|
|---|
| 72 | { DEFAULT_ON, "GL_PGI_misc_hints" },
|
|---|
| 73 | { DEFAULT_ON, "GL_EXT_compiled_vertex_array" },
|
|---|
| 74 | { DEFAULT_ON, "GL_EXT_clip_volume_hint" },
|
|---|
| 75 |
|
|---|
| 76 | /* These obviously won't make it before 3.3:
|
|---|
| 77 | */
|
|---|
| 78 | { DEFAULT_OFF, "GL_EXT_vertex_array_set" },
|
|---|
| 79 | { DEFAULT_OFF, "GL_EXT_texture_env" },
|
|---|
| 80 | { DEFAULT_OFF, "GL_EXT_fog_coord" },
|
|---|
| 81 | };
|
|---|
| 82 |
|
|---|
| 83 |
|
|---|
| 84 | int gl_extensions_add( GLcontext *ctx,
|
|---|
| 85 | int state,
|
|---|
| 86 | const char *name,
|
|---|
| 87 | void (*notify)(void) )
|
|---|
| 88 | {
|
|---|
| 89 | (void) notify;
|
|---|
| 90 |
|
|---|
| 91 | if (ctx->Extensions.ext_string == 0)
|
|---|
| 92 | {
|
|---|
| 93 | struct extension *t = MALLOC_STRUCT(extension);
|
|---|
| 94 | t->enabled = state;
|
|---|
| 95 | strncpy(t->name, name, MAX_EXT_NAMELEN);
|
|---|
| 96 | t->name[MAX_EXT_NAMELEN] = 0;
|
|---|
| 97 | t->notify = (void (*)(GLcontext *, GLboolean)) notify;
|
|---|
| 98 | insert_at_tail( ctx->Extensions.ext_list, t );
|
|---|
| 99 | return 0;
|
|---|
| 100 | }
|
|---|
| 101 | return 1;
|
|---|
| 102 | }
|
|---|
| 103 |
|
|---|
| 104 |
|
|---|
| 105 | static int set_extension( GLcontext *ctx, const char *name, GLuint state )
|
|---|
| 106 | {
|
|---|
| 107 | struct extension *i;
|
|---|
| 108 | foreach( i, ctx->Extensions.ext_list )
|
|---|
| 109 | if (strncmp(i->name, name, MAX_EXT_NAMELEN) == 0)
|
|---|
| 110 | break;
|
|---|
| 111 |
|
|---|
| 112 | if (i == ctx->Extensions.ext_list) return 1;
|
|---|
| 113 |
|
|---|
| 114 | if (i->enabled && !(i->enabled & ALWAYS_ENABLED))
|
|---|
| 115 | {
|
|---|
| 116 | if (i->notify) i->notify( ctx, state );
|
|---|
| 117 | i->enabled = state;
|
|---|
| 118 | }
|
|---|
| 119 |
|
|---|
| 120 | return 0;
|
|---|
| 121 | }
|
|---|
| 122 |
|
|---|
| 123 |
|
|---|
| 124 | int gl_extensions_enable( GLcontext *ctx, const char *name )
|
|---|
| 125 | {
|
|---|
| 126 | if (ctx->Extensions.ext_string == 0)
|
|---|
| 127 | return set_extension( ctx, name, 1 );
|
|---|
| 128 | return 1;
|
|---|
| 129 | }
|
|---|
| 130 |
|
|---|
| 131 |
|
|---|
| 132 | int gl_extensions_disable( GLcontext *ctx, const char *name )
|
|---|
| 133 | {
|
|---|
| 134 | if (ctx->Extensions.ext_string == 0)
|
|---|
| 135 | return set_extension( ctx, name, 0 );
|
|---|
| 136 | return 1;
|
|---|
| 137 | }
|
|---|
| 138 |
|
|---|
| 139 |
|
|---|
| 140 | /*
|
|---|
| 141 | * Test if the named extension is enabled in this context.
|
|---|
| 142 | */
|
|---|
| 143 | GLboolean gl_extension_is_enabled( GLcontext *ctx, const char *name)
|
|---|
| 144 | {
|
|---|
| 145 | struct extension *i;
|
|---|
| 146 | foreach( i, ctx->Extensions.ext_list )
|
|---|
| 147 | if (strncmp(i->name, name, MAX_EXT_NAMELEN) == 0) {
|
|---|
| 148 | if (i->enabled)
|
|---|
| 149 | return GL_TRUE;
|
|---|
| 150 | else
|
|---|
| 151 | return GL_FALSE;
|
|---|
| 152 | }
|
|---|
| 153 |
|
|---|
| 154 | return GL_FALSE;
|
|---|
| 155 | }
|
|---|
| 156 |
|
|---|
| 157 |
|
|---|
| 158 | void gl_extensions_dtr( GLcontext *ctx )
|
|---|
| 159 | {
|
|---|
| 160 | struct extension *i, *nexti;
|
|---|
| 161 |
|
|---|
| 162 | if (ctx->Extensions.ext_string) {
|
|---|
| 163 | FREE( ctx->Extensions.ext_string );
|
|---|
| 164 | ctx->Extensions.ext_string = 0;
|
|---|
| 165 | }
|
|---|
| 166 |
|
|---|
| 167 | if (ctx->Extensions.ext_list) {
|
|---|
| 168 | foreach_s( i, nexti, ctx->Extensions.ext_list ) {
|
|---|
| 169 | remove_from_list( i );
|
|---|
| 170 | FREE( i );
|
|---|
| 171 | }
|
|---|
| 172 |
|
|---|
| 173 | FREE(ctx->Extensions.ext_list);
|
|---|
| 174 | ctx->Extensions.ext_list = 0;
|
|---|
| 175 | }
|
|---|
| 176 | }
|
|---|
| 177 |
|
|---|
| 178 |
|
|---|
| 179 | void gl_extensions_ctr( GLcontext *ctx )
|
|---|
| 180 | {
|
|---|
| 181 | GLuint i;
|
|---|
| 182 |
|
|---|
| 183 | ctx->Extensions.ext_string = 0;
|
|---|
| 184 | ctx->Extensions.ext_list = MALLOC_STRUCT(extension);
|
|---|
| 185 | make_empty_list( ctx->Extensions.ext_list );
|
|---|
| 186 |
|
|---|
| 187 | for (i = 0 ; i < Elements(default_extensions) ; i++) {
|
|---|
| 188 | gl_extensions_add( ctx,
|
|---|
| 189 | default_extensions[i].enabled,
|
|---|
| 190 | default_extensions[i].name,
|
|---|
| 191 | 0 );
|
|---|
| 192 | }
|
|---|
| 193 | }
|
|---|
| 194 |
|
|---|
| 195 |
|
|---|
| 196 | const char *gl_extensions_get_string( GLcontext *ctx )
|
|---|
| 197 | {
|
|---|
| 198 | if (ctx->Extensions.ext_string == 0)
|
|---|
| 199 | {
|
|---|
| 200 | struct extension *i;
|
|---|
| 201 | char *str;
|
|---|
| 202 | GLuint len = 0;
|
|---|
| 203 | foreach (i, ctx->Extensions.ext_list)
|
|---|
| 204 | if (i->enabled)
|
|---|
| 205 | len += strlen(i->name) + 1;
|
|---|
| 206 |
|
|---|
| 207 | if (len == 0)
|
|---|
| 208 | return "";
|
|---|
| 209 |
|
|---|
| 210 | str = (char *)MALLOC(len * sizeof(char));
|
|---|
| 211 | ctx->Extensions.ext_string = str;
|
|---|
| 212 |
|
|---|
| 213 | foreach (i, ctx->Extensions.ext_list)
|
|---|
| 214 | if (i->enabled) {
|
|---|
| 215 | strcpy(str, i->name);
|
|---|
| 216 | str += strlen(str);
|
|---|
| 217 | *str++ = ' ';
|
|---|
| 218 | }
|
|---|
| 219 |
|
|---|
| 220 | *(str-1) = 0;
|
|---|
| 221 | }
|
|---|
| 222 |
|
|---|
| 223 | return ctx->Extensions.ext_string;
|
|---|
| 224 | }
|
|---|
| 225 |
|
|---|
| 226 |
|
|---|
| 227 |
|
|---|
| 228 | /*
|
|---|
| 229 | * Return the address of an extension function.
|
|---|
| 230 | * This is meant to be called by glXGetProcAddress(), wglGetProcAddress(),
|
|---|
| 231 | * or similar function.
|
|---|
| 232 | * NOTE: this function could be optimized to binary search a sorted
|
|---|
| 233 | * list of function names.
|
|---|
| 234 | */
|
|---|
| 235 | void (*gl_get_proc_address( const GLubyte *procName ))()
|
|---|
| 236 | {
|
|---|
| 237 | typedef void (*gl_function)();
|
|---|
| 238 | struct proc {
|
|---|
| 239 | const char *name;
|
|---|
| 240 | gl_function address;
|
|---|
| 241 | };
|
|---|
| 242 | static struct proc procTable[] = {
|
|---|
| 243 | /* OpenGL 1.0 functions */
|
|---|
| 244 | { "glAccum", (gl_function) glAccum },
|
|---|
| 245 | { "glAlphaFunc", (gl_function) glAlphaFunc },
|
|---|
| 246 | { "glBegin", (gl_function) glBegin },
|
|---|
| 247 | { "glBitmap", (gl_function) glBitmap },
|
|---|
| 248 | { "glAccum", (gl_function) glAccum },
|
|---|
| 249 | { "glAlphaFunc", (gl_function) glAlphaFunc },
|
|---|
| 250 | { "glBegin", (gl_function) glBegin },
|
|---|
| 251 | { "glBitmap", (gl_function) glBitmap },
|
|---|
| 252 | { "glBlendFunc", (gl_function) glBlendFunc },
|
|---|
| 253 | { "glCallList", (gl_function) glCallList },
|
|---|
| 254 | { "glCallLists", (gl_function) glCallLists },
|
|---|
| 255 | { "glClear", (gl_function) glClear },
|
|---|
| 256 | { "glClearAccum", (gl_function) glClearAccum },
|
|---|
| 257 | { "glClearColor", (gl_function) glClearColor },
|
|---|
| 258 | { "glClearDepth", (gl_function) glClearDepth },
|
|---|
| 259 | { "glClearIndex", (gl_function) glClearIndex },
|
|---|
| 260 | { "glClearStencil", (gl_function) glClearStencil },
|
|---|
| 261 | { "glClipPlane", (gl_function) glClipPlane },
|
|---|
| 262 | { "glColor3b", (gl_function) glColor3b },
|
|---|
| 263 | { "glColor3bv", (gl_function) glColor3bv },
|
|---|
| 264 | { "glColor3d", (gl_function) glColor3d },
|
|---|
| 265 | { "glColor3dv", (gl_function) glColor3dv },
|
|---|
| 266 | { "glColor3f", (gl_function) glColor3f },
|
|---|
| 267 | { "glColor3fv", (gl_function) glColor3fv },
|
|---|
| 268 | { "glColor3i", (gl_function) glColor3i },
|
|---|
| 269 | { "glColor3iv", (gl_function) glColor3iv },
|
|---|
| 270 | { "glColor3s", (gl_function) glColor3s },
|
|---|
| 271 | { "glColor3sv", (gl_function) glColor3sv },
|
|---|
| 272 | { "glColor3ub", (gl_function) glColor3ub },
|
|---|
| 273 | { "glColor3ubv", (gl_function) glColor3ubv },
|
|---|
| 274 | { "glColor3ui", (gl_function) glColor3ui },
|
|---|
| 275 | { "glColor3uiv", (gl_function) glColor3uiv },
|
|---|
| 276 | { "glColor3us", (gl_function) glColor3us },
|
|---|
| 277 | { "glColor3usv", (gl_function) glColor3usv },
|
|---|
| 278 | { "glColor4b", (gl_function) glColor4b },
|
|---|
| 279 | { "glColor4bv", (gl_function) glColor4bv },
|
|---|
| 280 | { "glColor4d", (gl_function) glColor4d },
|
|---|
| 281 | { "glColor4dv", (gl_function) glColor4dv },
|
|---|
| 282 | { "glColor4f", (gl_function) glColor4f },
|
|---|
| 283 | { "glColor4fv", (gl_function) glColor4fv },
|
|---|
| 284 | { "glColor4i", (gl_function) glColor4i },
|
|---|
| 285 | { "glColor4iv", (gl_function) glColor4iv },
|
|---|
| 286 | { "glColor4s", (gl_function) glColor4s },
|
|---|
| 287 | { "glColor4sv", (gl_function) glColor4sv },
|
|---|
| 288 | { "glColor4ub", (gl_function) glColor4ub },
|
|---|
| 289 | { "glColor4ubv", (gl_function) glColor4ubv },
|
|---|
| 290 | { "glColor4ui", (gl_function) glColor4ui },
|
|---|
| 291 | { "glColor4uiv", (gl_function) glColor4uiv },
|
|---|
| 292 | { "glColor4us", (gl_function) glColor4us },
|
|---|
| 293 | { "glColor4usv", (gl_function) glColor4usv },
|
|---|
| 294 | { "glColorMask", (gl_function) glColorMask },
|
|---|
| 295 | { "glColorMaterial", (gl_function) glColorMaterial },
|
|---|
| 296 | { "glCopyPixels", (gl_function) glCopyPixels },
|
|---|
| 297 | { "glCullFace", (gl_function) glCullFace },
|
|---|
| 298 | { "glDeleteLists", (gl_function) glDeleteLists },
|
|---|
| 299 | { "glDepthFunc", (gl_function) glDepthFunc },
|
|---|
| 300 | { "glDepthMask", (gl_function) glDepthMask },
|
|---|
| 301 | { "glDepthRange", (gl_function) glDepthRange },
|
|---|
| 302 | { "glDisable", (gl_function) glDisable },
|
|---|
| 303 | { "glDrawBuffer", (gl_function) glDrawBuffer },
|
|---|
| 304 | { "glDrawPixels", (gl_function) glDrawPixels },
|
|---|
| 305 | { "glEdgeFlag", (gl_function) glEdgeFlag },
|
|---|
| 306 | { "glEdgeFlagv", (gl_function) glEdgeFlagv },
|
|---|
| 307 | { "glEnable", (gl_function) glEnable },
|
|---|
| 308 | { "glEnd", (gl_function) glEnd },
|
|---|
| 309 | { "glEndList", (gl_function) glEndList },
|
|---|
| 310 | { "glEvalCoord1d", (gl_function) glEvalCoord1d },
|
|---|
| 311 | { "glEvalCoord1dv", (gl_function) glEvalCoord1dv },
|
|---|
| 312 | { "glEvalCoord1f", (gl_function) glEvalCoord1f },
|
|---|
| 313 | { "glEvalCoord1fv", (gl_function) glEvalCoord1fv },
|
|---|
| 314 | { "glEvalCoord2d", (gl_function) glEvalCoord2d },
|
|---|
| 315 | { "glEvalCoord2dv", (gl_function) glEvalCoord2dv },
|
|---|
| 316 | { "glEvalCoord2f", (gl_function) glEvalCoord2f },
|
|---|
| 317 | { "glEvalCoord2fv", (gl_function) glEvalCoord2fv },
|
|---|
| 318 | { "glEvalMesh1", (gl_function) glEvalMesh1 },
|
|---|
| 319 | { "glEvalMesh2", (gl_function) glEvalMesh2 },
|
|---|
| 320 | { "glEvalPoint1", (gl_function) glEvalPoint1 },
|
|---|
| 321 | { "glEvalPoint2", (gl_function) glEvalPoint2 },
|
|---|
| 322 | { "glFeedbackBuffer", (gl_function) glFeedbackBuffer },
|
|---|
| 323 | { "glFinish", (gl_function) glFinish },
|
|---|
| 324 | { "glFlush", (gl_function) glFlush },
|
|---|
| 325 | { "glFogf", (gl_function) glFogf },
|
|---|
| 326 | { "glFogfv", (gl_function) glFogfv },
|
|---|
| 327 | { "glFogi", (gl_function) glFogi },
|
|---|
| 328 | { "glFogiv", (gl_function) glFogiv },
|
|---|
| 329 | { "glFrontFace", (gl_function) glFrontFace },
|
|---|
| 330 | { "glFrustum", (gl_function) glFrustum },
|
|---|
| 331 | { "glGenLists", (gl_function) glGenLists },
|
|---|
| 332 | { "glGetBooleanv", (gl_function) glGetBooleanv },
|
|---|
| 333 | { "glGetClipPlane", (gl_function) glGetClipPlane },
|
|---|
| 334 | { "glGetDoublev", (gl_function) glGetDoublev },
|
|---|
| 335 | { "glGetError", (gl_function) glGetError },
|
|---|
| 336 | { "glGetFloatv", (gl_function) glGetFloatv },
|
|---|
| 337 | { "glGetIntegerv", (gl_function) glGetIntegerv },
|
|---|
| 338 | { "glGetLightfv", (gl_function) glGetLightfv },
|
|---|
| 339 | { "glGetLightiv", (gl_function) glGetLightiv },
|
|---|
| 340 | { "glGetMapdv", (gl_function) glGetMapdv },
|
|---|
| 341 | { "glGetMapfv", (gl_function) glGetMapfv },
|
|---|
| 342 | { "glGetMapiv", (gl_function) glGetMapiv },
|
|---|
| 343 | { "glGetMaterialfv", (gl_function) glGetMaterialfv },
|
|---|
| 344 | { "glGetMaterialiv", (gl_function) glGetMaterialiv },
|
|---|
| 345 | { "glGetPixelMapfv", (gl_function) glGetPixelMapfv },
|
|---|
| 346 | { "glGetPixelMapuiv", (gl_function) glGetPixelMapuiv },
|
|---|
| 347 | { "glGetPixelMapusv", (gl_function) glGetPixelMapusv },
|
|---|
| 348 | { "glGetPolygonStipple", (gl_function) glGetPolygonStipple },
|
|---|
| 349 | { "glGetString", (gl_function) glGetString },
|
|---|
| 350 | { "glGetTexEnvfv", (gl_function) glGetTexEnvfv },
|
|---|
| 351 | { "glGetTexEnviv", (gl_function) glGetTexEnviv },
|
|---|
| 352 | { "glGetTexGendv", (gl_function) glGetTexGendv },
|
|---|
| 353 | { "glGetTexGenfv", (gl_function) glGetTexGenfv },
|
|---|
| 354 | { "glGetTexGeniv", (gl_function) glGetTexGeniv },
|
|---|
| 355 | { "glGetTexImage", (gl_function) glGetTexImage },
|
|---|
| 356 | { "glGetTexLevelParameterfv", (gl_function) glGetTexLevelParameterfv },
|
|---|
| 357 | { "glGetTexLevelParameteriv", (gl_function) glGetTexLevelParameteriv },
|
|---|
| 358 | { "glGetTexParameterfv", (gl_function) glGetTexParameterfv },
|
|---|
| 359 | { "glGetTexParameteriv", (gl_function) glGetTexParameteriv },
|
|---|
| 360 | { "glHint", (gl_function) glHint },
|
|---|
| 361 | { "glIndexMask", (gl_function) glIndexMask },
|
|---|
| 362 | { "glIndexd", (gl_function) glIndexd },
|
|---|
| 363 | { "glIndexdv", (gl_function) glIndexdv },
|
|---|
| 364 | { "glIndexf", (gl_function) glIndexf },
|
|---|
| 365 | { "glIndexfv", (gl_function) glIndexfv },
|
|---|
| 366 | { "glIndexi", (gl_function) glIndexi },
|
|---|
| 367 | { "glIndexiv", (gl_function) glIndexiv },
|
|---|
| 368 | { "glIndexs", (gl_function) glIndexs },
|
|---|
| 369 | { "glIndexsv", (gl_function) glIndexsv },
|
|---|
| 370 | { "glInitNames", (gl_function) glInitNames },
|
|---|
| 371 | { "glIsEnabled", (gl_function) glIsEnabled },
|
|---|
| 372 | { "glIsList", (gl_function) glIsList },
|
|---|
| 373 | { "glLightModelf", (gl_function) glLightModelf },
|
|---|
| 374 | { "glLightModelfv", (gl_function) glLightModelfv },
|
|---|
| 375 | { "glLightModeli", (gl_function) glLightModeli },
|
|---|
| 376 | { "glLightModeliv", (gl_function) glLightModeliv },
|
|---|
| 377 | { "glLightf", (gl_function) glLightf },
|
|---|
| 378 | { "glLightfv", (gl_function) glLightfv },
|
|---|
| 379 | { "glLighti", (gl_function) glLighti },
|
|---|
| 380 | { "glLightiv", (gl_function) glLightiv },
|
|---|
| 381 | { "glLineStipple", (gl_function) glLineStipple },
|
|---|
| 382 | { "glLineWidth", (gl_function) glLineWidth },
|
|---|
| 383 | { "glListBase", (gl_function) glListBase },
|
|---|
| 384 | { "glLoadIdentity", (gl_function) glLoadIdentity },
|
|---|
| 385 | { "glLoadMatrixd", (gl_function) glLoadMatrixd },
|
|---|
| 386 | { "glLoadMatrixf", (gl_function) glLoadMatrixf },
|
|---|
| 387 | { "glLoadName", (gl_function) glLoadName },
|
|---|
| 388 | { "glLogicOp", (gl_function) glLogicOp },
|
|---|
| 389 | { "glMap1d", (gl_function) glMap1d },
|
|---|
| 390 | { "glMap1f", (gl_function) glMap1f },
|
|---|
| 391 | { "glMap2d", (gl_function) glMap2d },
|
|---|
| 392 | { "glMap2f", (gl_function) glMap2f },
|
|---|
| 393 | { "glMapGrid1d", (gl_function) glMapGrid1d },
|
|---|
| 394 | { "glMapGrid1f", (gl_function) glMapGrid1f },
|
|---|
| 395 | { "glMapGrid2d", (gl_function) glMapGrid2d },
|
|---|
| 396 | { "glMapGrid2f", (gl_function) glMapGrid2f },
|
|---|
| 397 | { "glMaterialf", (gl_function) glMaterialf },
|
|---|
| 398 | { "glMaterialfv", (gl_function) glMaterialfv },
|
|---|
| 399 | { "glMateriali", (gl_function) glMateriali },
|
|---|
| 400 | { "glMaterialiv", (gl_function) glMaterialiv },
|
|---|
| 401 | { "glMatrixMode", (gl_function) glMatrixMode },
|
|---|
| 402 | { "glMultMatrixd", (gl_function) glMultMatrixd },
|
|---|
| 403 | { "glMultMatrixf", (gl_function) glMultMatrixf },
|
|---|
| 404 | { "glNewList", (gl_function) glNewList },
|
|---|
| 405 | { "glNormal3b", (gl_function) glNormal3b },
|
|---|
| 406 | { "glNormal3bv", (gl_function) glNormal3bv },
|
|---|
| 407 | { "glNormal3d", (gl_function) glNormal3d },
|
|---|
| 408 | { "glNormal3dv", (gl_function) glNormal3dv },
|
|---|
| 409 | { "glNormal3f", (gl_function) glNormal3f },
|
|---|
| 410 | { "glNormal3fv", (gl_function) glNormal3fv },
|
|---|
| 411 | { "glNormal3i", (gl_function) glNormal3i },
|
|---|
| 412 | { "glNormal3iv", (gl_function) glNormal3iv },
|
|---|
| 413 | { "glNormal3s", (gl_function) glNormal3s },
|
|---|
| 414 | { "glNormal3sv", (gl_function) glNormal3sv },
|
|---|
| 415 | { "glOrtho", (gl_function) glOrtho },
|
|---|
| 416 | { "glPassThrough", (gl_function) glPassThrough },
|
|---|
| 417 | { "glPixelMapfv", (gl_function) glPixelMapfv },
|
|---|
| 418 | { "glPixelMapuiv", (gl_function) glPixelMapuiv },
|
|---|
| 419 | { "glPixelMapusv", (gl_function) glPixelMapusv },
|
|---|
| 420 | { "glPixelStoref", (gl_function) glPixelStoref },
|
|---|
| 421 | { "glPixelStorei", (gl_function) glPixelStorei },
|
|---|
| 422 | { "glPixelTransferf", (gl_function) glPixelTransferf },
|
|---|
| 423 | { "glPixelTransferi", (gl_function) glPixelTransferi },
|
|---|
| 424 | { "glPixelZoom", (gl_function) glPixelZoom },
|
|---|
| 425 | { "glPointSize", (gl_function) glPointSize },
|
|---|
| 426 | { "glPolygonMode", (gl_function) glPolygonMode },
|
|---|
| 427 | { "glPolygonOffset", (gl_function) glPolygonOffset },
|
|---|
| 428 | { "glPolygonStipple", (gl_function) glPolygonStipple },
|
|---|
| 429 | { "glPopAttrib", (gl_function) glPopAttrib },
|
|---|
| 430 | { "glPopMatrix", (gl_function) glPopMatrix },
|
|---|
| 431 | { "glPopName", (gl_function) glPopName },
|
|---|
| 432 | { "glPushAttrib", (gl_function) glPushAttrib },
|
|---|
| 433 | { "glPushMatrix", (gl_function) glPushMatrix },
|
|---|
| 434 | { "glPushName", (gl_function) glPushName },
|
|---|
| 435 | { "glRasterPos2d", (gl_function) glRasterPos2d },
|
|---|
| 436 | { "glRasterPos2dv", (gl_function) glRasterPos2dv },
|
|---|
| 437 | { "glRasterPos2f", (gl_function) glRasterPos2f },
|
|---|
| 438 | { "glRasterPos2fv", (gl_function) glRasterPos2fv },
|
|---|
| 439 | { "glRasterPos2i", (gl_function) glRasterPos2i },
|
|---|
| 440 | { "glRasterPos2iv", (gl_function) glRasterPos2iv },
|
|---|
| 441 | { "glRasterPos2s", (gl_function) glRasterPos2s },
|
|---|
| 442 | { "glRasterPos2sv", (gl_function) glRasterPos2sv },
|
|---|
| 443 | { "glRasterPos3d", (gl_function) glRasterPos3d },
|
|---|
| 444 | { "glRasterPos3dv", (gl_function) glRasterPos3dv },
|
|---|
| 445 | { "glRasterPos3f", (gl_function) glRasterPos3f },
|
|---|
| 446 | { "glRasterPos3fv", (gl_function) glRasterPos3fv },
|
|---|
| 447 | { "glRasterPos3i", (gl_function) glRasterPos3i },
|
|---|
| 448 | { "glRasterPos3iv", (gl_function) glRasterPos3iv },
|
|---|
| 449 | { "glRasterPos3s", (gl_function) glRasterPos3s },
|
|---|
| 450 | { "glRasterPos3sv", (gl_function) glRasterPos3sv },
|
|---|
| 451 | { "glRasterPos4d", (gl_function) glRasterPos4d },
|
|---|
| 452 | { "glRasterPos4dv", (gl_function) glRasterPos4dv },
|
|---|
| 453 | { "glRasterPos4f", (gl_function) glRasterPos4f },
|
|---|
| 454 | { "glRasterPos4fv", (gl_function) glRasterPos4fv },
|
|---|
| 455 | { "glRasterPos4i", (gl_function) glRasterPos4i },
|
|---|
| 456 | { "glRasterPos4iv", (gl_function) glRasterPos4iv },
|
|---|
| 457 | { "glRasterPos4s", (gl_function) glRasterPos4s },
|
|---|
| 458 | { "glRasterPos4sv", (gl_function) glRasterPos4sv },
|
|---|
| 459 | { "glReadBuffer", (gl_function) glReadBuffer },
|
|---|
| 460 | { "glReadPixels", (gl_function) glReadPixels },
|
|---|
| 461 | { "glRectd", (gl_function) glRectd },
|
|---|
| 462 | { "glRectdv", (gl_function) glRectdv },
|
|---|
| 463 | { "glRectf", (gl_function) glRectf },
|
|---|
| 464 | { "glRectfv", (gl_function) glRectfv },
|
|---|
| 465 | { "glRecti", (gl_function) glRecti },
|
|---|
| 466 | { "glRectiv", (gl_function) glRectiv },
|
|---|
| 467 | { "glRects", (gl_function) glRects },
|
|---|
| 468 | { "glRectsv", (gl_function) glRectsv },
|
|---|
| 469 | { "glRenderMode", (gl_function) glRenderMode },
|
|---|
| 470 | { "glRotated", (gl_function) glRotated },
|
|---|
| 471 | { "glRotatef", (gl_function) glRotatef },
|
|---|
| 472 | { "glScaled", (gl_function) glScaled },
|
|---|
| 473 | { "glScalef", (gl_function) glScalef },
|
|---|
| 474 | { "glScissor", (gl_function) glScissor },
|
|---|
| 475 | { "glSelectBuffer", (gl_function) glSelectBuffer },
|
|---|
| 476 | { "glShadeModel", (gl_function) glShadeModel },
|
|---|
| 477 | { "glStencilFunc", (gl_function) glStencilFunc },
|
|---|
| 478 | { "glStencilMask", (gl_function) glStencilMask },
|
|---|
| 479 | { "glStencilOp", (gl_function) glStencilOp },
|
|---|
| 480 | { "glTexCoord1d", (gl_function) glTexCoord1d },
|
|---|
| 481 | { "glTexCoord1dv", (gl_function) glTexCoord1dv },
|
|---|
| 482 | { "glTexCoord1f", (gl_function) glTexCoord1f },
|
|---|
| 483 | { "glTexCoord1fv", (gl_function) glTexCoord1fv },
|
|---|
| 484 | { "glTexCoord1i", (gl_function) glTexCoord1i },
|
|---|
| 485 | { "glTexCoord1iv", (gl_function) glTexCoord1iv },
|
|---|
| 486 | { "glTexCoord1s", (gl_function) glTexCoord1s },
|
|---|
| 487 | { "glTexCoord1sv", (gl_function) glTexCoord1sv },
|
|---|
| 488 | { "glTexCoord2d", (gl_function) glTexCoord2d },
|
|---|
| 489 | { "glTexCoord2dv", (gl_function) glTexCoord2dv },
|
|---|
| 490 | { "glTexCoord2f", (gl_function) glTexCoord2f },
|
|---|
| 491 | { "glTexCoord2fv", (gl_function) glTexCoord2fv },
|
|---|
| 492 | { "glTexCoord2i", (gl_function) glTexCoord2i },
|
|---|
| 493 | { "glTexCoord2iv", (gl_function) glTexCoord2iv },
|
|---|
| 494 | { "glTexCoord2s", (gl_function) glTexCoord2s },
|
|---|
| 495 | { "glTexCoord2sv", (gl_function) glTexCoord2sv },
|
|---|
| 496 | { "glTexCoord3d", (gl_function) glTexCoord3d },
|
|---|
| 497 | { "glTexCoord3dv", (gl_function) glTexCoord3dv },
|
|---|
| 498 | { "glTexCoord3f", (gl_function) glTexCoord3f },
|
|---|
| 499 | { "glTexCoord3fv", (gl_function) glTexCoord3fv },
|
|---|
| 500 | { "glTexCoord3i", (gl_function) glTexCoord3i },
|
|---|
| 501 | { "glTexCoord3iv", (gl_function) glTexCoord3iv },
|
|---|
| 502 | { "glTexCoord3s", (gl_function) glTexCoord3s },
|
|---|
| 503 | { "glTexCoord3sv", (gl_function) glTexCoord3sv },
|
|---|
| 504 | { "glTexCoord4d", (gl_function) glTexCoord4d },
|
|---|
| 505 | { "glTexCoord4dv", (gl_function) glTexCoord4dv },
|
|---|
| 506 | { "glTexCoord4f", (gl_function) glTexCoord4f },
|
|---|
| 507 | { "glTexCoord4fv", (gl_function) glTexCoord4fv },
|
|---|
| 508 | { "glTexCoord4i", (gl_function) glTexCoord4i },
|
|---|
| 509 | { "glTexCoord4iv", (gl_function) glTexCoord4iv },
|
|---|
| 510 | { "glTexCoord4s", (gl_function) glTexCoord4s },
|
|---|
| 511 | { "glTexCoord4sv", (gl_function) glTexCoord4sv },
|
|---|
| 512 | { "glTexEnvf", (gl_function) glTexEnvf },
|
|---|
| 513 | { "glTexEnvfv", (gl_function) glTexEnvfv },
|
|---|
| 514 | { "glTexEnvi", (gl_function) glTexEnvi },
|
|---|
| 515 | { "glTexEnviv", (gl_function) glTexEnviv },
|
|---|
| 516 | { "glTexGend", (gl_function) glTexGend },
|
|---|
| 517 | { "glTexGendv", (gl_function) glTexGendv },
|
|---|
| 518 | { "glTexGenf", (gl_function) glTexGenf },
|
|---|
| 519 | { "glTexGenfv", (gl_function) glTexGenfv },
|
|---|
| 520 | { "glTexGeni", (gl_function) glTexGeni },
|
|---|
| 521 | { "glTexGeniv", (gl_function) glTexGeniv },
|
|---|
| 522 | { "glTexImage1D", (gl_function) glTexImage1D },
|
|---|
| 523 | { "glTexImage2D", (gl_function) glTexImage2D },
|
|---|
| 524 | { "glTexParameterf", (gl_function) glTexParameterf },
|
|---|
| 525 | { "glTexParameterfv", (gl_function) glTexParameterfv },
|
|---|
| 526 | { "glTexParameteri", (gl_function) glTexParameteri },
|
|---|
| 527 | { "glTexParameteriv", (gl_function) glTexParameteriv },
|
|---|
| 528 | { "glTranslated", (gl_function) glTranslated },
|
|---|
| 529 | { "glTranslatef", (gl_function) glTranslatef },
|
|---|
| 530 | { "glVertex2d", (gl_function) glVertex2d },
|
|---|
| 531 | { "glVertex2dv", (gl_function) glVertex2dv },
|
|---|
| 532 | { "glVertex2f", (gl_function) glVertex2f },
|
|---|
| 533 | { "glVertex2fv", (gl_function) glVertex2fv },
|
|---|
| 534 | { "glVertex2i", (gl_function) glVertex2i },
|
|---|
| 535 | { "glVertex2iv", (gl_function) glVertex2iv },
|
|---|
| 536 | { "glVertex2s", (gl_function) glVertex2s },
|
|---|
| 537 | { "glVertex2sv", (gl_function) glVertex2sv },
|
|---|
| 538 | { "glVertex3d", (gl_function) glVertex3d },
|
|---|
| 539 | { "glVertex3dv", (gl_function) glVertex3dv },
|
|---|
| 540 | { "glVertex3f", (gl_function) glVertex3f },
|
|---|
| 541 | { "glVertex3fv", (gl_function) glVertex3fv },
|
|---|
| 542 | { "glVertex3i", (gl_function) glVertex3i },
|
|---|
| 543 | { "glVertex3iv", (gl_function) glVertex3iv },
|
|---|
| 544 | { "glVertex3s", (gl_function) glVertex3s },
|
|---|
| 545 | { "glVertex3sv", (gl_function) glVertex3sv },
|
|---|
| 546 | { "glVertex4d", (gl_function) glVertex4d },
|
|---|
| 547 | { "glVertex4dv", (gl_function) glVertex4dv },
|
|---|
| 548 | { "glVertex4f", (gl_function) glVertex4f },
|
|---|
| 549 | { "glVertex4fv", (gl_function) glVertex4fv },
|
|---|
| 550 | { "glVertex4i", (gl_function) glVertex4i },
|
|---|
| 551 | { "glVertex4iv", (gl_function) glVertex4iv },
|
|---|
| 552 | { "glVertex4s", (gl_function) glVertex4s },
|
|---|
| 553 | { "glVertex4sv", (gl_function) glVertex4sv },
|
|---|
| 554 | { "glViewport", (gl_function) glViewport },
|
|---|
| 555 |
|
|---|
| 556 | /* OpenGL 1.1 functions */
|
|---|
| 557 | { "glAreTexturesResident", (gl_function) glAreTexturesResident },
|
|---|
| 558 | { "glArrayElement", (gl_function) glArrayElement },
|
|---|
| 559 | { "glBindTexture", (gl_function) glBindTexture },
|
|---|
| 560 | { "glColorPointer", (gl_function) glColorPointer },
|
|---|
| 561 | { "glCopyTexImage1D", (gl_function) glCopyTexImage1D },
|
|---|
| 562 | { "glCopyTexImage2D", (gl_function) glCopyTexImage2D },
|
|---|
| 563 | { "glCopyTexSubImage1D", (gl_function) glCopyTexSubImage1D },
|
|---|
| 564 | { "glCopyTexSubImage2D", (gl_function) glCopyTexSubImage2D },
|
|---|
| 565 | { "glDeleteTextures", (gl_function) glDeleteTextures },
|
|---|
| 566 | { "glDisableClientState", (gl_function) glDisableClientState },
|
|---|
| 567 | { "glDrawArrays", (gl_function) glDrawArrays },
|
|---|
| 568 | { "glDrawElements", (gl_function) glDrawElements },
|
|---|
| 569 | { "glEdgeFlagPointer", (gl_function) glEdgeFlagPointer },
|
|---|
| 570 | { "glEnableClientState", (gl_function) glEnableClientState },
|
|---|
| 571 | { "glGenTextures", (gl_function) glGenTextures },
|
|---|
| 572 | { "glGetPointerv", (gl_function) glGetPointerv },
|
|---|
| 573 | { "glIndexPointer", (gl_function) glIndexPointer },
|
|---|
| 574 | { "glIndexub", (gl_function) glIndexub },
|
|---|
| 575 | { "glIndexubv", (gl_function) glIndexubv },
|
|---|
| 576 | { "glInterleavedArrays", (gl_function) glInterleavedArrays },
|
|---|
| 577 | { "glIsTexture", (gl_function) glIsTexture },
|
|---|
| 578 | { "glNormalPointer", (gl_function) glNormalPointer },
|
|---|
| 579 | { "glPopClientAttrib", (gl_function) glPopClientAttrib },
|
|---|
| 580 | { "glPrioritizeTextures", (gl_function) glPrioritizeTextures },
|
|---|
| 581 | { "glPushClientAttrib", (gl_function) glPushClientAttrib },
|
|---|
| 582 | { "glTexCoordPointer", (gl_function) glTexCoordPointer },
|
|---|
| 583 | { "glTexSubImage1D", (gl_function) glTexSubImage1D },
|
|---|
| 584 | { "glTexSubImage2D", (gl_function) glTexSubImage2D },
|
|---|
| 585 | { "glVertexPointer", (gl_function) glVertexPointer },
|
|---|
| 586 |
|
|---|
| 587 | /* OpenGL 1.2 functions */
|
|---|
| 588 | { "glCopyTexSubImage3D", (gl_function) glCopyTexSubImage3D },
|
|---|
| 589 | { "glDrawRangeElements", (gl_function) glDrawRangeElements },
|
|---|
| 590 | { "glTexImage3D", (gl_function) glTexImage3D },
|
|---|
| 591 | { "glTexSubImage3D", (gl_function) glTexSubImage3D },
|
|---|
| 592 |
|
|---|
| 593 | /* ARB_imaging functions */
|
|---|
| 594 | { "glBlendColor", (gl_function) glBlendColor },
|
|---|
| 595 | { "glBlendEquation", (gl_function) glBlendEquation },
|
|---|
| 596 | { "glColorSubTable", (gl_function) glColorSubTable },
|
|---|
| 597 | { "glColorTable", (gl_function) glColorTable },
|
|---|
| 598 | { "glColorTableParameterfv", (gl_function) glColorTableParameterfv },
|
|---|
| 599 | { "glColorTableParameteriv", (gl_function) glColorTableParameteriv },
|
|---|
| 600 | { "glConvolutionFilter1D", (gl_function) glConvolutionFilter1D },
|
|---|
| 601 | { "glConvolutionFilter2D", (gl_function) glConvolutionFilter2D },
|
|---|
| 602 | { "glConvolutionParameterf", (gl_function) glConvolutionParameterf },
|
|---|
| 603 | { "glConvolutionParameterfv", (gl_function) glConvolutionParameterfv },
|
|---|
| 604 | { "glConvolutionParameteri", (gl_function) glConvolutionParameteri },
|
|---|
| 605 | { "glConvolutionParameteriv", (gl_function) glConvolutionParameteriv },
|
|---|
| 606 | { "glCopyColorSubTable", (gl_function) glCopyColorSubTable },
|
|---|
| 607 | { "glCopyColorTable", (gl_function) glCopyColorTable },
|
|---|
| 608 | { "glCopyConvolutionFilter1D", (gl_function) glCopyConvolutionFilter1D },
|
|---|
| 609 | { "glCopyConvolutionFilter2D", (gl_function) glCopyConvolutionFilter2D },
|
|---|
| 610 | { "glGetColorTable", (gl_function) glGetColorTable },
|
|---|
| 611 | { "glGetColorTableParameterfv", (gl_function) glGetColorTableParameterfv },
|
|---|
| 612 | { "glGetColorTableParameteriv", (gl_function) glGetColorTableParameteriv },
|
|---|
| 613 | { "glGetConvolutionFilter", (gl_function) glGetConvolutionFilter },
|
|---|
| 614 | { "glGetConvolutionParameterfv", (gl_function) glGetConvolutionParameterfv },
|
|---|
| 615 | { "glGetConvolutionParameteriv", (gl_function) glGetConvolutionParameteriv },
|
|---|
| 616 | { "glGetHistogram", (gl_function) glGetHistogram },
|
|---|
| 617 | { "glGetHistogramParameterfv", (gl_function) glGetHistogramParameterfv },
|
|---|
| 618 | { "glGetHistogramParameteriv", (gl_function) glGetHistogramParameteriv },
|
|---|
| 619 | { "glGetMinmax", (gl_function) glGetMinmax },
|
|---|
| 620 | { "glGetMinmaxParameterfv", (gl_function) glGetMinmaxParameterfv },
|
|---|
| 621 | { "glGetMinmaxParameteriv", (gl_function) glGetMinmaxParameteriv },
|
|---|
| 622 | { "glGetSeparableFilter", (gl_function) glGetSeparableFilter },
|
|---|
| 623 | { "glHistogram", (gl_function) glHistogram },
|
|---|
| 624 | { "glMinmax", (gl_function) glMinmax },
|
|---|
| 625 | { "glResetHistogram", (gl_function) glResetHistogram },
|
|---|
| 626 | { "glResetMinmax", (gl_function) glResetMinmax },
|
|---|
| 627 | { "glSeparableFilter2D", (gl_function) glSeparableFilter2D },
|
|---|
| 628 |
|
|---|
| 629 | /* GL_EXT_paletted_texture */
|
|---|
| 630 | { "glColorTableEXT", (gl_function) glColorTableEXT },
|
|---|
| 631 | { "glColorSubTableEXT", (gl_function) glColorSubTableEXT },
|
|---|
| 632 | { "glGetColorTableEXT", (gl_function) glGetColorTableEXT },
|
|---|
| 633 | { "glGetColorTableParameterfvEXT", (gl_function) glGetColorTableParameterfvEXT },
|
|---|
| 634 | { "glGetColorTableParameterivEXT", (gl_function) glGetColorTableParameterivEXT },
|
|---|
| 635 |
|
|---|
| 636 | /* GL_EXT_compiled_vertex_array */
|
|---|
| 637 | { "glLockArraysEXT", (gl_function) glLockArraysEXT },
|
|---|
| 638 | { "glUnlockArraysEXT", (gl_function) glUnlockArraysEXT },
|
|---|
| 639 |
|
|---|
| 640 | /* GL_EXT_point_parameters */
|
|---|
| 641 | { "glPointParameterfEXT", (gl_function) glPointParameterfEXT },
|
|---|
| 642 | { "glPointParameterfvEXT", (gl_function) glPointParameterfvEXT },
|
|---|
| 643 |
|
|---|
| 644 | /* GL_EXT_polygon_offset */
|
|---|
| 645 | { "glPolygonOffsetEXT", (gl_function) glPolygonOffsetEXT },
|
|---|
| 646 |
|
|---|
| 647 | /* GL_EXT_blend_minmax */
|
|---|
| 648 | { "glBlendEquationEXT", (gl_function) glBlendEquationEXT },
|
|---|
| 649 |
|
|---|
| 650 | /* GL_EXT_blend_color */
|
|---|
| 651 | { "glBlendColorEXT", (gl_function) glBlendColorEXT },
|
|---|
| 652 |
|
|---|
| 653 | /* GL_EXT_vertex_arrays */
|
|---|
| 654 | { "glVertexPointerEXT", (gl_function) glVertexPointerEXT },
|
|---|
| 655 | { "glNormalPointerEXT", (gl_function) glNormalPointerEXT },
|
|---|
| 656 | { "glColorPointerEXT", (gl_function) glColorPointerEXT },
|
|---|
| 657 | { "glIndexPointerEXT", (gl_function) glIndexPointerEXT },
|
|---|
| 658 | { "glTexCoordPointerEXT", (gl_function) glTexCoordPointerEXT },
|
|---|
| 659 | { "glEdgeFlagPointerEXT", (gl_function) glEdgeFlagPointerEXT },
|
|---|
| 660 | { "glGetPointervEXT", (gl_function) glGetPointervEXT },
|
|---|
| 661 | { "glArrayElementEXT", (gl_function) glArrayElementEXT },
|
|---|
| 662 | { "glDrawArraysEXT", (gl_function) glDrawArraysEXT },
|
|---|
| 663 |
|
|---|
| 664 | /* GL_EXT_texture_object */
|
|---|
| 665 | { "glGenTexturesEXT", (gl_function) glGenTexturesEXT },
|
|---|
| 666 | { "glDeleteTexturesEXT", (gl_function) glDeleteTexturesEXT },
|
|---|
| 667 | { "glBindTextureEXT", (gl_function) glBindTextureEXT },
|
|---|
| 668 | { "glPrioritizeTexturesEXT", (gl_function) glPrioritizeTexturesEXT },
|
|---|
| 669 | { "glAreTexturesResidentEXT", (gl_function) glAreTexturesResidentEXT },
|
|---|
| 670 | { "glIsTextureEXT", (gl_function) glIsTextureEXT },
|
|---|
| 671 |
|
|---|
| 672 | /* GL_EXT_texture3D */
|
|---|
| 673 | { "glTexImage3DEXT", (gl_function) glTexImage3DEXT },
|
|---|
| 674 | { "glTexSubImage3DEXT", (gl_function) glTexSubImage3DEXT },
|
|---|
| 675 | { "glCopyTexSubImage3DEXT", (gl_function) glCopyTexSubImage3DEXT },
|
|---|
| 676 |
|
|---|
| 677 | /* GL_ARB_multitexture */
|
|---|
| 678 | { "glActiveTextureARB", (gl_function) glActiveTextureARB },
|
|---|
| 679 | { "glClientActiveTextureARB", (gl_function) glClientActiveTextureARB },
|
|---|
| 680 | { "glMultiTexCoord1dARB", (gl_function) glMultiTexCoord1dARB },
|
|---|
| 681 | { "glMultiTexCoord1dvARB", (gl_function) glMultiTexCoord1dvARB },
|
|---|
| 682 | { "glMultiTexCoord1fARB", (gl_function) glMultiTexCoord1fARB },
|
|---|
| 683 | { "glMultiTexCoord1fvARB", (gl_function) glMultiTexCoord1fvARB },
|
|---|
| 684 | { "glMultiTexCoord1iARB", (gl_function) glMultiTexCoord1iARB },
|
|---|
| 685 | { "glMultiTexCoord1ivARB", (gl_function) glMultiTexCoord1ivARB },
|
|---|
| 686 | { "glMultiTexCoord1sARB", (gl_function) glMultiTexCoord1sARB },
|
|---|
| 687 | { "glMultiTexCoord1svARB", (gl_function) glMultiTexCoord1svARB },
|
|---|
| 688 | { "glMultiTexCoord2dARB", (gl_function) glMultiTexCoord2dARB },
|
|---|
| 689 | { "glMultiTexCoord2dvARB", (gl_function) glMultiTexCoord2dvARB },
|
|---|
| 690 | { "glMultiTexCoord2fARB", (gl_function) glMultiTexCoord2fARB },
|
|---|
| 691 | { "glMultiTexCoord2fvARB", (gl_function) glMultiTexCoord2fvARB },
|
|---|
| 692 | { "glMultiTexCoord2iARB", (gl_function) glMultiTexCoord2iARB },
|
|---|
| 693 | { "glMultiTexCoord2ivARB", (gl_function) glMultiTexCoord2ivARB },
|
|---|
| 694 | { "glMultiTexCoord2sARB", (gl_function) glMultiTexCoord2sARB },
|
|---|
| 695 | { "glMultiTexCoord2svARB", (gl_function) glMultiTexCoord2svARB },
|
|---|
| 696 | { "glMultiTexCoord3dARB", (gl_function) glMultiTexCoord3dARB },
|
|---|
| 697 | { "glMultiTexCoord3dvARB", (gl_function) glMultiTexCoord3dvARB },
|
|---|
| 698 | { "glMultiTexCoord3fARB", (gl_function) glMultiTexCoord3fARB },
|
|---|
| 699 | { "glMultiTexCoord3fvARB", (gl_function) glMultiTexCoord3fvARB },
|
|---|
| 700 | { "glMultiTexCoord3iARB", (gl_function) glMultiTexCoord3iARB },
|
|---|
| 701 | { "glMultiTexCoord3ivARB", (gl_function) glMultiTexCoord3ivARB },
|
|---|
| 702 | { "glMultiTexCoord3sARB", (gl_function) glMultiTexCoord3sARB },
|
|---|
| 703 | { "glMultiTexCoord3svARB", (gl_function) glMultiTexCoord3svARB },
|
|---|
| 704 | { "glMultiTexCoord4dARB", (gl_function) glMultiTexCoord4dARB },
|
|---|
| 705 | { "glMultiTexCoord4dvARB", (gl_function) glMultiTexCoord4dvARB },
|
|---|
| 706 | { "glMultiTexCoord4fARB", (gl_function) glMultiTexCoord4fARB },
|
|---|
| 707 | { "glMultiTexCoord4fvARB", (gl_function) glMultiTexCoord4fvARB },
|
|---|
| 708 | { "glMultiTexCoord4iARB", (gl_function) glMultiTexCoord4iARB },
|
|---|
| 709 | { "glMultiTexCoord4ivARB", (gl_function) glMultiTexCoord4ivARB },
|
|---|
| 710 | { "glMultiTexCoord4sARB", (gl_function) glMultiTexCoord4sARB },
|
|---|
| 711 | { "glMultiTexCoord4svARB", (gl_function) glMultiTexCoord4svARB },
|
|---|
| 712 |
|
|---|
| 713 | /* GL_INGR_blend_func_separate */
|
|---|
| 714 | { "glBlendFuncSeparateINGR", (gl_function) glBlendFuncSeparateINGR },
|
|---|
| 715 |
|
|---|
| 716 | /* GL_MESA_window_pos */
|
|---|
| 717 | { "glWindowPos2iMESA", (gl_function) glWindowPos2iMESA },
|
|---|
| 718 | { "glWindowPos2sMESA", (gl_function) glWindowPos2sMESA },
|
|---|
| 719 | { "glWindowPos2fMESA", (gl_function) glWindowPos2fMESA },
|
|---|
| 720 | { "glWindowPos2dMESA", (gl_function) glWindowPos2dMESA },
|
|---|
| 721 | { "glWindowPos2ivMESA", (gl_function) glWindowPos2ivMESA },
|
|---|
| 722 | { "glWindowPos2svMESA", (gl_function) glWindowPos2svMESA },
|
|---|
| 723 | { "glWindowPos2fvMESA", (gl_function) glWindowPos2fvMESA },
|
|---|
| 724 | { "glWindowPos2dvMESA", (gl_function) glWindowPos2dvMESA },
|
|---|
| 725 | { "glWindowPos3iMESA", (gl_function) glWindowPos3iMESA },
|
|---|
| 726 | { "glWindowPos3sMESA", (gl_function) glWindowPos3sMESA },
|
|---|
| 727 | { "glWindowPos3fMESA", (gl_function) glWindowPos3fMESA },
|
|---|
| 728 | { "glWindowPos3dMESA", (gl_function) glWindowPos3dMESA },
|
|---|
| 729 | { "glWindowPos3ivMESA", (gl_function) glWindowPos3ivMESA },
|
|---|
| 730 | { "glWindowPos3svMESA", (gl_function) glWindowPos3svMESA },
|
|---|
| 731 | { "glWindowPos3fvMESA", (gl_function) glWindowPos3fvMESA },
|
|---|
| 732 | { "glWindowPos3dvMESA", (gl_function) glWindowPos3dvMESA },
|
|---|
| 733 | { "glWindowPos4iMESA", (gl_function) glWindowPos4iMESA },
|
|---|
| 734 | { "glWindowPos4sMESA", (gl_function) glWindowPos4sMESA },
|
|---|
| 735 | { "glWindowPos4fMESA", (gl_function) glWindowPos4fMESA },
|
|---|
| 736 | { "glWindowPos4dMESA", (gl_function) glWindowPos4dMESA },
|
|---|
| 737 | { "glWindowPos4ivMESA", (gl_function) glWindowPos4ivMESA },
|
|---|
| 738 | { "glWindowPos4svMESA", (gl_function) glWindowPos4svMESA },
|
|---|
| 739 | { "glWindowPos4fvMESA", (gl_function) glWindowPos4fvMESA },
|
|---|
| 740 | { "glWindowPos4dvMESA", (gl_function) glWindowPos4dvMESA },
|
|---|
| 741 |
|
|---|
| 742 | /* GL_MESA_resize_buffers */
|
|---|
| 743 | { "glResizeBuffersMESA", (gl_function) glResizeBuffersMESA },
|
|---|
| 744 |
|
|---|
| 745 | /* GL_EXT_compiled_vertex_array */
|
|---|
| 746 | { "glLockArraysEXT", (gl_function) glLockArraysEXT },
|
|---|
| 747 | { "glUnlockArraysEXT", (gl_function) glUnlockArraysEXT },
|
|---|
| 748 |
|
|---|
| 749 | { NULL, NULL } /* end of list token */
|
|---|
| 750 | };
|
|---|
| 751 | GLuint i;
|
|---|
| 752 |
|
|---|
| 753 | for (i = 0; procTable[i].address; i++) {
|
|---|
| 754 | if (strcmp((const char *) procName, procTable[i].name) == 0)
|
|---|
| 755 | return procTable[i].address;
|
|---|
| 756 | }
|
|---|
| 757 |
|
|---|
| 758 | return NULL;
|
|---|
| 759 | }
|
|---|