apple_glapi.c revision 3a71f880d2284cb4d3f7f4de44f83eff95e6a789
1/*
2 * GLX implementation that uses Apple's OpenGL.framework
3 *
4 * Copyright (c) 2007-2011 Apple Inc.
5 * Copyright (c) 2004 Torrey T. Lyons. All Rights Reserved.
6 * Copyright (c) 2002 Greg Parker. All Rights Reserved.
7 *
8 * Portions of this file are copied from Mesa's xf86glx.c,
9 * which contains the following copyright:
10 *
11 * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
12 * All Rights Reserved.
13 *
14 * Permission is hereby granted, free of charge, to any person obtaining a
15 * copy of this software and associated documentation files (the "Software"),
16 * to deal in the Software without restriction, including without limitation
17 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
18 * and/or sell copies of the Software, and to permit persons to whom the
19 * Software is furnished to do so, subject to the following conditions:
20 *
21 * The above copyright notice and this permission notice shall be included in
22 * all copies or substantial portions of the Software.
23 *
24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
27 * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
28 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
29 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
30 * DEALINGS IN THE SOFTWARE.
31 */
32
33#include <assert.h>
34#include <dlfcn.h>
35#include <stdlib.h>
36#include <string.h>
37#include <stdio.h>
38
39#include <GL/gl.h>
40
41#include "glapi.h"
42#include "glapitable.h"
43#include "glapidispatch.h"
44
45#include "apple_glx.h"
46#include "apple_xgl_api.h"
47
48#ifndef OPENGL_FRAMEWORK_PATH
49#define OPENGL_FRAMEWORK_PATH "/System/Library/Frameworks/OpenGL.framework/OpenGL"
50#endif
51
52__private_extern__
53struct _glapi_table * __ogl_framework_api = NULL;
54
55__private_extern__
56struct _glapi_table * __applegl_api = NULL;
57
58__private_extern__
59void apple_xgl_init_direct(void) {
60    static void *handle;
61    const char *opengl_framework_path;
62
63    if(__applegl_api)  {
64        _glapi_set_dispatch(__applegl_api);
65        return;
66    }
67
68    opengl_framework_path = getenv("OPENGL_FRAMEWORK_PATH");
69    if (!opengl_framework_path) {
70        opengl_framework_path = OPENGL_FRAMEWORK_PATH;
71    }
72
73    (void) dlerror();            /*drain dlerror */
74    handle = dlopen(opengl_framework_path, RTLD_LOCAL);
75
76    if (!handle) {
77        fprintf(stderr, "error: unable to dlopen %s : %s\n",
78                opengl_framework_path, dlerror());
79        abort();
80    }
81
82    __ogl_framework_api = calloc(1, sizeof(struct _glapi_table));
83    assert(__ogl_framework_api);
84
85    /* to update:
86     * for f in $(grep SET_ ../../mesa/main/glapidispatch.h | grep INLINE | sed 's:^.*\(SET_[^(]*\)(.*$:\1:' | sort -u); do grep -q "$f(" apple_glapi.c || echo $f ; done | sed 's:SET_\(.*\)$:    SET_\1(__ogl_framework_api, dlsym(handle, "gl\1"))\;:'
87     */
88
89    SET_Accum(__ogl_framework_api, dlsym(handle, "glAccum"));
90    SET_AlphaFunc(__ogl_framework_api, dlsym(handle, "glAlphaFunc"));
91    SET_AreTexturesResident(__ogl_framework_api, dlsym(handle, "glAreTexturesResident"));
92    SET_ArrayElement(__ogl_framework_api, dlsym(handle, "glArrayElement"));
93    SET_Begin(__ogl_framework_api, dlsym(handle, "glBegin"));
94    SET_BindTexture(__ogl_framework_api, dlsym(handle, "glBindTexture"));
95    SET_Bitmap(__ogl_framework_api, dlsym(handle, "glBitmap"));
96    SET_BlendColor(__ogl_framework_api, dlsym(handle, "glBlendColor"));
97    SET_BlendEquation(__ogl_framework_api, dlsym(handle, "glBlendEquation"));
98    SET_BlendFunc(__ogl_framework_api, dlsym(handle, "glBlendFunc"));
99    SET_CallList(__ogl_framework_api, dlsym(handle, "glCallList"));
100    SET_CallLists(__ogl_framework_api, dlsym(handle, "glCallLists"));
101    SET_Clear(__ogl_framework_api, dlsym(handle, "glClear"));
102    SET_ClearAccum(__ogl_framework_api, dlsym(handle, "glClearAccum"));
103    SET_ClearColor(__ogl_framework_api, dlsym(handle, "glClearColor"));
104    SET_ClearDepth(__ogl_framework_api, dlsym(handle, "glClearDepth"));
105    SET_ClearIndex(__ogl_framework_api, dlsym(handle, "glClearIndex"));
106    SET_ClearStencil(__ogl_framework_api, dlsym(handle, "glClearStencil"));
107    SET_ClipPlane(__ogl_framework_api, dlsym(handle, "glClipPlane"));
108    SET_Color3b(__ogl_framework_api, dlsym(handle, "glColor3b"));
109    SET_Color3bv(__ogl_framework_api, dlsym(handle, "glColor3bv"));
110    SET_Color3d(__ogl_framework_api, dlsym(handle, "glColor3d"));
111    SET_Color3dv(__ogl_framework_api, dlsym(handle, "glColor3dv"));
112    SET_Color3f(__ogl_framework_api, dlsym(handle, "glColor3f"));
113    SET_Color3fv(__ogl_framework_api, dlsym(handle, "glColor3fv"));
114    SET_Color3i(__ogl_framework_api, dlsym(handle, "glColor3i"));
115    SET_Color3iv(__ogl_framework_api, dlsym(handle, "glColor3iv"));
116    SET_Color3s(__ogl_framework_api, dlsym(handle, "glColor3s"));
117    SET_Color3sv(__ogl_framework_api, dlsym(handle, "glColor3sv"));
118    SET_Color3ub(__ogl_framework_api, dlsym(handle, "glColor3ub"));
119    SET_Color3ubv(__ogl_framework_api, dlsym(handle, "glColor3ubv"));
120    SET_Color3ui(__ogl_framework_api, dlsym(handle, "glColor3ui"));
121    SET_Color3uiv(__ogl_framework_api, dlsym(handle, "glColor3uiv"));
122    SET_Color3us(__ogl_framework_api, dlsym(handle, "glColor3us"));
123    SET_Color3usv(__ogl_framework_api, dlsym(handle, "glColor3usv"));
124    SET_Color4b(__ogl_framework_api, dlsym(handle, "glColor4b"));
125    SET_Color4bv(__ogl_framework_api, dlsym(handle, "glColor4bv"));
126    SET_Color4d(__ogl_framework_api, dlsym(handle, "glColor4d"));
127    SET_Color4dv(__ogl_framework_api, dlsym(handle, "glColor4dv"));
128    SET_Color4f(__ogl_framework_api, dlsym(handle, "glColor4f"));
129    SET_Color4fv(__ogl_framework_api, dlsym(handle, "glColor4fv"));
130    SET_Color4i(__ogl_framework_api, dlsym(handle, "glColor4i"));
131    SET_Color4iv(__ogl_framework_api, dlsym(handle, "glColor4iv"));
132    SET_Color4s(__ogl_framework_api, dlsym(handle, "glColor4s"));
133    SET_Color4sv(__ogl_framework_api, dlsym(handle, "glColor4sv"));
134    SET_Color4ub(__ogl_framework_api, dlsym(handle, "glColor4ub"));
135    SET_Color4ubv(__ogl_framework_api, dlsym(handle, "glColor4ubv"));
136    SET_Color4ui(__ogl_framework_api, dlsym(handle, "glColor4ui"));
137    SET_Color4uiv(__ogl_framework_api, dlsym(handle, "glColor4uiv"));
138    SET_Color4us(__ogl_framework_api, dlsym(handle, "glColor4us"));
139    SET_Color4usv(__ogl_framework_api, dlsym(handle, "glColor4usv"));
140    SET_ColorMask(__ogl_framework_api, dlsym(handle, "glColorMask"));
141    SET_ColorMaterial(__ogl_framework_api, dlsym(handle, "glColorMaterial"));
142    SET_ColorPointer(__ogl_framework_api, dlsym(handle, "glColorPointer"));
143    SET_ColorSubTable(__ogl_framework_api, dlsym(handle, "glColorSubTable"));
144    SET_ColorTable(__ogl_framework_api, dlsym(handle, "glColorTable"));
145    SET_ColorTableParameterfv(__ogl_framework_api, dlsym(handle, "glColorTableParameterfv"));
146    SET_ColorTableParameteriv(__ogl_framework_api, dlsym(handle, "glColorTableParameteriv"));
147    SET_ConvolutionFilter1D(__ogl_framework_api, dlsym(handle, "glConvolutionFilter1D"));
148    SET_ConvolutionFilter2D(__ogl_framework_api, dlsym(handle, "glConvolutionFilter2D"));
149    SET_ConvolutionParameterf(__ogl_framework_api, dlsym(handle, "glConvolutionParameterf"));
150    SET_ConvolutionParameterfv(__ogl_framework_api, dlsym(handle, "glConvolutionParameterfv"));
151    SET_ConvolutionParameteri(__ogl_framework_api, dlsym(handle, "glConvolutionParameteri"));
152    SET_ConvolutionParameteriv(__ogl_framework_api, dlsym(handle, "glConvolutionParameteriv"));
153    SET_CopyColorSubTable(__ogl_framework_api, dlsym(handle, "glCopyColorSubTable"));
154    SET_CopyColorTable(__ogl_framework_api, dlsym(handle, "glCopyColorTable"));
155    SET_CopyConvolutionFilter1D(__ogl_framework_api, dlsym(handle, "glCopyConvolutionFilter1D"));
156    SET_CopyConvolutionFilter2D(__ogl_framework_api, dlsym(handle, "glCopyConvolutionFilter2D"));
157    SET_CopyPixels(__ogl_framework_api, dlsym(handle, "glCopyPixels"));
158    SET_CopyTexImage1D(__ogl_framework_api, dlsym(handle, "glCopyTexImage1D"));
159    SET_CopyTexImage2D(__ogl_framework_api, dlsym(handle, "glCopyTexImage2D"));
160    SET_CopyTexSubImage1D(__ogl_framework_api, dlsym(handle, "glCopyTexSubImage1D"));
161    SET_CopyTexSubImage2D(__ogl_framework_api, dlsym(handle, "glCopyTexSubImage2D"));
162    SET_CopyTexSubImage3D(__ogl_framework_api, dlsym(handle, "glCopyTexSubImage3D"));
163    SET_CullFace(__ogl_framework_api, dlsym(handle, "glCullFace"));
164    SET_DeleteLists(__ogl_framework_api, dlsym(handle, "glDeleteLists"));
165    SET_DeleteTextures(__ogl_framework_api, dlsym(handle, "glDeleteTextures"));
166    SET_DepthFunc(__ogl_framework_api, dlsym(handle, "glDepthFunc"));
167    SET_DepthMask(__ogl_framework_api, dlsym(handle, "glDepthMask"));
168    SET_DepthRange(__ogl_framework_api, dlsym(handle, "glDepthRange"));
169    SET_Disable(__ogl_framework_api, dlsym(handle, "glDisable"));
170    SET_DisableClientState(__ogl_framework_api, dlsym(handle, "glDisableClientState"));
171    SET_DrawArrays(__ogl_framework_api, dlsym(handle, "glDrawArrays"));
172    SET_DrawBuffer(__ogl_framework_api, dlsym(handle, "glDrawBuffer"));
173    SET_DrawElements(__ogl_framework_api, dlsym(handle, "glDrawElements"));
174    SET_DrawPixels(__ogl_framework_api, dlsym(handle, "glDrawPixels"));
175    SET_DrawRangeElements(__ogl_framework_api, dlsym(handle, "glDrawRangeElements"));
176    SET_EdgeFlag(__ogl_framework_api, dlsym(handle, "glEdgeFlag"));
177    SET_EdgeFlagPointer(__ogl_framework_api, dlsym(handle, "glEdgeFlagPointer"));
178    SET_EdgeFlagv(__ogl_framework_api, dlsym(handle, "glEdgeFlagv"));
179    SET_Enable(__ogl_framework_api, dlsym(handle, "glEnable"));
180    SET_EnableClientState(__ogl_framework_api, dlsym(handle, "glEnableClientState"));
181    SET_End(__ogl_framework_api, dlsym(handle, "glEnd"));
182    SET_EndList(__ogl_framework_api, dlsym(handle, "glEndList"));
183    SET_EvalCoord1d(__ogl_framework_api, dlsym(handle, "glEvalCoord1d"));
184    SET_EvalCoord1dv(__ogl_framework_api, dlsym(handle, "glEvalCoord1dv"));
185    SET_EvalCoord1f(__ogl_framework_api, dlsym(handle, "glEvalCoord1f"));
186    SET_EvalCoord1fv(__ogl_framework_api, dlsym(handle, "glEvalCoord1fv"));
187    SET_EvalCoord2d(__ogl_framework_api, dlsym(handle, "glEvalCoord2d"));
188    SET_EvalCoord2dv(__ogl_framework_api, dlsym(handle, "glEvalCoord2dv"));
189    SET_EvalCoord2f(__ogl_framework_api, dlsym(handle, "glEvalCoord2f"));
190    SET_EvalCoord2fv(__ogl_framework_api, dlsym(handle, "glEvalCoord2fv"));
191    SET_EvalMesh1(__ogl_framework_api, dlsym(handle, "glEvalMesh1"));
192    SET_EvalMesh2(__ogl_framework_api, dlsym(handle, "glEvalMesh2"));
193    SET_EvalPoint1(__ogl_framework_api, dlsym(handle, "glEvalPoint1"));
194    SET_EvalPoint2(__ogl_framework_api, dlsym(handle, "glEvalPoint2"));
195    SET_FeedbackBuffer(__ogl_framework_api, dlsym(handle, "glFeedbackBuffer"));
196    SET_Finish(__ogl_framework_api, dlsym(handle, "glFinish"));
197    SET_Flush(__ogl_framework_api, dlsym(handle, "glFlush"));
198    SET_Fogf(__ogl_framework_api, dlsym(handle, "glFogf"));
199    SET_Fogfv(__ogl_framework_api, dlsym(handle, "glFogfv"));
200    SET_Fogi(__ogl_framework_api, dlsym(handle, "glFogi"));
201    SET_Fogiv(__ogl_framework_api, dlsym(handle, "glFogiv"));
202    SET_FrontFace(__ogl_framework_api, dlsym(handle, "glFrontFace"));
203    SET_Frustum(__ogl_framework_api, dlsym(handle, "glFrustum"));
204    SET_GenLists(__ogl_framework_api, dlsym(handle, "glGenLists"));
205    SET_GenTextures(__ogl_framework_api, dlsym(handle, "glGenTextures"));
206    SET_GetBooleanv(__ogl_framework_api, dlsym(handle, "glGetBooleanv"));
207    SET_GetClipPlane(__ogl_framework_api, dlsym(handle, "glGetClipPlane"));
208    SET_GetColorTable(__ogl_framework_api, dlsym(handle, "glGetColorTable"));
209    SET_GetColorTableParameterfv(__ogl_framework_api, dlsym(handle, "glGetColorTableParameterfv"));
210    SET_GetColorTableParameteriv(__ogl_framework_api, dlsym(handle, "glGetColorTableParameteriv"));
211    SET_GetConvolutionFilter(__ogl_framework_api, dlsym(handle, "glGetConvolutionFilter"));
212    SET_GetConvolutionParameterfv(__ogl_framework_api, dlsym(handle, "glGetConvolutionParameterfv"));
213    SET_GetConvolutionParameteriv(__ogl_framework_api, dlsym(handle, "glGetConvolutionParameteriv"));
214    SET_GetDoublev(__ogl_framework_api, dlsym(handle, "glGetDoublev"));
215    SET_GetError(__ogl_framework_api, dlsym(handle, "glGetError"));
216    SET_GetFloatv(__ogl_framework_api, dlsym(handle, "glGetFloatv"));
217    SET_GetHistogram(__ogl_framework_api, dlsym(handle, "glGetHistogram"));
218    SET_GetHistogramParameterfv(__ogl_framework_api, dlsym(handle, "glGetHistogramParameterfv"));
219    SET_GetHistogramParameteriv(__ogl_framework_api, dlsym(handle, "glGetHistogramParameteriv"));
220    SET_GetIntegerv(__ogl_framework_api, dlsym(handle, "glGetIntegerv"));
221    SET_GetLightfv(__ogl_framework_api, dlsym(handle, "glGetLightfv"));
222    SET_GetLightiv(__ogl_framework_api, dlsym(handle, "glGetLightiv"));
223    SET_GetMapdv(__ogl_framework_api, dlsym(handle, "glGetMapdv"));
224    SET_GetMapfv(__ogl_framework_api, dlsym(handle, "glGetMapfv"));
225    SET_GetMapiv(__ogl_framework_api, dlsym(handle, "glGetMapiv"));
226    SET_GetMaterialfv(__ogl_framework_api, dlsym(handle, "glGetMaterialfv"));
227    SET_GetMaterialiv(__ogl_framework_api, dlsym(handle, "glGetMaterialiv"));
228    SET_GetMinmax(__ogl_framework_api, dlsym(handle, "glGetMinmax"));
229    SET_GetMinmaxParameterfv(__ogl_framework_api, dlsym(handle, "glGetMinmaxParameterfv"));
230    SET_GetMinmaxParameteriv(__ogl_framework_api, dlsym(handle, "glGetMinmaxParameteriv"));
231    SET_GetPixelMapfv(__ogl_framework_api, dlsym(handle, "glGetPixelMapfv"));
232    SET_GetPixelMapuiv(__ogl_framework_api, dlsym(handle, "glGetPixelMapuiv"));
233    SET_GetPixelMapusv(__ogl_framework_api, dlsym(handle, "glGetPixelMapusv"));
234    SET_GetPointerv(__ogl_framework_api, dlsym(handle, "glGetPointerv"));
235    SET_GetPolygonStipple(__ogl_framework_api, dlsym(handle, "glGetPolygonStipple"));
236    SET_GetSeparableFilter(__ogl_framework_api, dlsym(handle, "glGetSeparableFilter"));
237    SET_GetString(__ogl_framework_api, dlsym(handle, "glGetString"));
238    SET_GetTexEnvfv(__ogl_framework_api, dlsym(handle, "glGetTexEnvfv"));
239    SET_GetTexEnviv(__ogl_framework_api, dlsym(handle, "glGetTexEnviv"));
240    SET_GetTexGendv(__ogl_framework_api, dlsym(handle, "glGetTexGendv"));
241    SET_GetTexGenfv(__ogl_framework_api, dlsym(handle, "glGetTexGenfv"));
242    SET_GetTexGeniv(__ogl_framework_api, dlsym(handle, "glGetTexGeniv"));
243    SET_GetTexImage(__ogl_framework_api, dlsym(handle, "glGetTexImage"));
244    SET_GetTexLevelParameterfv(__ogl_framework_api, dlsym(handle, "glGetTexLevelParameterfv"));
245    SET_GetTexLevelParameteriv(__ogl_framework_api, dlsym(handle, "glGetTexLevelParameteriv"));
246    SET_GetTexParameterfv(__ogl_framework_api, dlsym(handle, "glGetTexParameterfv"));
247    SET_GetTexParameteriv(__ogl_framework_api, dlsym(handle, "glGetTexParameteriv"));
248    SET_Hint(__ogl_framework_api, dlsym(handle, "glHint"));
249    SET_Histogram(__ogl_framework_api, dlsym(handle, "glHistogram"));
250    SET_IndexMask(__ogl_framework_api, dlsym(handle, "glIndexMask"));
251    SET_IndexPointer(__ogl_framework_api, dlsym(handle, "glIndexPointer"));
252    SET_Indexd(__ogl_framework_api, dlsym(handle, "glIndexd"));
253    SET_Indexdv(__ogl_framework_api, dlsym(handle, "glIndexdv"));
254    SET_Indexf(__ogl_framework_api, dlsym(handle, "glIndexf"));
255    SET_Indexfv(__ogl_framework_api, dlsym(handle, "glIndexfv"));
256    SET_Indexi(__ogl_framework_api, dlsym(handle, "glIndexi"));
257    SET_Indexiv(__ogl_framework_api, dlsym(handle, "glIndexiv"));
258    SET_Indexs(__ogl_framework_api, dlsym(handle, "glIndexs"));
259    SET_Indexsv(__ogl_framework_api, dlsym(handle, "glIndexsv"));
260    SET_Indexub(__ogl_framework_api, dlsym(handle, "glIndexub"));
261    SET_Indexubv(__ogl_framework_api, dlsym(handle, "glIndexubv"));
262    SET_InitNames(__ogl_framework_api, dlsym(handle, "glInitNames"));
263    SET_InterleavedArrays(__ogl_framework_api, dlsym(handle, "glInterleavedArrays"));
264    SET_IsEnabled(__ogl_framework_api, dlsym(handle, "glIsEnabled"));
265    SET_IsList(__ogl_framework_api, dlsym(handle, "glIsList"));
266    SET_IsTexture(__ogl_framework_api, dlsym(handle, "glIsTexture"));
267    SET_LightModelf(__ogl_framework_api, dlsym(handle, "glLightModelf"));
268    SET_LightModelfv(__ogl_framework_api, dlsym(handle, "glLightModelfv"));
269    SET_LightModeli(__ogl_framework_api, dlsym(handle, "glLightModeli"));
270    SET_LightModeliv(__ogl_framework_api, dlsym(handle, "glLightModeliv"));
271    SET_Lightf(__ogl_framework_api, dlsym(handle, "glLightf"));
272    SET_Lightfv(__ogl_framework_api, dlsym(handle, "glLightfv"));
273    SET_Lighti(__ogl_framework_api, dlsym(handle, "glLighti"));
274    SET_Lightiv(__ogl_framework_api, dlsym(handle, "glLightiv"));
275    SET_LineStipple(__ogl_framework_api, dlsym(handle, "glLineStipple"));
276    SET_LineWidth(__ogl_framework_api, dlsym(handle, "glLineWidth"));
277    SET_ListBase(__ogl_framework_api, dlsym(handle, "glListBase"));
278    SET_LoadIdentity(__ogl_framework_api, dlsym(handle, "glLoadIdentity"));
279    SET_LoadMatrixd(__ogl_framework_api, dlsym(handle, "glLoadMatrixd"));
280    SET_LoadMatrixf(__ogl_framework_api, dlsym(handle, "glLoadMatrixf"));
281    SET_LoadName(__ogl_framework_api, dlsym(handle, "glLoadName"));
282    SET_LogicOp(__ogl_framework_api, dlsym(handle, "glLogicOp"));
283    SET_Map1d(__ogl_framework_api, dlsym(handle, "glMap1d"));
284    SET_Map1f(__ogl_framework_api, dlsym(handle, "glMap1f"));
285    SET_Map2d(__ogl_framework_api, dlsym(handle, "glMap2d"));
286    SET_Map2f(__ogl_framework_api, dlsym(handle, "glMap2f"));
287    SET_MapGrid1d(__ogl_framework_api, dlsym(handle, "glMapGrid1d"));
288    SET_MapGrid1f(__ogl_framework_api, dlsym(handle, "glMapGrid1f"));
289    SET_MapGrid2d(__ogl_framework_api, dlsym(handle, "glMapGrid2d"));
290    SET_MapGrid2f(__ogl_framework_api, dlsym(handle, "glMapGrid2f"));
291    SET_Materialf(__ogl_framework_api, dlsym(handle, "glMaterialf"));
292    SET_Materialfv(__ogl_framework_api, dlsym(handle, "glMaterialfv"));
293    SET_Materiali(__ogl_framework_api, dlsym(handle, "glMateriali"));
294    SET_Materialiv(__ogl_framework_api, dlsym(handle, "glMaterialiv"));
295    SET_MatrixMode(__ogl_framework_api, dlsym(handle, "glMatrixMode"));
296    SET_Minmax(__ogl_framework_api, dlsym(handle, "glMinmax"));
297    SET_MultMatrixd(__ogl_framework_api, dlsym(handle, "glMultMatrixd"));
298    SET_MultMatrixf(__ogl_framework_api, dlsym(handle, "glMultMatrixf"));
299    SET_NewList(__ogl_framework_api, dlsym(handle, "glNewList"));
300    SET_Normal3b(__ogl_framework_api, dlsym(handle, "glNormal3b"));
301    SET_Normal3bv(__ogl_framework_api, dlsym(handle, "glNormal3bv"));
302    SET_Normal3d(__ogl_framework_api, dlsym(handle, "glNormal3d"));
303    SET_Normal3dv(__ogl_framework_api, dlsym(handle, "glNormal3dv"));
304    SET_Normal3f(__ogl_framework_api, dlsym(handle, "glNormal3f"));
305    SET_Normal3fv(__ogl_framework_api, dlsym(handle, "glNormal3fv"));
306    SET_Normal3i(__ogl_framework_api, dlsym(handle, "glNormal3i"));
307    SET_Normal3iv(__ogl_framework_api, dlsym(handle, "glNormal3iv"));
308    SET_Normal3s(__ogl_framework_api, dlsym(handle, "glNormal3s"));
309    SET_Normal3sv(__ogl_framework_api, dlsym(handle, "glNormal3sv"));
310    SET_NormalPointer(__ogl_framework_api, dlsym(handle, "glNormalPointer"));
311    SET_Ortho(__ogl_framework_api, dlsym(handle, "glOrtho"));
312    SET_PassThrough(__ogl_framework_api, dlsym(handle, "glPassThrough"));
313    SET_PixelMapfv(__ogl_framework_api, dlsym(handle, "glPixelMapfv"));
314    SET_PixelMapuiv(__ogl_framework_api, dlsym(handle, "glPixelMapuiv"));
315    SET_PixelMapusv(__ogl_framework_api, dlsym(handle, "glPixelMapusv"));
316    SET_PixelStoref(__ogl_framework_api, dlsym(handle, "glPixelStoref"));
317    SET_PixelStorei(__ogl_framework_api, dlsym(handle, "glPixelStorei"));
318    SET_PixelTransferf(__ogl_framework_api, dlsym(handle, "glPixelTransferf"));
319    SET_PixelTransferi(__ogl_framework_api, dlsym(handle, "glPixelTransferi"));
320    SET_PixelZoom(__ogl_framework_api, dlsym(handle, "glPixelZoom"));
321    SET_PointSize(__ogl_framework_api, dlsym(handle, "glPointSize"));
322    SET_PolygonMode(__ogl_framework_api, dlsym(handle, "glPolygonMode"));
323    SET_PolygonOffset(__ogl_framework_api, dlsym(handle, "glPolygonOffset"));
324    SET_PolygonStipple(__ogl_framework_api, dlsym(handle, "glPolygonStipple"));
325    SET_PopAttrib(__ogl_framework_api, dlsym(handle, "glPopAttrib"));
326    SET_PopClientAttrib(__ogl_framework_api, dlsym(handle, "glPopClientAttrib"));
327    SET_PopMatrix(__ogl_framework_api, dlsym(handle, "glPopMatrix"));
328    SET_PopName(__ogl_framework_api, dlsym(handle, "glPopName"));
329    SET_PrioritizeTextures(__ogl_framework_api, dlsym(handle, "glPrioritizeTextures"));
330    SET_PushAttrib(__ogl_framework_api, dlsym(handle, "glPushAttrib"));
331    SET_PushClientAttrib(__ogl_framework_api, dlsym(handle, "glPushClientAttrib"));
332    SET_PushMatrix(__ogl_framework_api, dlsym(handle, "glPushMatrix"));
333    SET_PushName(__ogl_framework_api, dlsym(handle, "glPushName"));
334    SET_RasterPos2d(__ogl_framework_api, dlsym(handle, "glRasterPos2d"));
335    SET_RasterPos2dv(__ogl_framework_api, dlsym(handle, "glRasterPos2dv"));
336    SET_RasterPos2f(__ogl_framework_api, dlsym(handle, "glRasterPos2f"));
337    SET_RasterPos2fv(__ogl_framework_api, dlsym(handle, "glRasterPos2fv"));
338    SET_RasterPos2i(__ogl_framework_api, dlsym(handle, "glRasterPos2i"));
339    SET_RasterPos2iv(__ogl_framework_api, dlsym(handle, "glRasterPos2iv"));
340    SET_RasterPos2s(__ogl_framework_api, dlsym(handle, "glRasterPos2s"));
341    SET_RasterPos2sv(__ogl_framework_api, dlsym(handle, "glRasterPos2sv"));
342    SET_RasterPos3d(__ogl_framework_api, dlsym(handle, "glRasterPos3d"));
343    SET_RasterPos3dv(__ogl_framework_api, dlsym(handle, "glRasterPos3dv"));
344    SET_RasterPos3f(__ogl_framework_api, dlsym(handle, "glRasterPos3f"));
345    SET_RasterPos3fv(__ogl_framework_api, dlsym(handle, "glRasterPos3fv"));
346    SET_RasterPos3i(__ogl_framework_api, dlsym(handle, "glRasterPos3i"));
347    SET_RasterPos3iv(__ogl_framework_api, dlsym(handle, "glRasterPos3iv"));
348    SET_RasterPos3s(__ogl_framework_api, dlsym(handle, "glRasterPos3s"));
349    SET_RasterPos3sv(__ogl_framework_api, dlsym(handle, "glRasterPos3sv"));
350    SET_RasterPos4d(__ogl_framework_api, dlsym(handle, "glRasterPos4d"));
351    SET_RasterPos4dv(__ogl_framework_api, dlsym(handle, "glRasterPos4dv"));
352    SET_RasterPos4f(__ogl_framework_api, dlsym(handle, "glRasterPos4f"));
353    SET_RasterPos4fv(__ogl_framework_api, dlsym(handle, "glRasterPos4fv"));
354    SET_RasterPos4i(__ogl_framework_api, dlsym(handle, "glRasterPos4i"));
355    SET_RasterPos4iv(__ogl_framework_api, dlsym(handle, "glRasterPos4iv"));
356    SET_RasterPos4s(__ogl_framework_api, dlsym(handle, "glRasterPos4s"));
357    SET_RasterPos4sv(__ogl_framework_api, dlsym(handle, "glRasterPos4sv"));
358    SET_ReadBuffer(__ogl_framework_api, dlsym(handle, "glReadBuffer"));
359    SET_ReadPixels(__ogl_framework_api, dlsym(handle, "glReadPixels"));
360    SET_Rectd(__ogl_framework_api, dlsym(handle, "glRectd"));
361    SET_Rectdv(__ogl_framework_api, dlsym(handle, "glRectdv"));
362    SET_Rectf(__ogl_framework_api, dlsym(handle, "glRectf"));
363    SET_Rectfv(__ogl_framework_api, dlsym(handle, "glRectfv"));
364    SET_Recti(__ogl_framework_api, dlsym(handle, "glRecti"));
365    SET_Rectiv(__ogl_framework_api, dlsym(handle, "glRectiv"));
366    SET_Rects(__ogl_framework_api, dlsym(handle, "glRects"));
367    SET_Rectsv(__ogl_framework_api, dlsym(handle, "glRectsv"));
368    SET_RenderMode(__ogl_framework_api, dlsym(handle, "glRenderMode"));
369    SET_ResetHistogram(__ogl_framework_api, dlsym(handle, "glResetHistogram"));
370    SET_ResetMinmax(__ogl_framework_api, dlsym(handle, "glResetMinmax"));
371    SET_Rotated(__ogl_framework_api, dlsym(handle, "glRotated"));
372    SET_Rotatef(__ogl_framework_api, dlsym(handle, "glRotatef"));
373    SET_Scaled(__ogl_framework_api, dlsym(handle, "glScaled"));
374    SET_Scalef(__ogl_framework_api, dlsym(handle, "glScalef"));
375    SET_Scissor(__ogl_framework_api, dlsym(handle, "glScissor"));
376    SET_SelectBuffer(__ogl_framework_api, dlsym(handle, "glSelectBuffer"));
377    SET_SeparableFilter2D(__ogl_framework_api, dlsym(handle, "glSeparableFilter2D"));
378    SET_ShadeModel(__ogl_framework_api, dlsym(handle, "glShadeModel"));
379    SET_StencilFunc(__ogl_framework_api, dlsym(handle, "glStencilFunc"));
380    SET_StencilMask(__ogl_framework_api, dlsym(handle, "glStencilMask"));
381    SET_StencilOp(__ogl_framework_api, dlsym(handle, "glStencilOp"));
382    SET_TexCoord1d(__ogl_framework_api, dlsym(handle, "glTexCoord1d"));
383    SET_TexCoord1dv(__ogl_framework_api, dlsym(handle, "glTexCoord1dv"));
384    SET_TexCoord1f(__ogl_framework_api, dlsym(handle, "glTexCoord1f"));
385    SET_TexCoord1fv(__ogl_framework_api, dlsym(handle, "glTexCoord1fv"));
386    SET_TexCoord1i(__ogl_framework_api, dlsym(handle, "glTexCoord1i"));
387    SET_TexCoord1iv(__ogl_framework_api, dlsym(handle, "glTexCoord1iv"));
388    SET_TexCoord1s(__ogl_framework_api, dlsym(handle, "glTexCoord1s"));
389    SET_TexCoord1sv(__ogl_framework_api, dlsym(handle, "glTexCoord1sv"));
390    SET_TexCoord2d(__ogl_framework_api, dlsym(handle, "glTexCoord2d"));
391    SET_TexCoord2dv(__ogl_framework_api, dlsym(handle, "glTexCoord2dv"));
392    SET_TexCoord2f(__ogl_framework_api, dlsym(handle, "glTexCoord2f"));
393    SET_TexCoord2fv(__ogl_framework_api, dlsym(handle, "glTexCoord2fv"));
394    SET_TexCoord2i(__ogl_framework_api, dlsym(handle, "glTexCoord2i"));
395    SET_TexCoord2iv(__ogl_framework_api, dlsym(handle, "glTexCoord2iv"));
396    SET_TexCoord2s(__ogl_framework_api, dlsym(handle, "glTexCoord2s"));
397    SET_TexCoord2sv(__ogl_framework_api, dlsym(handle, "glTexCoord2sv"));
398    SET_TexCoord3d(__ogl_framework_api, dlsym(handle, "glTexCoord3d"));
399    SET_TexCoord3dv(__ogl_framework_api, dlsym(handle, "glTexCoord3dv"));
400    SET_TexCoord3f(__ogl_framework_api, dlsym(handle, "glTexCoord3f"));
401    SET_TexCoord3fv(__ogl_framework_api, dlsym(handle, "glTexCoord3fv"));
402    SET_TexCoord3i(__ogl_framework_api, dlsym(handle, "glTexCoord3i"));
403    SET_TexCoord3iv(__ogl_framework_api, dlsym(handle, "glTexCoord3iv"));
404    SET_TexCoord3s(__ogl_framework_api, dlsym(handle, "glTexCoord3s"));
405    SET_TexCoord3sv(__ogl_framework_api, dlsym(handle, "glTexCoord3sv"));
406    SET_TexCoord4d(__ogl_framework_api, dlsym(handle, "glTexCoord4d"));
407    SET_TexCoord4dv(__ogl_framework_api, dlsym(handle, "glTexCoord4dv"));
408    SET_TexCoord4f(__ogl_framework_api, dlsym(handle, "glTexCoord4f"));
409    SET_TexCoord4fv(__ogl_framework_api, dlsym(handle, "glTexCoord4fv"));
410    SET_TexCoord4i(__ogl_framework_api, dlsym(handle, "glTexCoord4i"));
411    SET_TexCoord4iv(__ogl_framework_api, dlsym(handle, "glTexCoord4iv"));
412    SET_TexCoord4s(__ogl_framework_api, dlsym(handle, "glTexCoord4s"));
413    SET_TexCoord4sv(__ogl_framework_api, dlsym(handle, "glTexCoord4sv"));
414    SET_TexCoordPointer(__ogl_framework_api, dlsym(handle, "glTexCoordPointer"));
415    SET_TexEnvf(__ogl_framework_api, dlsym(handle, "glTexEnvf"));
416    SET_TexEnvfv(__ogl_framework_api, dlsym(handle, "glTexEnvfv"));
417    SET_TexEnvi(__ogl_framework_api, dlsym(handle, "glTexEnvi"));
418    SET_TexEnviv(__ogl_framework_api, dlsym(handle, "glTexEnviv"));
419    SET_TexGend(__ogl_framework_api, dlsym(handle, "glTexGend"));
420    SET_TexGendv(__ogl_framework_api, dlsym(handle, "glTexGendv"));
421    SET_TexGenf(__ogl_framework_api, dlsym(handle, "glTexGenf"));
422    SET_TexGenfv(__ogl_framework_api, dlsym(handle, "glTexGenfv"));
423    SET_TexGeni(__ogl_framework_api, dlsym(handle, "glTexGeni"));
424    SET_TexGeniv(__ogl_framework_api, dlsym(handle, "glTexGeniv"));
425    SET_TexImage1D(__ogl_framework_api, dlsym(handle, "glTexImage1D"));
426    SET_TexImage2D(__ogl_framework_api, dlsym(handle, "glTexImage2D"));
427    SET_TexImage3D(__ogl_framework_api, dlsym(handle, "glTexImage3D"));
428    SET_TexParameterf(__ogl_framework_api, dlsym(handle, "glTexParameterf"));
429    SET_TexParameterfv(__ogl_framework_api, dlsym(handle, "glTexParameterfv"));
430    SET_TexParameteri(__ogl_framework_api, dlsym(handle, "glTexParameteri"));
431    SET_TexParameteriv(__ogl_framework_api, dlsym(handle, "glTexParameteriv"));
432    SET_TexSubImage1D(__ogl_framework_api, dlsym(handle, "glTexSubImage1D"));
433    SET_TexSubImage2D(__ogl_framework_api, dlsym(handle, "glTexSubImage2D"));
434    SET_TexSubImage3D(__ogl_framework_api, dlsym(handle, "glTexSubImage3D"));
435    SET_Translated(__ogl_framework_api, dlsym(handle, "glTranslated"));
436    SET_Translatef(__ogl_framework_api, dlsym(handle, "glTranslatef"));
437    SET_Vertex2d(__ogl_framework_api, dlsym(handle, "glVertex2d"));
438    SET_Vertex2dv(__ogl_framework_api, dlsym(handle, "glVertex2dv"));
439    SET_Vertex2f(__ogl_framework_api, dlsym(handle, "glVertex2f"));
440    SET_Vertex2fv(__ogl_framework_api, dlsym(handle, "glVertex2fv"));
441    SET_Vertex2i(__ogl_framework_api, dlsym(handle, "glVertex2i"));
442    SET_Vertex2iv(__ogl_framework_api, dlsym(handle, "glVertex2iv"));
443    SET_Vertex2s(__ogl_framework_api, dlsym(handle, "glVertex2s"));
444    SET_Vertex2sv(__ogl_framework_api, dlsym(handle, "glVertex2sv"));
445    SET_Vertex3d(__ogl_framework_api, dlsym(handle, "glVertex3d"));
446    SET_Vertex3dv(__ogl_framework_api, dlsym(handle, "glVertex3dv"));
447    SET_Vertex3f(__ogl_framework_api, dlsym(handle, "glVertex3f"));
448    SET_Vertex3fv(__ogl_framework_api, dlsym(handle, "glVertex3fv"));
449    SET_Vertex3i(__ogl_framework_api, dlsym(handle, "glVertex3i"));
450    SET_Vertex3iv(__ogl_framework_api, dlsym(handle, "glVertex3iv"));
451    SET_Vertex3s(__ogl_framework_api, dlsym(handle, "glVertex3s"));
452    SET_Vertex3sv(__ogl_framework_api, dlsym(handle, "glVertex3sv"));
453    SET_Vertex4d(__ogl_framework_api, dlsym(handle, "glVertex4d"));
454    SET_Vertex4dv(__ogl_framework_api, dlsym(handle, "glVertex4dv"));
455    SET_Vertex4f(__ogl_framework_api, dlsym(handle, "glVertex4f"));
456    SET_Vertex4fv(__ogl_framework_api, dlsym(handle, "glVertex4fv"));
457    SET_Vertex4i(__ogl_framework_api, dlsym(handle, "glVertex4i"));
458    SET_Vertex4iv(__ogl_framework_api, dlsym(handle, "glVertex4iv"));
459    SET_Vertex4s(__ogl_framework_api, dlsym(handle, "glVertex4s"));
460    SET_Vertex4sv(__ogl_framework_api, dlsym(handle, "glVertex4sv"));
461    SET_VertexPointer(__ogl_framework_api, dlsym(handle, "glVertexPointer"));
462    SET_Viewport(__ogl_framework_api, dlsym(handle, "glViewport"));
463
464    /* GL_VERSION_2_0 */
465    SET_AttachShader(__ogl_framework_api, dlsym(handle, "glAttachShader"));
466    SET_CreateProgram(__ogl_framework_api, dlsym(handle, "glCreateProgram"));
467    SET_CreateShader(__ogl_framework_api, dlsym(handle, "glCreateShader"));
468    SET_DeleteProgram(__ogl_framework_api, dlsym(handle, "glDeleteProgram"));
469    SET_DeleteShader(__ogl_framework_api, dlsym(handle, "glDeleteShader"));
470    SET_DetachShader(__ogl_framework_api, dlsym(handle, "glDetachShader"));
471    SET_GetAttachedShaders(__ogl_framework_api, dlsym(handle, "glGetAttachedShaders"));
472    SET_GetProgramiv(__ogl_framework_api, dlsym(handle, "glGetProgramiv"));
473    SET_GetProgramInfoLog(__ogl_framework_api, dlsym(handle, "glGetProgramInfoLog"));
474    SET_GetShaderInfoLog(__ogl_framework_api, dlsym(handle, "glGetShaderInfoLog"));
475    SET_GetShaderiv(__ogl_framework_api, dlsym(handle, "glGetShaderiv"));
476    SET_IsProgram(__ogl_framework_api, dlsym(handle, "glIsProgram"));
477    SET_IsShader(__ogl_framework_api, dlsym(handle, "glIsShader"));
478    SET_StencilFuncSeparate(__ogl_framework_api, dlsym(handle, "glStencilFuncSeparate"));
479    SET_StencilMaskSeparate(__ogl_framework_api, dlsym(handle, "glStencilMaskSeparate"));
480    SET_StencilOpSeparate(__ogl_framework_api, dlsym(handle, "glStencilOpSeparate"));
481
482    /* GL_VERSION_2_1 */
483    SET_UniformMatrix2x3fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix2x3fv"));
484    SET_UniformMatrix2x4fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix2x4fv"));
485    SET_UniformMatrix3x2fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix3x2fv"));
486    SET_UniformMatrix3x4fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix3x4fv"));
487    SET_UniformMatrix4x2fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix4x2fv"));
488    SET_UniformMatrix4x3fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix4x3fv"));
489
490    /* GL_VERSION_3_0 */
491    SET_ClampColor(__ogl_framework_api, dlsym(handle, "glClampColor"));
492    SET_ClearBufferfi(__ogl_framework_api, dlsym(handle, "glClearBufferfi"));
493    SET_ClearBufferfv(__ogl_framework_api, dlsym(handle, "glClearBufferfv"));
494    SET_ClearBufferiv(__ogl_framework_api, dlsym(handle, "glClearBufferiv"));
495    SET_ClearBufferuiv(__ogl_framework_api, dlsym(handle, "glClearBufferuiv"));
496    SET_GetStringi(__ogl_framework_api, dlsym(handle, "glGetStringi"));
497
498    /* GL_VERSION_3_1 */
499    SET_TexBuffer(__ogl_framework_api, dlsym(handle, "glTexBuffer"));
500
501    /* GL_VERSION_3_2 */
502    SET_FramebufferTexture(__ogl_framework_api, dlsym(handle, "glFramebufferTexture"));
503    SET_GetBufferParameteri64v(__ogl_framework_api, dlsym(handle, "glGetBufferParameteri64v"));
504    SET_GetInteger64i_v(__ogl_framework_api, dlsym(handle, "glGetInteger64i_v"));
505
506    /* GL_APPLE_vertex_array_object */
507    SET_BindVertexArrayAPPLE(__ogl_framework_api, dlsym(handle, "glBindVertexArrayAPPLE"));
508    SET_DeleteVertexArraysAPPLE(__ogl_framework_api, dlsym(handle, "glDeleteVertexArraysAPPLE"));
509    SET_GenVertexArraysAPPLE(__ogl_framework_api, dlsym(handle, "glGenVertexArraysAPPLE"));
510    SET_IsVertexArrayAPPLE(__ogl_framework_api, dlsym(handle, "glIsVertexArrayAPPLE"));
511
512    /* GL_ARB_draw_buffers */
513    SET_DrawBuffersARB(__ogl_framework_api, dlsym(handle, "glDrawBuffersARB"));
514
515    /* GL_ARB_multisample */
516    SET_SampleCoverageARB(__ogl_framework_api, dlsym(handle, "glSampleCoverageARB"));
517
518    /* GL_ARB_multitexture */
519    SET_ActiveTextureARB(__ogl_framework_api, dlsym(handle, "glActiveTextureARB"));
520    SET_ClientActiveTextureARB(__ogl_framework_api, dlsym(handle, "glClientActiveTextureARB"));
521    SET_MultiTexCoord1dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1dARB"));
522    SET_MultiTexCoord1dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1dvARB"));
523    SET_MultiTexCoord1fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1fARB"));
524    SET_MultiTexCoord1fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1fvARB"));
525    SET_MultiTexCoord1iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1iARB"));
526    SET_MultiTexCoord1ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1ivARB"));
527    SET_MultiTexCoord1sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1sARB"));
528    SET_MultiTexCoord1svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1svARB"));
529    SET_MultiTexCoord2dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2dARB"));
530    SET_MultiTexCoord2dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2dvARB"));
531    SET_MultiTexCoord2fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2fARB"));
532    SET_MultiTexCoord2fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2fvARB"));
533    SET_MultiTexCoord2iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2iARB"));
534    SET_MultiTexCoord2ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2ivARB"));
535    SET_MultiTexCoord2sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2sARB"));
536    SET_MultiTexCoord2svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2svARB"));
537    SET_MultiTexCoord3dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3dARB"));
538    SET_MultiTexCoord3dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3dvARB"));
539    SET_MultiTexCoord3fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3fARB"));
540    SET_MultiTexCoord3fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3fvARB"));
541    SET_MultiTexCoord3iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3iARB"));
542    SET_MultiTexCoord3ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3ivARB"));
543    SET_MultiTexCoord3sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3sARB"));
544    SET_MultiTexCoord3svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3svARB"));
545    SET_MultiTexCoord4dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4dARB"));
546    SET_MultiTexCoord4dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4dvARB"));
547    SET_MultiTexCoord4fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4fARB"));
548    SET_MultiTexCoord4fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4fvARB"));
549    SET_MultiTexCoord4iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4iARB"));
550    SET_MultiTexCoord4ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4ivARB"));
551    SET_MultiTexCoord4sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4sARB"));
552    SET_MultiTexCoord4svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4svARB"));
553
554    /* GL_ARB_occlusion_query */
555    SET_BeginQueryARB(__ogl_framework_api, dlsym(handle, "glBeginQueryARB"));
556    SET_DeleteQueriesARB(__ogl_framework_api, dlsym(handle, "glDeleteQueriesARB"));
557    SET_EndQueryARB(__ogl_framework_api, dlsym(handle, "glEndQueryARB"));
558    SET_GenQueriesARB(__ogl_framework_api, dlsym(handle, "glGenQueriesARB"));
559    SET_GetQueryObjectivARB(__ogl_framework_api, dlsym(handle, "glGetQueryObjectivARB"));
560    SET_GetQueryObjectuivARB(__ogl_framework_api, dlsym(handle, "glGetQueryObjectuivARB"));
561    SET_GetQueryivARB(__ogl_framework_api, dlsym(handle, "glGetQueryivARB"));
562    SET_IsQueryARB(__ogl_framework_api, dlsym(handle, "glIsQueryARB"));
563
564    /* GL_ARB_shader_objects */
565    SET_AttachObjectARB(__ogl_framework_api, dlsym(handle, "glAttachObjectARB"));
566    SET_CompileShaderARB(__ogl_framework_api, dlsym(handle, "glCompileShaderARB"));
567    SET_DeleteObjectARB(__ogl_framework_api, dlsym(handle, "glDeleteObjectARB"));
568    SET_GetHandleARB(__ogl_framework_api, dlsym(handle, "glGetHandleARB"));
569    SET_DetachObjectARB(__ogl_framework_api, dlsym(handle, "glDetachObjectARB"));
570    SET_CreateProgramObjectARB(__ogl_framework_api, dlsym(handle, "glCreateProgramObjectARB"));
571    SET_CreateShaderObjectARB(__ogl_framework_api, dlsym(handle, "glCreateShaderObjectARB"));
572    SET_GetInfoLogARB(__ogl_framework_api, dlsym(handle, "glGetInfoLogARB"));
573    SET_GetActiveUniformARB(__ogl_framework_api, dlsym(handle, "glGetActiveUniformARB"));
574    SET_GetAttachedObjectsARB(__ogl_framework_api, dlsym(handle, "glGetAttachedObjectsARB"));
575    SET_GetObjectParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetObjectParameterfvARB"));
576    SET_GetObjectParameterivARB(__ogl_framework_api, dlsym(handle, "glGetObjectParameterivARB"));
577    SET_GetShaderSourceARB(__ogl_framework_api, dlsym(handle, "glGetShaderSourceARB"));
578    SET_GetUniformLocationARB(__ogl_framework_api, dlsym(handle, "glGetUniformLocationARB"));
579    SET_GetUniformfvARB(__ogl_framework_api, dlsym(handle, "glGetUniformfvARB"));
580    SET_GetUniformivARB(__ogl_framework_api, dlsym(handle, "glGetUniformivARB"));
581    SET_LinkProgramARB(__ogl_framework_api, dlsym(handle, "glLinkProgramARB"));
582    SET_ShaderSourceARB(__ogl_framework_api, dlsym(handle, "glShaderSourceARB"));
583    SET_Uniform1fARB(__ogl_framework_api, dlsym(handle, "glUniform1fARB"));
584    SET_Uniform1fvARB(__ogl_framework_api, dlsym(handle, "glUniform1fvARB"));
585    SET_Uniform1iARB(__ogl_framework_api, dlsym(handle, "glUniform1iARB"));
586    SET_Uniform1ivARB(__ogl_framework_api, dlsym(handle, "glUniform1ivARB"));
587    SET_Uniform2fARB(__ogl_framework_api, dlsym(handle, "glUniform2fARB"));
588    SET_Uniform2fvARB(__ogl_framework_api, dlsym(handle, "glUniform2fvARB"));
589    SET_Uniform2iARB(__ogl_framework_api, dlsym(handle, "glUniform2iARB"));
590    SET_Uniform2ivARB(__ogl_framework_api, dlsym(handle, "glUniform2ivARB"));
591    SET_Uniform3fARB(__ogl_framework_api, dlsym(handle, "glUniform3fARB"));
592    SET_Uniform3fvARB(__ogl_framework_api, dlsym(handle, "glUniform3fvARB"));
593    SET_Uniform3iARB(__ogl_framework_api, dlsym(handle, "glUniform3iARB"));
594    SET_Uniform3ivARB(__ogl_framework_api, dlsym(handle, "glUniform3ivARB"));
595    SET_Uniform4fARB(__ogl_framework_api, dlsym(handle, "glUniform4fARB"));
596    SET_Uniform4fvARB(__ogl_framework_api, dlsym(handle, "glUniform4fvARB"));
597    SET_Uniform4iARB(__ogl_framework_api, dlsym(handle, "glUniform4iARB"));
598    SET_Uniform4ivARB(__ogl_framework_api, dlsym(handle, "glUniform4ivARB"));
599    SET_UniformMatrix2fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix2fvARB"));
600    SET_UniformMatrix3fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix3fvARB"));
601    SET_UniformMatrix4fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix4fvARB"));
602    SET_UseProgramObjectARB(__ogl_framework_api, dlsym(handle, "glUseProgramObjectARB"));
603    SET_ValidateProgramARB(__ogl_framework_api, dlsym(handle, "glValidateProgramARB"));
604
605    /* GL_ARB_texture_compression */
606    SET_CompressedTexImage1DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage1DARB"));
607    SET_CompressedTexImage2DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage2DARB"));
608    SET_CompressedTexImage3DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage3DARB"));
609    SET_CompressedTexSubImage1DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage1DARB"));
610    SET_CompressedTexSubImage2DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage2DARB"));
611    SET_CompressedTexSubImage3DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage3DARB"));
612    SET_GetCompressedTexImageARB(__ogl_framework_api, dlsym(handle, "glGetCompressedTexImageARB"));
613
614    /* GL_ARB_transpose_matrix */
615    SET_LoadTransposeMatrixdARB(__ogl_framework_api, dlsym(handle, "glLoadTransposeMatrixdARB"));
616    SET_LoadTransposeMatrixfARB(__ogl_framework_api, dlsym(handle, "glLoadTransposeMatrixfARB"));
617    SET_MultTransposeMatrixdARB(__ogl_framework_api, dlsym(handle, "glMultTransposeMatrixdARB"));
618    SET_MultTransposeMatrixfARB(__ogl_framework_api, dlsym(handle, "glMultTransposeMatrixfARB"));
619
620    /* GL_ARB_vertex_buffer_object */
621    SET_BindBufferARB(__ogl_framework_api, dlsym(handle, "glBindBufferARB"));
622    SET_BufferDataARB(__ogl_framework_api, dlsym(handle, "glBufferDataARB"));
623    SET_BufferSubDataARB(__ogl_framework_api, dlsym(handle, "glBufferSubDataARB"));
624    SET_DeleteBuffersARB(__ogl_framework_api, dlsym(handle, "glDeleteBuffersARB"));
625    SET_GenBuffersARB(__ogl_framework_api, dlsym(handle, "glGenBuffersARB"));
626    SET_GetBufferParameterivARB(__ogl_framework_api, dlsym(handle, "glGetBufferParameterivARB"));
627    SET_GetBufferPointervARB(__ogl_framework_api, dlsym(handle, "glGetBufferPointervARB"));
628    SET_GetBufferSubDataARB(__ogl_framework_api, dlsym(handle, "glGetBufferSubDataARB"));
629    SET_IsBufferARB(__ogl_framework_api, dlsym(handle, "glIsBufferARB"));
630    SET_MapBufferARB(__ogl_framework_api, dlsym(handle, "glMapBufferARB"));
631    SET_UnmapBufferARB(__ogl_framework_api, dlsym(handle, "glUnmapBufferARB"));
632
633    /* GL_ARB_vertex_program */
634    SET_DisableVertexAttribArrayARB(__ogl_framework_api, dlsym(handle, "glDisableVertexAttribArrayARB"));
635    SET_EnableVertexAttribArrayARB(__ogl_framework_api, dlsym(handle, "glEnableVertexAttribArrayARB"));
636    SET_GetProgramEnvParameterdvARB(__ogl_framework_api, dlsym(handle, "glGetProgramEnvParameterdvARB"));
637    SET_GetProgramEnvParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetProgramEnvParameterfvARB"));
638    SET_GetProgramLocalParameterdvARB(__ogl_framework_api, dlsym(handle, "glGetProgramLocalParameterdvARB"));
639    SET_GetProgramLocalParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetProgramLocalParameterfvARB"));
640    SET_GetProgramStringARB(__ogl_framework_api, dlsym(handle, "glGetProgramStringARB"));
641    SET_GetProgramivARB(__ogl_framework_api, dlsym(handle, "glGetProgramivARB"));
642    SET_GetVertexAttribdvARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribdvARB"));
643    SET_GetVertexAttribfvARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribfvARB"));
644    SET_GetVertexAttribivARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribivARB"));
645    SET_ProgramEnvParameter4dARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4dARB"));
646    SET_ProgramEnvParameter4dvARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4dvARB"));
647    SET_ProgramEnvParameter4fARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4fARB"));
648    SET_ProgramEnvParameter4fvARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4fvARB"));
649    SET_ProgramLocalParameter4dARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4dARB"));
650    SET_ProgramLocalParameter4dvARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4dvARB"));
651    SET_ProgramLocalParameter4fARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4fARB"));
652    SET_ProgramLocalParameter4fvARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4fvARB"));
653    SET_ProgramStringARB(__ogl_framework_api, dlsym(handle, "glProgramStringARB"));
654    SET_VertexAttrib1dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dARB"));
655    SET_VertexAttrib1dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dvARB"));
656    SET_VertexAttrib1fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fARB"));
657    SET_VertexAttrib1fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fvARB"));
658    SET_VertexAttrib1sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1sARB"));
659    SET_VertexAttrib1svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1svARB"));
660    SET_VertexAttrib2dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dARB"));
661    SET_VertexAttrib2dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dvARB"));
662    SET_VertexAttrib2fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fARB"));
663    SET_VertexAttrib2fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fvARB"));
664    SET_VertexAttrib2sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2sARB"));
665    SET_VertexAttrib2svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2svARB"));
666    SET_VertexAttrib3dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dARB"));
667    SET_VertexAttrib3dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dvARB"));
668    SET_VertexAttrib3fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fARB"));
669    SET_VertexAttrib3fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fvARB"));
670    SET_VertexAttrib3sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3sARB"));
671    SET_VertexAttrib3svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3svARB"));
672    SET_VertexAttrib4NbvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NbvARB"));
673    SET_VertexAttrib4NivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NivARB"));
674    SET_VertexAttrib4NsvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NsvARB"));
675    SET_VertexAttrib4NubARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NubARB"));
676    SET_VertexAttrib4NubvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NubvARB"));
677    SET_VertexAttrib4NuivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NuivARB"));
678    SET_VertexAttrib4NusvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NusvARB"));
679    SET_VertexAttrib4bvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4bvARB"));
680    SET_VertexAttrib4dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dARB"));
681    SET_VertexAttrib4dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dvARB"));
682    SET_VertexAttrib4fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fARB"));
683    SET_VertexAttrib4fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fvARB"));
684    SET_VertexAttrib4ivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ivARB"));
685    SET_VertexAttrib4sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4sARB"));
686    SET_VertexAttrib4svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4svARB"));
687    SET_VertexAttrib4ubvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubvARB"));
688    SET_VertexAttrib4uivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4uivARB"));
689    SET_VertexAttrib4usvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4usvARB"));
690    SET_VertexAttribPointerARB(__ogl_framework_api, dlsym(handle, "glVertexAttribPointerARB"));
691
692    /* GL_ARB_vertex_shader */
693    SET_BindAttribLocationARB(__ogl_framework_api, dlsym(handle, "glBindAttribLocationARB"));
694    SET_GetActiveAttribARB(__ogl_framework_api, dlsym(handle, "glGetActiveAttribARB"));
695    SET_GetAttribLocationARB(__ogl_framework_api, dlsym(handle, "glGetAttribLocationARB"));
696
697    /* GL_ARB_window_pos */
698    SET_WindowPos2dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2dARB"));
699    SET_WindowPos2dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2dvARB"));
700    SET_WindowPos2fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2fARB"));
701    SET_WindowPos2fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2fvARB"));
702    SET_WindowPos2iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2iARB"));
703    SET_WindowPos2ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2ivARB"));
704    SET_WindowPos2sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2sARB"));
705    SET_WindowPos2svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2svARB"));
706    SET_WindowPos3dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3dARB"));
707    SET_WindowPos3dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3dvARB"));
708    SET_WindowPos3fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3fARB"));
709    SET_WindowPos3fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3fvARB"));
710    SET_WindowPos3iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3iARB"));
711    SET_WindowPos3ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3ivARB"));
712    SET_WindowPos3sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3sARB"));
713    SET_WindowPos3svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3svARB"));
714
715    /* GL_ATI_fragment_shader / GL_EXT_fragment_shader */
716    if(dlsym(handle, "glAlphaFragmentOp1ATI")) {
717        /* GL_ATI_fragment_shader */
718        SET_AlphaFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp1ATI"));
719        SET_AlphaFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp2ATI"));
720        SET_AlphaFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp3ATI"));
721        SET_BeginFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBeginFragmentShaderATI"));
722        SET_BindFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBindFragmentShaderATI"));
723        SET_ColorFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp1ATI"));
724        SET_ColorFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp2ATI"));
725        SET_ColorFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp3ATI"));
726        SET_DeleteFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glDeleteFragmentShaderATI"));
727        SET_EndFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glEndFragmentShaderATI"));
728        SET_GenFragmentShadersATI(__ogl_framework_api, dlsym(handle, "glGenFragmentShadersATI"));
729        SET_PassTexCoordATI(__ogl_framework_api, dlsym(handle, "glPassTexCoordATI"));
730        SET_SampleMapATI(__ogl_framework_api, dlsym(handle, "glSampleMapATI"));
731        SET_SetFragmentShaderConstantATI(__ogl_framework_api, dlsym(handle, "glSetFragmentShaderConstantATI"));
732    } else {
733        /* GL_EXT_fragment_shader */
734        SET_AlphaFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp1EXT"));
735        SET_AlphaFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp2EXT"));
736        SET_AlphaFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp3EXT"));
737        SET_BeginFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBeginFragmentShaderEXT"));
738        SET_BindFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBindFragmentShaderEXT"));
739        SET_ColorFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp1EXT"));
740        SET_ColorFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp2EXT"));
741        SET_ColorFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp3EXT"));
742        SET_DeleteFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glDeleteFragmentShaderEXT"));
743        SET_EndFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glEndFragmentShaderEXT"));
744        SET_GenFragmentShadersATI(__ogl_framework_api, dlsym(handle, "glGenFragmentShadersEXT"));
745        SET_PassTexCoordATI(__ogl_framework_api, dlsym(handle, "glPassTexCoordEXT"));
746        SET_SampleMapATI(__ogl_framework_api, dlsym(handle, "glSampleMapEXT"));
747        SET_SetFragmentShaderConstantATI(__ogl_framework_api, dlsym(handle, "glSetFragmentShaderConstantEXT"));
748    }
749
750    /* GL_ATI_separate_stencil */
751    SET_StencilFuncSeparateATI(__ogl_framework_api, dlsym(handle, "glStencilFuncSeparateATI"));
752
753    /* GL_EXT_blend_equation_separate */
754    SET_BlendEquationSeparateEXT(__ogl_framework_api, dlsym(handle, "glBlendEquationSeparateEXT"));
755
756    /* GL_EXT_blend_func_separate */
757    SET_BlendFuncSeparateEXT(__ogl_framework_api, dlsym(handle, "glBlendFuncSeparateEXT"));
758
759    /* GL_EXT_depth_bounds_test */
760    SET_DepthBoundsEXT(__ogl_framework_api, dlsym(handle, "glDepthBoundsEXT"));
761
762    /* GL_EXT_compiled_vertex_array */
763    SET_LockArraysEXT(__ogl_framework_api, dlsym(handle, "glLockArraysEXT"));
764    SET_UnlockArraysEXT(__ogl_framework_api, dlsym(handle, "glUnlockArraysEXT"));
765
766    /* GL_EXT_cull_vertex */
767//    SET_CullParameterdvEXT(__ogl_framework_api, dlsym(handle, "glCullParameterdvEXT"));
768//    SET_CullParameterfvEXT(__ogl_framework_api, dlsym(handle, "glCullParameterfvEXT"));
769
770    /* GL_EXT_fog_coord */
771    SET_FogCoordPointerEXT(__ogl_framework_api, dlsym(handle, "glFogCoordPointerEXT"));
772    SET_FogCoorddEXT(__ogl_framework_api, dlsym(handle, "glFogCoorddEXT"));
773    SET_FogCoorddvEXT(__ogl_framework_api, dlsym(handle, "glFogCoorddvEXT"));
774    SET_FogCoordfEXT(__ogl_framework_api, dlsym(handle, "glFogCoordfEXT"));
775    SET_FogCoordfvEXT(__ogl_framework_api, dlsym(handle, "glFogCoordfvEXT"));
776
777    /* GL_EXT_framebuffer_blit */
778    SET_BlitFramebufferEXT(__ogl_framework_api, dlsym(handle, "glBlitFramebufferEXT"));
779
780    /* GL_EXT_framebuffer_object */
781    SET_BindFramebufferEXT(__ogl_framework_api, dlsym(handle, "glBindFramebufferEXT"));
782    SET_BindRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glBindRenderbufferEXT"));
783    SET_CheckFramebufferStatusEXT(__ogl_framework_api, dlsym(handle, "glCheckFramebufferStatusEXT"));
784    SET_DeleteFramebuffersEXT(__ogl_framework_api, dlsym(handle, "glDeleteFramebuffersEXT"));
785    SET_DeleteRenderbuffersEXT(__ogl_framework_api, dlsym(handle, "glDeleteRenderbuffersEXT"));
786    SET_FramebufferRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glFramebufferRenderbufferEXT"));
787    SET_FramebufferTexture1DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture1DEXT"));
788    SET_FramebufferTexture2DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture2DEXT"));
789    SET_FramebufferTexture3DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture3DEXT"));
790    SET_GenerateMipmapEXT(__ogl_framework_api, dlsym(handle, "glGenerateMipmapEXT"));
791    SET_GenFramebuffersEXT(__ogl_framework_api, dlsym(handle, "glGenFramebuffersEXT"));
792    SET_GenRenderbuffersEXT(__ogl_framework_api, dlsym(handle, "glGenRenderbuffersEXT"));
793    SET_GetFramebufferAttachmentParameterivEXT(__ogl_framework_api, dlsym(handle, "glGetFramebufferAttachmentParameterivEXT"));
794    SET_GetRenderbufferParameterivEXT(__ogl_framework_api, dlsym(handle, "glGetRenderbufferParameterivEXT"));
795    SET_IsFramebufferEXT(__ogl_framework_api, dlsym(handle, "glIsFramebufferEXT"));
796    SET_IsRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glIsRenderbufferEXT"));
797    SET_RenderbufferStorageEXT(__ogl_framework_api, dlsym(handle, "glRenderbufferStorageEXT"));
798
799    /* GL_EXT_gpu_program_parameters */
800    SET_ProgramEnvParameters4fvEXT(__ogl_framework_api, dlsym(handle, "glProgramEnvParameters4fvEXT"));
801    SET_ProgramLocalParameters4fvEXT(__ogl_framework_api, dlsym(handle, "glProgramLocalParameters4fvEXT"));
802
803    /* GL_EXT_multi_draw_arrays */
804    SET_MultiDrawArraysEXT(__ogl_framework_api, (void *)dlsym(handle, "glMultiDrawArraysEXT"));
805    SET_MultiDrawElementsEXT(__ogl_framework_api, dlsym(handle, "glMultiDrawElementsEXT"));
806
807    /* GL_EXT_point_parameters / GL_ARB_point_parameters */
808    if(dlsym(handle, "glPointParameterfEXT")) {
809        /* GL_EXT_point_parameters */
810        SET_PointParameterfEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfEXT"));
811        SET_PointParameterfvEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfvEXT"));
812    } else {
813        /* GL_ARB_point_parameters */
814        SET_PointParameterfEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfARB"));
815        SET_PointParameterfvEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfvARB"));
816    }
817
818    /* GL_EXT_polygon_offset */
819    SET_PolygonOffsetEXT(__ogl_framework_api, dlsym(handle, "glPolygonOffsetEXT"));
820
821    /* GL_EXT_secondary_color */
822    SET_SecondaryColor3bEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3bEXT"));
823    SET_SecondaryColor3bvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3bvEXT"));
824    SET_SecondaryColor3dEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3dEXT"));
825    SET_SecondaryColor3dvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3dvEXT"));
826    SET_SecondaryColor3fEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3fEXT"));
827    SET_SecondaryColor3fvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3fvEXT"));
828    SET_SecondaryColor3iEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3iEXT"));
829    SET_SecondaryColor3ivEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ivEXT"));
830    SET_SecondaryColor3sEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3sEXT"));
831    SET_SecondaryColor3svEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3svEXT"));
832    SET_SecondaryColor3ubEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ubEXT"));
833    SET_SecondaryColor3ubvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ubvEXT"));
834    SET_SecondaryColor3uiEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3uiEXT"));
835    SET_SecondaryColor3uivEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3uivEXT"));
836    SET_SecondaryColor3usEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3usEXT"));
837    SET_SecondaryColor3usvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3usvEXT"));
838    SET_SecondaryColorPointerEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColorPointerEXT"));
839
840    /* GL_EXT_stencil_two_side */
841    SET_ActiveStencilFaceEXT(__ogl_framework_api, dlsym(handle, "glActiveStencilFaceEXT"));
842
843    /* GL_EXT_timer_query */
844    SET_GetQueryObjecti64vEXT(__ogl_framework_api, dlsym(handle, "glGetQueryObjecti64vEXT"));
845    SET_GetQueryObjectui64vEXT(__ogl_framework_api, dlsym(handle, "glGetQueryObjectui64vEXT"));
846
847    /* GL_EXT_vertex_array */
848    SET_ColorPointerEXT(__ogl_framework_api, dlsym(handle, "glColorPointerEXT"));
849    SET_EdgeFlagPointerEXT(__ogl_framework_api, dlsym(handle, "glEdgeFlagPointerEXT"));
850    SET_IndexPointerEXT(__ogl_framework_api, dlsym(handle, "glIndexPointerEXT"));
851    SET_NormalPointerEXT(__ogl_framework_api, dlsym(handle, "glNormalPointerEXT"));
852    SET_TexCoordPointerEXT(__ogl_framework_api, dlsym(handle, "glTexCoordPointerEXT"));
853    SET_VertexPointerEXT(__ogl_framework_api, dlsym(handle, "glVertexPointerEXT"));
854
855    /* GL_IBM_multimode_draw_arrays */
856    SET_MultiModeDrawArraysIBM(__ogl_framework_api, dlsym(handle, "glMultiModeDrawArraysIBM"));
857    SET_MultiModeDrawElementsIBM(__ogl_framework_api, dlsym(handle, "glMultiModeDrawElementsIBM"));
858
859    /* GL_MESA_resize_buffers */
860    SET_ResizeBuffersMESA(__ogl_framework_api, dlsym(handle, "glResizeBuffersMESA"));
861
862    /* GL_MESA_window_pos */
863    SET_WindowPos4dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4dMESA"));
864    SET_WindowPos4dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4dvMESA"));
865    SET_WindowPos4fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4fMESA"));
866    SET_WindowPos4fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4fvMESA"));
867    SET_WindowPos4iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4iMESA"));
868    SET_WindowPos4ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4ivMESA"));
869    SET_WindowPos4sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4sMESA"));
870    SET_WindowPos4svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4svMESA"));
871
872    /* GL_NV_fence */
873    SET_DeleteFencesNV(__ogl_framework_api, dlsym(handle, "glDeleteFencesNV"));
874    SET_FinishFenceNV(__ogl_framework_api, dlsym(handle, "glFinishFenceNV"));
875    SET_GenFencesNV(__ogl_framework_api, dlsym(handle, "glGenFencesNV"));
876    SET_GetFenceivNV(__ogl_framework_api, dlsym(handle, "glGetFenceivNV"));
877    SET_IsFenceNV(__ogl_framework_api, dlsym(handle, "glIsFenceNV"));
878    SET_SetFenceNV(__ogl_framework_api, dlsym(handle, "glSetFenceNV"));
879    SET_TestFenceNV(__ogl_framework_api, dlsym(handle, "glTestFenceNV"));
880
881    /* GL_NV_fragment_program */
882    SET_GetProgramNamedParameterdvNV(__ogl_framework_api, dlsym(handle, "glGetProgramNamedParameterdvNV"));
883    SET_GetProgramNamedParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetProgramNamedParameterfvNV"));
884    SET_ProgramNamedParameter4dNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4dNV"));
885    SET_ProgramNamedParameter4dvNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4dvNV"));
886    SET_ProgramNamedParameter4fNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4fNV"));
887    SET_ProgramNamedParameter4fvNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4fvNV"));
888
889    /* GL_NV_geometry_program4 */
890    SET_FramebufferTextureLayerEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTextureLayerEXT"));
891
892    /* GL_NV_point_sprite */
893    SET_PointParameteriNV(__ogl_framework_api, dlsym(handle, "glPointParameteriNV"));
894    SET_PointParameterivNV(__ogl_framework_api, dlsym(handle, "glPointParameterivNV"));
895
896    /* GL_NV_register_combiners */
897    SET_CombinerInputNV(__ogl_framework_api, dlsym(handle, "glCombinerInputNV"));
898    SET_CombinerOutputNV(__ogl_framework_api, dlsym(handle, "glCombinerOutputNV"));
899    SET_CombinerParameterfNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterfNV"));
900    SET_CombinerParameterfvNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterfvNV"));
901    SET_CombinerParameteriNV(__ogl_framework_api, dlsym(handle, "glCombinerParameteriNV"));
902    SET_CombinerParameterivNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterivNV"));
903    SET_FinalCombinerInputNV(__ogl_framework_api, dlsym(handle, "glFinalCombinerInputNV"));
904    SET_GetCombinerInputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetCombinerInputParameterfvNV"));
905    SET_GetCombinerInputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetCombinerInputParameterivNV"));
906    SET_GetCombinerOutputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetCombinerOutputParameterfvNV"));
907    SET_GetCombinerOutputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetCombinerOutputParameterivNV"));
908    SET_GetFinalCombinerInputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetFinalCombinerInputParameterfvNV"));
909    SET_GetFinalCombinerInputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetFinalCombinerInputParameterivNV"));
910
911    /* GL_NV_vertex_array_range */
912    SET_FlushVertexArrayRangeNV(__ogl_framework_api, dlsym(handle, "glFlushVertexArrayRangeNV"));
913    SET_VertexArrayRangeNV(__ogl_framework_api, dlsym(handle, "glVertexArrayRangeNV"));
914
915    /* GL_NV_vertex_program */
916    SET_AreProgramsResidentNV(__ogl_framework_api, dlsym(handle, "glAreProgramsResidentNV"));
917    SET_BindProgramNV(__ogl_framework_api, dlsym(handle, "glBindProgramNV"));
918    SET_DeleteProgramsNV(__ogl_framework_api, dlsym(handle, "glDeleteProgramsNV"));
919    SET_ExecuteProgramNV(__ogl_framework_api, dlsym(handle, "glExecuteProgramNV"));
920    SET_GenProgramsNV(__ogl_framework_api, dlsym(handle, "glGenProgramsNV"));
921    SET_GetProgramParameterdvNV(__ogl_framework_api, dlsym(handle, "glGetProgramParameterdvNV"));
922    SET_GetProgramParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetProgramParameterfvNV"));
923    SET_GetProgramStringNV(__ogl_framework_api, dlsym(handle, "glGetProgramStringNV"));
924    SET_GetProgramivNV(__ogl_framework_api, dlsym(handle, "glGetProgramivNV"));
925    SET_GetTrackMatrixivNV(__ogl_framework_api, dlsym(handle, "glGetTrackMatrixivNV"));
926    SET_GetVertexAttribPointervNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribPointervNV"));
927    SET_GetVertexAttribdvNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribdvNV"));
928    SET_GetVertexAttribfvNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribfvNV"));
929    SET_GetVertexAttribivNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribivNV"));
930    SET_IsProgramNV(__ogl_framework_api, dlsym(handle, "glIsProgramNV"));
931    SET_LoadProgramNV(__ogl_framework_api, dlsym(handle, "glLoadProgramNV"));
932    SET_ProgramParameters4dvNV(__ogl_framework_api, dlsym(handle, "glProgramParameters4dvNV"));
933    SET_ProgramParameters4fvNV(__ogl_framework_api, dlsym(handle, "glProgramParameters4fvNV"));
934    SET_RequestResidentProgramsNV(__ogl_framework_api, dlsym(handle, "glRequestResidentProgramsNV"));
935    SET_TrackMatrixNV(__ogl_framework_api, dlsym(handle, "glTrackMatrixNV"));
936    SET_VertexAttrib1dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dNV"));
937    SET_VertexAttrib1dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dvNV"));
938    SET_VertexAttrib1fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fNV"));
939    SET_VertexAttrib1fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fvNV"));
940    SET_VertexAttrib1sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1sNV"));
941    SET_VertexAttrib1svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1svNV"));
942    SET_VertexAttrib2dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dNV"));
943    SET_VertexAttrib2dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dvNV"));
944    SET_VertexAttrib2fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fNV"));
945    SET_VertexAttrib2fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fvNV"));
946    SET_VertexAttrib2sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2sNV"));
947    SET_VertexAttrib2svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2svNV"));
948    SET_VertexAttrib3dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dNV"));
949    SET_VertexAttrib3dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dvNV"));
950    SET_VertexAttrib3fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fNV"));
951    SET_VertexAttrib3fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fvNV"));
952    SET_VertexAttrib3sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3sNV"));
953    SET_VertexAttrib3svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3svNV"));
954    SET_VertexAttrib4dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dNV"));
955    SET_VertexAttrib4dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dvNV"));
956    SET_VertexAttrib4fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fNV"));
957    SET_VertexAttrib4fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fvNV"));
958    SET_VertexAttrib4sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4sNV"));
959    SET_VertexAttrib4svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4svNV"));
960    SET_VertexAttrib4ubNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubNV"));
961    SET_VertexAttrib4ubvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubvNV"));
962    SET_VertexAttribPointerNV(__ogl_framework_api, dlsym(handle, "glVertexAttribPointerNV"));
963    SET_VertexAttribs1dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1dvNV"));
964    SET_VertexAttribs1fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1fvNV"));
965    SET_VertexAttribs1svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1svNV"));
966    SET_VertexAttribs2dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2dvNV"));
967    SET_VertexAttribs2fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2fvNV"));
968    SET_VertexAttribs2svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2svNV"));
969    SET_VertexAttribs3dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3dvNV"));
970    SET_VertexAttribs3fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3fvNV"));
971    SET_VertexAttribs3svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3svNV"));
972    SET_VertexAttribs4dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4dvNV"));
973    SET_VertexAttribs4fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4fvNV"));
974    SET_VertexAttribs4svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4svNV"));
975    SET_VertexAttribs4ubvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4ubvNV"));
976
977    /* GL_SGIS_multisample */
978    SET_SampleMaskSGIS(__ogl_framework_api, dlsym(handle, "glSampleMaskSGIS"));
979    SET_SamplePatternSGIS(__ogl_framework_api, dlsym(handle, "glSamplePatternSGIS"));
980
981    /* GL_SGIS_pixel_texture */
982    SET_GetPixelTexGenParameterfvSGIS(__ogl_framework_api, dlsym(handle, "glGetPixelTexGenParameterfvSGIS"));
983    SET_GetPixelTexGenParameterivSGIS(__ogl_framework_api, dlsym(handle, "glGetPixelTexGenParameterivSGIS"));
984    SET_PixelTexGenParameterfSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterfSGIS"));
985    SET_PixelTexGenParameterfvSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterfvSGIS"));
986    SET_PixelTexGenParameteriSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameteriSGIS"));
987    SET_PixelTexGenParameterivSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterivSGIS"));
988    SET_PixelTexGenSGIX(__ogl_framework_api, dlsym(handle, "glPixelTexGenSGIX"));
989
990    /* GL_EXT_separate_shader_objects */
991    SET_ActiveProgramEXT(__ogl_framework_api, dlsym(handle, "glActiveProgramEXT"));
992    SET_CreateShaderProgramEXT(__ogl_framework_api, dlsym(handle, "glCreateShaderProgramEXT"));
993    SET_UseShaderProgramEXT(__ogl_framework_api, dlsym(handle, "glUseShaderProgramEXT"));
994
995    /* GL_NV_conditional_render */
996    SET_BeginConditionalRenderNV(__ogl_framework_api, dlsym(handle, "glBeginConditionalRenderNV"));
997    SET_EndConditionalRenderNV(__ogl_framework_api, dlsym(handle, "glEndConditionalRenderNV"));
998
999    /* GL_EXT_transform_feedback */
1000    SET_BeginTransformFeedbackEXT(__ogl_framework_api, dlsym(handle, "glBeginTransformFeedbackEXT"));
1001    SET_EndTransformFeedbackEXT(__ogl_framework_api, dlsym(handle, "glEndTransformFeedbackEXT"));
1002    SET_BindBufferBaseEXT(__ogl_framework_api, dlsym(handle, "glBindBufferBaseEXT"));
1003    SET_BindBufferOffsetEXT(__ogl_framework_api, dlsym(handle, "glBindBufferOffsetEXT"));
1004    SET_BindBufferRangeEXT(__ogl_framework_api, dlsym(handle, "glBindBufferRangeEXT"));
1005    SET_TransformFeedbackVaryingsEXT(__ogl_framework_api, dlsym(handle, "glTransformFeedbackVaryingsEXT"));
1006    SET_GetTransformFeedbackVaryingEXT(__ogl_framework_api, dlsym(handle, "glGetTransformFeedbackVaryingEXT"));
1007
1008    /* GL_EXT_gpu_shader4 */
1009    SET_BindFragDataLocationEXT(__ogl_framework_api, dlsym(handle, "glBindFragDataLocationEXT"));
1010    SET_GetFragDataLocationEXT(__ogl_framework_api, dlsym(handle, "glGetFragDataLocationEXT"));
1011    SET_GetUniformuivEXT(__ogl_framework_api, dlsym(handle, "glGetUniformuivEXT"));
1012    SET_Uniform1uiEXT(__ogl_framework_api, dlsym(handle, "glUniform1uiEXT"));
1013    SET_Uniform1uivEXT(__ogl_framework_api, dlsym(handle, "glUniform1uivEXT"));
1014    SET_Uniform2uiEXT(__ogl_framework_api, dlsym(handle, "glUniform2uiEXT"));
1015    SET_Uniform2uivEXT(__ogl_framework_api, dlsym(handle, "glUniform2uivEXT"));
1016    SET_Uniform3uiEXT(__ogl_framework_api, dlsym(handle, "glUniform3uiEXT"));
1017    SET_Uniform3uivEXT(__ogl_framework_api, dlsym(handle, "glUniform3uivEXT"));
1018    SET_Uniform4uiEXT(__ogl_framework_api, dlsym(handle, "glUniform4uiEXT"));
1019    SET_Uniform4uivEXT(__ogl_framework_api, dlsym(handle, "glUniform4uivEXT"));
1020
1021    /* GL_ARB_sampler_objects */
1022    SET_BindSampler(__ogl_framework_api, dlsym(handle, "glBindSampler"));
1023    SET_DeleteSamplers(__ogl_framework_api, dlsym(handle, "glDeleteSamplers"));
1024    SET_GenSamplers(__ogl_framework_api, dlsym(handle, "glGenSamplers"));
1025    SET_GetSamplerParameterIiv(__ogl_framework_api, dlsym(handle, "glGetSamplerParameterIiv"));
1026    SET_GetSamplerParameterIuiv(__ogl_framework_api, dlsym(handle, "glGetSamplerParameterIuiv"));
1027    SET_GetSamplerParameterfv(__ogl_framework_api, dlsym(handle, "glGetSamplerParameterfv"));
1028    SET_GetSamplerParameteriv(__ogl_framework_api, dlsym(handle, "glGetSamplerParameteriv"));
1029    SET_IsSampler(__ogl_framework_api, dlsym(handle, "glIsSampler"));
1030    SET_SamplerParameterIiv(__ogl_framework_api, dlsym(handle, "glSamplerParameterIiv"));
1031    SET_SamplerParameterIuiv(__ogl_framework_api, dlsym(handle, "glSamplerParameterIuiv"));
1032    SET_SamplerParameterf(__ogl_framework_api, dlsym(handle, "glSamplerParameterf"));
1033    SET_SamplerParameterfv(__ogl_framework_api, dlsym(handle, "glSamplerParameterfv"));
1034    SET_SamplerParameteri(__ogl_framework_api, dlsym(handle, "glSamplerParameteri"));
1035    SET_SamplerParameteriv(__ogl_framework_api, dlsym(handle, "glSamplerParameteriv"));
1036
1037    /* GL_ARB_transform_feedback2 */
1038    SET_BindTransformFeedback(__ogl_framework_api, dlsym(handle, "glBindTransformFeedback"));
1039    SET_DeleteTransformFeedbacks(__ogl_framework_api, dlsym(handle, "glDeleteTransformFeedbacks"));
1040    SET_DrawTransformFeedback(__ogl_framework_api, dlsym(handle, "glDrawTransformFeedback"));
1041    SET_GenTransformFeedbacks(__ogl_framework_api, dlsym(handle, "glGenTransformFeedbacks"));
1042    SET_IsTransformFeedback(__ogl_framework_api, dlsym(handle, "glIsTransformFeedback"));
1043    SET_PauseTransformFeedback(__ogl_framework_api, dlsym(handle, "glPauseTransformFeedback"));
1044    SET_ResumeTransformFeedback(__ogl_framework_api, dlsym(handle, "glResumeTransformFeedback"));
1045
1046    /* GL_ARB_vertex_array_object */
1047    SET_BindVertexArray(__ogl_framework_api, dlsym(handle, "glBindVertexArray"));
1048    SET_GenVertexArrays(__ogl_framework_api, dlsym(handle, "glGenVertexArrays"));
1049
1050    /* GL_ARB_draw_buffers_blend */
1051    SET_BlendEquationSeparateiARB(__ogl_framework_api, dlsym(handle, "glBlendEquationSeparateiARB"));
1052    SET_BlendEquationiARB(__ogl_framework_api, dlsym(handle, "glBlendEquationiARB"));
1053    SET_BlendFuncSeparateiARB(__ogl_framework_api, dlsym(handle, "glBlendFuncSeparateiARB"));
1054    SET_BlendFunciARB(__ogl_framework_api, dlsym(handle, "glBlendFunciARB"));
1055
1056    /* GL_APPLE_flush_buffer_range */
1057    SET_BufferParameteriAPPLE(__ogl_framework_api, dlsym(handle, "glBufferParameteriAPPLE"));
1058    SET_FlushMappedBufferRangeAPPLE(__ogl_framework_api, dlsym(handle, "glFlushMappedBufferRangeAPPLE"));
1059
1060    /* GL_ARB_color_buffer_float */
1061    SET_ClampColorARB(__ogl_framework_api, dlsym(handle, "glClampColorARB"));
1062
1063    /* GL_EXT_texture_integer */
1064    SET_ClearColorIiEXT(__ogl_framework_api, dlsym(handle, "glClearColorIiEXT"));
1065    SET_ClearColorIuiEXT(__ogl_framework_api, dlsym(handle, "glClearColorIuiEXT"));
1066    SET_TexParameterIivEXT(__ogl_framework_api, dlsym(handle, "glTexParameterIivEXT"));
1067    SET_TexParameterIuivEXT(__ogl_framework_api, dlsym(handle, "glTexParameterIuivEXT"));
1068    SET_GetTexParameterIivEXT(__ogl_framework_api, dlsym(handle, "glGetTexParameterIivEXT"));
1069    SET_GetTexParameterIuivEXT(__ogl_framework_api, dlsym(handle, "glGetTexParameterIuivEXT"));
1070
1071    /* GL_ARB_ES2_compatibility */
1072    SET_ClearDepthf(__ogl_framework_api, dlsym(handle, "glClearDepthf"));
1073    SET_DepthRangef(__ogl_framework_api, dlsym(handle, "glDepthRangef"));
1074    SET_GetShaderPrecisionFormat(__ogl_framework_api, dlsym(handle, "glGetShaderPrecisionFormat"));
1075    SET_ReleaseShaderCompiler(__ogl_framework_api, dlsym(handle, "glReleaseShaderCompiler"));
1076    SET_ShaderBinary(__ogl_framework_api, dlsym(handle, "glShaderBinary"));
1077
1078    /* GL_EXT_draw_buffers2 */
1079    SET_ColorMaskIndexedEXT(__ogl_framework_api, dlsym(handle, "glColorMaskIndexedEXT"));
1080    SET_DisableIndexedEXT(__ogl_framework_api, dlsym(handle, "glDisableIndexedEXT"));
1081    SET_EnableIndexedEXT(__ogl_framework_api, dlsym(handle, "glEnableIndexedEXT"));
1082    SET_GetBooleanIndexedvEXT(__ogl_framework_api, dlsym(handle, "glGetBooleanIndexedvEXT"));
1083    SET_GetIntegerIndexedvEXT(__ogl_framework_api, dlsym(handle, "glGetIntegerIndexedvEXT"));
1084    SET_IsEnabledIndexedEXT(__ogl_framework_api, dlsym(handle, "glIsEnabledIndexedEXT"));
1085
1086    /* GL_ARB_draw_instanced */
1087    SET_DrawArraysInstancedARB(__ogl_framework_api, dlsym(handle, "glDrawArraysInstancedARB"));
1088    SET_DrawElementsInstancedARB(__ogl_framework_api, dlsym(handle, "glDrawElementsInstancedARB"));
1089
1090    /* GL_ARB_geometry_shader4 */
1091    SET_FramebufferTextureARB(__ogl_framework_api, dlsym(handle, "glFramebufferTextureARB"));
1092    SET_FramebufferTextureFaceARB(__ogl_framework_api, dlsym(handle, "glFramebufferTextureFaceARB"));
1093    SET_ProgramParameteriARB(__ogl_framework_api, dlsym(handle, "glProgramParameteriARB"));
1094
1095    /* GL_ARB_sync */
1096    SET_ClientWaitSync(__ogl_framework_api, dlsym(handle, "glClientWaitSync"));
1097    SET_DeleteSync(__ogl_framework_api, dlsym(handle, "glDeleteSync"));
1098    SET_FenceSync(__ogl_framework_api, dlsym(handle, "glFenceSync"));
1099    SET_GetInteger64v(__ogl_framework_api, dlsym(handle, "glGetInteger64v"));
1100    SET_GetSynciv(__ogl_framework_api, dlsym(handle, "glGetSynciv"));
1101    SET_IsSync(__ogl_framework_api, dlsym(handle, "glIsSync"));
1102    SET_WaitSync(__ogl_framework_api, dlsym(handle, "glWaitSync"));
1103
1104    /* GL_ARB_copy_buffer */
1105    SET_CopyBufferSubData(__ogl_framework_api, dlsym(handle, "glCopyBufferSubData"));
1106
1107    /* GL_ARB_draw_elements_base_vertex */
1108    SET_DrawElementsBaseVertex(__ogl_framework_api, dlsym(handle, "glDrawElementsBaseVertex"));
1109    SET_DrawElementsInstancedBaseVertex(__ogl_framework_api, dlsym(handle, "glDrawElementsInstancedBaseVertex"));
1110    SET_DrawRangeElementsBaseVertex(__ogl_framework_api, dlsym(handle, "glDrawRangeElementsBaseVertex"));
1111    SET_MultiDrawElementsBaseVertex(__ogl_framework_api, dlsym(handle, "glMultiDrawElementsBaseVertex"));
1112
1113    /* GL_ARB_map_buffer_range */
1114    SET_FlushMappedBufferRange(__ogl_framework_api, dlsym(handle, "glFlushMappedBufferRange"));
1115    SET_MapBufferRange(__ogl_framework_api, dlsym(handle, "glMapBufferRange"));
1116
1117    /* GL_ARB_robustness */
1118    SET_GetGraphicsResetStatusARB(__ogl_framework_api, dlsym(handle, "glGetGraphicsResetStatusARB"));
1119    SET_GetnColorTableARB(__ogl_framework_api, dlsym(handle, "glGetnColorTableARB"));
1120    SET_GetnCompressedTexImageARB(__ogl_framework_api, dlsym(handle, "glGetnCompressedTexImageARB"));
1121    SET_GetnConvolutionFilterARB(__ogl_framework_api, dlsym(handle, "glGetnConvolutionFilterARB"));
1122    SET_GetnHistogramARB(__ogl_framework_api, dlsym(handle, "glGetnHistogramARB"));
1123    SET_GetnMapdvARB(__ogl_framework_api, dlsym(handle, "glGetnMapdvARB"));
1124    SET_GetnMapfvARB(__ogl_framework_api, dlsym(handle, "glGetnMapfvARB"));
1125    SET_GetnMapivARB(__ogl_framework_api, dlsym(handle, "glGetnMapivARB"));
1126    SET_GetnMinmaxARB(__ogl_framework_api, dlsym(handle, "glGetnMinmaxARB"));
1127    SET_GetnPixelMapfvARB(__ogl_framework_api, dlsym(handle, "glGetnPixelMapfvARB"));
1128    SET_GetnPixelMapuivARB(__ogl_framework_api, dlsym(handle, "glGetnPixelMapuivARB"));
1129    SET_GetnPixelMapusvARB(__ogl_framework_api, dlsym(handle, "glGetnPixelMapusvARB"));
1130    SET_GetnPolygonStippleARB(__ogl_framework_api, dlsym(handle, "glGetnPolygonStippleARB"));
1131    SET_GetnSeparableFilterARB(__ogl_framework_api, dlsym(handle, "glGetnSeparableFilterARB"));
1132    SET_GetnTexImageARB(__ogl_framework_api, dlsym(handle, "glGetnTexImageARB"));
1133    SET_GetnUniformdvARB(__ogl_framework_api, dlsym(handle, "glGetnUniformdvARB"));
1134    SET_GetnUniformfvARB(__ogl_framework_api, dlsym(handle, "glGetnUniformfvARB"));
1135    SET_GetnUniformivARB(__ogl_framework_api, dlsym(handle, "glGetnUniformivARB"));
1136    SET_GetnUniformuivARB(__ogl_framework_api, dlsym(handle, "glGetnUniformuivARB"));
1137    SET_ReadnPixelsARB(__ogl_framework_api, dlsym(handle, "glReadnPixelsARB"));
1138
1139    /* GL_APPLE_object_purgeable */
1140    SET_GetObjectParameterivAPPLE(__ogl_framework_api, dlsym(handle, "glGetObjectParameterivAPPLE"));
1141    SET_ObjectPurgeableAPPLE(__ogl_framework_api, dlsym(handle, "glObjectPurgeableAPPLE"));
1142    SET_ObjectUnpurgeableAPPLE(__ogl_framework_api, dlsym(handle, "glObjectUnpurgeableAPPLE"));
1143
1144    /* GL_ATI_envmap_bumpmap */
1145    SET_GetTexBumpParameterfvATI(__ogl_framework_api, dlsym(handle, "glGetTexBumpParameterfvATI"));
1146    SET_GetTexBumpParameterivATI(__ogl_framework_api, dlsym(handle, "glGetTexBumpParameterivATI"));
1147    SET_TexBumpParameterfvATI(__ogl_framework_api, dlsym(handle, "glTexBumpParameterfvATI"));
1148    SET_TexBumpParameterivATI(__ogl_framework_api, dlsym(handle, "glTexBumpParameterivATI"));
1149
1150    /* GL_APPLE_texture_range */
1151    SET_GetTexParameterPointervAPPLE(__ogl_framework_api, dlsym(handle, "glGetTexParameterPointervAPPLE"));
1152    SET_TextureRangeAPPLE(__ogl_framework_api, dlsym(handle, "glTextureRangeAPPLE"));
1153
1154    /* GL_NV_vertex_program4 */
1155    SET_GetVertexAttribIivEXT(__ogl_framework_api, dlsym(handle, "glGetVertexAttribIivEXT"));
1156    SET_GetVertexAttribIuivEXT(__ogl_framework_api, dlsym(handle, "glGetVertexAttribIuivEXT"));
1157    SET_VertexAttribDivisor(__ogl_framework_api, dlsym(handle, "glVertexAttribDivisor"));
1158    SET_VertexAttribDivisorARB(__ogl_framework_api, dlsym(handle, "glVertexAttribDivisorARB"));
1159    SET_VertexAttribI1iEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI1iEXT"));
1160    SET_VertexAttribI1ivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI1ivEXT"));
1161    SET_VertexAttribI1uiEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI1uiEXT"));
1162    SET_VertexAttribI1uivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI1uivEXT"));
1163    SET_VertexAttribI2iEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI2iEXT"));
1164    SET_VertexAttribI2ivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI2ivEXT"));
1165    SET_VertexAttribI2uiEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI2uiEXT"));
1166    SET_VertexAttribI2uivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI2uivEXT"));
1167    SET_VertexAttribI3iEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI3iEXT"));
1168    SET_VertexAttribI3ivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI3ivEXT"));
1169    SET_VertexAttribI3uiEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI3uiEXT"));
1170    SET_VertexAttribI3uivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI3uivEXT"));
1171    SET_VertexAttribI4bvEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4bvEXT"));
1172    SET_VertexAttribI4iEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4iEXT"));
1173    SET_VertexAttribI4ivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4ivEXT"));
1174    SET_VertexAttribI4svEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4svEXT"));
1175    SET_VertexAttribI4ubvEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4ubvEXT"));
1176    SET_VertexAttribI4uiEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4uiEXT"));
1177    SET_VertexAttribI4uivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4uivEXT"));
1178    SET_VertexAttribI4usvEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4usvEXT"));
1179    SET_VertexAttribIPointerEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribIPointerEXT"));
1180
1181    /* GL_NV_primitive_restart */
1182    SET_PrimitiveRestartIndexNV(__ogl_framework_api, dlsym(handle, "glPrimitiveRestartIndexNV"));
1183    SET_PrimitiveRestartNV(__ogl_framework_api, dlsym(handle, "glPrimitiveRestartNV"));
1184
1185    /* GL_EXT_provoking_vertex */
1186    SET_ProvokingVertexEXT(__ogl_framework_api, dlsym(handle, "glProvokingVertexEXT"));
1187
1188    /* GL_ARB_texture_buffer_object */
1189    SET_TexBufferARB(__ogl_framework_api, dlsym(handle, "glTexBufferARB"));
1190
1191    /* GL_NV_texture_barrier */
1192    SET_TextureBarrierNV(__ogl_framework_api, dlsym(handle, "glTextureBarrierNV"));
1193
1194    /* GL_ARB_framebuffer_object */
1195    SET_RenderbufferStorageMultisample(__ogl_framework_api, dlsym(handle, "glRenderbufferStorageMultisample"));
1196
1197    /* GL_OES_EGL_image */
1198    SET_EGLImageTargetRenderbufferStorageOES(__ogl_framework_api, dlsym(handle, "glEGLImageTargetRenderbufferStorageOES"));
1199    SET_EGLImageTargetTexture2DOES(__ogl_framework_api, dlsym(handle, "glEGLImageTargetTexture2DOES"));
1200
1201    __applegl_api = malloc(sizeof(struct _glapi_table));
1202    assert(__applegl_api);
1203    memcpy(__applegl_api, __ogl_framework_api, sizeof(struct _glapi_table));
1204
1205    SET_ReadPixels(__applegl_api, __applegl_glReadPixels);
1206    SET_CopyPixels(__applegl_api, __applegl_glCopyPixels);
1207    SET_CopyColorTable(__applegl_api, __applegl_glCopyColorTable);
1208    SET_DrawBuffer(__applegl_api, __applegl_glDrawBuffer);
1209    SET_DrawBuffersARB(__applegl_api, __applegl_glDrawBuffersARB);
1210    SET_Viewport(__applegl_api, __applegl_glViewport);
1211
1212    _glapi_set_dispatch(__applegl_api);
1213}
1214