88c317fbe38a0b84e865380af215af804b199750
[mesa.git] / src / glx / apple / apple_glapi.c
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__
53 struct _glapi_table * __ogl_framework_api = NULL;
54
55 __private_extern__
56 struct _glapi_table * __applegl_api = NULL;
57
58 __private_extern__
59 void 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 'define SET_' ../../../glx/dispatch.h | cut -f2 -d' ' | cut -f1 -d\( | sort -u); do grep -q $f indirect.c && echo $f ; done | grep -v by_offset | 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
426 /* Pointer Incompatability:
427 * internalformat is a GLenum according to /System/Library/Frameworks/OpenGL.framework/Headers/gl.h
428 * extern void glTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
429 * extern void glTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
430 * extern void glTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
431 *
432 * and it's a GLint in glx/glapitable.h and according to the man page
433 * void ( * TexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
434 * void ( * TexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
435 * void ( * TexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
436 *
437 * <rdar://problem/6953344> gl.h contains incorrect prototypes for glTexImage[123]D
438 */
439
440 SET_TexImage1D(__ogl_framework_api, dlsym(handle, "glTexImage1D"));
441 SET_TexImage2D(__ogl_framework_api, dlsym(handle, "glTexImage2D"));
442 SET_TexImage3D(__ogl_framework_api, dlsym(handle, "glTexImage3D"));
443 SET_TexParameterf(__ogl_framework_api, dlsym(handle, "glTexParameterf"));
444 SET_TexParameterfv(__ogl_framework_api, dlsym(handle, "glTexParameterfv"));
445 SET_TexParameteri(__ogl_framework_api, dlsym(handle, "glTexParameteri"));
446 SET_TexParameteriv(__ogl_framework_api, dlsym(handle, "glTexParameteriv"));
447 SET_TexSubImage1D(__ogl_framework_api, dlsym(handle, "glTexSubImage1D"));
448 SET_TexSubImage2D(__ogl_framework_api, dlsym(handle, "glTexSubImage2D"));
449 SET_TexSubImage3D(__ogl_framework_api, dlsym(handle, "glTexSubImage3D"));
450 SET_Translated(__ogl_framework_api, dlsym(handle, "glTranslated"));
451 SET_Translatef(__ogl_framework_api, dlsym(handle, "glTranslatef"));
452 SET_Vertex2d(__ogl_framework_api, dlsym(handle, "glVertex2d"));
453 SET_Vertex2dv(__ogl_framework_api, dlsym(handle, "glVertex2dv"));
454 SET_Vertex2f(__ogl_framework_api, dlsym(handle, "glVertex2f"));
455 SET_Vertex2fv(__ogl_framework_api, dlsym(handle, "glVertex2fv"));
456 SET_Vertex2i(__ogl_framework_api, dlsym(handle, "glVertex2i"));
457 SET_Vertex2iv(__ogl_framework_api, dlsym(handle, "glVertex2iv"));
458 SET_Vertex2s(__ogl_framework_api, dlsym(handle, "glVertex2s"));
459 SET_Vertex2sv(__ogl_framework_api, dlsym(handle, "glVertex2sv"));
460 SET_Vertex3d(__ogl_framework_api, dlsym(handle, "glVertex3d"));
461 SET_Vertex3dv(__ogl_framework_api, dlsym(handle, "glVertex3dv"));
462 SET_Vertex3f(__ogl_framework_api, dlsym(handle, "glVertex3f"));
463 SET_Vertex3fv(__ogl_framework_api, dlsym(handle, "glVertex3fv"));
464 SET_Vertex3i(__ogl_framework_api, dlsym(handle, "glVertex3i"));
465 SET_Vertex3iv(__ogl_framework_api, dlsym(handle, "glVertex3iv"));
466 SET_Vertex3s(__ogl_framework_api, dlsym(handle, "glVertex3s"));
467 SET_Vertex3sv(__ogl_framework_api, dlsym(handle, "glVertex3sv"));
468 SET_Vertex4d(__ogl_framework_api, dlsym(handle, "glVertex4d"));
469 SET_Vertex4dv(__ogl_framework_api, dlsym(handle, "glVertex4dv"));
470 SET_Vertex4f(__ogl_framework_api, dlsym(handle, "glVertex4f"));
471 SET_Vertex4fv(__ogl_framework_api, dlsym(handle, "glVertex4fv"));
472 SET_Vertex4i(__ogl_framework_api, dlsym(handle, "glVertex4i"));
473 SET_Vertex4iv(__ogl_framework_api, dlsym(handle, "glVertex4iv"));
474 SET_Vertex4s(__ogl_framework_api, dlsym(handle, "glVertex4s"));
475 SET_Vertex4sv(__ogl_framework_api, dlsym(handle, "glVertex4sv"));
476 SET_VertexPointer(__ogl_framework_api, dlsym(handle, "glVertexPointer"));
477 SET_Viewport(__ogl_framework_api, dlsym(handle, "glViewport"));
478
479 /* GL_VERSION_2_0 */
480 SET_AttachShader(__ogl_framework_api, dlsym(handle, "glAttachShader"));
481 SET_DeleteShader(__ogl_framework_api, dlsym(handle, "glDeleteShader"));
482 SET_DetachShader(__ogl_framework_api, dlsym(handle, "glDetachShader"));
483 SET_GetAttachedShaders(__ogl_framework_api, dlsym(handle, "glGetAttachedShaders"));
484 SET_GetProgramInfoLog(__ogl_framework_api, dlsym(handle, "glGetProgramInfoLog"));
485 SET_GetShaderInfoLog(__ogl_framework_api, dlsym(handle, "glGetShaderInfoLog"));
486 SET_GetShaderiv(__ogl_framework_api, dlsym(handle, "glGetShaderiv"));
487 SET_IsShader(__ogl_framework_api, dlsym(handle, "glIsShader"));
488 SET_StencilFuncSeparate(__ogl_framework_api, dlsym(handle, "glStencilFuncSeparate"));
489 SET_StencilMaskSeparate(__ogl_framework_api, dlsym(handle, "glStencilMaskSeparate"));
490 SET_StencilOpSeparate(__ogl_framework_api, dlsym(handle, "glStencilOpSeparate"));
491
492 /* GL_VERSION_2_1 */
493 SET_UniformMatrix2x3fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix2x3fv"));
494 SET_UniformMatrix2x4fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix2x4fv"));
495 SET_UniformMatrix3x2fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix3x2fv"));
496 SET_UniformMatrix3x4fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix3x4fv"));
497 SET_UniformMatrix4x2fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix4x2fv"));
498 SET_UniformMatrix4x3fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix4x3fv"));
499
500 /* GL_APPLE_vertex_array_object */
501 SET_BindVertexArrayAPPLE(__ogl_framework_api, dlsym(handle, "glBindVertexArrayAPPLE"));
502 SET_DeleteVertexArraysAPPLE(__ogl_framework_api, dlsym(handle, "glDeleteVertexArraysAPPLE"));
503 SET_GenVertexArraysAPPLE(__ogl_framework_api, dlsym(handle, "glGenVertexArraysAPPLE"));
504 SET_IsVertexArrayAPPLE(__ogl_framework_api, dlsym(handle, "glIsVertexArrayAPPLE"));
505
506 /* GL_ARB_draw_buffers */
507 SET_DrawBuffersARB(__ogl_framework_api, dlsym(handle, "glDrawBuffersARB"));
508
509 /* GL_ARB_multisample */
510 SET_SampleCoverageARB(__ogl_framework_api, dlsym(handle, "glSampleCoverageARB"));
511
512 /* GL_ARB_multitexture */
513 SET_ActiveTextureARB(__ogl_framework_api, dlsym(handle, "glActiveTextureARB"));
514 SET_ClientActiveTextureARB(__ogl_framework_api, dlsym(handle, "glClientActiveTextureARB"));
515 SET_MultiTexCoord1dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1dARB"));
516 SET_MultiTexCoord1dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1dvARB"));
517 SET_MultiTexCoord1fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1fARB"));
518 SET_MultiTexCoord1fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1fvARB"));
519 SET_MultiTexCoord1iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1iARB"));
520 SET_MultiTexCoord1ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1ivARB"));
521 SET_MultiTexCoord1sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1sARB"));
522 SET_MultiTexCoord1svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1svARB"));
523 SET_MultiTexCoord2dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2dARB"));
524 SET_MultiTexCoord2dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2dvARB"));
525 SET_MultiTexCoord2fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2fARB"));
526 SET_MultiTexCoord2fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2fvARB"));
527 SET_MultiTexCoord2iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2iARB"));
528 SET_MultiTexCoord2ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2ivARB"));
529 SET_MultiTexCoord2sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2sARB"));
530 SET_MultiTexCoord2svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2svARB"));
531 SET_MultiTexCoord3dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3dARB"));
532 SET_MultiTexCoord3dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3dvARB"));
533 SET_MultiTexCoord3fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3fARB"));
534 SET_MultiTexCoord3fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3fvARB"));
535 SET_MultiTexCoord3iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3iARB"));
536 SET_MultiTexCoord3ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3ivARB"));
537 SET_MultiTexCoord3sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3sARB"));
538 SET_MultiTexCoord3svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3svARB"));
539 SET_MultiTexCoord4dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4dARB"));
540 SET_MultiTexCoord4dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4dvARB"));
541 SET_MultiTexCoord4fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4fARB"));
542 SET_MultiTexCoord4fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4fvARB"));
543 SET_MultiTexCoord4iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4iARB"));
544 SET_MultiTexCoord4ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4ivARB"));
545 SET_MultiTexCoord4sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4sARB"));
546 SET_MultiTexCoord4svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4svARB"));
547
548 /* GL_ARB_occlusion_query */
549 SET_BeginQueryARB(__ogl_framework_api, dlsym(handle, "glBeginQueryARB"));
550 SET_DeleteQueriesARB(__ogl_framework_api, dlsym(handle, "glDeleteQueriesARB"));
551 SET_EndQueryARB(__ogl_framework_api, dlsym(handle, "glEndQueryARB"));
552 SET_GenQueriesARB(__ogl_framework_api, dlsym(handle, "glGenQueriesARB"));
553 SET_GetQueryObjectivARB(__ogl_framework_api, dlsym(handle, "glGetQueryObjectivARB"));
554 SET_GetQueryObjectuivARB(__ogl_framework_api, dlsym(handle, "glGetQueryObjectuivARB"));
555 SET_GetQueryivARB(__ogl_framework_api, dlsym(handle, "glGetQueryivARB"));
556 SET_IsQueryARB(__ogl_framework_api, dlsym(handle, "glIsQueryARB"));
557
558 /* GL_ARB_shader_objects */
559 SET_AttachObjectARB(__ogl_framework_api, dlsym(handle, "glAttachObjectARB"));
560 SET_CompileShaderARB(__ogl_framework_api, dlsym(handle, "glCompileShaderARB"));
561 SET_DeleteObjectARB(__ogl_framework_api, dlsym(handle, "glDeleteObjectARB"));
562 SET_GetHandleARB(__ogl_framework_api, dlsym(handle, "glGetHandleARB"));
563 SET_DetachObjectARB(__ogl_framework_api, dlsym(handle, "glDetachObjectARB"));
564 SET_CreateProgramObjectARB(__ogl_framework_api, dlsym(handle, "glCreateProgramObjectARB"));
565 SET_CreateShaderObjectARB(__ogl_framework_api, dlsym(handle, "glCreateShaderObjectARB"));
566 SET_GetInfoLogARB(__ogl_framework_api, dlsym(handle, "glGetInfoLogARB"));
567 SET_GetActiveUniformARB(__ogl_framework_api, dlsym(handle, "glGetActiveUniformARB"));
568 SET_GetAttachedObjectsARB(__ogl_framework_api, dlsym(handle, "glGetAttachedObjectsARB"));
569 SET_GetObjectParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetObjectParameterfvARB"));
570 SET_GetObjectParameterivARB(__ogl_framework_api, dlsym(handle, "glGetObjectParameterivARB"));
571 SET_GetShaderSourceARB(__ogl_framework_api, dlsym(handle, "glGetShaderSourceARB"));
572 SET_GetUniformLocationARB(__ogl_framework_api, dlsym(handle, "glGetUniformLocationARB"));
573 SET_GetUniformfvARB(__ogl_framework_api, dlsym(handle, "glGetUniformfvARB"));
574 SET_GetUniformivARB(__ogl_framework_api, dlsym(handle, "glGetUniformivARB"));
575 SET_LinkProgramARB(__ogl_framework_api, dlsym(handle, "glLinkProgramARB"));
576 SET_ShaderSourceARB(__ogl_framework_api, dlsym(handle, "glShaderSourceARB"));
577 SET_Uniform1fARB(__ogl_framework_api, dlsym(handle, "glUniform1fARB"));
578 SET_Uniform1fvARB(__ogl_framework_api, dlsym(handle, "glUniform1fvARB"));
579 SET_Uniform1iARB(__ogl_framework_api, dlsym(handle, "glUniform1iARB"));
580 SET_Uniform1ivARB(__ogl_framework_api, dlsym(handle, "glUniform1ivARB"));
581 SET_Uniform2fARB(__ogl_framework_api, dlsym(handle, "glUniform2fARB"));
582 SET_Uniform2fvARB(__ogl_framework_api, dlsym(handle, "glUniform2fvARB"));
583 SET_Uniform2iARB(__ogl_framework_api, dlsym(handle, "glUniform2iARB"));
584 SET_Uniform2ivARB(__ogl_framework_api, dlsym(handle, "glUniform2ivARB"));
585 SET_Uniform3fARB(__ogl_framework_api, dlsym(handle, "glUniform3fARB"));
586 SET_Uniform3fvARB(__ogl_framework_api, dlsym(handle, "glUniform3fvARB"));
587 SET_Uniform3iARB(__ogl_framework_api, dlsym(handle, "glUniform3iARB"));
588 SET_Uniform3ivARB(__ogl_framework_api, dlsym(handle, "glUniform3ivARB"));
589 SET_Uniform4fARB(__ogl_framework_api, dlsym(handle, "glUniform4fARB"));
590 SET_Uniform4fvARB(__ogl_framework_api, dlsym(handle, "glUniform4fvARB"));
591 SET_Uniform4iARB(__ogl_framework_api, dlsym(handle, "glUniform4iARB"));
592 SET_Uniform4ivARB(__ogl_framework_api, dlsym(handle, "glUniform4ivARB"));
593 SET_UniformMatrix2fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix2fvARB"));
594 SET_UniformMatrix3fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix3fvARB"));
595 SET_UniformMatrix4fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix4fvARB"));
596 SET_UseProgramObjectARB(__ogl_framework_api, dlsym(handle, "glUseProgramObjectARB"));
597 SET_ValidateProgramARB(__ogl_framework_api, dlsym(handle, "glValidateProgramARB"));
598
599 /* GL_ARB_texture_compression */
600 SET_CompressedTexImage1DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage1DARB"));
601 SET_CompressedTexImage2DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage2DARB"));
602 SET_CompressedTexImage3DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage3DARB"));
603 SET_CompressedTexSubImage1DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage1DARB"));
604 SET_CompressedTexSubImage2DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage2DARB"));
605 SET_CompressedTexSubImage3DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage3DARB"));
606 SET_GetCompressedTexImageARB(__ogl_framework_api, dlsym(handle, "glGetCompressedTexImageARB"));
607
608 /* GL_ARB_transpose_matrix */
609 SET_LoadTransposeMatrixdARB(__ogl_framework_api, dlsym(handle, "glLoadTransposeMatrixdARB"));
610 SET_LoadTransposeMatrixfARB(__ogl_framework_api, dlsym(handle, "glLoadTransposeMatrixfARB"));
611 SET_MultTransposeMatrixdARB(__ogl_framework_api, dlsym(handle, "glMultTransposeMatrixdARB"));
612 SET_MultTransposeMatrixfARB(__ogl_framework_api, dlsym(handle, "glMultTransposeMatrixfARB"));
613
614 /* GL_ARB_vertex_buffer_object */
615 SET_BindBufferARB(__ogl_framework_api, dlsym(handle, "glBindBufferARB"));
616 SET_BufferDataARB(__ogl_framework_api, dlsym(handle, "glBufferDataARB"));
617 SET_BufferSubDataARB(__ogl_framework_api, dlsym(handle, "glBufferSubDataARB"));
618 SET_DeleteBuffersARB(__ogl_framework_api, dlsym(handle, "glDeleteBuffersARB"));
619 SET_GenBuffersARB(__ogl_framework_api, dlsym(handle, "glGenBuffersARB"));
620 SET_GetBufferParameterivARB(__ogl_framework_api, dlsym(handle, "glGetBufferParameterivARB"));
621 SET_GetBufferPointervARB(__ogl_framework_api, dlsym(handle, "glGetBufferPointervARB"));
622 SET_GetBufferSubDataARB(__ogl_framework_api, dlsym(handle, "glGetBufferSubDataARB"));
623 SET_IsBufferARB(__ogl_framework_api, dlsym(handle, "glIsBufferARB"));
624 SET_MapBufferARB(__ogl_framework_api, dlsym(handle, "glMapBufferARB"));
625 SET_UnmapBufferARB(__ogl_framework_api, dlsym(handle, "glUnmapBufferARB"));
626
627 /* GL_ARB_vertex_program */
628 SET_DisableVertexAttribArrayARB(__ogl_framework_api, dlsym(handle, "glDisableVertexAttribArrayARB"));
629 SET_EnableVertexAttribArrayARB(__ogl_framework_api, dlsym(handle, "glEnableVertexAttribArrayARB"));
630 SET_GetProgramEnvParameterdvARB(__ogl_framework_api, dlsym(handle, "glGetProgramEnvParameterdvARB"));
631 SET_GetProgramEnvParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetProgramEnvParameterfvARB"));
632 SET_GetProgramLocalParameterdvARB(__ogl_framework_api, dlsym(handle, "glGetProgramLocalParameterdvARB"));
633 SET_GetProgramLocalParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetProgramLocalParameterfvARB"));
634 SET_GetProgramStringARB(__ogl_framework_api, dlsym(handle, "glGetProgramStringARB"));
635 SET_GetProgramivARB(__ogl_framework_api, dlsym(handle, "glGetProgramivARB"));
636 SET_GetVertexAttribdvARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribdvARB"));
637 SET_GetVertexAttribfvARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribfvARB"));
638 SET_GetVertexAttribivARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribivARB"));
639 SET_ProgramEnvParameter4dARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4dARB"));
640 SET_ProgramEnvParameter4dvARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4dvARB"));
641 SET_ProgramEnvParameter4fARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4fARB"));
642 SET_ProgramEnvParameter4fvARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4fvARB"));
643 SET_ProgramLocalParameter4dARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4dARB"));
644 SET_ProgramLocalParameter4dvARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4dvARB"));
645 SET_ProgramLocalParameter4fARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4fARB"));
646 SET_ProgramLocalParameter4fvARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4fvARB"));
647 SET_ProgramStringARB(__ogl_framework_api, dlsym(handle, "glProgramStringARB"));
648 SET_VertexAttrib1dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dARB"));
649 SET_VertexAttrib1dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dvARB"));
650 SET_VertexAttrib1fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fARB"));
651 SET_VertexAttrib1fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fvARB"));
652 SET_VertexAttrib1sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1sARB"));
653 SET_VertexAttrib1svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1svARB"));
654 SET_VertexAttrib2dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dARB"));
655 SET_VertexAttrib2dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dvARB"));
656 SET_VertexAttrib2fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fARB"));
657 SET_VertexAttrib2fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fvARB"));
658 SET_VertexAttrib2sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2sARB"));
659 SET_VertexAttrib2svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2svARB"));
660 SET_VertexAttrib3dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dARB"));
661 SET_VertexAttrib3dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dvARB"));
662 SET_VertexAttrib3fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fARB"));
663 SET_VertexAttrib3fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fvARB"));
664 SET_VertexAttrib3sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3sARB"));
665 SET_VertexAttrib3svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3svARB"));
666 SET_VertexAttrib4NbvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NbvARB"));
667 SET_VertexAttrib4NivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NivARB"));
668 SET_VertexAttrib4NsvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NsvARB"));
669 SET_VertexAttrib4NubARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NubARB"));
670 SET_VertexAttrib4NubvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NubvARB"));
671 SET_VertexAttrib4NuivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NuivARB"));
672 SET_VertexAttrib4NusvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NusvARB"));
673 SET_VertexAttrib4bvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4bvARB"));
674 SET_VertexAttrib4dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dARB"));
675 SET_VertexAttrib4dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dvARB"));
676 SET_VertexAttrib4fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fARB"));
677 SET_VertexAttrib4fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fvARB"));
678 SET_VertexAttrib4ivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ivARB"));
679 SET_VertexAttrib4sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4sARB"));
680 SET_VertexAttrib4svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4svARB"));
681 SET_VertexAttrib4ubvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubvARB"));
682 SET_VertexAttrib4uivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4uivARB"));
683 SET_VertexAttrib4usvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4usvARB"));
684 SET_VertexAttribPointerARB(__ogl_framework_api, dlsym(handle, "glVertexAttribPointerARB"));
685
686 /* GL_ARB_vertex_shader */
687 SET_BindAttribLocationARB(__ogl_framework_api, dlsym(handle, "glBindAttribLocationARB"));
688 SET_GetActiveAttribARB(__ogl_framework_api, dlsym(handle, "glGetActiveAttribARB"));
689 SET_GetAttribLocationARB(__ogl_framework_api, dlsym(handle, "glGetAttribLocationARB"));
690
691 /* GL_ARB_window_pos */
692 SET_WindowPos2dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2dARB"));
693 SET_WindowPos2dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2dvARB"));
694 SET_WindowPos2fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2fARB"));
695 SET_WindowPos2fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2fvARB"));
696 SET_WindowPos2iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2iARB"));
697 SET_WindowPos2ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2ivARB"));
698 SET_WindowPos2sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2sARB"));
699 SET_WindowPos2svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2svARB"));
700 SET_WindowPos3dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3dARB"));
701 SET_WindowPos3dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3dvARB"));
702 SET_WindowPos3fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3fARB"));
703 SET_WindowPos3fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3fvARB"));
704 SET_WindowPos3iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3iARB"));
705 SET_WindowPos3ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3ivARB"));
706 SET_WindowPos3sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3sARB"));
707 SET_WindowPos3svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3svARB"));
708
709 /* GL_ATI_fragment_shader / GL_EXT_fragment_shader */
710 if(dlsym(handle, "glAlphaFragmentOp1ATI")) {
711 /* GL_ATI_fragment_shader */
712 SET_AlphaFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp1ATI"));
713 SET_AlphaFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp2ATI"));
714 SET_AlphaFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp3ATI"));
715 SET_BeginFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBeginFragmentShaderATI"));
716 SET_BindFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBindFragmentShaderATI"));
717 SET_ColorFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp1ATI"));
718 SET_ColorFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp2ATI"));
719 SET_ColorFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp3ATI"));
720 SET_DeleteFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glDeleteFragmentShaderATI"));
721 SET_EndFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glEndFragmentShaderATI"));
722 SET_GenFragmentShadersATI(__ogl_framework_api, dlsym(handle, "glGenFragmentShadersATI"));
723 SET_PassTexCoordATI(__ogl_framework_api, dlsym(handle, "glPassTexCoordATI"));
724 SET_SampleMapATI(__ogl_framework_api, dlsym(handle, "glSampleMapATI"));
725 SET_SetFragmentShaderConstantATI(__ogl_framework_api, dlsym(handle, "glSetFragmentShaderConstantATI"));
726 } else {
727 /* GL_EXT_fragment_shader */
728 SET_AlphaFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp1EXT"));
729 SET_AlphaFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp2EXT"));
730 SET_AlphaFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp3EXT"));
731 SET_BeginFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBeginFragmentShaderEXT"));
732 SET_BindFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBindFragmentShaderEXT"));
733 SET_ColorFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp1EXT"));
734 SET_ColorFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp2EXT"));
735 SET_ColorFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp3EXT"));
736 SET_DeleteFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glDeleteFragmentShaderEXT"));
737 SET_EndFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glEndFragmentShaderEXT"));
738 SET_GenFragmentShadersATI(__ogl_framework_api, dlsym(handle, "glGenFragmentShadersEXT"));
739 SET_PassTexCoordATI(__ogl_framework_api, dlsym(handle, "glPassTexCoordEXT"));
740 SET_SampleMapATI(__ogl_framework_api, dlsym(handle, "glSampleMapEXT"));
741 SET_SetFragmentShaderConstantATI(__ogl_framework_api, dlsym(handle, "glSetFragmentShaderConstantEXT"));
742 }
743
744 /* GL_ATI_separate_stencil */
745 SET_StencilFuncSeparateATI(__ogl_framework_api, dlsym(handle, "glStencilFuncSeparateATI"));
746
747 /* GL_EXT_blend_equation_separate */
748 SET_BlendEquationSeparateEXT(__ogl_framework_api, dlsym(handle, "glBlendEquationSeparateEXT"));
749
750 /* GL_EXT_blend_func_separate */
751 SET_BlendFuncSeparateEXT(__ogl_framework_api, dlsym(handle, "glBlendFuncSeparateEXT"));
752
753 /* GL_EXT_depth_bounds_test */
754 SET_DepthBoundsEXT(__ogl_framework_api, dlsym(handle, "glDepthBoundsEXT"));
755
756 /* GL_EXT_compiled_vertex_array */
757 SET_LockArraysEXT(__ogl_framework_api, dlsym(handle, "glLockArraysEXT"));
758 SET_UnlockArraysEXT(__ogl_framework_api, dlsym(handle, "glUnlockArraysEXT"));
759
760 /* GL_EXT_cull_vertex */
761 // SET_CullParameterdvEXT(__ogl_framework_api, dlsym(handle, "glCullParameterdvEXT"));
762 // SET_CullParameterfvEXT(__ogl_framework_api, dlsym(handle, "glCullParameterfvEXT"));
763
764 /* GL_EXT_fog_coord */
765 SET_FogCoordPointerEXT(__ogl_framework_api, dlsym(handle, "glFogCoordPointerEXT"));
766 SET_FogCoorddEXT(__ogl_framework_api, dlsym(handle, "glFogCoorddEXT"));
767 SET_FogCoorddvEXT(__ogl_framework_api, dlsym(handle, "glFogCoorddvEXT"));
768 SET_FogCoordfEXT(__ogl_framework_api, dlsym(handle, "glFogCoordfEXT"));
769 SET_FogCoordfvEXT(__ogl_framework_api, dlsym(handle, "glFogCoordfvEXT"));
770
771 /* GL_EXT_framebuffer_blit */
772 SET_BlitFramebufferEXT(__ogl_framework_api, dlsym(handle, "glBlitFramebufferEXT"));
773
774 /* GL_EXT_framebuffer_object */
775 SET_BindFramebufferEXT(__ogl_framework_api, dlsym(handle, "glBindFramebufferEXT"));
776 SET_BindRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glBindRenderbufferEXT"));
777 SET_CheckFramebufferStatusEXT(__ogl_framework_api, dlsym(handle, "glCheckFramebufferStatusEXT"));
778 SET_DeleteFramebuffersEXT(__ogl_framework_api, dlsym(handle, "glDeleteFramebuffersEXT"));
779 SET_DeleteRenderbuffersEXT(__ogl_framework_api, dlsym(handle, "glDeleteRenderbuffersEXT"));
780 SET_FramebufferRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glFramebufferRenderbufferEXT"));
781 SET_FramebufferTexture1DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture1DEXT"));
782 SET_FramebufferTexture2DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture2DEXT"));
783 SET_FramebufferTexture3DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture3DEXT"));
784 SET_GenerateMipmapEXT(__ogl_framework_api, dlsym(handle, "glGenerateMipmapEXT"));
785 SET_GenFramebuffersEXT(__ogl_framework_api, dlsym(handle, "glGenFramebuffersEXT"));
786 SET_GenRenderbuffersEXT(__ogl_framework_api, dlsym(handle, "glGenRenderbuffersEXT"));
787 SET_GetFramebufferAttachmentParameterivEXT(__ogl_framework_api, dlsym(handle, "glGetFramebufferAttachmentParameterivEXT"));
788 SET_GetRenderbufferParameterivEXT(__ogl_framework_api, dlsym(handle, "glGetRenderbufferParameterivEXT"));
789 SET_IsFramebufferEXT(__ogl_framework_api, dlsym(handle, "glIsFramebufferEXT"));
790 SET_IsRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glIsRenderbufferEXT"));
791 SET_RenderbufferStorageEXT(__ogl_framework_api, dlsym(handle, "glRenderbufferStorageEXT"));
792
793 /* GL_EXT_gpu_program_parameters */
794 SET_ProgramEnvParameters4fvEXT(__ogl_framework_api, dlsym(handle, "glProgramEnvParameters4fvEXT"));
795 SET_ProgramLocalParameters4fvEXT(__ogl_framework_api, dlsym(handle, "glProgramLocalParameters4fvEXT"));
796
797 /* Pointer Incompatability:
798 * This warning can be safely ignored. OpenGL.framework adds const to the
799 * two pointers.
800 *
801 * extern void glMultiDrawArraysEXT (GLenum, const GLint *, const GLsizei *, GLsizei);
802 *
803 * void ( * MultiDrawArraysEXT)(GLenum mode, GLint * first, GLsizei * count, GLsizei primcount);
804 */
805
806 /* GL_EXT_multi_draw_arrays */
807 SET_MultiDrawArraysEXT(__ogl_framework_api, (void *)dlsym(handle, "glMultiDrawArraysEXT"));
808 SET_MultiDrawElementsEXT(__ogl_framework_api, dlsym(handle, "glMultiDrawElementsEXT"));
809
810 /* GL_EXT_point_parameters / GL_ARB_point_parameters */
811 if(dlsym(handle, "glPointParameterfEXT")) {
812 /* GL_EXT_point_parameters */
813 SET_PointParameterfEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfEXT"));
814 SET_PointParameterfvEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfvEXT"));
815 } else {
816 /* GL_ARB_point_parameters */
817 SET_PointParameterfEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfARB"));
818 SET_PointParameterfvEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfvARB"));
819 }
820
821 /* GL_EXT_polygon_offset */
822 SET_PolygonOffsetEXT(__ogl_framework_api, dlsym(handle, "glPolygonOffsetEXT"));
823
824 /* GL_EXT_secondary_color */
825 SET_SecondaryColor3bEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3bEXT"));
826 SET_SecondaryColor3bvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3bvEXT"));
827 SET_SecondaryColor3dEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3dEXT"));
828 SET_SecondaryColor3dvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3dvEXT"));
829 SET_SecondaryColor3fEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3fEXT"));
830 SET_SecondaryColor3fvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3fvEXT"));
831 SET_SecondaryColor3iEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3iEXT"));
832 SET_SecondaryColor3ivEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ivEXT"));
833 SET_SecondaryColor3sEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3sEXT"));
834 SET_SecondaryColor3svEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3svEXT"));
835 SET_SecondaryColor3ubEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ubEXT"));
836 SET_SecondaryColor3ubvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ubvEXT"));
837 SET_SecondaryColor3uiEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3uiEXT"));
838 SET_SecondaryColor3uivEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3uivEXT"));
839 SET_SecondaryColor3usEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3usEXT"));
840 SET_SecondaryColor3usvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3usvEXT"));
841 SET_SecondaryColorPointerEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColorPointerEXT"));
842
843 /* GL_EXT_stencil_two_side */
844 SET_ActiveStencilFaceEXT(__ogl_framework_api, dlsym(handle, "glActiveStencilFaceEXT"));
845
846 /* GL_EXT_timer_query */
847 SET_GetQueryObjecti64vEXT(__ogl_framework_api, dlsym(handle, "glGetQueryObjecti64vEXT"));
848 SET_GetQueryObjectui64vEXT(__ogl_framework_api, dlsym(handle, "glGetQueryObjectui64vEXT"));
849
850 /* GL_EXT_vertex_array */
851 SET_ColorPointerEXT(__ogl_framework_api, dlsym(handle, "glColorPointerEXT"));
852 SET_EdgeFlagPointerEXT(__ogl_framework_api, dlsym(handle, "glEdgeFlagPointerEXT"));
853 SET_IndexPointerEXT(__ogl_framework_api, dlsym(handle, "glIndexPointerEXT"));
854 SET_NormalPointerEXT(__ogl_framework_api, dlsym(handle, "glNormalPointerEXT"));
855 SET_TexCoordPointerEXT(__ogl_framework_api, dlsym(handle, "glTexCoordPointerEXT"));
856 SET_VertexPointerEXT(__ogl_framework_api, dlsym(handle, "glVertexPointerEXT"));
857
858 /* GL_IBM_multimode_draw_arrays */
859 SET_MultiModeDrawArraysIBM(__ogl_framework_api, dlsym(handle, "glMultiModeDrawArraysIBM"));
860 SET_MultiModeDrawElementsIBM(__ogl_framework_api, dlsym(handle, "glMultiModeDrawElementsIBM"));
861
862 /* GL_MESA_resize_buffers */
863 SET_ResizeBuffersMESA(__ogl_framework_api, dlsym(handle, "glResizeBuffersMESA"));
864
865 /* GL_MESA_window_pos */
866 SET_WindowPos4dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4dMESA"));
867 SET_WindowPos4dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4dvMESA"));
868 SET_WindowPos4fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4fMESA"));
869 SET_WindowPos4fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4fvMESA"));
870 SET_WindowPos4iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4iMESA"));
871 SET_WindowPos4ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4ivMESA"));
872 SET_WindowPos4sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4sMESA"));
873 SET_WindowPos4svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4svMESA"));
874
875 /* GL_NV_fence */
876 SET_DeleteFencesNV(__ogl_framework_api, dlsym(handle, "glDeleteFencesNV"));
877 SET_FinishFenceNV(__ogl_framework_api, dlsym(handle, "glFinishFenceNV"));
878 SET_GenFencesNV(__ogl_framework_api, dlsym(handle, "glGenFencesNV"));
879 SET_GetFenceivNV(__ogl_framework_api, dlsym(handle, "glGetFenceivNV"));
880 SET_IsFenceNV(__ogl_framework_api, dlsym(handle, "glIsFenceNV"));
881 SET_SetFenceNV(__ogl_framework_api, dlsym(handle, "glSetFenceNV"));
882 SET_TestFenceNV(__ogl_framework_api, dlsym(handle, "glTestFenceNV"));
883
884 /* GL_NV_fragment_program */
885 SET_GetProgramNamedParameterdvNV(__ogl_framework_api, dlsym(handle, "glGetProgramNamedParameterdvNV"));
886 SET_GetProgramNamedParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetProgramNamedParameterfvNV"));
887 SET_ProgramNamedParameter4dNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4dNV"));
888 SET_ProgramNamedParameter4dvNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4dvNV"));
889 SET_ProgramNamedParameter4fNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4fNV"));
890 SET_ProgramNamedParameter4fvNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4fvNV"));
891
892 /* GL_NV_geometry_program4 */
893 SET_FramebufferTextureLayerEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTextureLayerEXT"));
894
895 /* GL_NV_point_sprite */
896 SET_PointParameteriNV(__ogl_framework_api, dlsym(handle, "glPointParameteriNV"));
897 SET_PointParameterivNV(__ogl_framework_api, dlsym(handle, "glPointParameterivNV"));
898
899 /* GL_NV_register_combiners */
900 SET_CombinerInputNV(__ogl_framework_api, dlsym(handle, "glCombinerInputNV"));
901 SET_CombinerOutputNV(__ogl_framework_api, dlsym(handle, "glCombinerOutputNV"));
902 SET_CombinerParameterfNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterfNV"));
903 SET_CombinerParameterfvNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterfvNV"));
904 SET_CombinerParameteriNV(__ogl_framework_api, dlsym(handle, "glCombinerParameteriNV"));
905 SET_CombinerParameterivNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterivNV"));
906 SET_FinalCombinerInputNV(__ogl_framework_api, dlsym(handle, "glFinalCombinerInputNV"));
907 SET_GetCombinerInputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetCombinerInputParameterfvNV"));
908 SET_GetCombinerInputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetCombinerInputParameterivNV"));
909 SET_GetCombinerOutputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetCombinerOutputParameterfvNV"));
910 SET_GetCombinerOutputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetCombinerOutputParameterivNV"));
911 SET_GetFinalCombinerInputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetFinalCombinerInputParameterfvNV"));
912 SET_GetFinalCombinerInputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetFinalCombinerInputParameterivNV"));
913
914 /* GL_NV_vertex_array_range */
915 SET_FlushVertexArrayRangeNV(__ogl_framework_api, dlsym(handle, "glFlushVertexArrayRangeNV"));
916 SET_VertexArrayRangeNV(__ogl_framework_api, dlsym(handle, "glVertexArrayRangeNV"));
917
918 /* GL_NV_vertex_program */
919 SET_AreProgramsResidentNV(__ogl_framework_api, dlsym(handle, "glAreProgramsResidentNV"));
920 SET_BindProgramNV(__ogl_framework_api, dlsym(handle, "glBindProgramNV"));
921 SET_DeleteProgramsNV(__ogl_framework_api, dlsym(handle, "glDeleteProgramsNV"));
922 SET_ExecuteProgramNV(__ogl_framework_api, dlsym(handle, "glExecuteProgramNV"));
923 SET_GenProgramsNV(__ogl_framework_api, dlsym(handle, "glGenProgramsNV"));
924 SET_GetProgramParameterdvNV(__ogl_framework_api, dlsym(handle, "glGetProgramParameterdvNV"));
925 SET_GetProgramParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetProgramParameterfvNV"));
926 SET_GetProgramStringNV(__ogl_framework_api, dlsym(handle, "glGetProgramStringNV"));
927 SET_GetProgramivNV(__ogl_framework_api, dlsym(handle, "glGetProgramivNV"));
928 SET_GetTrackMatrixivNV(__ogl_framework_api, dlsym(handle, "glGetTrackMatrixivNV"));
929 SET_GetVertexAttribPointervNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribPointervNV"));
930 SET_GetVertexAttribdvNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribdvNV"));
931 SET_GetVertexAttribfvNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribfvNV"));
932 SET_GetVertexAttribivNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribivNV"));
933 SET_IsProgramNV(__ogl_framework_api, dlsym(handle, "glIsProgramNV"));
934 SET_LoadProgramNV(__ogl_framework_api, dlsym(handle, "glLoadProgramNV"));
935 SET_ProgramParameters4dvNV(__ogl_framework_api, dlsym(handle, "glProgramParameters4dvNV"));
936 SET_ProgramParameters4fvNV(__ogl_framework_api, dlsym(handle, "glProgramParameters4fvNV"));
937 SET_RequestResidentProgramsNV(__ogl_framework_api, dlsym(handle, "glRequestResidentProgramsNV"));
938 SET_TrackMatrixNV(__ogl_framework_api, dlsym(handle, "glTrackMatrixNV"));
939 SET_VertexAttrib1dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dNV"));
940 SET_VertexAttrib1dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dvNV"));
941 SET_VertexAttrib1fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fNV"));
942 SET_VertexAttrib1fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fvNV"));
943 SET_VertexAttrib1sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1sNV"));
944 SET_VertexAttrib1svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1svNV"));
945 SET_VertexAttrib2dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dNV"));
946 SET_VertexAttrib2dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dvNV"));
947 SET_VertexAttrib2fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fNV"));
948 SET_VertexAttrib2fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fvNV"));
949 SET_VertexAttrib2sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2sNV"));
950 SET_VertexAttrib2svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2svNV"));
951 SET_VertexAttrib3dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dNV"));
952 SET_VertexAttrib3dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dvNV"));
953 SET_VertexAttrib3fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fNV"));
954 SET_VertexAttrib3fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fvNV"));
955 SET_VertexAttrib3sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3sNV"));
956 SET_VertexAttrib3svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3svNV"));
957 SET_VertexAttrib4dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dNV"));
958 SET_VertexAttrib4dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dvNV"));
959 SET_VertexAttrib4fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fNV"));
960 SET_VertexAttrib4fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fvNV"));
961 SET_VertexAttrib4sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4sNV"));
962 SET_VertexAttrib4svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4svNV"));
963 SET_VertexAttrib4ubNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubNV"));
964 SET_VertexAttrib4ubvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubvNV"));
965 SET_VertexAttribPointerNV(__ogl_framework_api, dlsym(handle, "glVertexAttribPointerNV"));
966 SET_VertexAttribs1dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1dvNV"));
967 SET_VertexAttribs1fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1fvNV"));
968 SET_VertexAttribs1svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1svNV"));
969 SET_VertexAttribs2dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2dvNV"));
970 SET_VertexAttribs2fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2fvNV"));
971 SET_VertexAttribs2svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2svNV"));
972 SET_VertexAttribs3dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3dvNV"));
973 SET_VertexAttribs3fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3fvNV"));
974 SET_VertexAttribs3svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3svNV"));
975 SET_VertexAttribs4dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4dvNV"));
976 SET_VertexAttribs4fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4fvNV"));
977 SET_VertexAttribs4svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4svNV"));
978 SET_VertexAttribs4ubvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4ubvNV"));
979
980 /* GL_SGIS_multisample */
981 SET_SampleMaskSGIS(__ogl_framework_api, dlsym(handle, "glSampleMaskSGIS"));
982 SET_SamplePatternSGIS(__ogl_framework_api, dlsym(handle, "glSamplePatternSGIS"));
983
984 /* GL_SGIS_pixel_texture */
985 SET_GetPixelTexGenParameterfvSGIS(__ogl_framework_api, dlsym(handle, "glGetPixelTexGenParameterfvSGIS"));
986 SET_GetPixelTexGenParameterivSGIS(__ogl_framework_api, dlsym(handle, "glGetPixelTexGenParameterivSGIS"));
987 SET_PixelTexGenParameterfSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterfSGIS"));
988 SET_PixelTexGenParameterfvSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterfvSGIS"));
989 SET_PixelTexGenParameteriSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameteriSGIS"));
990 SET_PixelTexGenParameterivSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterivSGIS"));
991 SET_PixelTexGenSGIX(__ogl_framework_api, dlsym(handle, "glPixelTexGenSGIX"));
992
993 __applegl_api = malloc(sizeof(struct _glapi_table));
994 assert(__applegl_api);
995 memcpy(__applegl_api, __ogl_framework_api, sizeof(struct _glapi_table));
996
997 SET_ReadPixels(__applegl_api, __applegl_glReadPixels);
998 SET_CopyPixels(__applegl_api, __applegl_glCopyPixels);
999 SET_CopyColorTable(__applegl_api, __applegl_glCopyColorTable);
1000 SET_DrawBuffer(__applegl_api, __applegl_glDrawBuffer);
1001 SET_DrawBuffersARB(__applegl_api, __applegl_glDrawBuffersARB);
1002 SET_Viewport(__applegl_api, __applegl_glViewport);
1003
1004 _glapi_set_dispatch(__applegl_api);
1005 }