1/* GL dispatch code.
2 * This is code-generated from the GL API XML files from Khronos.
3 *
4 * Copyright (c) 2013-2018 The Khronos Group Inc.
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 *     http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 */
19
20#include "config.h"
21
22#include <stdlib.h>
23#include <string.h>
24#include <stdio.h>
25
26#include "dispatch_common.h"
27#include "epoxy/glx.h"
28
29#if defined(__GNUC__) || defined(__lint__)
30#define EPOXY_NOINLINE __attribute__((noinline))
31#elif defined (_MSC_VER)
32#define EPOXY_NOINLINE __declspec(noinline)
33#endif
34struct dispatch_table {
35    PFNGLXBINDCHANNELTOWINDOWSGIXPROC epoxy_glXBindChannelToWindowSGIX;
36    PFNGLXBINDHYPERPIPESGIXPROC epoxy_glXBindHyperpipeSGIX;
37    PFNGLXBINDSWAPBARRIERNVPROC epoxy_glXBindSwapBarrierNV;
38    PFNGLXBINDSWAPBARRIERSGIXPROC epoxy_glXBindSwapBarrierSGIX;
39    PFNGLXBINDTEXIMAGEEXTPROC epoxy_glXBindTexImageEXT;
40    PFNGLXBINDVIDEOCAPTUREDEVICENVPROC epoxy_glXBindVideoCaptureDeviceNV;
41    PFNGLXBINDVIDEODEVICENVPROC epoxy_glXBindVideoDeviceNV;
42    PFNGLXBINDVIDEOIMAGENVPROC epoxy_glXBindVideoImageNV;
43    PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC epoxy_glXBlitContextFramebufferAMD;
44    PFNGLXCHANNELRECTSGIXPROC epoxy_glXChannelRectSGIX;
45    PFNGLXCHANNELRECTSYNCSGIXPROC epoxy_glXChannelRectSyncSGIX;
46    PFNGLXCHOOSEFBCONFIGPROC epoxy_glXChooseFBConfig;
47    PFNGLXCHOOSEFBCONFIGSGIXPROC epoxy_glXChooseFBConfigSGIX;
48    PFNGLXCHOOSEVISUALPROC epoxy_glXChooseVisual;
49    PFNGLXCOPYBUFFERSUBDATANVPROC epoxy_glXCopyBufferSubDataNV;
50    PFNGLXCOPYCONTEXTPROC epoxy_glXCopyContext;
51    PFNGLXCOPYIMAGESUBDATANVPROC epoxy_glXCopyImageSubDataNV;
52    PFNGLXCOPYSUBBUFFERMESAPROC epoxy_glXCopySubBufferMESA;
53    PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC epoxy_glXCreateAssociatedContextAMD;
54    PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC epoxy_glXCreateAssociatedContextAttribsAMD;
55    PFNGLXCREATECONTEXTPROC epoxy_glXCreateContext;
56    PFNGLXCREATECONTEXTATTRIBSARBPROC epoxy_glXCreateContextAttribsARB;
57    PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC epoxy_glXCreateContextWithConfigSGIX;
58    PFNGLXCREATEGLXPBUFFERSGIXPROC epoxy_glXCreateGLXPbufferSGIX;
59    PFNGLXCREATEGLXPIXMAPPROC epoxy_glXCreateGLXPixmap;
60    PFNGLXCREATEGLXPIXMAPMESAPROC epoxy_glXCreateGLXPixmapMESA;
61    PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC epoxy_glXCreateGLXPixmapWithConfigSGIX;
62    PFNGLXCREATENEWCONTEXTPROC epoxy_glXCreateNewContext;
63    PFNGLXCREATEPBUFFERPROC epoxy_glXCreatePbuffer;
64    PFNGLXCREATEPIXMAPPROC epoxy_glXCreatePixmap;
65    PFNGLXCREATEWINDOWPROC epoxy_glXCreateWindow;
66    PFNGLXCUSHIONSGIPROC epoxy_glXCushionSGI;
67    PFNGLXDELAYBEFORESWAPNVPROC epoxy_glXDelayBeforeSwapNV;
68    PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC epoxy_glXDeleteAssociatedContextAMD;
69    PFNGLXDESTROYCONTEXTPROC epoxy_glXDestroyContext;
70    PFNGLXDESTROYGLXPBUFFERSGIXPROC epoxy_glXDestroyGLXPbufferSGIX;
71    PFNGLXDESTROYGLXPIXMAPPROC epoxy_glXDestroyGLXPixmap;
72    PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC epoxy_glXDestroyGLXVideoSourceSGIX;
73    PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC epoxy_glXDestroyHyperpipeConfigSGIX;
74    PFNGLXDESTROYPBUFFERPROC epoxy_glXDestroyPbuffer;
75    PFNGLXDESTROYPIXMAPPROC epoxy_glXDestroyPixmap;
76    PFNGLXDESTROYWINDOWPROC epoxy_glXDestroyWindow;
77    PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC epoxy_glXEnumerateVideoCaptureDevicesNV;
78    PFNGLXENUMERATEVIDEODEVICESNVPROC epoxy_glXEnumerateVideoDevicesNV;
79    PFNGLXFREECONTEXTEXTPROC epoxy_glXFreeContextEXT;
80    PFNGLXGETAGPOFFSETMESAPROC epoxy_glXGetAGPOffsetMESA;
81    PFNGLXGETCLIENTSTRINGPROC epoxy_glXGetClientString;
82    PFNGLXGETCONFIGPROC epoxy_glXGetConfig;
83    PFNGLXGETCONTEXTGPUIDAMDPROC epoxy_glXGetContextGPUIDAMD;
84    PFNGLXGETCONTEXTIDEXTPROC epoxy_glXGetContextIDEXT;
85    PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC epoxy_glXGetCurrentAssociatedContextAMD;
86    PFNGLXGETCURRENTCONTEXTPROC epoxy_glXGetCurrentContext;
87    PFNGLXGETCURRENTDISPLAYPROC epoxy_glXGetCurrentDisplay;
88    PFNGLXGETCURRENTDISPLAYEXTPROC epoxy_glXGetCurrentDisplayEXT;
89    PFNGLXGETCURRENTDRAWABLEPROC epoxy_glXGetCurrentDrawable;
90    PFNGLXGETCURRENTREADDRAWABLEPROC epoxy_glXGetCurrentReadDrawable;
91    PFNGLXGETCURRENTREADDRAWABLESGIPROC epoxy_glXGetCurrentReadDrawableSGI;
92    PFNGLXGETFBCONFIGATTRIBPROC epoxy_glXGetFBConfigAttrib;
93    PFNGLXGETFBCONFIGATTRIBSGIXPROC epoxy_glXGetFBConfigAttribSGIX;
94    PFNGLXGETFBCONFIGFROMVISUALSGIXPROC epoxy_glXGetFBConfigFromVisualSGIX;
95    PFNGLXGETFBCONFIGSPROC epoxy_glXGetFBConfigs;
96    PFNGLXGETGPUIDSAMDPROC epoxy_glXGetGPUIDsAMD;
97    PFNGLXGETGPUINFOAMDPROC epoxy_glXGetGPUInfoAMD;
98    PFNGLXGETMSCRATEOMLPROC epoxy_glXGetMscRateOML;
99    PFNGLXGETPROCADDRESSPROC epoxy_glXGetProcAddress;
100    PFNGLXGETPROCADDRESSARBPROC epoxy_glXGetProcAddressARB;
101    PFNGLXGETSELECTEDEVENTPROC epoxy_glXGetSelectedEvent;
102    PFNGLXGETSELECTEDEVENTSGIXPROC epoxy_glXGetSelectedEventSGIX;
103    PFNGLXGETSWAPINTERVALMESAPROC epoxy_glXGetSwapIntervalMESA;
104    PFNGLXGETSYNCVALUESOMLPROC epoxy_glXGetSyncValuesOML;
105    PFNGLXGETTRANSPARENTINDEXSUNPROC epoxy_glXGetTransparentIndexSUN;
106    PFNGLXGETVIDEODEVICENVPROC epoxy_glXGetVideoDeviceNV;
107    PFNGLXGETVIDEOINFONVPROC epoxy_glXGetVideoInfoNV;
108    PFNGLXGETVIDEOSYNCSGIPROC epoxy_glXGetVideoSyncSGI;
109    PFNGLXGETVISUALFROMFBCONFIGPROC epoxy_glXGetVisualFromFBConfig;
110    PFNGLXGETVISUALFROMFBCONFIGSGIXPROC epoxy_glXGetVisualFromFBConfigSGIX;
111    PFNGLXHYPERPIPEATTRIBSGIXPROC epoxy_glXHyperpipeAttribSGIX;
112    PFNGLXHYPERPIPECONFIGSGIXPROC epoxy_glXHyperpipeConfigSGIX;
113    PFNGLXIMPORTCONTEXTEXTPROC epoxy_glXImportContextEXT;
114    PFNGLXISDIRECTPROC epoxy_glXIsDirect;
115    PFNGLXJOINSWAPGROUPNVPROC epoxy_glXJoinSwapGroupNV;
116    PFNGLXJOINSWAPGROUPSGIXPROC epoxy_glXJoinSwapGroupSGIX;
117    PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC epoxy_glXLockVideoCaptureDeviceNV;
118    PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC epoxy_glXMakeAssociatedContextCurrentAMD;
119    PFNGLXMAKECONTEXTCURRENTPROC epoxy_glXMakeContextCurrent;
120    PFNGLXMAKECURRENTPROC epoxy_glXMakeCurrent;
121    PFNGLXMAKECURRENTREADSGIPROC epoxy_glXMakeCurrentReadSGI;
122    PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC epoxy_glXNamedCopyBufferSubDataNV;
123    PFNGLXQUERYCHANNELDELTASSGIXPROC epoxy_glXQueryChannelDeltasSGIX;
124    PFNGLXQUERYCHANNELRECTSGIXPROC epoxy_glXQueryChannelRectSGIX;
125    PFNGLXQUERYCONTEXTPROC epoxy_glXQueryContext;
126    PFNGLXQUERYCONTEXTINFOEXTPROC epoxy_glXQueryContextInfoEXT;
127    PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC epoxy_glXQueryCurrentRendererIntegerMESA;
128    PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC epoxy_glXQueryCurrentRendererStringMESA;
129    PFNGLXQUERYDRAWABLEPROC epoxy_glXQueryDrawable;
130    PFNGLXQUERYEXTENSIONPROC epoxy_glXQueryExtension;
131    PFNGLXQUERYEXTENSIONSSTRINGPROC epoxy_glXQueryExtensionsString;
132    PFNGLXQUERYFRAMECOUNTNVPROC epoxy_glXQueryFrameCountNV;
133    PFNGLXQUERYGLXPBUFFERSGIXPROC epoxy_glXQueryGLXPbufferSGIX;
134    PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC epoxy_glXQueryHyperpipeAttribSGIX;
135    PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC epoxy_glXQueryHyperpipeBestAttribSGIX;
136    PFNGLXQUERYHYPERPIPECONFIGSGIXPROC epoxy_glXQueryHyperpipeConfigSGIX;
137    PFNGLXQUERYHYPERPIPENETWORKSGIXPROC epoxy_glXQueryHyperpipeNetworkSGIX;
138    PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC epoxy_glXQueryMaxSwapBarriersSGIX;
139    PFNGLXQUERYMAXSWAPGROUPSNVPROC epoxy_glXQueryMaxSwapGroupsNV;
140    PFNGLXQUERYRENDERERINTEGERMESAPROC epoxy_glXQueryRendererIntegerMESA;
141    PFNGLXQUERYRENDERERSTRINGMESAPROC epoxy_glXQueryRendererStringMESA;
142    PFNGLXQUERYSERVERSTRINGPROC epoxy_glXQueryServerString;
143    PFNGLXQUERYSWAPGROUPNVPROC epoxy_glXQuerySwapGroupNV;
144    PFNGLXQUERYVERSIONPROC epoxy_glXQueryVersion;
145    PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC epoxy_glXQueryVideoCaptureDeviceNV;
146    PFNGLXRELEASEBUFFERSMESAPROC epoxy_glXReleaseBuffersMESA;
147    PFNGLXRELEASETEXIMAGEEXTPROC epoxy_glXReleaseTexImageEXT;
148    PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC epoxy_glXReleaseVideoCaptureDeviceNV;
149    PFNGLXRELEASEVIDEODEVICENVPROC epoxy_glXReleaseVideoDeviceNV;
150    PFNGLXRELEASEVIDEOIMAGENVPROC epoxy_glXReleaseVideoImageNV;
151    PFNGLXRESETFRAMECOUNTNVPROC epoxy_glXResetFrameCountNV;
152    PFNGLXSELECTEVENTPROC epoxy_glXSelectEvent;
153    PFNGLXSELECTEVENTSGIXPROC epoxy_glXSelectEventSGIX;
154    PFNGLXSENDPBUFFERTOVIDEONVPROC epoxy_glXSendPbufferToVideoNV;
155    PFNGLXSET3DFXMODEMESAPROC epoxy_glXSet3DfxModeMESA;
156    PFNGLXSWAPBUFFERSPROC epoxy_glXSwapBuffers;
157    PFNGLXSWAPBUFFERSMSCOMLPROC epoxy_glXSwapBuffersMscOML;
158    PFNGLXSWAPINTERVALEXTPROC epoxy_glXSwapIntervalEXT;
159    PFNGLXSWAPINTERVALMESAPROC epoxy_glXSwapIntervalMESA;
160    PFNGLXSWAPINTERVALSGIPROC epoxy_glXSwapIntervalSGI;
161    PFNGLXUSEXFONTPROC epoxy_glXUseXFont;
162    PFNGLXWAITFORMSCOMLPROC epoxy_glXWaitForMscOML;
163    PFNGLXWAITFORSBCOMLPROC epoxy_glXWaitForSbcOML;
164    PFNGLXWAITGLPROC epoxy_glXWaitGL;
165    PFNGLXWAITVIDEOSYNCSGIPROC epoxy_glXWaitVideoSyncSGI;
166    PFNGLXWAITXPROC epoxy_glXWaitX;
167};
168
169#if USING_DISPATCH_TABLE
170static inline struct dispatch_table *
171get_dispatch_table(void);
172
173#endif
174
175enum glx_provider {
176    glx_provider_terminator = 0,
177    PROVIDER_GLX_10,
178    PROVIDER_GLX_11,
179    PROVIDER_GLX_12,
180    PROVIDER_GLX_13,
181    PROVIDER_GLX_AMD_gpu_association,
182    PROVIDER_GLX_ARB_create_context,
183    PROVIDER_GLX_ARB_get_proc_address,
184    PROVIDER_GLX_EXT_import_context,
185    PROVIDER_GLX_EXT_swap_control,
186    PROVIDER_GLX_EXT_texture_from_pixmap,
187    PROVIDER_GLX_MESA_agp_offset,
188    PROVIDER_GLX_MESA_copy_sub_buffer,
189    PROVIDER_GLX_MESA_pixmap_colormap,
190    PROVIDER_GLX_MESA_query_renderer,
191    PROVIDER_GLX_MESA_release_buffers,
192    PROVIDER_GLX_MESA_set_3dfx_mode,
193    PROVIDER_GLX_MESA_swap_control,
194    PROVIDER_GLX_NV_copy_buffer,
195    PROVIDER_GLX_NV_copy_image,
196    PROVIDER_GLX_NV_delay_before_swap,
197    PROVIDER_GLX_NV_present_video,
198    PROVIDER_GLX_NV_swap_group,
199    PROVIDER_GLX_NV_video_capture,
200    PROVIDER_GLX_NV_video_out,
201    PROVIDER_GLX_OML_sync_control,
202    PROVIDER_GLX_SGIX_fbconfig,
203    PROVIDER_GLX_SGIX_hyperpipe,
204    PROVIDER_GLX_SGIX_pbuffer,
205    PROVIDER_GLX_SGIX_swap_barrier,
206    PROVIDER_GLX_SGIX_swap_group,
207    PROVIDER_GLX_SGIX_video_resize,
208    PROVIDER_GLX_SGIX_video_source,
209    PROVIDER_GLX_SGI_cushion,
210    PROVIDER_GLX_SGI_make_current_read,
211    PROVIDER_GLX_SGI_swap_control,
212    PROVIDER_GLX_SGI_video_sync,
213    PROVIDER_GLX_SUN_get_transparent_index,
214    PROVIDER_always_present,
215} PACKED;
216ENDPACKED
217
218static const char *enum_string =
219    "GLX 10\0"
220    "GLX 11\0"
221    "GLX 12\0"
222    "GLX 13\0"
223    "GLX_AMD_gpu_association\0"
224    "GLX_ARB_create_context\0"
225    "GLX_ARB_get_proc_address\0"
226    "GLX_EXT_import_context\0"
227    "GLX_EXT_swap_control\0"
228    "GLX_EXT_texture_from_pixmap\0"
229    "GLX_MESA_agp_offset\0"
230    "GLX_MESA_copy_sub_buffer\0"
231    "GLX_MESA_pixmap_colormap\0"
232    "GLX_MESA_query_renderer\0"
233    "GLX_MESA_release_buffers\0"
234    "GLX_MESA_set_3dfx_mode\0"
235    "GLX_MESA_swap_control\0"
236    "GLX_NV_copy_buffer\0"
237    "GLX_NV_copy_image\0"
238    "GLX_NV_delay_before_swap\0"
239    "GLX_NV_present_video\0"
240    "GLX_NV_swap_group\0"
241    "GLX_NV_video_capture\0"
242    "GLX_NV_video_out\0"
243    "GLX_OML_sync_control\0"
244    "GLX_SGIX_fbconfig\0"
245    "GLX_SGIX_hyperpipe\0"
246    "GLX_SGIX_pbuffer\0"
247    "GLX_SGIX_swap_barrier\0"
248    "GLX_SGIX_swap_group\0"
249    "GLX_SGIX_video_resize\0"
250    "GLX_SGIX_video_source\0"
251    "GLX_SGI_cushion\0"
252    "GLX_SGI_make_current_read\0"
253    "GLX_SGI_swap_control\0"
254    "GLX_SGI_video_sync\0"
255    "GLX_SUN_get_transparent_index\0"
256    "always present\0"
257     ;
258
259static const uint16_t enum_string_offsets[] = {
260    -1, /* glx_provider_terminator, unused */
261    0, /* GLX 10 */
262    7, /* GLX 11 */
263    14, /* GLX 12 */
264    21, /* GLX 13 */
265    28, /* GLX_AMD_gpu_association */
266    52, /* GLX_ARB_create_context */
267    75, /* GLX_ARB_get_proc_address */
268    100, /* GLX_EXT_import_context */
269    123, /* GLX_EXT_swap_control */
270    144, /* GLX_EXT_texture_from_pixmap */
271    172, /* GLX_MESA_agp_offset */
272    192, /* GLX_MESA_copy_sub_buffer */
273    217, /* GLX_MESA_pixmap_colormap */
274    242, /* GLX_MESA_query_renderer */
275    266, /* GLX_MESA_release_buffers */
276    291, /* GLX_MESA_set_3dfx_mode */
277    314, /* GLX_MESA_swap_control */
278    336, /* GLX_NV_copy_buffer */
279    355, /* GLX_NV_copy_image */
280    373, /* GLX_NV_delay_before_swap */
281    398, /* GLX_NV_present_video */
282    419, /* GLX_NV_swap_group */
283    437, /* GLX_NV_video_capture */
284    458, /* GLX_NV_video_out */
285    475, /* GLX_OML_sync_control */
286    496, /* GLX_SGIX_fbconfig */
287    514, /* GLX_SGIX_hyperpipe */
288    533, /* GLX_SGIX_pbuffer */
289    550, /* GLX_SGIX_swap_barrier */
290    572, /* GLX_SGIX_swap_group */
291    592, /* GLX_SGIX_video_resize */
292    614, /* GLX_SGIX_video_source */
293    636, /* GLX_SGI_cushion */
294    652, /* GLX_SGI_make_current_read */
295    678, /* GLX_SGI_swap_control */
296    699, /* GLX_SGI_video_sync */
297    718, /* GLX_SUN_get_transparent_index */
298    748, /* always present */
299};
300
301static const char entrypoint_strings[] = {
302   'g',
303   'l',
304   'X',
305   'B',
306   'i',
307   'n',
308   'd',
309   'C',
310   'h',
311   'a',
312   'n',
313   'n',
314   'e',
315   'l',
316   'T',
317   'o',
318   'W',
319   'i',
320   'n',
321   'd',
322   'o',
323   'w',
324   'S',
325   'G',
326   'I',
327   'X',
328   0, // glXBindChannelToWindowSGIX
329   'g',
330   'l',
331   'X',
332   'B',
333   'i',
334   'n',
335   'd',
336   'H',
337   'y',
338   'p',
339   'e',
340   'r',
341   'p',
342   'i',
343   'p',
344   'e',
345   'S',
346   'G',
347   'I',
348   'X',
349   0, // glXBindHyperpipeSGIX
350   'g',
351   'l',
352   'X',
353   'B',
354   'i',
355   'n',
356   'd',
357   'S',
358   'w',
359   'a',
360   'p',
361   'B',
362   'a',
363   'r',
364   'r',
365   'i',
366   'e',
367   'r',
368   'N',
369   'V',
370   0, // glXBindSwapBarrierNV
371   'g',
372   'l',
373   'X',
374   'B',
375   'i',
376   'n',
377   'd',
378   'S',
379   'w',
380   'a',
381   'p',
382   'B',
383   'a',
384   'r',
385   'r',
386   'i',
387   'e',
388   'r',
389   'S',
390   'G',
391   'I',
392   'X',
393   0, // glXBindSwapBarrierSGIX
394   'g',
395   'l',
396   'X',
397   'B',
398   'i',
399   'n',
400   'd',
401   'T',
402   'e',
403   'x',
404   'I',
405   'm',
406   'a',
407   'g',
408   'e',
409   'E',
410   'X',
411   'T',
412   0, // glXBindTexImageEXT
413   'g',
414   'l',
415   'X',
416   'B',
417   'i',
418   'n',
419   'd',
420   'V',
421   'i',
422   'd',
423   'e',
424   'o',
425   'C',
426   'a',
427   'p',
428   't',
429   'u',
430   'r',
431   'e',
432   'D',
433   'e',
434   'v',
435   'i',
436   'c',
437   'e',
438   'N',
439   'V',
440   0, // glXBindVideoCaptureDeviceNV
441   'g',
442   'l',
443   'X',
444   'B',
445   'i',
446   'n',
447   'd',
448   'V',
449   'i',
450   'd',
451   'e',
452   'o',
453   'D',
454   'e',
455   'v',
456   'i',
457   'c',
458   'e',
459   'N',
460   'V',
461   0, // glXBindVideoDeviceNV
462   'g',
463   'l',
464   'X',
465   'B',
466   'i',
467   'n',
468   'd',
469   'V',
470   'i',
471   'd',
472   'e',
473   'o',
474   'I',
475   'm',
476   'a',
477   'g',
478   'e',
479   'N',
480   'V',
481   0, // glXBindVideoImageNV
482   'g',
483   'l',
484   'X',
485   'B',
486   'l',
487   'i',
488   't',
489   'C',
490   'o',
491   'n',
492   't',
493   'e',
494   'x',
495   't',
496   'F',
497   'r',
498   'a',
499   'm',
500   'e',
501   'b',
502   'u',
503   'f',
504   'f',
505   'e',
506   'r',
507   'A',
508   'M',
509   'D',
510   0, // glXBlitContextFramebufferAMD
511   'g',
512   'l',
513   'X',
514   'C',
515   'h',
516   'a',
517   'n',
518   'n',
519   'e',
520   'l',
521   'R',
522   'e',
523   'c',
524   't',
525   'S',
526   'G',
527   'I',
528   'X',
529   0, // glXChannelRectSGIX
530   'g',
531   'l',
532   'X',
533   'C',
534   'h',
535   'a',
536   'n',
537   'n',
538   'e',
539   'l',
540   'R',
541   'e',
542   'c',
543   't',
544   'S',
545   'y',
546   'n',
547   'c',
548   'S',
549   'G',
550   'I',
551   'X',
552   0, // glXChannelRectSyncSGIX
553   'g',
554   'l',
555   'X',
556   'C',
557   'h',
558   'o',
559   'o',
560   's',
561   'e',
562   'F',
563   'B',
564   'C',
565   'o',
566   'n',
567   'f',
568   'i',
569   'g',
570   0, // glXChooseFBConfig
571   'g',
572   'l',
573   'X',
574   'C',
575   'h',
576   'o',
577   'o',
578   's',
579   'e',
580   'F',
581   'B',
582   'C',
583   'o',
584   'n',
585   'f',
586   'i',
587   'g',
588   'S',
589   'G',
590   'I',
591   'X',
592   0, // glXChooseFBConfigSGIX
593   'g',
594   'l',
595   'X',
596   'C',
597   'h',
598   'o',
599   'o',
600   's',
601   'e',
602   'V',
603   'i',
604   's',
605   'u',
606   'a',
607   'l',
608   0, // glXChooseVisual
609   'g',
610   'l',
611   'X',
612   'C',
613   'o',
614   'p',
615   'y',
616   'B',
617   'u',
618   'f',
619   'f',
620   'e',
621   'r',
622   'S',
623   'u',
624   'b',
625   'D',
626   'a',
627   't',
628   'a',
629   'N',
630   'V',
631   0, // glXCopyBufferSubDataNV
632   'g',
633   'l',
634   'X',
635   'C',
636   'o',
637   'p',
638   'y',
639   'C',
640   'o',
641   'n',
642   't',
643   'e',
644   'x',
645   't',
646   0, // glXCopyContext
647   'g',
648   'l',
649   'X',
650   'C',
651   'o',
652   'p',
653   'y',
654   'I',
655   'm',
656   'a',
657   'g',
658   'e',
659   'S',
660   'u',
661   'b',
662   'D',
663   'a',
664   't',
665   'a',
666   'N',
667   'V',
668   0, // glXCopyImageSubDataNV
669   'g',
670   'l',
671   'X',
672   'C',
673   'o',
674   'p',
675   'y',
676   'S',
677   'u',
678   'b',
679   'B',
680   'u',
681   'f',
682   'f',
683   'e',
684   'r',
685   'M',
686   'E',
687   'S',
688   'A',
689   0, // glXCopySubBufferMESA
690   'g',
691   'l',
692   'X',
693   'C',
694   'r',
695   'e',
696   'a',
697   't',
698   'e',
699   'A',
700   's',
701   's',
702   'o',
703   'c',
704   'i',
705   'a',
706   't',
707   'e',
708   'd',
709   'C',
710   'o',
711   'n',
712   't',
713   'e',
714   'x',
715   't',
716   'A',
717   'M',
718   'D',
719   0, // glXCreateAssociatedContextAMD
720   'g',
721   'l',
722   'X',
723   'C',
724   'r',
725   'e',
726   'a',
727   't',
728   'e',
729   'A',
730   's',
731   's',
732   'o',
733   'c',
734   'i',
735   'a',
736   't',
737   'e',
738   'd',
739   'C',
740   'o',
741   'n',
742   't',
743   'e',
744   'x',
745   't',
746   'A',
747   't',
748   't',
749   'r',
750   'i',
751   'b',
752   's',
753   'A',
754   'M',
755   'D',
756   0, // glXCreateAssociatedContextAttribsAMD
757   'g',
758   'l',
759   'X',
760   'C',
761   'r',
762   'e',
763   'a',
764   't',
765   'e',
766   'C',
767   'o',
768   'n',
769   't',
770   'e',
771   'x',
772   't',
773   0, // glXCreateContext
774   'g',
775   'l',
776   'X',
777   'C',
778   'r',
779   'e',
780   'a',
781   't',
782   'e',
783   'C',
784   'o',
785   'n',
786   't',
787   'e',
788   'x',
789   't',
790   'A',
791   't',
792   't',
793   'r',
794   'i',
795   'b',
796   's',
797   'A',
798   'R',
799   'B',
800   0, // glXCreateContextAttribsARB
801   'g',
802   'l',
803   'X',
804   'C',
805   'r',
806   'e',
807   'a',
808   't',
809   'e',
810   'C',
811   'o',
812   'n',
813   't',
814   'e',
815   'x',
816   't',
817   'W',
818   'i',
819   't',
820   'h',
821   'C',
822   'o',
823   'n',
824   'f',
825   'i',
826   'g',
827   'S',
828   'G',
829   'I',
830   'X',
831   0, // glXCreateContextWithConfigSGIX
832   'g',
833   'l',
834   'X',
835   'C',
836   'r',
837   'e',
838   'a',
839   't',
840   'e',
841   'G',
842   'L',
843   'X',
844   'P',
845   'b',
846   'u',
847   'f',
848   'f',
849   'e',
850   'r',
851   'S',
852   'G',
853   'I',
854   'X',
855   0, // glXCreateGLXPbufferSGIX
856   'g',
857   'l',
858   'X',
859   'C',
860   'r',
861   'e',
862   'a',
863   't',
864   'e',
865   'G',
866   'L',
867   'X',
868   'P',
869   'i',
870   'x',
871   'm',
872   'a',
873   'p',
874   0, // glXCreateGLXPixmap
875   'g',
876   'l',
877   'X',
878   'C',
879   'r',
880   'e',
881   'a',
882   't',
883   'e',
884   'G',
885   'L',
886   'X',
887   'P',
888   'i',
889   'x',
890   'm',
891   'a',
892   'p',
893   'M',
894   'E',
895   'S',
896   'A',
897   0, // glXCreateGLXPixmapMESA
898   'g',
899   'l',
900   'X',
901   'C',
902   'r',
903   'e',
904   'a',
905   't',
906   'e',
907   'G',
908   'L',
909   'X',
910   'P',
911   'i',
912   'x',
913   'm',
914   'a',
915   'p',
916   'W',
917   'i',
918   't',
919   'h',
920   'C',
921   'o',
922   'n',
923   'f',
924   'i',
925   'g',
926   'S',
927   'G',
928   'I',
929   'X',
930   0, // glXCreateGLXPixmapWithConfigSGIX
931   'g',
932   'l',
933   'X',
934   'C',
935   'r',
936   'e',
937   'a',
938   't',
939   'e',
940   'N',
941   'e',
942   'w',
943   'C',
944   'o',
945   'n',
946   't',
947   'e',
948   'x',
949   't',
950   0, // glXCreateNewContext
951   'g',
952   'l',
953   'X',
954   'C',
955   'r',
956   'e',
957   'a',
958   't',
959   'e',
960   'P',
961   'b',
962   'u',
963   'f',
964   'f',
965   'e',
966   'r',
967   0, // glXCreatePbuffer
968   'g',
969   'l',
970   'X',
971   'C',
972   'r',
973   'e',
974   'a',
975   't',
976   'e',
977   'P',
978   'i',
979   'x',
980   'm',
981   'a',
982   'p',
983   0, // glXCreatePixmap
984   'g',
985   'l',
986   'X',
987   'C',
988   'r',
989   'e',
990   'a',
991   't',
992   'e',
993   'W',
994   'i',
995   'n',
996   'd',
997   'o',
998   'w',
999   0, // glXCreateWindow
1000   'g',
1001   'l',
1002   'X',
1003   'C',
1004   'u',
1005   's',
1006   'h',
1007   'i',
1008   'o',
1009   'n',
1010   'S',
1011   'G',
1012   'I',
1013   0, // glXCushionSGI
1014   'g',
1015   'l',
1016   'X',
1017   'D',
1018   'e',
1019   'l',
1020   'a',
1021   'y',
1022   'B',
1023   'e',
1024   'f',
1025   'o',
1026   'r',
1027   'e',
1028   'S',
1029   'w',
1030   'a',
1031   'p',
1032   'N',
1033   'V',
1034   0, // glXDelayBeforeSwapNV
1035   'g',
1036   'l',
1037   'X',
1038   'D',
1039   'e',
1040   'l',
1041   'e',
1042   't',
1043   'e',
1044   'A',
1045   's',
1046   's',
1047   'o',
1048   'c',
1049   'i',
1050   'a',
1051   't',
1052   'e',
1053   'd',
1054   'C',
1055   'o',
1056   'n',
1057   't',
1058   'e',
1059   'x',
1060   't',
1061   'A',
1062   'M',
1063   'D',
1064   0, // glXDeleteAssociatedContextAMD
1065   'g',
1066   'l',
1067   'X',
1068   'D',
1069   'e',
1070   's',
1071   't',
1072   'r',
1073   'o',
1074   'y',
1075   'C',
1076   'o',
1077   'n',
1078   't',
1079   'e',
1080   'x',
1081   't',
1082   0, // glXDestroyContext
1083   'g',
1084   'l',
1085   'X',
1086   'D',
1087   'e',
1088   's',
1089   't',
1090   'r',
1091   'o',
1092   'y',
1093   'G',
1094   'L',
1095   'X',
1096   'P',
1097   'b',
1098   'u',
1099   'f',
1100   'f',
1101   'e',
1102   'r',
1103   'S',
1104   'G',
1105   'I',
1106   'X',
1107   0, // glXDestroyGLXPbufferSGIX
1108   'g',
1109   'l',
1110   'X',
1111   'D',
1112   'e',
1113   's',
1114   't',
1115   'r',
1116   'o',
1117   'y',
1118   'G',
1119   'L',
1120   'X',
1121   'P',
1122   'i',
1123   'x',
1124   'm',
1125   'a',
1126   'p',
1127   0, // glXDestroyGLXPixmap
1128   'g',
1129   'l',
1130   'X',
1131   'D',
1132   'e',
1133   's',
1134   't',
1135   'r',
1136   'o',
1137   'y',
1138   'G',
1139   'L',
1140   'X',
1141   'V',
1142   'i',
1143   'd',
1144   'e',
1145   'o',
1146   'S',
1147   'o',
1148   'u',
1149   'r',
1150   'c',
1151   'e',
1152   'S',
1153   'G',
1154   'I',
1155   'X',
1156   0, // glXDestroyGLXVideoSourceSGIX
1157   'g',
1158   'l',
1159   'X',
1160   'D',
1161   'e',
1162   's',
1163   't',
1164   'r',
1165   'o',
1166   'y',
1167   'H',
1168   'y',
1169   'p',
1170   'e',
1171   'r',
1172   'p',
1173   'i',
1174   'p',
1175   'e',
1176   'C',
1177   'o',
1178   'n',
1179   'f',
1180   'i',
1181   'g',
1182   'S',
1183   'G',
1184   'I',
1185   'X',
1186   0, // glXDestroyHyperpipeConfigSGIX
1187   'g',
1188   'l',
1189   'X',
1190   'D',
1191   'e',
1192   's',
1193   't',
1194   'r',
1195   'o',
1196   'y',
1197   'P',
1198   'b',
1199   'u',
1200   'f',
1201   'f',
1202   'e',
1203   'r',
1204   0, // glXDestroyPbuffer
1205   'g',
1206   'l',
1207   'X',
1208   'D',
1209   'e',
1210   's',
1211   't',
1212   'r',
1213   'o',
1214   'y',
1215   'P',
1216   'i',
1217   'x',
1218   'm',
1219   'a',
1220   'p',
1221   0, // glXDestroyPixmap
1222   'g',
1223   'l',
1224   'X',
1225   'D',
1226   'e',
1227   's',
1228   't',
1229   'r',
1230   'o',
1231   'y',
1232   'W',
1233   'i',
1234   'n',
1235   'd',
1236   'o',
1237   'w',
1238   0, // glXDestroyWindow
1239   'g',
1240   'l',
1241   'X',
1242   'E',
1243   'n',
1244   'u',
1245   'm',
1246   'e',
1247   'r',
1248   'a',
1249   't',
1250   'e',
1251   'V',
1252   'i',
1253   'd',
1254   'e',
1255   'o',
1256   'C',
1257   'a',
1258   'p',
1259   't',
1260   'u',
1261   'r',
1262   'e',
1263   'D',
1264   'e',
1265   'v',
1266   'i',
1267   'c',
1268   'e',
1269   's',
1270   'N',
1271   'V',
1272   0, // glXEnumerateVideoCaptureDevicesNV
1273   'g',
1274   'l',
1275   'X',
1276   'E',
1277   'n',
1278   'u',
1279   'm',
1280   'e',
1281   'r',
1282   'a',
1283   't',
1284   'e',
1285   'V',
1286   'i',
1287   'd',
1288   'e',
1289   'o',
1290   'D',
1291   'e',
1292   'v',
1293   'i',
1294   'c',
1295   'e',
1296   's',
1297   'N',
1298   'V',
1299   0, // glXEnumerateVideoDevicesNV
1300   'g',
1301   'l',
1302   'X',
1303   'F',
1304   'r',
1305   'e',
1306   'e',
1307   'C',
1308   'o',
1309   'n',
1310   't',
1311   'e',
1312   'x',
1313   't',
1314   'E',
1315   'X',
1316   'T',
1317   0, // glXFreeContextEXT
1318   'g',
1319   'l',
1320   'X',
1321   'G',
1322   'e',
1323   't',
1324   'A',
1325   'G',
1326   'P',
1327   'O',
1328   'f',
1329   'f',
1330   's',
1331   'e',
1332   't',
1333   'M',
1334   'E',
1335   'S',
1336   'A',
1337   0, // glXGetAGPOffsetMESA
1338   'g',
1339   'l',
1340   'X',
1341   'G',
1342   'e',
1343   't',
1344   'C',
1345   'l',
1346   'i',
1347   'e',
1348   'n',
1349   't',
1350   'S',
1351   't',
1352   'r',
1353   'i',
1354   'n',
1355   'g',
1356   0, // glXGetClientString
1357   'g',
1358   'l',
1359   'X',
1360   'G',
1361   'e',
1362   't',
1363   'C',
1364   'o',
1365   'n',
1366   'f',
1367   'i',
1368   'g',
1369   0, // glXGetConfig
1370   'g',
1371   'l',
1372   'X',
1373   'G',
1374   'e',
1375   't',
1376   'C',
1377   'o',
1378   'n',
1379   't',
1380   'e',
1381   'x',
1382   't',
1383   'G',
1384   'P',
1385   'U',
1386   'I',
1387   'D',
1388   'A',
1389   'M',
1390   'D',
1391   0, // glXGetContextGPUIDAMD
1392   'g',
1393   'l',
1394   'X',
1395   'G',
1396   'e',
1397   't',
1398   'C',
1399   'o',
1400   'n',
1401   't',
1402   'e',
1403   'x',
1404   't',
1405   'I',
1406   'D',
1407   'E',
1408   'X',
1409   'T',
1410   0, // glXGetContextIDEXT
1411   'g',
1412   'l',
1413   'X',
1414   'G',
1415   'e',
1416   't',
1417   'C',
1418   'u',
1419   'r',
1420   'r',
1421   'e',
1422   'n',
1423   't',
1424   'A',
1425   's',
1426   's',
1427   'o',
1428   'c',
1429   'i',
1430   'a',
1431   't',
1432   'e',
1433   'd',
1434   'C',
1435   'o',
1436   'n',
1437   't',
1438   'e',
1439   'x',
1440   't',
1441   'A',
1442   'M',
1443   'D',
1444   0, // glXGetCurrentAssociatedContextAMD
1445   'g',
1446   'l',
1447   'X',
1448   'G',
1449   'e',
1450   't',
1451   'C',
1452   'u',
1453   'r',
1454   'r',
1455   'e',
1456   'n',
1457   't',
1458   'C',
1459   'o',
1460   'n',
1461   't',
1462   'e',
1463   'x',
1464   't',
1465   0, // glXGetCurrentContext
1466   'g',
1467   'l',
1468   'X',
1469   'G',
1470   'e',
1471   't',
1472   'C',
1473   'u',
1474   'r',
1475   'r',
1476   'e',
1477   'n',
1478   't',
1479   'D',
1480   'i',
1481   's',
1482   'p',
1483   'l',
1484   'a',
1485   'y',
1486   0, // glXGetCurrentDisplay
1487   'g',
1488   'l',
1489   'X',
1490   'G',
1491   'e',
1492   't',
1493   'C',
1494   'u',
1495   'r',
1496   'r',
1497   'e',
1498   'n',
1499   't',
1500   'D',
1501   'i',
1502   's',
1503   'p',
1504   'l',
1505   'a',
1506   'y',
1507   'E',
1508   'X',
1509   'T',
1510   0, // glXGetCurrentDisplayEXT
1511   'g',
1512   'l',
1513   'X',
1514   'G',
1515   'e',
1516   't',
1517   'C',
1518   'u',
1519   'r',
1520   'r',
1521   'e',
1522   'n',
1523   't',
1524   'D',
1525   'r',
1526   'a',
1527   'w',
1528   'a',
1529   'b',
1530   'l',
1531   'e',
1532   0, // glXGetCurrentDrawable
1533   'g',
1534   'l',
1535   'X',
1536   'G',
1537   'e',
1538   't',
1539   'C',
1540   'u',
1541   'r',
1542   'r',
1543   'e',
1544   'n',
1545   't',
1546   'R',
1547   'e',
1548   'a',
1549   'd',
1550   'D',
1551   'r',
1552   'a',
1553   'w',
1554   'a',
1555   'b',
1556   'l',
1557   'e',
1558   0, // glXGetCurrentReadDrawable
1559   'g',
1560   'l',
1561   'X',
1562   'G',
1563   'e',
1564   't',
1565   'C',
1566   'u',
1567   'r',
1568   'r',
1569   'e',
1570   'n',
1571   't',
1572   'R',
1573   'e',
1574   'a',
1575   'd',
1576   'D',
1577   'r',
1578   'a',
1579   'w',
1580   'a',
1581   'b',
1582   'l',
1583   'e',
1584   'S',
1585   'G',
1586   'I',
1587   0, // glXGetCurrentReadDrawableSGI
1588   'g',
1589   'l',
1590   'X',
1591   'G',
1592   'e',
1593   't',
1594   'F',
1595   'B',
1596   'C',
1597   'o',
1598   'n',
1599   'f',
1600   'i',
1601   'g',
1602   'A',
1603   't',
1604   't',
1605   'r',
1606   'i',
1607   'b',
1608   0, // glXGetFBConfigAttrib
1609   'g',
1610   'l',
1611   'X',
1612   'G',
1613   'e',
1614   't',
1615   'F',
1616   'B',
1617   'C',
1618   'o',
1619   'n',
1620   'f',
1621   'i',
1622   'g',
1623   'A',
1624   't',
1625   't',
1626   'r',
1627   'i',
1628   'b',
1629   'S',
1630   'G',
1631   'I',
1632   'X',
1633   0, // glXGetFBConfigAttribSGIX
1634   'g',
1635   'l',
1636   'X',
1637   'G',
1638   'e',
1639   't',
1640   'F',
1641   'B',
1642   'C',
1643   'o',
1644   'n',
1645   'f',
1646   'i',
1647   'g',
1648   'F',
1649   'r',
1650   'o',
1651   'm',
1652   'V',
1653   'i',
1654   's',
1655   'u',
1656   'a',
1657   'l',
1658   'S',
1659   'G',
1660   'I',
1661   'X',
1662   0, // glXGetFBConfigFromVisualSGIX
1663   'g',
1664   'l',
1665   'X',
1666   'G',
1667   'e',
1668   't',
1669   'F',
1670   'B',
1671   'C',
1672   'o',
1673   'n',
1674   'f',
1675   'i',
1676   'g',
1677   's',
1678   0, // glXGetFBConfigs
1679   'g',
1680   'l',
1681   'X',
1682   'G',
1683   'e',
1684   't',
1685   'G',
1686   'P',
1687   'U',
1688   'I',
1689   'D',
1690   's',
1691   'A',
1692   'M',
1693   'D',
1694   0, // glXGetGPUIDsAMD
1695   'g',
1696   'l',
1697   'X',
1698   'G',
1699   'e',
1700   't',
1701   'G',
1702   'P',
1703   'U',
1704   'I',
1705   'n',
1706   'f',
1707   'o',
1708   'A',
1709   'M',
1710   'D',
1711   0, // glXGetGPUInfoAMD
1712   'g',
1713   'l',
1714   'X',
1715   'G',
1716   'e',
1717   't',
1718   'M',
1719   's',
1720   'c',
1721   'R',
1722   'a',
1723   't',
1724   'e',
1725   'O',
1726   'M',
1727   'L',
1728   0, // glXGetMscRateOML
1729   'g',
1730   'l',
1731   'X',
1732   'G',
1733   'e',
1734   't',
1735   'P',
1736   'r',
1737   'o',
1738   'c',
1739   'A',
1740   'd',
1741   'd',
1742   'r',
1743   'e',
1744   's',
1745   's',
1746   0, // glXGetProcAddress
1747   'g',
1748   'l',
1749   'X',
1750   'G',
1751   'e',
1752   't',
1753   'P',
1754   'r',
1755   'o',
1756   'c',
1757   'A',
1758   'd',
1759   'd',
1760   'r',
1761   'e',
1762   's',
1763   's',
1764   'A',
1765   'R',
1766   'B',
1767   0, // glXGetProcAddressARB
1768   'g',
1769   'l',
1770   'X',
1771   'G',
1772   'e',
1773   't',
1774   'S',
1775   'e',
1776   'l',
1777   'e',
1778   'c',
1779   't',
1780   'e',
1781   'd',
1782   'E',
1783   'v',
1784   'e',
1785   'n',
1786   't',
1787   0, // glXGetSelectedEvent
1788   'g',
1789   'l',
1790   'X',
1791   'G',
1792   'e',
1793   't',
1794   'S',
1795   'e',
1796   'l',
1797   'e',
1798   'c',
1799   't',
1800   'e',
1801   'd',
1802   'E',
1803   'v',
1804   'e',
1805   'n',
1806   't',
1807   'S',
1808   'G',
1809   'I',
1810   'X',
1811   0, // glXGetSelectedEventSGIX
1812   'g',
1813   'l',
1814   'X',
1815   'G',
1816   'e',
1817   't',
1818   'S',
1819   'w',
1820   'a',
1821   'p',
1822   'I',
1823   'n',
1824   't',
1825   'e',
1826   'r',
1827   'v',
1828   'a',
1829   'l',
1830   'M',
1831   'E',
1832   'S',
1833   'A',
1834   0, // glXGetSwapIntervalMESA
1835   'g',
1836   'l',
1837   'X',
1838   'G',
1839   'e',
1840   't',
1841   'S',
1842   'y',
1843   'n',
1844   'c',
1845   'V',
1846   'a',
1847   'l',
1848   'u',
1849   'e',
1850   's',
1851   'O',
1852   'M',
1853   'L',
1854   0, // glXGetSyncValuesOML
1855   'g',
1856   'l',
1857   'X',
1858   'G',
1859   'e',
1860   't',
1861   'T',
1862   'r',
1863   'a',
1864   'n',
1865   's',
1866   'p',
1867   'a',
1868   'r',
1869   'e',
1870   'n',
1871   't',
1872   'I',
1873   'n',
1874   'd',
1875   'e',
1876   'x',
1877   'S',
1878   'U',
1879   'N',
1880   0, // glXGetTransparentIndexSUN
1881   'g',
1882   'l',
1883   'X',
1884   'G',
1885   'e',
1886   't',
1887   'V',
1888   'i',
1889   'd',
1890   'e',
1891   'o',
1892   'D',
1893   'e',
1894   'v',
1895   'i',
1896   'c',
1897   'e',
1898   'N',
1899   'V',
1900   0, // glXGetVideoDeviceNV
1901   'g',
1902   'l',
1903   'X',
1904   'G',
1905   'e',
1906   't',
1907   'V',
1908   'i',
1909   'd',
1910   'e',
1911   'o',
1912   'I',
1913   'n',
1914   'f',
1915   'o',
1916   'N',
1917   'V',
1918   0, // glXGetVideoInfoNV
1919   'g',
1920   'l',
1921   'X',
1922   'G',
1923   'e',
1924   't',
1925   'V',
1926   'i',
1927   'd',
1928   'e',
1929   'o',
1930   'S',
1931   'y',
1932   'n',
1933   'c',
1934   'S',
1935   'G',
1936   'I',
1937   0, // glXGetVideoSyncSGI
1938   'g',
1939   'l',
1940   'X',
1941   'G',
1942   'e',
1943   't',
1944   'V',
1945   'i',
1946   's',
1947   'u',
1948   'a',
1949   'l',
1950   'F',
1951   'r',
1952   'o',
1953   'm',
1954   'F',
1955   'B',
1956   'C',
1957   'o',
1958   'n',
1959   'f',
1960   'i',
1961   'g',
1962   0, // glXGetVisualFromFBConfig
1963   'g',
1964   'l',
1965   'X',
1966   'G',
1967   'e',
1968   't',
1969   'V',
1970   'i',
1971   's',
1972   'u',
1973   'a',
1974   'l',
1975   'F',
1976   'r',
1977   'o',
1978   'm',
1979   'F',
1980   'B',
1981   'C',
1982   'o',
1983   'n',
1984   'f',
1985   'i',
1986   'g',
1987   'S',
1988   'G',
1989   'I',
1990   'X',
1991   0, // glXGetVisualFromFBConfigSGIX
1992   'g',
1993   'l',
1994   'X',
1995   'H',
1996   'y',
1997   'p',
1998   'e',
1999   'r',
2000   'p',
2001   'i',
2002   'p',
2003   'e',
2004   'A',
2005   't',
2006   't',
2007   'r',
2008   'i',
2009   'b',
2010   'S',
2011   'G',
2012   'I',
2013   'X',
2014   0, // glXHyperpipeAttribSGIX
2015   'g',
2016   'l',
2017   'X',
2018   'H',
2019   'y',
2020   'p',
2021   'e',
2022   'r',
2023   'p',
2024   'i',
2025   'p',
2026   'e',
2027   'C',
2028   'o',
2029   'n',
2030   'f',
2031   'i',
2032   'g',
2033   'S',
2034   'G',
2035   'I',
2036   'X',
2037   0, // glXHyperpipeConfigSGIX
2038   'g',
2039   'l',
2040   'X',
2041   'I',
2042   'm',
2043   'p',
2044   'o',
2045   'r',
2046   't',
2047   'C',
2048   'o',
2049   'n',
2050   't',
2051   'e',
2052   'x',
2053   't',
2054   'E',
2055   'X',
2056   'T',
2057   0, // glXImportContextEXT
2058   'g',
2059   'l',
2060   'X',
2061   'I',
2062   's',
2063   'D',
2064   'i',
2065   'r',
2066   'e',
2067   'c',
2068   't',
2069   0, // glXIsDirect
2070   'g',
2071   'l',
2072   'X',
2073   'J',
2074   'o',
2075   'i',
2076   'n',
2077   'S',
2078   'w',
2079   'a',
2080   'p',
2081   'G',
2082   'r',
2083   'o',
2084   'u',
2085   'p',
2086   'N',
2087   'V',
2088   0, // glXJoinSwapGroupNV
2089   'g',
2090   'l',
2091   'X',
2092   'J',
2093   'o',
2094   'i',
2095   'n',
2096   'S',
2097   'w',
2098   'a',
2099   'p',
2100   'G',
2101   'r',
2102   'o',
2103   'u',
2104   'p',
2105   'S',
2106   'G',
2107   'I',
2108   'X',
2109   0, // glXJoinSwapGroupSGIX
2110   'g',
2111   'l',
2112   'X',
2113   'L',
2114   'o',
2115   'c',
2116   'k',
2117   'V',
2118   'i',
2119   'd',
2120   'e',
2121   'o',
2122   'C',
2123   'a',
2124   'p',
2125   't',
2126   'u',
2127   'r',
2128   'e',
2129   'D',
2130   'e',
2131   'v',
2132   'i',
2133   'c',
2134   'e',
2135   'N',
2136   'V',
2137   0, // glXLockVideoCaptureDeviceNV
2138   'g',
2139   'l',
2140   'X',
2141   'M',
2142   'a',
2143   'k',
2144   'e',
2145   'A',
2146   's',
2147   's',
2148   'o',
2149   'c',
2150   'i',
2151   'a',
2152   't',
2153   'e',
2154   'd',
2155   'C',
2156   'o',
2157   'n',
2158   't',
2159   'e',
2160   'x',
2161   't',
2162   'C',
2163   'u',
2164   'r',
2165   'r',
2166   'e',
2167   'n',
2168   't',
2169   'A',
2170   'M',
2171   'D',
2172   0, // glXMakeAssociatedContextCurrentAMD
2173   'g',
2174   'l',
2175   'X',
2176   'M',
2177   'a',
2178   'k',
2179   'e',
2180   'C',
2181   'o',
2182   'n',
2183   't',
2184   'e',
2185   'x',
2186   't',
2187   'C',
2188   'u',
2189   'r',
2190   'r',
2191   'e',
2192   'n',
2193   't',
2194   0, // glXMakeContextCurrent
2195   'g',
2196   'l',
2197   'X',
2198   'M',
2199   'a',
2200   'k',
2201   'e',
2202   'C',
2203   'u',
2204   'r',
2205   'r',
2206   'e',
2207   'n',
2208   't',
2209   0, // glXMakeCurrent
2210   'g',
2211   'l',
2212   'X',
2213   'M',
2214   'a',
2215   'k',
2216   'e',
2217   'C',
2218   'u',
2219   'r',
2220   'r',
2221   'e',
2222   'n',
2223   't',
2224   'R',
2225   'e',
2226   'a',
2227   'd',
2228   'S',
2229   'G',
2230   'I',
2231   0, // glXMakeCurrentReadSGI
2232   'g',
2233   'l',
2234   'X',
2235   'N',
2236   'a',
2237   'm',
2238   'e',
2239   'd',
2240   'C',
2241   'o',
2242   'p',
2243   'y',
2244   'B',
2245   'u',
2246   'f',
2247   'f',
2248   'e',
2249   'r',
2250   'S',
2251   'u',
2252   'b',
2253   'D',
2254   'a',
2255   't',
2256   'a',
2257   'N',
2258   'V',
2259   0, // glXNamedCopyBufferSubDataNV
2260   'g',
2261   'l',
2262   'X',
2263   'Q',
2264   'u',
2265   'e',
2266   'r',
2267   'y',
2268   'C',
2269   'h',
2270   'a',
2271   'n',
2272   'n',
2273   'e',
2274   'l',
2275   'D',
2276   'e',
2277   'l',
2278   't',
2279   'a',
2280   's',
2281   'S',
2282   'G',
2283   'I',
2284   'X',
2285   0, // glXQueryChannelDeltasSGIX
2286   'g',
2287   'l',
2288   'X',
2289   'Q',
2290   'u',
2291   'e',
2292   'r',
2293   'y',
2294   'C',
2295   'h',
2296   'a',
2297   'n',
2298   'n',
2299   'e',
2300   'l',
2301   'R',
2302   'e',
2303   'c',
2304   't',
2305   'S',
2306   'G',
2307   'I',
2308   'X',
2309   0, // glXQueryChannelRectSGIX
2310   'g',
2311   'l',
2312   'X',
2313   'Q',
2314   'u',
2315   'e',
2316   'r',
2317   'y',
2318   'C',
2319   'o',
2320   'n',
2321   't',
2322   'e',
2323   'x',
2324   't',
2325   0, // glXQueryContext
2326   'g',
2327   'l',
2328   'X',
2329   'Q',
2330   'u',
2331   'e',
2332   'r',
2333   'y',
2334   'C',
2335   'o',
2336   'n',
2337   't',
2338   'e',
2339   'x',
2340   't',
2341   'I',
2342   'n',
2343   'f',
2344   'o',
2345   'E',
2346   'X',
2347   'T',
2348   0, // glXQueryContextInfoEXT
2349   'g',
2350   'l',
2351   'X',
2352   'Q',
2353   'u',
2354   'e',
2355   'r',
2356   'y',
2357   'C',
2358   'u',
2359   'r',
2360   'r',
2361   'e',
2362   'n',
2363   't',
2364   'R',
2365   'e',
2366   'n',
2367   'd',
2368   'e',
2369   'r',
2370   'e',
2371   'r',
2372   'I',
2373   'n',
2374   't',
2375   'e',
2376   'g',
2377   'e',
2378   'r',
2379   'M',
2380   'E',
2381   'S',
2382   'A',
2383   0, // glXQueryCurrentRendererIntegerMESA
2384   'g',
2385   'l',
2386   'X',
2387   'Q',
2388   'u',
2389   'e',
2390   'r',
2391   'y',
2392   'C',
2393   'u',
2394   'r',
2395   'r',
2396   'e',
2397   'n',
2398   't',
2399   'R',
2400   'e',
2401   'n',
2402   'd',
2403   'e',
2404   'r',
2405   'e',
2406   'r',
2407   'S',
2408   't',
2409   'r',
2410   'i',
2411   'n',
2412   'g',
2413   'M',
2414   'E',
2415   'S',
2416   'A',
2417   0, // glXQueryCurrentRendererStringMESA
2418   'g',
2419   'l',
2420   'X',
2421   'Q',
2422   'u',
2423   'e',
2424   'r',
2425   'y',
2426   'D',
2427   'r',
2428   'a',
2429   'w',
2430   'a',
2431   'b',
2432   'l',
2433   'e',
2434   0, // glXQueryDrawable
2435   'g',
2436   'l',
2437   'X',
2438   'Q',
2439   'u',
2440   'e',
2441   'r',
2442   'y',
2443   'E',
2444   'x',
2445   't',
2446   'e',
2447   'n',
2448   's',
2449   'i',
2450   'o',
2451   'n',
2452   0, // glXQueryExtension
2453   'g',
2454   'l',
2455   'X',
2456   'Q',
2457   'u',
2458   'e',
2459   'r',
2460   'y',
2461   'E',
2462   'x',
2463   't',
2464   'e',
2465   'n',
2466   's',
2467   'i',
2468   'o',
2469   'n',
2470   's',
2471   'S',
2472   't',
2473   'r',
2474   'i',
2475   'n',
2476   'g',
2477   0, // glXQueryExtensionsString
2478   'g',
2479   'l',
2480   'X',
2481   'Q',
2482   'u',
2483   'e',
2484   'r',
2485   'y',
2486   'F',
2487   'r',
2488   'a',
2489   'm',
2490   'e',
2491   'C',
2492   'o',
2493   'u',
2494   'n',
2495   't',
2496   'N',
2497   'V',
2498   0, // glXQueryFrameCountNV
2499   'g',
2500   'l',
2501   'X',
2502   'Q',
2503   'u',
2504   'e',
2505   'r',
2506   'y',
2507   'G',
2508   'L',
2509   'X',
2510   'P',
2511   'b',
2512   'u',
2513   'f',
2514   'f',
2515   'e',
2516   'r',
2517   'S',
2518   'G',
2519   'I',
2520   'X',
2521   0, // glXQueryGLXPbufferSGIX
2522   'g',
2523   'l',
2524   'X',
2525   'Q',
2526   'u',
2527   'e',
2528   'r',
2529   'y',
2530   'H',
2531   'y',
2532   'p',
2533   'e',
2534   'r',
2535   'p',
2536   'i',
2537   'p',
2538   'e',
2539   'A',
2540   't',
2541   't',
2542   'r',
2543   'i',
2544   'b',
2545   'S',
2546   'G',
2547   'I',
2548   'X',
2549   0, // glXQueryHyperpipeAttribSGIX
2550   'g',
2551   'l',
2552   'X',
2553   'Q',
2554   'u',
2555   'e',
2556   'r',
2557   'y',
2558   'H',
2559   'y',
2560   'p',
2561   'e',
2562   'r',
2563   'p',
2564   'i',
2565   'p',
2566   'e',
2567   'B',
2568   'e',
2569   's',
2570   't',
2571   'A',
2572   't',
2573   't',
2574   'r',
2575   'i',
2576   'b',
2577   'S',
2578   'G',
2579   'I',
2580   'X',
2581   0, // glXQueryHyperpipeBestAttribSGIX
2582   'g',
2583   'l',
2584   'X',
2585   'Q',
2586   'u',
2587   'e',
2588   'r',
2589   'y',
2590   'H',
2591   'y',
2592   'p',
2593   'e',
2594   'r',
2595   'p',
2596   'i',
2597   'p',
2598   'e',
2599   'C',
2600   'o',
2601   'n',
2602   'f',
2603   'i',
2604   'g',
2605   'S',
2606   'G',
2607   'I',
2608   'X',
2609   0, // glXQueryHyperpipeConfigSGIX
2610   'g',
2611   'l',
2612   'X',
2613   'Q',
2614   'u',
2615   'e',
2616   'r',
2617   'y',
2618   'H',
2619   'y',
2620   'p',
2621   'e',
2622   'r',
2623   'p',
2624   'i',
2625   'p',
2626   'e',
2627   'N',
2628   'e',
2629   't',
2630   'w',
2631   'o',
2632   'r',
2633   'k',
2634   'S',
2635   'G',
2636   'I',
2637   'X',
2638   0, // glXQueryHyperpipeNetworkSGIX
2639   'g',
2640   'l',
2641   'X',
2642   'Q',
2643   'u',
2644   'e',
2645   'r',
2646   'y',
2647   'M',
2648   'a',
2649   'x',
2650   'S',
2651   'w',
2652   'a',
2653   'p',
2654   'B',
2655   'a',
2656   'r',
2657   'r',
2658   'i',
2659   'e',
2660   'r',
2661   's',
2662   'S',
2663   'G',
2664   'I',
2665   'X',
2666   0, // glXQueryMaxSwapBarriersSGIX
2667   'g',
2668   'l',
2669   'X',
2670   'Q',
2671   'u',
2672   'e',
2673   'r',
2674   'y',
2675   'M',
2676   'a',
2677   'x',
2678   'S',
2679   'w',
2680   'a',
2681   'p',
2682   'G',
2683   'r',
2684   'o',
2685   'u',
2686   'p',
2687   's',
2688   'N',
2689   'V',
2690   0, // glXQueryMaxSwapGroupsNV
2691   'g',
2692   'l',
2693   'X',
2694   'Q',
2695   'u',
2696   'e',
2697   'r',
2698   'y',
2699   'R',
2700   'e',
2701   'n',
2702   'd',
2703   'e',
2704   'r',
2705   'e',
2706   'r',
2707   'I',
2708   'n',
2709   't',
2710   'e',
2711   'g',
2712   'e',
2713   'r',
2714   'M',
2715   'E',
2716   'S',
2717   'A',
2718   0, // glXQueryRendererIntegerMESA
2719   'g',
2720   'l',
2721   'X',
2722   'Q',
2723   'u',
2724   'e',
2725   'r',
2726   'y',
2727   'R',
2728   'e',
2729   'n',
2730   'd',
2731   'e',
2732   'r',
2733   'e',
2734   'r',
2735   'S',
2736   't',
2737   'r',
2738   'i',
2739   'n',
2740   'g',
2741   'M',
2742   'E',
2743   'S',
2744   'A',
2745   0, // glXQueryRendererStringMESA
2746   'g',
2747   'l',
2748   'X',
2749   'Q',
2750   'u',
2751   'e',
2752   'r',
2753   'y',
2754   'S',
2755   'e',
2756   'r',
2757   'v',
2758   'e',
2759   'r',
2760   'S',
2761   't',
2762   'r',
2763   'i',
2764   'n',
2765   'g',
2766   0, // glXQueryServerString
2767   'g',
2768   'l',
2769   'X',
2770   'Q',
2771   'u',
2772   'e',
2773   'r',
2774   'y',
2775   'S',
2776   'w',
2777   'a',
2778   'p',
2779   'G',
2780   'r',
2781   'o',
2782   'u',
2783   'p',
2784   'N',
2785   'V',
2786   0, // glXQuerySwapGroupNV
2787   'g',
2788   'l',
2789   'X',
2790   'Q',
2791   'u',
2792   'e',
2793   'r',
2794   'y',
2795   'V',
2796   'e',
2797   'r',
2798   's',
2799   'i',
2800   'o',
2801   'n',
2802   0, // glXQueryVersion
2803   'g',
2804   'l',
2805   'X',
2806   'Q',
2807   'u',
2808   'e',
2809   'r',
2810   'y',
2811   'V',
2812   'i',
2813   'd',
2814   'e',
2815   'o',
2816   'C',
2817   'a',
2818   'p',
2819   't',
2820   'u',
2821   'r',
2822   'e',
2823   'D',
2824   'e',
2825   'v',
2826   'i',
2827   'c',
2828   'e',
2829   'N',
2830   'V',
2831   0, // glXQueryVideoCaptureDeviceNV
2832   'g',
2833   'l',
2834   'X',
2835   'R',
2836   'e',
2837   'l',
2838   'e',
2839   'a',
2840   's',
2841   'e',
2842   'B',
2843   'u',
2844   'f',
2845   'f',
2846   'e',
2847   'r',
2848   's',
2849   'M',
2850   'E',
2851   'S',
2852   'A',
2853   0, // glXReleaseBuffersMESA
2854   'g',
2855   'l',
2856   'X',
2857   'R',
2858   'e',
2859   'l',
2860   'e',
2861   'a',
2862   's',
2863   'e',
2864   'T',
2865   'e',
2866   'x',
2867   'I',
2868   'm',
2869   'a',
2870   'g',
2871   'e',
2872   'E',
2873   'X',
2874   'T',
2875   0, // glXReleaseTexImageEXT
2876   'g',
2877   'l',
2878   'X',
2879   'R',
2880   'e',
2881   'l',
2882   'e',
2883   'a',
2884   's',
2885   'e',
2886   'V',
2887   'i',
2888   'd',
2889   'e',
2890   'o',
2891   'C',
2892   'a',
2893   'p',
2894   't',
2895   'u',
2896   'r',
2897   'e',
2898   'D',
2899   'e',
2900   'v',
2901   'i',
2902   'c',
2903   'e',
2904   'N',
2905   'V',
2906   0, // glXReleaseVideoCaptureDeviceNV
2907   'g',
2908   'l',
2909   'X',
2910   'R',
2911   'e',
2912   'l',
2913   'e',
2914   'a',
2915   's',
2916   'e',
2917   'V',
2918   'i',
2919   'd',
2920   'e',
2921   'o',
2922   'D',
2923   'e',
2924   'v',
2925   'i',
2926   'c',
2927   'e',
2928   'N',
2929   'V',
2930   0, // glXReleaseVideoDeviceNV
2931   'g',
2932   'l',
2933   'X',
2934   'R',
2935   'e',
2936   'l',
2937   'e',
2938   'a',
2939   's',
2940   'e',
2941   'V',
2942   'i',
2943   'd',
2944   'e',
2945   'o',
2946   'I',
2947   'm',
2948   'a',
2949   'g',
2950   'e',
2951   'N',
2952   'V',
2953   0, // glXReleaseVideoImageNV
2954   'g',
2955   'l',
2956   'X',
2957   'R',
2958   'e',
2959   's',
2960   'e',
2961   't',
2962   'F',
2963   'r',
2964   'a',
2965   'm',
2966   'e',
2967   'C',
2968   'o',
2969   'u',
2970   'n',
2971   't',
2972   'N',
2973   'V',
2974   0, // glXResetFrameCountNV
2975   'g',
2976   'l',
2977   'X',
2978   'S',
2979   'e',
2980   'l',
2981   'e',
2982   'c',
2983   't',
2984   'E',
2985   'v',
2986   'e',
2987   'n',
2988   't',
2989   0, // glXSelectEvent
2990   'g',
2991   'l',
2992   'X',
2993   'S',
2994   'e',
2995   'l',
2996   'e',
2997   'c',
2998   't',
2999   'E',
3000   'v',
3001   'e',
3002   'n',
3003   't',
3004   'S',
3005   'G',
3006   'I',
3007   'X',
3008   0, // glXSelectEventSGIX
3009   'g',
3010   'l',
3011   'X',
3012   'S',
3013   'e',
3014   'n',
3015   'd',
3016   'P',
3017   'b',
3018   'u',
3019   'f',
3020   'f',
3021   'e',
3022   'r',
3023   'T',
3024   'o',
3025   'V',
3026   'i',
3027   'd',
3028   'e',
3029   'o',
3030   'N',
3031   'V',
3032   0, // glXSendPbufferToVideoNV
3033   'g',
3034   'l',
3035   'X',
3036   'S',
3037   'e',
3038   't',
3039   '3',
3040   'D',
3041   'f',
3042   'x',
3043   'M',
3044   'o',
3045   'd',
3046   'e',
3047   'M',
3048   'E',
3049   'S',
3050   'A',
3051   0, // glXSet3DfxModeMESA
3052   'g',
3053   'l',
3054   'X',
3055   'S',
3056   'w',
3057   'a',
3058   'p',
3059   'B',
3060   'u',
3061   'f',
3062   'f',
3063   'e',
3064   'r',
3065   's',
3066   0, // glXSwapBuffers
3067   'g',
3068   'l',
3069   'X',
3070   'S',
3071   'w',
3072   'a',
3073   'p',
3074   'B',
3075   'u',
3076   'f',
3077   'f',
3078   'e',
3079   'r',
3080   's',
3081   'M',
3082   's',
3083   'c',
3084   'O',
3085   'M',
3086   'L',
3087   0, // glXSwapBuffersMscOML
3088   'g',
3089   'l',
3090   'X',
3091   'S',
3092   'w',
3093   'a',
3094   'p',
3095   'I',
3096   'n',
3097   't',
3098   'e',
3099   'r',
3100   'v',
3101   'a',
3102   'l',
3103   'E',
3104   'X',
3105   'T',
3106   0, // glXSwapIntervalEXT
3107   'g',
3108   'l',
3109   'X',
3110   'S',
3111   'w',
3112   'a',
3113   'p',
3114   'I',
3115   'n',
3116   't',
3117   'e',
3118   'r',
3119   'v',
3120   'a',
3121   'l',
3122   'M',
3123   'E',
3124   'S',
3125   'A',
3126   0, // glXSwapIntervalMESA
3127   'g',
3128   'l',
3129   'X',
3130   'S',
3131   'w',
3132   'a',
3133   'p',
3134   'I',
3135   'n',
3136   't',
3137   'e',
3138   'r',
3139   'v',
3140   'a',
3141   'l',
3142   'S',
3143   'G',
3144   'I',
3145   0, // glXSwapIntervalSGI
3146   'g',
3147   'l',
3148   'X',
3149   'U',
3150   's',
3151   'e',
3152   'X',
3153   'F',
3154   'o',
3155   'n',
3156   't',
3157   0, // glXUseXFont
3158   'g',
3159   'l',
3160   'X',
3161   'W',
3162   'a',
3163   'i',
3164   't',
3165   'F',
3166   'o',
3167   'r',
3168   'M',
3169   's',
3170   'c',
3171   'O',
3172   'M',
3173   'L',
3174   0, // glXWaitForMscOML
3175   'g',
3176   'l',
3177   'X',
3178   'W',
3179   'a',
3180   'i',
3181   't',
3182   'F',
3183   'o',
3184   'r',
3185   'S',
3186   'b',
3187   'c',
3188   'O',
3189   'M',
3190   'L',
3191   0, // glXWaitForSbcOML
3192   'g',
3193   'l',
3194   'X',
3195   'W',
3196   'a',
3197   'i',
3198   't',
3199   'G',
3200   'L',
3201   0, // glXWaitGL
3202   'g',
3203   'l',
3204   'X',
3205   'W',
3206   'a',
3207   'i',
3208   't',
3209   'V',
3210   'i',
3211   'd',
3212   'e',
3213   'o',
3214   'S',
3215   'y',
3216   'n',
3217   'c',
3218   'S',
3219   'G',
3220   'I',
3221   0, // glXWaitVideoSyncSGI
3222   'g',
3223   'l',
3224   'X',
3225   'W',
3226   'a',
3227   'i',
3228   't',
3229   'X',
3230   0, // glXWaitX
3231    0 };
3232
3233static void *glx_provider_resolver(const char *name,
3234                                   const enum glx_provider *providers,
3235                                   const uint32_t *entrypoints)
3236{
3237    int i;
3238    for (i = 0; providers[i] != glx_provider_terminator; i++) {
3239        const char *provider_name = enum_string + enum_string_offsets[providers[i]];
3240        switch (providers[i]) {
3241
3242        case PROVIDER_GLX_10:
3243            if (true)
3244                return epoxy_glx_dlsym(entrypoint_strings + entrypoints[i]);
3245            break;
3246        case PROVIDER_GLX_11:
3247            if (true)
3248                return epoxy_glx_dlsym(entrypoint_strings + entrypoints[i]);
3249            break;
3250        case PROVIDER_GLX_12:
3251            if (true)
3252                return epoxy_glx_dlsym(entrypoint_strings + entrypoints[i]);
3253            break;
3254        case PROVIDER_GLX_13:
3255            if (true)
3256                return epoxy_glx_dlsym(entrypoint_strings + entrypoints[i]);
3257            break;
3258        case PROVIDER_GLX_AMD_gpu_association:
3259            if (epoxy_conservative_has_glx_extension(provider_name))
3260                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3261            break;
3262        case PROVIDER_GLX_ARB_create_context:
3263            if (epoxy_conservative_has_glx_extension(provider_name))
3264                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3265            break;
3266        case PROVIDER_GLX_ARB_get_proc_address:
3267            if (epoxy_conservative_has_glx_extension(provider_name))
3268                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3269            break;
3270        case PROVIDER_GLX_EXT_import_context:
3271            if (epoxy_conservative_has_glx_extension(provider_name))
3272                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3273            break;
3274        case PROVIDER_GLX_EXT_swap_control:
3275            if (epoxy_conservative_has_glx_extension(provider_name))
3276                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3277            break;
3278        case PROVIDER_GLX_EXT_texture_from_pixmap:
3279            if (epoxy_conservative_has_glx_extension(provider_name))
3280                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3281            break;
3282        case PROVIDER_GLX_MESA_agp_offset:
3283            if (epoxy_conservative_has_glx_extension(provider_name))
3284                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3285            break;
3286        case PROVIDER_GLX_MESA_copy_sub_buffer:
3287            if (epoxy_conservative_has_glx_extension(provider_name))
3288                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3289            break;
3290        case PROVIDER_GLX_MESA_pixmap_colormap:
3291            if (epoxy_conservative_has_glx_extension(provider_name))
3292                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3293            break;
3294        case PROVIDER_GLX_MESA_query_renderer:
3295            if (epoxy_conservative_has_glx_extension(provider_name))
3296                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3297            break;
3298        case PROVIDER_GLX_MESA_release_buffers:
3299            if (epoxy_conservative_has_glx_extension(provider_name))
3300                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3301            break;
3302        case PROVIDER_GLX_MESA_set_3dfx_mode:
3303            if (epoxy_conservative_has_glx_extension(provider_name))
3304                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3305            break;
3306        case PROVIDER_GLX_MESA_swap_control:
3307            if (epoxy_conservative_has_glx_extension(provider_name))
3308                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3309            break;
3310        case PROVIDER_GLX_NV_copy_buffer:
3311            if (epoxy_conservative_has_glx_extension(provider_name))
3312                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3313            break;
3314        case PROVIDER_GLX_NV_copy_image:
3315            if (epoxy_conservative_has_glx_extension(provider_name))
3316                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3317            break;
3318        case PROVIDER_GLX_NV_delay_before_swap:
3319            if (epoxy_conservative_has_glx_extension(provider_name))
3320                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3321            break;
3322        case PROVIDER_GLX_NV_present_video:
3323            if (epoxy_conservative_has_glx_extension(provider_name))
3324                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3325            break;
3326        case PROVIDER_GLX_NV_swap_group:
3327            if (epoxy_conservative_has_glx_extension(provider_name))
3328                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3329            break;
3330        case PROVIDER_GLX_NV_video_capture:
3331            if (epoxy_conservative_has_glx_extension(provider_name))
3332                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3333            break;
3334        case PROVIDER_GLX_NV_video_out:
3335            if (epoxy_conservative_has_glx_extension(provider_name))
3336                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3337            break;
3338        case PROVIDER_GLX_OML_sync_control:
3339            if (epoxy_conservative_has_glx_extension(provider_name))
3340                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3341            break;
3342        case PROVIDER_GLX_SGIX_fbconfig:
3343            if (epoxy_conservative_has_glx_extension(provider_name))
3344                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3345            break;
3346        case PROVIDER_GLX_SGIX_hyperpipe:
3347            if (epoxy_conservative_has_glx_extension(provider_name))
3348                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3349            break;
3350        case PROVIDER_GLX_SGIX_pbuffer:
3351            if (epoxy_conservative_has_glx_extension(provider_name))
3352                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3353            break;
3354        case PROVIDER_GLX_SGIX_swap_barrier:
3355            if (epoxy_conservative_has_glx_extension(provider_name))
3356                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3357            break;
3358        case PROVIDER_GLX_SGIX_swap_group:
3359            if (epoxy_conservative_has_glx_extension(provider_name))
3360                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3361            break;
3362        case PROVIDER_GLX_SGIX_video_resize:
3363            if (epoxy_conservative_has_glx_extension(provider_name))
3364                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3365            break;
3366        case PROVIDER_GLX_SGIX_video_source:
3367            if (epoxy_conservative_has_glx_extension(provider_name))
3368                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3369            break;
3370        case PROVIDER_GLX_SGI_cushion:
3371            if (epoxy_conservative_has_glx_extension(provider_name))
3372                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3373            break;
3374        case PROVIDER_GLX_SGI_make_current_read:
3375            if (epoxy_conservative_has_glx_extension(provider_name))
3376                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3377            break;
3378        case PROVIDER_GLX_SGI_swap_control:
3379            if (epoxy_conservative_has_glx_extension(provider_name))
3380                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3381            break;
3382        case PROVIDER_GLX_SGI_video_sync:
3383            if (epoxy_conservative_has_glx_extension(provider_name))
3384                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3385            break;
3386        case PROVIDER_GLX_SUN_get_transparent_index:
3387            if (epoxy_conservative_has_glx_extension(provider_name))
3388                return glXGetProcAddress((const GLubyte *)entrypoint_strings + entrypoints[i]);
3389            break;
3390        case PROVIDER_always_present:
3391            if (true)
3392                return epoxy_glx_dlsym(entrypoint_strings + entrypoints[i]);
3393            break;
3394        case glx_provider_terminator:
3395            abort(); /* Not reached */
3396        }
3397    }
3398
3399    if (epoxy_resolver_failure_handler)
3400        return epoxy_resolver_failure_handler(name);
3401
3402    fprintf(stderr, "No provider of %s found.  Requires one of:\n", name);
3403    for (i = 0; providers[i] != glx_provider_terminator; i++) {
3404        fprintf(stderr, "    %s\n", enum_string + enum_string_offsets[providers[i]]);
3405    }
3406    if (providers[0] == glx_provider_terminator) {
3407        fprintf(stderr, "    No known providers.  This is likely a bug "
3408                        "in libepoxy code generation\n");
3409    }
3410    abort();
3411}
3412
3413EPOXY_NOINLINE static void *
3414glx_single_resolver(enum glx_provider provider, uint32_t entrypoint_offset);
3415
3416static void *
3417glx_single_resolver(enum glx_provider provider, uint32_t entrypoint_offset)
3418{
3419    enum glx_provider providers[] = {
3420        provider,
3421        glx_provider_terminator
3422    };
3423    return glx_provider_resolver(entrypoint_strings + entrypoint_offset,
3424                                providers, &entrypoint_offset);
3425}
3426
3427static PFNGLXBINDCHANNELTOWINDOWSGIXPROC
3428epoxy_glXBindChannelToWindowSGIX_resolver(void)
3429{
3430    return glx_single_resolver(PROVIDER_GLX_SGIX_video_resize, 0 /* glXBindChannelToWindowSGIX */);
3431}
3432
3433static PFNGLXBINDHYPERPIPESGIXPROC
3434epoxy_glXBindHyperpipeSGIX_resolver(void)
3435{
3436    return glx_single_resolver(PROVIDER_GLX_SGIX_hyperpipe, 27 /* glXBindHyperpipeSGIX */);
3437}
3438
3439static PFNGLXBINDSWAPBARRIERNVPROC
3440epoxy_glXBindSwapBarrierNV_resolver(void)
3441{
3442    return glx_single_resolver(PROVIDER_GLX_NV_swap_group, 48 /* glXBindSwapBarrierNV */);
3443}
3444
3445static PFNGLXBINDSWAPBARRIERSGIXPROC
3446epoxy_glXBindSwapBarrierSGIX_resolver(void)
3447{
3448    return glx_single_resolver(PROVIDER_GLX_SGIX_swap_barrier, 69 /* glXBindSwapBarrierSGIX */);
3449}
3450
3451static PFNGLXBINDTEXIMAGEEXTPROC
3452epoxy_glXBindTexImageEXT_resolver(void)
3453{
3454    return glx_single_resolver(PROVIDER_GLX_EXT_texture_from_pixmap, 92 /* glXBindTexImageEXT */);
3455}
3456
3457static PFNGLXBINDVIDEOCAPTUREDEVICENVPROC
3458epoxy_glXBindVideoCaptureDeviceNV_resolver(void)
3459{
3460    return glx_single_resolver(PROVIDER_GLX_NV_video_capture, 111 /* glXBindVideoCaptureDeviceNV */);
3461}
3462
3463static PFNGLXBINDVIDEODEVICENVPROC
3464epoxy_glXBindVideoDeviceNV_resolver(void)
3465{
3466    return glx_single_resolver(PROVIDER_GLX_NV_present_video, 139 /* glXBindVideoDeviceNV */);
3467}
3468
3469static PFNGLXBINDVIDEOIMAGENVPROC
3470epoxy_glXBindVideoImageNV_resolver(void)
3471{
3472    return glx_single_resolver(PROVIDER_GLX_NV_video_out, 160 /* glXBindVideoImageNV */);
3473}
3474
3475static PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC
3476epoxy_glXBlitContextFramebufferAMD_resolver(void)
3477{
3478    return glx_single_resolver(PROVIDER_GLX_AMD_gpu_association, 180 /* glXBlitContextFramebufferAMD */);
3479}
3480
3481static PFNGLXCHANNELRECTSGIXPROC
3482epoxy_glXChannelRectSGIX_resolver(void)
3483{
3484    return glx_single_resolver(PROVIDER_GLX_SGIX_video_resize, 209 /* glXChannelRectSGIX */);
3485}
3486
3487static PFNGLXCHANNELRECTSYNCSGIXPROC
3488epoxy_glXChannelRectSyncSGIX_resolver(void)
3489{
3490    return glx_single_resolver(PROVIDER_GLX_SGIX_video_resize, 228 /* glXChannelRectSyncSGIX */);
3491}
3492
3493static PFNGLXCHOOSEFBCONFIGPROC
3494epoxy_glXChooseFBConfig_resolver(void)
3495{
3496    return glx_single_resolver(PROVIDER_GLX_13, 251 /* glXChooseFBConfig */);
3497}
3498
3499static PFNGLXCHOOSEFBCONFIGSGIXPROC
3500epoxy_glXChooseFBConfigSGIX_resolver(void)
3501{
3502    return glx_single_resolver(PROVIDER_GLX_SGIX_fbconfig, 269 /* glXChooseFBConfigSGIX */);
3503}
3504
3505static PFNGLXCHOOSEVISUALPROC
3506epoxy_glXChooseVisual_resolver(void)
3507{
3508    return glx_single_resolver(PROVIDER_GLX_10, 291 /* glXChooseVisual */);
3509}
3510
3511static PFNGLXCOPYBUFFERSUBDATANVPROC
3512epoxy_glXCopyBufferSubDataNV_resolver(void)
3513{
3514    return glx_single_resolver(PROVIDER_GLX_NV_copy_buffer, 307 /* glXCopyBufferSubDataNV */);
3515}
3516
3517static PFNGLXCOPYCONTEXTPROC
3518epoxy_glXCopyContext_resolver(void)
3519{
3520    return glx_single_resolver(PROVIDER_GLX_10, 330 /* glXCopyContext */);
3521}
3522
3523static PFNGLXCOPYIMAGESUBDATANVPROC
3524epoxy_glXCopyImageSubDataNV_resolver(void)
3525{
3526    return glx_single_resolver(PROVIDER_GLX_NV_copy_image, 345 /* glXCopyImageSubDataNV */);
3527}
3528
3529static PFNGLXCOPYSUBBUFFERMESAPROC
3530epoxy_glXCopySubBufferMESA_resolver(void)
3531{
3532    return glx_single_resolver(PROVIDER_GLX_MESA_copy_sub_buffer, 367 /* glXCopySubBufferMESA */);
3533}
3534
3535static PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC
3536epoxy_glXCreateAssociatedContextAMD_resolver(void)
3537{
3538    return glx_single_resolver(PROVIDER_GLX_AMD_gpu_association, 388 /* glXCreateAssociatedContextAMD */);
3539}
3540
3541static PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC
3542epoxy_glXCreateAssociatedContextAttribsAMD_resolver(void)
3543{
3544    return glx_single_resolver(PROVIDER_GLX_AMD_gpu_association, 418 /* glXCreateAssociatedContextAttribsAMD */);
3545}
3546
3547static PFNGLXCREATECONTEXTPROC
3548epoxy_glXCreateContext_resolver(void)
3549{
3550    return glx_single_resolver(PROVIDER_GLX_10, 455 /* glXCreateContext */);
3551}
3552
3553static PFNGLXCREATECONTEXTATTRIBSARBPROC
3554epoxy_glXCreateContextAttribsARB_resolver(void)
3555{
3556    return glx_single_resolver(PROVIDER_GLX_ARB_create_context, 472 /* glXCreateContextAttribsARB */);
3557}
3558
3559static PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC
3560epoxy_glXCreateContextWithConfigSGIX_resolver(void)
3561{
3562    return glx_single_resolver(PROVIDER_GLX_SGIX_fbconfig, 499 /* glXCreateContextWithConfigSGIX */);
3563}
3564
3565static PFNGLXCREATEGLXPBUFFERSGIXPROC
3566epoxy_glXCreateGLXPbufferSGIX_resolver(void)
3567{
3568    return glx_single_resolver(PROVIDER_GLX_SGIX_pbuffer, 530 /* glXCreateGLXPbufferSGIX */);
3569}
3570
3571static PFNGLXCREATEGLXPIXMAPPROC
3572epoxy_glXCreateGLXPixmap_resolver(void)
3573{
3574    return glx_single_resolver(PROVIDER_GLX_10, 554 /* glXCreateGLXPixmap */);
3575}
3576
3577static PFNGLXCREATEGLXPIXMAPMESAPROC
3578epoxy_glXCreateGLXPixmapMESA_resolver(void)
3579{
3580    return glx_single_resolver(PROVIDER_GLX_MESA_pixmap_colormap, 573 /* glXCreateGLXPixmapMESA */);
3581}
3582
3583static PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC
3584epoxy_glXCreateGLXPixmapWithConfigSGIX_resolver(void)
3585{
3586    return glx_single_resolver(PROVIDER_GLX_SGIX_fbconfig, 596 /* glXCreateGLXPixmapWithConfigSGIX */);
3587}
3588
3589static PFNGLXCREATENEWCONTEXTPROC
3590epoxy_glXCreateNewContext_resolver(void)
3591{
3592    return glx_single_resolver(PROVIDER_GLX_13, 629 /* glXCreateNewContext */);
3593}
3594
3595static PFNGLXCREATEPBUFFERPROC
3596epoxy_glXCreatePbuffer_resolver(void)
3597{
3598    return glx_single_resolver(PROVIDER_GLX_13, 649 /* glXCreatePbuffer */);
3599}
3600
3601static PFNGLXCREATEPIXMAPPROC
3602epoxy_glXCreatePixmap_resolver(void)
3603{
3604    return glx_single_resolver(PROVIDER_GLX_13, 666 /* glXCreatePixmap */);
3605}
3606
3607static PFNGLXCREATEWINDOWPROC
3608epoxy_glXCreateWindow_resolver(void)
3609{
3610    return glx_single_resolver(PROVIDER_GLX_13, 682 /* glXCreateWindow */);
3611}
3612
3613static PFNGLXCUSHIONSGIPROC
3614epoxy_glXCushionSGI_resolver(void)
3615{
3616    return glx_single_resolver(PROVIDER_GLX_SGI_cushion, 698 /* glXCushionSGI */);
3617}
3618
3619static PFNGLXDELAYBEFORESWAPNVPROC
3620epoxy_glXDelayBeforeSwapNV_resolver(void)
3621{
3622    return glx_single_resolver(PROVIDER_GLX_NV_delay_before_swap, 712 /* glXDelayBeforeSwapNV */);
3623}
3624
3625static PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC
3626epoxy_glXDeleteAssociatedContextAMD_resolver(void)
3627{
3628    return glx_single_resolver(PROVIDER_GLX_AMD_gpu_association, 733 /* glXDeleteAssociatedContextAMD */);
3629}
3630
3631static PFNGLXDESTROYCONTEXTPROC
3632epoxy_glXDestroyContext_resolver(void)
3633{
3634    return glx_single_resolver(PROVIDER_GLX_10, 763 /* glXDestroyContext */);
3635}
3636
3637static PFNGLXDESTROYGLXPBUFFERSGIXPROC
3638epoxy_glXDestroyGLXPbufferSGIX_resolver(void)
3639{
3640    return glx_single_resolver(PROVIDER_GLX_SGIX_pbuffer, 781 /* glXDestroyGLXPbufferSGIX */);
3641}
3642
3643static PFNGLXDESTROYGLXPIXMAPPROC
3644epoxy_glXDestroyGLXPixmap_resolver(void)
3645{
3646    return glx_single_resolver(PROVIDER_GLX_10, 806 /* glXDestroyGLXPixmap */);
3647}
3648
3649static PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC
3650epoxy_glXDestroyGLXVideoSourceSGIX_resolver(void)
3651{
3652    return glx_single_resolver(PROVIDER_GLX_SGIX_video_source, 826 /* glXDestroyGLXVideoSourceSGIX */);
3653}
3654
3655static PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC
3656epoxy_glXDestroyHyperpipeConfigSGIX_resolver(void)
3657{
3658    return glx_single_resolver(PROVIDER_GLX_SGIX_hyperpipe, 855 /* glXDestroyHyperpipeConfigSGIX */);
3659}
3660
3661static PFNGLXDESTROYPBUFFERPROC
3662epoxy_glXDestroyPbuffer_resolver(void)
3663{
3664    return glx_single_resolver(PROVIDER_GLX_13, 885 /* glXDestroyPbuffer */);
3665}
3666
3667static PFNGLXDESTROYPIXMAPPROC
3668epoxy_glXDestroyPixmap_resolver(void)
3669{
3670    return glx_single_resolver(PROVIDER_GLX_13, 903 /* glXDestroyPixmap */);
3671}
3672
3673static PFNGLXDESTROYWINDOWPROC
3674epoxy_glXDestroyWindow_resolver(void)
3675{
3676    return glx_single_resolver(PROVIDER_GLX_13, 920 /* glXDestroyWindow */);
3677}
3678
3679static PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC
3680epoxy_glXEnumerateVideoCaptureDevicesNV_resolver(void)
3681{
3682    return glx_single_resolver(PROVIDER_GLX_NV_video_capture, 937 /* glXEnumerateVideoCaptureDevicesNV */);
3683}
3684
3685static PFNGLXENUMERATEVIDEODEVICESNVPROC
3686epoxy_glXEnumerateVideoDevicesNV_resolver(void)
3687{
3688    return glx_single_resolver(PROVIDER_GLX_NV_present_video, 971 /* glXEnumerateVideoDevicesNV */);
3689}
3690
3691static PFNGLXFREECONTEXTEXTPROC
3692epoxy_glXFreeContextEXT_resolver(void)
3693{
3694    return glx_single_resolver(PROVIDER_GLX_EXT_import_context, 998 /* glXFreeContextEXT */);
3695}
3696
3697static PFNGLXGETAGPOFFSETMESAPROC
3698epoxy_glXGetAGPOffsetMESA_resolver(void)
3699{
3700    return glx_single_resolver(PROVIDER_GLX_MESA_agp_offset, 1016 /* glXGetAGPOffsetMESA */);
3701}
3702
3703static PFNGLXGETCLIENTSTRINGPROC
3704epoxy_glXGetClientString_resolver(void)
3705{
3706    return glx_single_resolver(PROVIDER_GLX_11, 1036 /* glXGetClientString */);
3707}
3708
3709static PFNGLXGETCONFIGPROC
3710epoxy_glXGetConfig_resolver(void)
3711{
3712    return glx_single_resolver(PROVIDER_GLX_10, 1055 /* glXGetConfig */);
3713}
3714
3715static PFNGLXGETCONTEXTGPUIDAMDPROC
3716epoxy_glXGetContextGPUIDAMD_resolver(void)
3717{
3718    return glx_single_resolver(PROVIDER_GLX_AMD_gpu_association, 1068 /* glXGetContextGPUIDAMD */);
3719}
3720
3721static PFNGLXGETCONTEXTIDEXTPROC
3722epoxy_glXGetContextIDEXT_resolver(void)
3723{
3724    return glx_single_resolver(PROVIDER_GLX_EXT_import_context, 1090 /* glXGetContextIDEXT */);
3725}
3726
3727static PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC
3728epoxy_glXGetCurrentAssociatedContextAMD_resolver(void)
3729{
3730    return glx_single_resolver(PROVIDER_GLX_AMD_gpu_association, 1109 /* glXGetCurrentAssociatedContextAMD */);
3731}
3732
3733static PFNGLXGETCURRENTCONTEXTPROC
3734epoxy_glXGetCurrentContext_resolver(void)
3735{
3736    return glx_single_resolver(PROVIDER_GLX_10, 1143 /* glXGetCurrentContext */);
3737}
3738
3739static PFNGLXGETCURRENTDISPLAYPROC
3740epoxy_glXGetCurrentDisplay_resolver(void)
3741{
3742    return glx_single_resolver(PROVIDER_GLX_12, 1164 /* glXGetCurrentDisplay */);
3743}
3744
3745static PFNGLXGETCURRENTDISPLAYEXTPROC
3746epoxy_glXGetCurrentDisplayEXT_resolver(void)
3747{
3748    return glx_single_resolver(PROVIDER_GLX_EXT_import_context, 1185 /* glXGetCurrentDisplayEXT */);
3749}
3750
3751static PFNGLXGETCURRENTDRAWABLEPROC
3752epoxy_glXGetCurrentDrawable_resolver(void)
3753{
3754    return glx_single_resolver(PROVIDER_GLX_10, 1209 /* glXGetCurrentDrawable */);
3755}
3756
3757static PFNGLXGETCURRENTREADDRAWABLEPROC
3758epoxy_glXGetCurrentReadDrawable_resolver(void)
3759{
3760    return glx_single_resolver(PROVIDER_GLX_13, 1231 /* glXGetCurrentReadDrawable */);
3761}
3762
3763static PFNGLXGETCURRENTREADDRAWABLESGIPROC
3764epoxy_glXGetCurrentReadDrawableSGI_resolver(void)
3765{
3766    return glx_single_resolver(PROVIDER_GLX_SGI_make_current_read, 1257 /* glXGetCurrentReadDrawableSGI */);
3767}
3768
3769static PFNGLXGETFBCONFIGATTRIBPROC
3770epoxy_glXGetFBConfigAttrib_resolver(void)
3771{
3772    return glx_single_resolver(PROVIDER_GLX_13, 1286 /* glXGetFBConfigAttrib */);
3773}
3774
3775static PFNGLXGETFBCONFIGATTRIBSGIXPROC
3776epoxy_glXGetFBConfigAttribSGIX_resolver(void)
3777{
3778    return glx_single_resolver(PROVIDER_GLX_SGIX_fbconfig, 1307 /* glXGetFBConfigAttribSGIX */);
3779}
3780
3781static PFNGLXGETFBCONFIGFROMVISUALSGIXPROC
3782epoxy_glXGetFBConfigFromVisualSGIX_resolver(void)
3783{
3784    return glx_single_resolver(PROVIDER_GLX_SGIX_fbconfig, 1332 /* glXGetFBConfigFromVisualSGIX */);
3785}
3786
3787static PFNGLXGETFBCONFIGSPROC
3788epoxy_glXGetFBConfigs_resolver(void)
3789{
3790    return glx_single_resolver(PROVIDER_GLX_13, 1361 /* glXGetFBConfigs */);
3791}
3792
3793static PFNGLXGETGPUIDSAMDPROC
3794epoxy_glXGetGPUIDsAMD_resolver(void)
3795{
3796    return glx_single_resolver(PROVIDER_GLX_AMD_gpu_association, 1377 /* glXGetGPUIDsAMD */);
3797}
3798
3799static PFNGLXGETGPUINFOAMDPROC
3800epoxy_glXGetGPUInfoAMD_resolver(void)
3801{
3802    return glx_single_resolver(PROVIDER_GLX_AMD_gpu_association, 1393 /* glXGetGPUInfoAMD */);
3803}
3804
3805static PFNGLXGETMSCRATEOMLPROC
3806epoxy_glXGetMscRateOML_resolver(void)
3807{
3808    return glx_single_resolver(PROVIDER_GLX_OML_sync_control, 1410 /* glXGetMscRateOML */);
3809}
3810
3811static PFNGLXGETPROCADDRESSPROC
3812epoxy_glXGetProcAddress_resolver(void)
3813{
3814    return glx_single_resolver(PROVIDER_always_present, 1427 /* glXGetProcAddress */);
3815}
3816
3817static PFNGLXGETPROCADDRESSARBPROC
3818epoxy_glXGetProcAddressARB_resolver(void)
3819{
3820    return glx_single_resolver(PROVIDER_GLX_ARB_get_proc_address, 1445 /* glXGetProcAddressARB */);
3821}
3822
3823static PFNGLXGETSELECTEDEVENTPROC
3824epoxy_glXGetSelectedEvent_resolver(void)
3825{
3826    return glx_single_resolver(PROVIDER_GLX_13, 1466 /* glXGetSelectedEvent */);
3827}
3828
3829static PFNGLXGETSELECTEDEVENTSGIXPROC
3830epoxy_glXGetSelectedEventSGIX_resolver(void)
3831{
3832    return glx_single_resolver(PROVIDER_GLX_SGIX_pbuffer, 1486 /* glXGetSelectedEventSGIX */);
3833}
3834
3835static PFNGLXGETSWAPINTERVALMESAPROC
3836epoxy_glXGetSwapIntervalMESA_resolver(void)
3837{
3838    return glx_single_resolver(PROVIDER_GLX_MESA_swap_control, 1510 /* glXGetSwapIntervalMESA */);
3839}
3840
3841static PFNGLXGETSYNCVALUESOMLPROC
3842epoxy_glXGetSyncValuesOML_resolver(void)
3843{
3844    return glx_single_resolver(PROVIDER_GLX_OML_sync_control, 1533 /* glXGetSyncValuesOML */);
3845}
3846
3847static PFNGLXGETTRANSPARENTINDEXSUNPROC
3848epoxy_glXGetTransparentIndexSUN_resolver(void)
3849{
3850    return glx_single_resolver(PROVIDER_GLX_SUN_get_transparent_index, 1553 /* glXGetTransparentIndexSUN */);
3851}
3852
3853static PFNGLXGETVIDEODEVICENVPROC
3854epoxy_glXGetVideoDeviceNV_resolver(void)
3855{
3856    return glx_single_resolver(PROVIDER_GLX_NV_video_out, 1579 /* glXGetVideoDeviceNV */);
3857}
3858
3859static PFNGLXGETVIDEOINFONVPROC
3860epoxy_glXGetVideoInfoNV_resolver(void)
3861{
3862    return glx_single_resolver(PROVIDER_GLX_NV_video_out, 1599 /* glXGetVideoInfoNV */);
3863}
3864
3865static PFNGLXGETVIDEOSYNCSGIPROC
3866epoxy_glXGetVideoSyncSGI_resolver(void)
3867{
3868    return glx_single_resolver(PROVIDER_GLX_SGI_video_sync, 1617 /* glXGetVideoSyncSGI */);
3869}
3870
3871static PFNGLXGETVISUALFROMFBCONFIGPROC
3872epoxy_glXGetVisualFromFBConfig_resolver(void)
3873{
3874    return glx_single_resolver(PROVIDER_GLX_13, 1636 /* glXGetVisualFromFBConfig */);
3875}
3876
3877static PFNGLXGETVISUALFROMFBCONFIGSGIXPROC
3878epoxy_glXGetVisualFromFBConfigSGIX_resolver(void)
3879{
3880    return glx_single_resolver(PROVIDER_GLX_SGIX_fbconfig, 1661 /* glXGetVisualFromFBConfigSGIX */);
3881}
3882
3883static PFNGLXHYPERPIPEATTRIBSGIXPROC
3884epoxy_glXHyperpipeAttribSGIX_resolver(void)
3885{
3886    return glx_single_resolver(PROVIDER_GLX_SGIX_hyperpipe, 1690 /* glXHyperpipeAttribSGIX */);
3887}
3888
3889static PFNGLXHYPERPIPECONFIGSGIXPROC
3890epoxy_glXHyperpipeConfigSGIX_resolver(void)
3891{
3892    return glx_single_resolver(PROVIDER_GLX_SGIX_hyperpipe, 1713 /* glXHyperpipeConfigSGIX */);
3893}
3894
3895static PFNGLXIMPORTCONTEXTEXTPROC
3896epoxy_glXImportContextEXT_resolver(void)
3897{
3898    return glx_single_resolver(PROVIDER_GLX_EXT_import_context, 1736 /* glXImportContextEXT */);
3899}
3900
3901static PFNGLXISDIRECTPROC
3902epoxy_glXIsDirect_resolver(void)
3903{
3904    return glx_single_resolver(PROVIDER_GLX_10, 1756 /* glXIsDirect */);
3905}
3906
3907static PFNGLXJOINSWAPGROUPNVPROC
3908epoxy_glXJoinSwapGroupNV_resolver(void)
3909{
3910    return glx_single_resolver(PROVIDER_GLX_NV_swap_group, 1768 /* glXJoinSwapGroupNV */);
3911}
3912
3913static PFNGLXJOINSWAPGROUPSGIXPROC
3914epoxy_glXJoinSwapGroupSGIX_resolver(void)
3915{
3916    return glx_single_resolver(PROVIDER_GLX_SGIX_swap_group, 1787 /* glXJoinSwapGroupSGIX */);
3917}
3918
3919static PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC
3920epoxy_glXLockVideoCaptureDeviceNV_resolver(void)
3921{
3922    return glx_single_resolver(PROVIDER_GLX_NV_video_capture, 1808 /* glXLockVideoCaptureDeviceNV */);
3923}
3924
3925static PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC
3926epoxy_glXMakeAssociatedContextCurrentAMD_resolver(void)
3927{
3928    return glx_single_resolver(PROVIDER_GLX_AMD_gpu_association, 1836 /* glXMakeAssociatedContextCurrentAMD */);
3929}
3930
3931static PFNGLXMAKECONTEXTCURRENTPROC
3932epoxy_glXMakeContextCurrent_resolver(void)
3933{
3934    return glx_single_resolver(PROVIDER_GLX_13, 1871 /* glXMakeContextCurrent */);
3935}
3936
3937static PFNGLXMAKECURRENTPROC
3938epoxy_glXMakeCurrent_resolver(void)
3939{
3940    return glx_single_resolver(PROVIDER_GLX_10, 1893 /* glXMakeCurrent */);
3941}
3942
3943static PFNGLXMAKECURRENTREADSGIPROC
3944epoxy_glXMakeCurrentReadSGI_resolver(void)
3945{
3946    return glx_single_resolver(PROVIDER_GLX_SGI_make_current_read, 1908 /* glXMakeCurrentReadSGI */);
3947}
3948
3949static PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC
3950epoxy_glXNamedCopyBufferSubDataNV_resolver(void)
3951{
3952    return glx_single_resolver(PROVIDER_GLX_NV_copy_buffer, 1930 /* glXNamedCopyBufferSubDataNV */);
3953}
3954
3955static PFNGLXQUERYCHANNELDELTASSGIXPROC
3956epoxy_glXQueryChannelDeltasSGIX_resolver(void)
3957{
3958    return glx_single_resolver(PROVIDER_GLX_SGIX_video_resize, 1958 /* glXQueryChannelDeltasSGIX */);
3959}
3960
3961static PFNGLXQUERYCHANNELRECTSGIXPROC
3962epoxy_glXQueryChannelRectSGIX_resolver(void)
3963{
3964    return glx_single_resolver(PROVIDER_GLX_SGIX_video_resize, 1984 /* glXQueryChannelRectSGIX */);
3965}
3966
3967static PFNGLXQUERYCONTEXTPROC
3968epoxy_glXQueryContext_resolver(void)
3969{
3970    return glx_single_resolver(PROVIDER_GLX_13, 2008 /* glXQueryContext */);
3971}
3972
3973static PFNGLXQUERYCONTEXTINFOEXTPROC
3974epoxy_glXQueryContextInfoEXT_resolver(void)
3975{
3976    return glx_single_resolver(PROVIDER_GLX_EXT_import_context, 2024 /* glXQueryContextInfoEXT */);
3977}
3978
3979static PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC
3980epoxy_glXQueryCurrentRendererIntegerMESA_resolver(void)
3981{
3982    return glx_single_resolver(PROVIDER_GLX_MESA_query_renderer, 2047 /* glXQueryCurrentRendererIntegerMESA */);
3983}
3984
3985static PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC
3986epoxy_glXQueryCurrentRendererStringMESA_resolver(void)
3987{
3988    return glx_single_resolver(PROVIDER_GLX_MESA_query_renderer, 2082 /* glXQueryCurrentRendererStringMESA */);
3989}
3990
3991static PFNGLXQUERYDRAWABLEPROC
3992epoxy_glXQueryDrawable_resolver(void)
3993{
3994    return glx_single_resolver(PROVIDER_GLX_13, 2116 /* glXQueryDrawable */);
3995}
3996
3997static PFNGLXQUERYEXTENSIONPROC
3998epoxy_glXQueryExtension_resolver(void)
3999{
4000    return glx_single_resolver(PROVIDER_GLX_10, 2133 /* glXQueryExtension */);
4001}
4002
4003static PFNGLXQUERYEXTENSIONSSTRINGPROC
4004epoxy_glXQueryExtensionsString_resolver(void)
4005{
4006    return glx_single_resolver(PROVIDER_GLX_11, 2151 /* glXQueryExtensionsString */);
4007}
4008
4009static PFNGLXQUERYFRAMECOUNTNVPROC
4010epoxy_glXQueryFrameCountNV_resolver(void)
4011{
4012    return glx_single_resolver(PROVIDER_GLX_NV_swap_group, 2176 /* glXQueryFrameCountNV */);
4013}
4014
4015static PFNGLXQUERYGLXPBUFFERSGIXPROC
4016epoxy_glXQueryGLXPbufferSGIX_resolver(void)
4017{
4018    return glx_single_resolver(PROVIDER_GLX_SGIX_pbuffer, 2197 /* glXQueryGLXPbufferSGIX */);
4019}
4020
4021static PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC
4022epoxy_glXQueryHyperpipeAttribSGIX_resolver(void)
4023{
4024    return glx_single_resolver(PROVIDER_GLX_SGIX_hyperpipe, 2220 /* glXQueryHyperpipeAttribSGIX */);
4025}
4026
4027static PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC
4028epoxy_glXQueryHyperpipeBestAttribSGIX_resolver(void)
4029{
4030    return glx_single_resolver(PROVIDER_GLX_SGIX_hyperpipe, 2248 /* glXQueryHyperpipeBestAttribSGIX */);
4031}
4032
4033static PFNGLXQUERYHYPERPIPECONFIGSGIXPROC
4034epoxy_glXQueryHyperpipeConfigSGIX_resolver(void)
4035{
4036    return glx_single_resolver(PROVIDER_GLX_SGIX_hyperpipe, 2280 /* glXQueryHyperpipeConfigSGIX */);
4037}
4038
4039static PFNGLXQUERYHYPERPIPENETWORKSGIXPROC
4040epoxy_glXQueryHyperpipeNetworkSGIX_resolver(void)
4041{
4042    return glx_single_resolver(PROVIDER_GLX_SGIX_hyperpipe, 2308 /* glXQueryHyperpipeNetworkSGIX */);
4043}
4044
4045static PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC
4046epoxy_glXQueryMaxSwapBarriersSGIX_resolver(void)
4047{
4048    return glx_single_resolver(PROVIDER_GLX_SGIX_swap_barrier, 2337 /* glXQueryMaxSwapBarriersSGIX */);
4049}
4050
4051static PFNGLXQUERYMAXSWAPGROUPSNVPROC
4052epoxy_glXQueryMaxSwapGroupsNV_resolver(void)
4053{
4054    return glx_single_resolver(PROVIDER_GLX_NV_swap_group, 2365 /* glXQueryMaxSwapGroupsNV */);
4055}
4056
4057static PFNGLXQUERYRENDERERINTEGERMESAPROC
4058epoxy_glXQueryRendererIntegerMESA_resolver(void)
4059{
4060    return glx_single_resolver(PROVIDER_GLX_MESA_query_renderer, 2389 /* glXQueryRendererIntegerMESA */);
4061}
4062
4063static PFNGLXQUERYRENDERERSTRINGMESAPROC
4064epoxy_glXQueryRendererStringMESA_resolver(void)
4065{
4066    return glx_single_resolver(PROVIDER_GLX_MESA_query_renderer, 2417 /* glXQueryRendererStringMESA */);
4067}
4068
4069static PFNGLXQUERYSERVERSTRINGPROC
4070epoxy_glXQueryServerString_resolver(void)
4071{
4072    return glx_single_resolver(PROVIDER_GLX_11, 2444 /* glXQueryServerString */);
4073}
4074
4075static PFNGLXQUERYSWAPGROUPNVPROC
4076epoxy_glXQuerySwapGroupNV_resolver(void)
4077{
4078    return glx_single_resolver(PROVIDER_GLX_NV_swap_group, 2465 /* glXQuerySwapGroupNV */);
4079}
4080
4081static PFNGLXQUERYVERSIONPROC
4082epoxy_glXQueryVersion_resolver(void)
4083{
4084    return glx_single_resolver(PROVIDER_GLX_10, 2485 /* glXQueryVersion */);
4085}
4086
4087static PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC
4088epoxy_glXQueryVideoCaptureDeviceNV_resolver(void)
4089{
4090    return glx_single_resolver(PROVIDER_GLX_NV_video_capture, 2501 /* glXQueryVideoCaptureDeviceNV */);
4091}
4092
4093static PFNGLXRELEASEBUFFERSMESAPROC
4094epoxy_glXReleaseBuffersMESA_resolver(void)
4095{
4096    return glx_single_resolver(PROVIDER_GLX_MESA_release_buffers, 2530 /* glXReleaseBuffersMESA */);
4097}
4098
4099static PFNGLXRELEASETEXIMAGEEXTPROC
4100epoxy_glXReleaseTexImageEXT_resolver(void)
4101{
4102    return glx_single_resolver(PROVIDER_GLX_EXT_texture_from_pixmap, 2552 /* glXReleaseTexImageEXT */);
4103}
4104
4105static PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC
4106epoxy_glXReleaseVideoCaptureDeviceNV_resolver(void)
4107{
4108    return glx_single_resolver(PROVIDER_GLX_NV_video_capture, 2574 /* glXReleaseVideoCaptureDeviceNV */);
4109}
4110
4111static PFNGLXRELEASEVIDEODEVICENVPROC
4112epoxy_glXReleaseVideoDeviceNV_resolver(void)
4113{
4114    return glx_single_resolver(PROVIDER_GLX_NV_video_out, 2605 /* glXReleaseVideoDeviceNV */);
4115}
4116
4117static PFNGLXRELEASEVIDEOIMAGENVPROC
4118epoxy_glXReleaseVideoImageNV_resolver(void)
4119{
4120    return glx_single_resolver(PROVIDER_GLX_NV_video_out, 2629 /* glXReleaseVideoImageNV */);
4121}
4122
4123static PFNGLXRESETFRAMECOUNTNVPROC
4124epoxy_glXResetFrameCountNV_resolver(void)
4125{
4126    return glx_single_resolver(PROVIDER_GLX_NV_swap_group, 2652 /* glXResetFrameCountNV */);
4127}
4128
4129static PFNGLXSELECTEVENTPROC
4130epoxy_glXSelectEvent_resolver(void)
4131{
4132    return glx_single_resolver(PROVIDER_GLX_13, 2673 /* glXSelectEvent */);
4133}
4134
4135static PFNGLXSELECTEVENTSGIXPROC
4136epoxy_glXSelectEventSGIX_resolver(void)
4137{
4138    return glx_single_resolver(PROVIDER_GLX_SGIX_pbuffer, 2688 /* glXSelectEventSGIX */);
4139}
4140
4141static PFNGLXSENDPBUFFERTOVIDEONVPROC
4142epoxy_glXSendPbufferToVideoNV_resolver(void)
4143{
4144    return glx_single_resolver(PROVIDER_GLX_NV_video_out, 2707 /* glXSendPbufferToVideoNV */);
4145}
4146
4147static PFNGLXSET3DFXMODEMESAPROC
4148epoxy_glXSet3DfxModeMESA_resolver(void)
4149{
4150    return glx_single_resolver(PROVIDER_GLX_MESA_set_3dfx_mode, 2731 /* glXSet3DfxModeMESA */);
4151}
4152
4153static PFNGLXSWAPBUFFERSPROC
4154epoxy_glXSwapBuffers_resolver(void)
4155{
4156    return glx_single_resolver(PROVIDER_GLX_10, 2750 /* glXSwapBuffers */);
4157}
4158
4159static PFNGLXSWAPBUFFERSMSCOMLPROC
4160epoxy_glXSwapBuffersMscOML_resolver(void)
4161{
4162    return glx_single_resolver(PROVIDER_GLX_OML_sync_control, 2765 /* glXSwapBuffersMscOML */);
4163}
4164
4165static PFNGLXSWAPINTERVALEXTPROC
4166epoxy_glXSwapIntervalEXT_resolver(void)
4167{
4168    return glx_single_resolver(PROVIDER_GLX_EXT_swap_control, 2786 /* glXSwapIntervalEXT */);
4169}
4170
4171static PFNGLXSWAPINTERVALMESAPROC
4172epoxy_glXSwapIntervalMESA_resolver(void)
4173{
4174    return glx_single_resolver(PROVIDER_GLX_MESA_swap_control, 2805 /* glXSwapIntervalMESA */);
4175}
4176
4177static PFNGLXSWAPINTERVALSGIPROC
4178epoxy_glXSwapIntervalSGI_resolver(void)
4179{
4180    return glx_single_resolver(PROVIDER_GLX_SGI_swap_control, 2825 /* glXSwapIntervalSGI */);
4181}
4182
4183static PFNGLXUSEXFONTPROC
4184epoxy_glXUseXFont_resolver(void)
4185{
4186    return glx_single_resolver(PROVIDER_GLX_10, 2844 /* glXUseXFont */);
4187}
4188
4189static PFNGLXWAITFORMSCOMLPROC
4190epoxy_glXWaitForMscOML_resolver(void)
4191{
4192    return glx_single_resolver(PROVIDER_GLX_OML_sync_control, 2856 /* glXWaitForMscOML */);
4193}
4194
4195static PFNGLXWAITFORSBCOMLPROC
4196epoxy_glXWaitForSbcOML_resolver(void)
4197{
4198    return glx_single_resolver(PROVIDER_GLX_OML_sync_control, 2873 /* glXWaitForSbcOML */);
4199}
4200
4201static PFNGLXWAITGLPROC
4202epoxy_glXWaitGL_resolver(void)
4203{
4204    return glx_single_resolver(PROVIDER_GLX_10, 2890 /* glXWaitGL */);
4205}
4206
4207static PFNGLXWAITVIDEOSYNCSGIPROC
4208epoxy_glXWaitVideoSyncSGI_resolver(void)
4209{
4210    return glx_single_resolver(PROVIDER_GLX_SGI_video_sync, 2900 /* glXWaitVideoSyncSGI */);
4211}
4212
4213static PFNGLXWAITXPROC
4214epoxy_glXWaitX_resolver(void)
4215{
4216    return glx_single_resolver(PROVIDER_GLX_10, 2920 /* glXWaitX */);
4217}
4218
4219GEN_THUNKS_RET(int, glXBindChannelToWindowSGIX, (Display * display, int screen, int channel, Window window), (display, screen, channel, window))
4220GEN_THUNKS_RET(int, glXBindHyperpipeSGIX, (Display * dpy, int hpId), (dpy, hpId))
4221GEN_THUNKS_RET(Bool, glXBindSwapBarrierNV, (Display * dpy, GLuint group, GLuint barrier), (dpy, group, barrier))
4222GEN_THUNKS(glXBindSwapBarrierSGIX, (Display * dpy, GLXDrawable drawable, int barrier), (dpy, drawable, barrier))
4223GEN_THUNKS(glXBindTexImageEXT, (Display * dpy, GLXDrawable drawable, int buffer, const int * attrib_list), (dpy, drawable, buffer, attrib_list))
4224GEN_THUNKS_RET(int, glXBindVideoCaptureDeviceNV, (Display * dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device), (dpy, video_capture_slot, device))
4225GEN_THUNKS_RET(int, glXBindVideoDeviceNV, (Display * dpy, unsigned int video_slot, unsigned int video_device, const int * attrib_list), (dpy, video_slot, video_device, attrib_list))
4226GEN_THUNKS_RET(int, glXBindVideoImageNV, (Display * dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer), (dpy, VideoDevice, pbuf, iVideoBuffer))
4227GEN_THUNKS(glXBlitContextFramebufferAMD, (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter), (dstCtx, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter))
4228GEN_THUNKS_RET(int, glXChannelRectSGIX, (Display * display, int screen, int channel, int x, int y, int w, int h), (display, screen, channel, x, y, w, h))
4229GEN_THUNKS_RET(int, glXChannelRectSyncSGIX, (Display * display, int screen, int channel, GLenum synctype), (display, screen, channel, synctype))
4230GEN_THUNKS_RET(GLXFBConfig *, glXChooseFBConfig, (Display * dpy, int screen, const int * attrib_list, int * nelements), (dpy, screen, attrib_list, nelements))
4231GEN_THUNKS_RET(GLXFBConfigSGIX *, glXChooseFBConfigSGIX, (Display * dpy, int screen, int * attrib_list, int * nelements), (dpy, screen, attrib_list, nelements))
4232GEN_THUNKS_RET(XVisualInfo *, glXChooseVisual, (Display * dpy, int screen, int * attribList), (dpy, screen, attribList))
4233GEN_THUNKS(glXCopyBufferSubDataNV, (Display * dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size), (dpy, readCtx, writeCtx, readTarget, writeTarget, readOffset, writeOffset, size))
4234GEN_THUNKS(glXCopyContext, (Display * dpy, GLXContext src, GLXContext dst, unsigned long mask), (dpy, src, dst, mask))
4235GEN_THUNKS(glXCopyImageSubDataNV, (Display * dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth), (dpy, srcCtx, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstCtx, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth))
4236GEN_THUNKS(glXCopySubBufferMESA, (Display * dpy, GLXDrawable drawable, int x, int y, int width, int height), (dpy, drawable, x, y, width, height))
4237GEN_THUNKS_RET(GLXContext, glXCreateAssociatedContextAMD, (unsigned int id, GLXContext share_list), (id, share_list))
4238GEN_THUNKS_RET(GLXContext, glXCreateAssociatedContextAttribsAMD, (unsigned int id, GLXContext share_context, const int * attribList), (id, share_context, attribList))
4239GEN_THUNKS_RET(GLXContext, glXCreateContext, (Display * dpy, XVisualInfo * vis, GLXContext shareList, Bool direct), (dpy, vis, shareList, direct))
4240GEN_THUNKS_RET(GLXContext, glXCreateContextAttribsARB, (Display * dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int * attrib_list), (dpy, config, share_context, direct, attrib_list))
4241GEN_THUNKS_RET(GLXContext, glXCreateContextWithConfigSGIX, (Display * dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct), (dpy, config, render_type, share_list, direct))
4242GEN_THUNKS_RET(GLXPbufferSGIX, glXCreateGLXPbufferSGIX, (Display * dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int * attrib_list), (dpy, config, width, height, attrib_list))
4243GEN_THUNKS_RET(GLXPixmap, glXCreateGLXPixmap, (Display * dpy, XVisualInfo * visual, Pixmap pixmap), (dpy, visual, pixmap))
4244GEN_THUNKS_RET(GLXPixmap, glXCreateGLXPixmapMESA, (Display * dpy, XVisualInfo * visual, Pixmap pixmap, Colormap cmap), (dpy, visual, pixmap, cmap))
4245GEN_THUNKS_RET(GLXPixmap, glXCreateGLXPixmapWithConfigSGIX, (Display * dpy, GLXFBConfigSGIX config, Pixmap pixmap), (dpy, config, pixmap))
4246GEN_THUNKS_RET(GLXContext, glXCreateNewContext, (Display * dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct), (dpy, config, render_type, share_list, direct))
4247GEN_THUNKS_RET(GLXPbuffer, glXCreatePbuffer, (Display * dpy, GLXFBConfig config, const int * attrib_list), (dpy, config, attrib_list))
4248GEN_THUNKS_RET(GLXPixmap, glXCreatePixmap, (Display * dpy, GLXFBConfig config, Pixmap pixmap, const int * attrib_list), (dpy, config, pixmap, attrib_list))
4249GEN_THUNKS_RET(GLXWindow, glXCreateWindow, (Display * dpy, GLXFBConfig config, Window win, const int * attrib_list), (dpy, config, win, attrib_list))
4250GEN_THUNKS(glXCushionSGI, (Display * dpy, Window window, float cushion), (dpy, window, cushion))
4251GEN_THUNKS_RET(Bool, glXDelayBeforeSwapNV, (Display * dpy, GLXDrawable drawable, GLfloat seconds), (dpy, drawable, seconds))
4252GEN_THUNKS_RET(Bool, glXDeleteAssociatedContextAMD, (GLXContext ctx), (ctx))
4253GEN_THUNKS(glXDestroyContext, (Display * dpy, GLXContext ctx), (dpy, ctx))
4254GEN_THUNKS(glXDestroyGLXPbufferSGIX, (Display * dpy, GLXPbufferSGIX pbuf), (dpy, pbuf))
4255GEN_THUNKS(glXDestroyGLXPixmap, (Display * dpy, GLXPixmap pixmap), (dpy, pixmap))
4256GEN_THUNKS(glXDestroyGLXVideoSourceSGIX, (Display * dpy, GLXVideoSourceSGIX glxvideosource), (dpy, glxvideosource))
4257GEN_THUNKS_RET(int, glXDestroyHyperpipeConfigSGIX, (Display * dpy, int hpId), (dpy, hpId))
4258GEN_THUNKS(glXDestroyPbuffer, (Display * dpy, GLXPbuffer pbuf), (dpy, pbuf))
4259GEN_THUNKS(glXDestroyPixmap, (Display * dpy, GLXPixmap pixmap), (dpy, pixmap))
4260GEN_THUNKS(glXDestroyWindow, (Display * dpy, GLXWindow win), (dpy, win))
4261GEN_THUNKS_RET(GLXVideoCaptureDeviceNV *, glXEnumerateVideoCaptureDevicesNV, (Display * dpy, int screen, int * nelements), (dpy, screen, nelements))
4262GEN_THUNKS_RET(unsigned int *, glXEnumerateVideoDevicesNV, (Display * dpy, int screen, int * nelements), (dpy, screen, nelements))
4263GEN_THUNKS(glXFreeContextEXT, (Display * dpy, GLXContext context), (dpy, context))
4264GEN_THUNKS_RET(unsigned int, glXGetAGPOffsetMESA, (const void * pointer), (pointer))
4265GEN_THUNKS_RET(const char *, glXGetClientString, (Display * dpy, int name), (dpy, name))
4266GEN_THUNKS_RET(int, glXGetConfig, (Display * dpy, XVisualInfo * visual, int attrib, int * value), (dpy, visual, attrib, value))
4267GEN_THUNKS_RET(unsigned int, glXGetContextGPUIDAMD, (GLXContext ctx), (ctx))
4268GEN_THUNKS_RET(GLXContextID, glXGetContextIDEXT, (const GLXContext context), (context))
4269GEN_THUNKS_RET(GLXContext, glXGetCurrentAssociatedContextAMD, (void), ())
4270GEN_THUNKS_RET(GLXContext, glXGetCurrentContext, (void), ())
4271GEN_THUNKS_RET(Display *, glXGetCurrentDisplay, (void), ())
4272GEN_THUNKS_RET(Display *, glXGetCurrentDisplayEXT, (void), ())
4273GEN_THUNKS_RET(GLXDrawable, glXGetCurrentDrawable, (void), ())
4274GEN_THUNKS_RET(GLXDrawable, glXGetCurrentReadDrawable, (void), ())
4275GEN_THUNKS_RET(GLXDrawable, glXGetCurrentReadDrawableSGI, (void), ())
4276GEN_THUNKS_RET(int, glXGetFBConfigAttrib, (Display * dpy, GLXFBConfig config, int attribute, int * value), (dpy, config, attribute, value))
4277GEN_THUNKS_RET(int, glXGetFBConfigAttribSGIX, (Display * dpy, GLXFBConfigSGIX config, int attribute, int * value), (dpy, config, attribute, value))
4278GEN_THUNKS_RET(GLXFBConfigSGIX, glXGetFBConfigFromVisualSGIX, (Display * dpy, XVisualInfo * vis), (dpy, vis))
4279GEN_THUNKS_RET(GLXFBConfig *, glXGetFBConfigs, (Display * dpy, int screen, int * nelements), (dpy, screen, nelements))
4280GEN_THUNKS_RET(unsigned int, glXGetGPUIDsAMD, (unsigned int maxCount, unsigned int * ids), (maxCount, ids))
4281GEN_THUNKS_RET(int, glXGetGPUInfoAMD, (unsigned int id, int property, GLenum dataType, unsigned int size, void * data), (id, property, dataType, size, data))
4282GEN_THUNKS_RET(Bool, glXGetMscRateOML, (Display * dpy, GLXDrawable drawable, int32_t * numerator, int32_t * denominator), (dpy, drawable, numerator, denominator))
4283GEN_THUNKS_RET(__GLXextFuncPtr, glXGetProcAddress, (const GLubyte * procName), (procName))
4284GEN_THUNKS_RET(__GLXextFuncPtr, glXGetProcAddressARB, (const GLubyte * procName), (procName))
4285GEN_THUNKS(glXGetSelectedEvent, (Display * dpy, GLXDrawable draw, unsigned long * event_mask), (dpy, draw, event_mask))
4286GEN_THUNKS(glXGetSelectedEventSGIX, (Display * dpy, GLXDrawable drawable, unsigned long * mask), (dpy, drawable, mask))
4287GEN_THUNKS_RET(int, glXGetSwapIntervalMESA, (void), ())
4288GEN_THUNKS_RET(Bool, glXGetSyncValuesOML, (Display * dpy, GLXDrawable drawable, int64_t * ust, int64_t * msc, int64_t * sbc), (dpy, drawable, ust, msc, sbc))
4289GEN_THUNKS_RET(Status, glXGetTransparentIndexSUN, (Display * dpy, Window overlay, Window underlay, unsigned long * pTransparentIndex), (dpy, overlay, underlay, pTransparentIndex))
4290GEN_THUNKS_RET(int, glXGetVideoDeviceNV, (Display * dpy, int screen, int numVideoDevices, GLXVideoDeviceNV * pVideoDevice), (dpy, screen, numVideoDevices, pVideoDevice))
4291GEN_THUNKS_RET(int, glXGetVideoInfoNV, (Display * dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long * pulCounterOutputPbuffer, unsigned long * pulCounterOutputVideo), (dpy, screen, VideoDevice, pulCounterOutputPbuffer, pulCounterOutputVideo))
4292GEN_THUNKS_RET(int, glXGetVideoSyncSGI, (unsigned int * count), (count))
4293GEN_THUNKS_RET(XVisualInfo *, glXGetVisualFromFBConfig, (Display * dpy, GLXFBConfig config), (dpy, config))
4294GEN_THUNKS_RET(XVisualInfo *, glXGetVisualFromFBConfigSGIX, (Display * dpy, GLXFBConfigSGIX config), (dpy, config))
4295GEN_THUNKS_RET(int, glXHyperpipeAttribSGIX, (Display * dpy, int timeSlice, int attrib, int size, void * attribList), (dpy, timeSlice, attrib, size, attribList))
4296GEN_THUNKS_RET(int, glXHyperpipeConfigSGIX, (Display * dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX * cfg, int * hpId), (dpy, networkId, npipes, cfg, hpId))
4297GEN_THUNKS_RET(GLXContext, glXImportContextEXT, (Display * dpy, GLXContextID contextID), (dpy, contextID))
4298GEN_THUNKS_RET(Bool, glXIsDirect, (Display * dpy, GLXContext ctx), (dpy, ctx))
4299GEN_THUNKS_RET(Bool, glXJoinSwapGroupNV, (Display * dpy, GLXDrawable drawable, GLuint group), (dpy, drawable, group))
4300GEN_THUNKS(glXJoinSwapGroupSGIX, (Display * dpy, GLXDrawable drawable, GLXDrawable member), (dpy, drawable, member))
4301GEN_THUNKS(glXLockVideoCaptureDeviceNV, (Display * dpy, GLXVideoCaptureDeviceNV device), (dpy, device))
4302GEN_THUNKS_RET(Bool, glXMakeAssociatedContextCurrentAMD, (GLXContext ctx), (ctx))
4303GEN_THUNKS_RET(Bool, glXMakeContextCurrent, (Display * dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx), (dpy, draw, read, ctx))
4304GEN_THUNKS_RET(Bool, glXMakeCurrent, (Display * dpy, GLXDrawable drawable, GLXContext ctx), (dpy, drawable, ctx))
4305GEN_THUNKS_RET(Bool, glXMakeCurrentReadSGI, (Display * dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx), (dpy, draw, read, ctx))
4306GEN_THUNKS(glXNamedCopyBufferSubDataNV, (Display * dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size), (dpy, readCtx, writeCtx, readBuffer, writeBuffer, readOffset, writeOffset, size))
4307GEN_THUNKS_RET(int, glXQueryChannelDeltasSGIX, (Display * display, int screen, int channel, int * x, int * y, int * w, int * h), (display, screen, channel, x, y, w, h))
4308GEN_THUNKS_RET(int, glXQueryChannelRectSGIX, (Display * display, int screen, int channel, int * dx, int * dy, int * dw, int * dh), (display, screen, channel, dx, dy, dw, dh))
4309GEN_THUNKS_RET(int, glXQueryContext, (Display * dpy, GLXContext ctx, int attribute, int * value), (dpy, ctx, attribute, value))
4310GEN_THUNKS_RET(int, glXQueryContextInfoEXT, (Display * dpy, GLXContext context, int attribute, int * value), (dpy, context, attribute, value))
4311GEN_THUNKS_RET(Bool, glXQueryCurrentRendererIntegerMESA, (int attribute, unsigned int * value), (attribute, value))
4312GEN_THUNKS_RET(const char *, glXQueryCurrentRendererStringMESA, (int attribute), (attribute))
4313GEN_THUNKS(glXQueryDrawable, (Display * dpy, GLXDrawable draw, int attribute, unsigned int * value), (dpy, draw, attribute, value))
4314GEN_THUNKS_RET(Bool, glXQueryExtension, (Display * dpy, int * errorb, int * event), (dpy, errorb, event))
4315GEN_THUNKS_RET(const char *, glXQueryExtensionsString, (Display * dpy, int screen), (dpy, screen))
4316GEN_THUNKS_RET(Bool, glXQueryFrameCountNV, (Display * dpy, int screen, GLuint * count), (dpy, screen, count))
4317GEN_THUNKS(glXQueryGLXPbufferSGIX, (Display * dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int * value), (dpy, pbuf, attribute, value))
4318GEN_THUNKS_RET(int, glXQueryHyperpipeAttribSGIX, (Display * dpy, int timeSlice, int attrib, int size, void * returnAttribList), (dpy, timeSlice, attrib, size, returnAttribList))
4319GEN_THUNKS_RET(int, glXQueryHyperpipeBestAttribSGIX, (Display * dpy, int timeSlice, int attrib, int size, void * attribList, void * returnAttribList), (dpy, timeSlice, attrib, size, attribList, returnAttribList))
4320GEN_THUNKS_RET(GLXHyperpipeConfigSGIX *, glXQueryHyperpipeConfigSGIX, (Display * dpy, int hpId, int * npipes), (dpy, hpId, npipes))
4321GEN_THUNKS_RET(GLXHyperpipeNetworkSGIX *, glXQueryHyperpipeNetworkSGIX, (Display * dpy, int * npipes), (dpy, npipes))
4322GEN_THUNKS_RET(Bool, glXQueryMaxSwapBarriersSGIX, (Display * dpy, int screen, int * max), (dpy, screen, max))
4323GEN_THUNKS_RET(Bool, glXQueryMaxSwapGroupsNV, (Display * dpy, int screen, GLuint * maxGroups, GLuint * maxBarriers), (dpy, screen, maxGroups, maxBarriers))
4324GEN_THUNKS_RET(Bool, glXQueryRendererIntegerMESA, (Display * dpy, int screen, int renderer, int attribute, unsigned int * value), (dpy, screen, renderer, attribute, value))
4325GEN_THUNKS_RET(const char *, glXQueryRendererStringMESA, (Display * dpy, int screen, int renderer, int attribute), (dpy, screen, renderer, attribute))
4326GEN_THUNKS_RET(const char *, glXQueryServerString, (Display * dpy, int screen, int name), (dpy, screen, name))
4327GEN_THUNKS_RET(Bool, glXQuerySwapGroupNV, (Display * dpy, GLXDrawable drawable, GLuint * group, GLuint * barrier), (dpy, drawable, group, barrier))
4328GEN_THUNKS_RET(Bool, glXQueryVersion, (Display * dpy, int * maj, int * min), (dpy, maj, min))
4329GEN_THUNKS_RET(int, glXQueryVideoCaptureDeviceNV, (Display * dpy, GLXVideoCaptureDeviceNV device, int attribute, int * value), (dpy, device, attribute, value))
4330GEN_THUNKS_RET(Bool, glXReleaseBuffersMESA, (Display * dpy, GLXDrawable drawable), (dpy, drawable))
4331GEN_THUNKS(glXReleaseTexImageEXT, (Display * dpy, GLXDrawable drawable, int buffer), (dpy, drawable, buffer))
4332GEN_THUNKS(glXReleaseVideoCaptureDeviceNV, (Display * dpy, GLXVideoCaptureDeviceNV device), (dpy, device))
4333GEN_THUNKS_RET(int, glXReleaseVideoDeviceNV, (Display * dpy, int screen, GLXVideoDeviceNV VideoDevice), (dpy, screen, VideoDevice))
4334GEN_THUNKS_RET(int, glXReleaseVideoImageNV, (Display * dpy, GLXPbuffer pbuf), (dpy, pbuf))
4335GEN_THUNKS_RET(Bool, glXResetFrameCountNV, (Display * dpy, int screen), (dpy, screen))
4336GEN_THUNKS(glXSelectEvent, (Display * dpy, GLXDrawable draw, unsigned long event_mask), (dpy, draw, event_mask))
4337GEN_THUNKS(glXSelectEventSGIX, (Display * dpy, GLXDrawable drawable, unsigned long mask), (dpy, drawable, mask))
4338GEN_THUNKS_RET(int, glXSendPbufferToVideoNV, (Display * dpy, GLXPbuffer pbuf, int iBufferType, unsigned long * pulCounterPbuffer, GLboolean bBlock), (dpy, pbuf, iBufferType, pulCounterPbuffer, bBlock))
4339GEN_THUNKS_RET(GLboolean, glXSet3DfxModeMESA, (GLint mode), (mode))
4340GEN_THUNKS(glXSwapBuffers, (Display * dpy, GLXDrawable drawable), (dpy, drawable))
4341GEN_THUNKS_RET(int64_t, glXSwapBuffersMscOML, (Display * dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder), (dpy, drawable, target_msc, divisor, remainder))
4342GEN_THUNKS(glXSwapIntervalEXT, (Display * dpy, GLXDrawable drawable, int interval), (dpy, drawable, interval))
4343GEN_THUNKS_RET(int, glXSwapIntervalMESA, (unsigned int interval), (interval))
4344GEN_THUNKS_RET(int, glXSwapIntervalSGI, (int interval), (interval))
4345GEN_THUNKS(glXUseXFont, (Font font, int first, int count, int list), (font, first, count, list))
4346GEN_THUNKS_RET(Bool, glXWaitForMscOML, (Display * dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t * ust, int64_t * msc, int64_t * sbc), (dpy, drawable, target_msc, divisor, remainder, ust, msc, sbc))
4347GEN_THUNKS_RET(Bool, glXWaitForSbcOML, (Display * dpy, GLXDrawable drawable, int64_t target_sbc, int64_t * ust, int64_t * msc, int64_t * sbc), (dpy, drawable, target_sbc, ust, msc, sbc))
4348GEN_THUNKS(glXWaitGL, (void), ())
4349GEN_THUNKS_RET(int, glXWaitVideoSyncSGI, (int divisor, int remainder, unsigned int * count), (divisor, remainder, count))
4350GEN_THUNKS(glXWaitX, (void), ())
4351
4352#if USING_DISPATCH_TABLE
4353static struct dispatch_table resolver_table = {
4354    epoxy_glXBindChannelToWindowSGIX_dispatch_table_rewrite_ptr, /* glXBindChannelToWindowSGIX */
4355    epoxy_glXBindHyperpipeSGIX_dispatch_table_rewrite_ptr, /* glXBindHyperpipeSGIX */
4356    epoxy_glXBindSwapBarrierNV_dispatch_table_rewrite_ptr, /* glXBindSwapBarrierNV */
4357    epoxy_glXBindSwapBarrierSGIX_dispatch_table_rewrite_ptr, /* glXBindSwapBarrierSGIX */
4358    epoxy_glXBindTexImageEXT_dispatch_table_rewrite_ptr, /* glXBindTexImageEXT */
4359    epoxy_glXBindVideoCaptureDeviceNV_dispatch_table_rewrite_ptr, /* glXBindVideoCaptureDeviceNV */
4360    epoxy_glXBindVideoDeviceNV_dispatch_table_rewrite_ptr, /* glXBindVideoDeviceNV */
4361    epoxy_glXBindVideoImageNV_dispatch_table_rewrite_ptr, /* glXBindVideoImageNV */
4362    epoxy_glXBlitContextFramebufferAMD_dispatch_table_rewrite_ptr, /* glXBlitContextFramebufferAMD */
4363    epoxy_glXChannelRectSGIX_dispatch_table_rewrite_ptr, /* glXChannelRectSGIX */
4364    epoxy_glXChannelRectSyncSGIX_dispatch_table_rewrite_ptr, /* glXChannelRectSyncSGIX */
4365    epoxy_glXChooseFBConfig_dispatch_table_rewrite_ptr, /* glXChooseFBConfig */
4366    epoxy_glXChooseFBConfigSGIX_dispatch_table_rewrite_ptr, /* glXChooseFBConfigSGIX */
4367    epoxy_glXChooseVisual_dispatch_table_rewrite_ptr, /* glXChooseVisual */
4368    epoxy_glXCopyBufferSubDataNV_dispatch_table_rewrite_ptr, /* glXCopyBufferSubDataNV */
4369    epoxy_glXCopyContext_dispatch_table_rewrite_ptr, /* glXCopyContext */
4370    epoxy_glXCopyImageSubDataNV_dispatch_table_rewrite_ptr, /* glXCopyImageSubDataNV */
4371    epoxy_glXCopySubBufferMESA_dispatch_table_rewrite_ptr, /* glXCopySubBufferMESA */
4372    epoxy_glXCreateAssociatedContextAMD_dispatch_table_rewrite_ptr, /* glXCreateAssociatedContextAMD */
4373    epoxy_glXCreateAssociatedContextAttribsAMD_dispatch_table_rewrite_ptr, /* glXCreateAssociatedContextAttribsAMD */
4374    epoxy_glXCreateContext_dispatch_table_rewrite_ptr, /* glXCreateContext */
4375    epoxy_glXCreateContextAttribsARB_dispatch_table_rewrite_ptr, /* glXCreateContextAttribsARB */
4376    epoxy_glXCreateContextWithConfigSGIX_dispatch_table_rewrite_ptr, /* glXCreateContextWithConfigSGIX */
4377    epoxy_glXCreateGLXPbufferSGIX_dispatch_table_rewrite_ptr, /* glXCreateGLXPbufferSGIX */
4378    epoxy_glXCreateGLXPixmap_dispatch_table_rewrite_ptr, /* glXCreateGLXPixmap */
4379    epoxy_glXCreateGLXPixmapMESA_dispatch_table_rewrite_ptr, /* glXCreateGLXPixmapMESA */
4380    epoxy_glXCreateGLXPixmapWithConfigSGIX_dispatch_table_rewrite_ptr, /* glXCreateGLXPixmapWithConfigSGIX */
4381    epoxy_glXCreateNewContext_dispatch_table_rewrite_ptr, /* glXCreateNewContext */
4382    epoxy_glXCreatePbuffer_dispatch_table_rewrite_ptr, /* glXCreatePbuffer */
4383    epoxy_glXCreatePixmap_dispatch_table_rewrite_ptr, /* glXCreatePixmap */
4384    epoxy_glXCreateWindow_dispatch_table_rewrite_ptr, /* glXCreateWindow */
4385    epoxy_glXCushionSGI_dispatch_table_rewrite_ptr, /* glXCushionSGI */
4386    epoxy_glXDelayBeforeSwapNV_dispatch_table_rewrite_ptr, /* glXDelayBeforeSwapNV */
4387    epoxy_glXDeleteAssociatedContextAMD_dispatch_table_rewrite_ptr, /* glXDeleteAssociatedContextAMD */
4388    epoxy_glXDestroyContext_dispatch_table_rewrite_ptr, /* glXDestroyContext */
4389    epoxy_glXDestroyGLXPbufferSGIX_dispatch_table_rewrite_ptr, /* glXDestroyGLXPbufferSGIX */
4390    epoxy_glXDestroyGLXPixmap_dispatch_table_rewrite_ptr, /* glXDestroyGLXPixmap */
4391    epoxy_glXDestroyGLXVideoSourceSGIX_dispatch_table_rewrite_ptr, /* glXDestroyGLXVideoSourceSGIX */
4392    epoxy_glXDestroyHyperpipeConfigSGIX_dispatch_table_rewrite_ptr, /* glXDestroyHyperpipeConfigSGIX */
4393    epoxy_glXDestroyPbuffer_dispatch_table_rewrite_ptr, /* glXDestroyPbuffer */
4394    epoxy_glXDestroyPixmap_dispatch_table_rewrite_ptr, /* glXDestroyPixmap */
4395    epoxy_glXDestroyWindow_dispatch_table_rewrite_ptr, /* glXDestroyWindow */
4396    epoxy_glXEnumerateVideoCaptureDevicesNV_dispatch_table_rewrite_ptr, /* glXEnumerateVideoCaptureDevicesNV */
4397    epoxy_glXEnumerateVideoDevicesNV_dispatch_table_rewrite_ptr, /* glXEnumerateVideoDevicesNV */
4398    epoxy_glXFreeContextEXT_dispatch_table_rewrite_ptr, /* glXFreeContextEXT */
4399    epoxy_glXGetAGPOffsetMESA_dispatch_table_rewrite_ptr, /* glXGetAGPOffsetMESA */
4400    epoxy_glXGetClientString_dispatch_table_rewrite_ptr, /* glXGetClientString */
4401    epoxy_glXGetConfig_dispatch_table_rewrite_ptr, /* glXGetConfig */
4402    epoxy_glXGetContextGPUIDAMD_dispatch_table_rewrite_ptr, /* glXGetContextGPUIDAMD */
4403    epoxy_glXGetContextIDEXT_dispatch_table_rewrite_ptr, /* glXGetContextIDEXT */
4404    epoxy_glXGetCurrentAssociatedContextAMD_dispatch_table_rewrite_ptr, /* glXGetCurrentAssociatedContextAMD */
4405    epoxy_glXGetCurrentContext_dispatch_table_rewrite_ptr, /* glXGetCurrentContext */
4406    epoxy_glXGetCurrentDisplay_dispatch_table_rewrite_ptr, /* glXGetCurrentDisplay */
4407    epoxy_glXGetCurrentDisplayEXT_dispatch_table_rewrite_ptr, /* glXGetCurrentDisplayEXT */
4408    epoxy_glXGetCurrentDrawable_dispatch_table_rewrite_ptr, /* glXGetCurrentDrawable */
4409    epoxy_glXGetCurrentReadDrawable_dispatch_table_rewrite_ptr, /* glXGetCurrentReadDrawable */
4410    epoxy_glXGetCurrentReadDrawableSGI_dispatch_table_rewrite_ptr, /* glXGetCurrentReadDrawableSGI */
4411    epoxy_glXGetFBConfigAttrib_dispatch_table_rewrite_ptr, /* glXGetFBConfigAttrib */
4412    epoxy_glXGetFBConfigAttribSGIX_dispatch_table_rewrite_ptr, /* glXGetFBConfigAttribSGIX */
4413    epoxy_glXGetFBConfigFromVisualSGIX_dispatch_table_rewrite_ptr, /* glXGetFBConfigFromVisualSGIX */
4414    epoxy_glXGetFBConfigs_dispatch_table_rewrite_ptr, /* glXGetFBConfigs */
4415    epoxy_glXGetGPUIDsAMD_dispatch_table_rewrite_ptr, /* glXGetGPUIDsAMD */
4416    epoxy_glXGetGPUInfoAMD_dispatch_table_rewrite_ptr, /* glXGetGPUInfoAMD */
4417    epoxy_glXGetMscRateOML_dispatch_table_rewrite_ptr, /* glXGetMscRateOML */
4418    epoxy_glXGetProcAddress_dispatch_table_rewrite_ptr, /* glXGetProcAddress */
4419    epoxy_glXGetProcAddressARB_dispatch_table_rewrite_ptr, /* glXGetProcAddressARB */
4420    epoxy_glXGetSelectedEvent_dispatch_table_rewrite_ptr, /* glXGetSelectedEvent */
4421    epoxy_glXGetSelectedEventSGIX_dispatch_table_rewrite_ptr, /* glXGetSelectedEventSGIX */
4422    epoxy_glXGetSwapIntervalMESA_dispatch_table_rewrite_ptr, /* glXGetSwapIntervalMESA */
4423    epoxy_glXGetSyncValuesOML_dispatch_table_rewrite_ptr, /* glXGetSyncValuesOML */
4424    epoxy_glXGetTransparentIndexSUN_dispatch_table_rewrite_ptr, /* glXGetTransparentIndexSUN */
4425    epoxy_glXGetVideoDeviceNV_dispatch_table_rewrite_ptr, /* glXGetVideoDeviceNV */
4426    epoxy_glXGetVideoInfoNV_dispatch_table_rewrite_ptr, /* glXGetVideoInfoNV */
4427    epoxy_glXGetVideoSyncSGI_dispatch_table_rewrite_ptr, /* glXGetVideoSyncSGI */
4428    epoxy_glXGetVisualFromFBConfig_dispatch_table_rewrite_ptr, /* glXGetVisualFromFBConfig */
4429    epoxy_glXGetVisualFromFBConfigSGIX_dispatch_table_rewrite_ptr, /* glXGetVisualFromFBConfigSGIX */
4430    epoxy_glXHyperpipeAttribSGIX_dispatch_table_rewrite_ptr, /* glXHyperpipeAttribSGIX */
4431    epoxy_glXHyperpipeConfigSGIX_dispatch_table_rewrite_ptr, /* glXHyperpipeConfigSGIX */
4432    epoxy_glXImportContextEXT_dispatch_table_rewrite_ptr, /* glXImportContextEXT */
4433    epoxy_glXIsDirect_dispatch_table_rewrite_ptr, /* glXIsDirect */
4434    epoxy_glXJoinSwapGroupNV_dispatch_table_rewrite_ptr, /* glXJoinSwapGroupNV */
4435    epoxy_glXJoinSwapGroupSGIX_dispatch_table_rewrite_ptr, /* glXJoinSwapGroupSGIX */
4436    epoxy_glXLockVideoCaptureDeviceNV_dispatch_table_rewrite_ptr, /* glXLockVideoCaptureDeviceNV */
4437    epoxy_glXMakeAssociatedContextCurrentAMD_dispatch_table_rewrite_ptr, /* glXMakeAssociatedContextCurrentAMD */
4438    epoxy_glXMakeContextCurrent_dispatch_table_rewrite_ptr, /* glXMakeContextCurrent */
4439    epoxy_glXMakeCurrent_dispatch_table_rewrite_ptr, /* glXMakeCurrent */
4440    epoxy_glXMakeCurrentReadSGI_dispatch_table_rewrite_ptr, /* glXMakeCurrentReadSGI */
4441    epoxy_glXNamedCopyBufferSubDataNV_dispatch_table_rewrite_ptr, /* glXNamedCopyBufferSubDataNV */
4442    epoxy_glXQueryChannelDeltasSGIX_dispatch_table_rewrite_ptr, /* glXQueryChannelDeltasSGIX */
4443    epoxy_glXQueryChannelRectSGIX_dispatch_table_rewrite_ptr, /* glXQueryChannelRectSGIX */
4444    epoxy_glXQueryContext_dispatch_table_rewrite_ptr, /* glXQueryContext */
4445    epoxy_glXQueryContextInfoEXT_dispatch_table_rewrite_ptr, /* glXQueryContextInfoEXT */
4446    epoxy_glXQueryCurrentRendererIntegerMESA_dispatch_table_rewrite_ptr, /* glXQueryCurrentRendererIntegerMESA */
4447    epoxy_glXQueryCurrentRendererStringMESA_dispatch_table_rewrite_ptr, /* glXQueryCurrentRendererStringMESA */
4448    epoxy_glXQueryDrawable_dispatch_table_rewrite_ptr, /* glXQueryDrawable */
4449    epoxy_glXQueryExtension_dispatch_table_rewrite_ptr, /* glXQueryExtension */
4450    epoxy_glXQueryExtensionsString_dispatch_table_rewrite_ptr, /* glXQueryExtensionsString */
4451    epoxy_glXQueryFrameCountNV_dispatch_table_rewrite_ptr, /* glXQueryFrameCountNV */
4452    epoxy_glXQueryGLXPbufferSGIX_dispatch_table_rewrite_ptr, /* glXQueryGLXPbufferSGIX */
4453    epoxy_glXQueryHyperpipeAttribSGIX_dispatch_table_rewrite_ptr, /* glXQueryHyperpipeAttribSGIX */
4454    epoxy_glXQueryHyperpipeBestAttribSGIX_dispatch_table_rewrite_ptr, /* glXQueryHyperpipeBestAttribSGIX */
4455    epoxy_glXQueryHyperpipeConfigSGIX_dispatch_table_rewrite_ptr, /* glXQueryHyperpipeConfigSGIX */
4456    epoxy_glXQueryHyperpipeNetworkSGIX_dispatch_table_rewrite_ptr, /* glXQueryHyperpipeNetworkSGIX */
4457    epoxy_glXQueryMaxSwapBarriersSGIX_dispatch_table_rewrite_ptr, /* glXQueryMaxSwapBarriersSGIX */
4458    epoxy_glXQueryMaxSwapGroupsNV_dispatch_table_rewrite_ptr, /* glXQueryMaxSwapGroupsNV */
4459    epoxy_glXQueryRendererIntegerMESA_dispatch_table_rewrite_ptr, /* glXQueryRendererIntegerMESA */
4460    epoxy_glXQueryRendererStringMESA_dispatch_table_rewrite_ptr, /* glXQueryRendererStringMESA */
4461    epoxy_glXQueryServerString_dispatch_table_rewrite_ptr, /* glXQueryServerString */
4462    epoxy_glXQuerySwapGroupNV_dispatch_table_rewrite_ptr, /* glXQuerySwapGroupNV */
4463    epoxy_glXQueryVersion_dispatch_table_rewrite_ptr, /* glXQueryVersion */
4464    epoxy_glXQueryVideoCaptureDeviceNV_dispatch_table_rewrite_ptr, /* glXQueryVideoCaptureDeviceNV */
4465    epoxy_glXReleaseBuffersMESA_dispatch_table_rewrite_ptr, /* glXReleaseBuffersMESA */
4466    epoxy_glXReleaseTexImageEXT_dispatch_table_rewrite_ptr, /* glXReleaseTexImageEXT */
4467    epoxy_glXReleaseVideoCaptureDeviceNV_dispatch_table_rewrite_ptr, /* glXReleaseVideoCaptureDeviceNV */
4468    epoxy_glXReleaseVideoDeviceNV_dispatch_table_rewrite_ptr, /* glXReleaseVideoDeviceNV */
4469    epoxy_glXReleaseVideoImageNV_dispatch_table_rewrite_ptr, /* glXReleaseVideoImageNV */
4470    epoxy_glXResetFrameCountNV_dispatch_table_rewrite_ptr, /* glXResetFrameCountNV */
4471    epoxy_glXSelectEvent_dispatch_table_rewrite_ptr, /* glXSelectEvent */
4472    epoxy_glXSelectEventSGIX_dispatch_table_rewrite_ptr, /* glXSelectEventSGIX */
4473    epoxy_glXSendPbufferToVideoNV_dispatch_table_rewrite_ptr, /* glXSendPbufferToVideoNV */
4474    epoxy_glXSet3DfxModeMESA_dispatch_table_rewrite_ptr, /* glXSet3DfxModeMESA */
4475    epoxy_glXSwapBuffers_dispatch_table_rewrite_ptr, /* glXSwapBuffers */
4476    epoxy_glXSwapBuffersMscOML_dispatch_table_rewrite_ptr, /* glXSwapBuffersMscOML */
4477    epoxy_glXSwapIntervalEXT_dispatch_table_rewrite_ptr, /* glXSwapIntervalEXT */
4478    epoxy_glXSwapIntervalMESA_dispatch_table_rewrite_ptr, /* glXSwapIntervalMESA */
4479    epoxy_glXSwapIntervalSGI_dispatch_table_rewrite_ptr, /* glXSwapIntervalSGI */
4480    epoxy_glXUseXFont_dispatch_table_rewrite_ptr, /* glXUseXFont */
4481    epoxy_glXWaitForMscOML_dispatch_table_rewrite_ptr, /* glXWaitForMscOML */
4482    epoxy_glXWaitForSbcOML_dispatch_table_rewrite_ptr, /* glXWaitForSbcOML */
4483    epoxy_glXWaitGL_dispatch_table_rewrite_ptr, /* glXWaitGL */
4484    epoxy_glXWaitVideoSyncSGI_dispatch_table_rewrite_ptr, /* glXWaitVideoSyncSGI */
4485    epoxy_glXWaitX_dispatch_table_rewrite_ptr, /* glXWaitX */
4486};
4487
4488uint32_t glx_tls_index;
4489uint32_t glx_tls_size = sizeof(struct dispatch_table);
4490
4491static inline struct dispatch_table *
4492get_dispatch_table(void)
4493{
4494	return TlsGetValue(glx_tls_index);
4495}
4496
4497void
4498glx_init_dispatch_table(void)
4499{
4500    struct dispatch_table *dispatch_table = get_dispatch_table();
4501    memcpy(dispatch_table, &resolver_table, sizeof(resolver_table));
4502}
4503
4504void
4505glx_switch_to_dispatch_table(void)
4506{
4507    epoxy_glXBindChannelToWindowSGIX = epoxy_glXBindChannelToWindowSGIX_dispatch_table_thunk;
4508    epoxy_glXBindHyperpipeSGIX = epoxy_glXBindHyperpipeSGIX_dispatch_table_thunk;
4509    epoxy_glXBindSwapBarrierNV = epoxy_glXBindSwapBarrierNV_dispatch_table_thunk;
4510    epoxy_glXBindSwapBarrierSGIX = epoxy_glXBindSwapBarrierSGIX_dispatch_table_thunk;
4511    epoxy_glXBindTexImageEXT = epoxy_glXBindTexImageEXT_dispatch_table_thunk;
4512    epoxy_glXBindVideoCaptureDeviceNV = epoxy_glXBindVideoCaptureDeviceNV_dispatch_table_thunk;
4513    epoxy_glXBindVideoDeviceNV = epoxy_glXBindVideoDeviceNV_dispatch_table_thunk;
4514    epoxy_glXBindVideoImageNV = epoxy_glXBindVideoImageNV_dispatch_table_thunk;
4515    epoxy_glXBlitContextFramebufferAMD = epoxy_glXBlitContextFramebufferAMD_dispatch_table_thunk;
4516    epoxy_glXChannelRectSGIX = epoxy_glXChannelRectSGIX_dispatch_table_thunk;
4517    epoxy_glXChannelRectSyncSGIX = epoxy_glXChannelRectSyncSGIX_dispatch_table_thunk;
4518    epoxy_glXChooseFBConfig = epoxy_glXChooseFBConfig_dispatch_table_thunk;
4519    epoxy_glXChooseFBConfigSGIX = epoxy_glXChooseFBConfigSGIX_dispatch_table_thunk;
4520    epoxy_glXChooseVisual = epoxy_glXChooseVisual_dispatch_table_thunk;
4521    epoxy_glXCopyBufferSubDataNV = epoxy_glXCopyBufferSubDataNV_dispatch_table_thunk;
4522    epoxy_glXCopyContext = epoxy_glXCopyContext_dispatch_table_thunk;
4523    epoxy_glXCopyImageSubDataNV = epoxy_glXCopyImageSubDataNV_dispatch_table_thunk;
4524    epoxy_glXCopySubBufferMESA = epoxy_glXCopySubBufferMESA_dispatch_table_thunk;
4525    epoxy_glXCreateAssociatedContextAMD = epoxy_glXCreateAssociatedContextAMD_dispatch_table_thunk;
4526    epoxy_glXCreateAssociatedContextAttribsAMD = epoxy_glXCreateAssociatedContextAttribsAMD_dispatch_table_thunk;
4527    epoxy_glXCreateContext = epoxy_glXCreateContext_dispatch_table_thunk;
4528    epoxy_glXCreateContextAttribsARB = epoxy_glXCreateContextAttribsARB_dispatch_table_thunk;
4529    epoxy_glXCreateContextWithConfigSGIX = epoxy_glXCreateContextWithConfigSGIX_dispatch_table_thunk;
4530    epoxy_glXCreateGLXPbufferSGIX = epoxy_glXCreateGLXPbufferSGIX_dispatch_table_thunk;
4531    epoxy_glXCreateGLXPixmap = epoxy_glXCreateGLXPixmap_dispatch_table_thunk;
4532    epoxy_glXCreateGLXPixmapMESA = epoxy_glXCreateGLXPixmapMESA_dispatch_table_thunk;
4533    epoxy_glXCreateGLXPixmapWithConfigSGIX = epoxy_glXCreateGLXPixmapWithConfigSGIX_dispatch_table_thunk;
4534    epoxy_glXCreateNewContext = epoxy_glXCreateNewContext_dispatch_table_thunk;
4535    epoxy_glXCreatePbuffer = epoxy_glXCreatePbuffer_dispatch_table_thunk;
4536    epoxy_glXCreatePixmap = epoxy_glXCreatePixmap_dispatch_table_thunk;
4537    epoxy_glXCreateWindow = epoxy_glXCreateWindow_dispatch_table_thunk;
4538    epoxy_glXCushionSGI = epoxy_glXCushionSGI_dispatch_table_thunk;
4539    epoxy_glXDelayBeforeSwapNV = epoxy_glXDelayBeforeSwapNV_dispatch_table_thunk;
4540    epoxy_glXDeleteAssociatedContextAMD = epoxy_glXDeleteAssociatedContextAMD_dispatch_table_thunk;
4541    epoxy_glXDestroyContext = epoxy_glXDestroyContext_dispatch_table_thunk;
4542    epoxy_glXDestroyGLXPbufferSGIX = epoxy_glXDestroyGLXPbufferSGIX_dispatch_table_thunk;
4543    epoxy_glXDestroyGLXPixmap = epoxy_glXDestroyGLXPixmap_dispatch_table_thunk;
4544    epoxy_glXDestroyGLXVideoSourceSGIX = epoxy_glXDestroyGLXVideoSourceSGIX_dispatch_table_thunk;
4545    epoxy_glXDestroyHyperpipeConfigSGIX = epoxy_glXDestroyHyperpipeConfigSGIX_dispatch_table_thunk;
4546    epoxy_glXDestroyPbuffer = epoxy_glXDestroyPbuffer_dispatch_table_thunk;
4547    epoxy_glXDestroyPixmap = epoxy_glXDestroyPixmap_dispatch_table_thunk;
4548    epoxy_glXDestroyWindow = epoxy_glXDestroyWindow_dispatch_table_thunk;
4549    epoxy_glXEnumerateVideoCaptureDevicesNV = epoxy_glXEnumerateVideoCaptureDevicesNV_dispatch_table_thunk;
4550    epoxy_glXEnumerateVideoDevicesNV = epoxy_glXEnumerateVideoDevicesNV_dispatch_table_thunk;
4551    epoxy_glXFreeContextEXT = epoxy_glXFreeContextEXT_dispatch_table_thunk;
4552    epoxy_glXGetAGPOffsetMESA = epoxy_glXGetAGPOffsetMESA_dispatch_table_thunk;
4553    epoxy_glXGetClientString = epoxy_glXGetClientString_dispatch_table_thunk;
4554    epoxy_glXGetConfig = epoxy_glXGetConfig_dispatch_table_thunk;
4555    epoxy_glXGetContextGPUIDAMD = epoxy_glXGetContextGPUIDAMD_dispatch_table_thunk;
4556    epoxy_glXGetContextIDEXT = epoxy_glXGetContextIDEXT_dispatch_table_thunk;
4557    epoxy_glXGetCurrentAssociatedContextAMD = epoxy_glXGetCurrentAssociatedContextAMD_dispatch_table_thunk;
4558    epoxy_glXGetCurrentContext = epoxy_glXGetCurrentContext_dispatch_table_thunk;
4559    epoxy_glXGetCurrentDisplay = epoxy_glXGetCurrentDisplay_dispatch_table_thunk;
4560    epoxy_glXGetCurrentDisplayEXT = epoxy_glXGetCurrentDisplayEXT_dispatch_table_thunk;
4561    epoxy_glXGetCurrentDrawable = epoxy_glXGetCurrentDrawable_dispatch_table_thunk;
4562    epoxy_glXGetCurrentReadDrawable = epoxy_glXGetCurrentReadDrawable_dispatch_table_thunk;
4563    epoxy_glXGetCurrentReadDrawableSGI = epoxy_glXGetCurrentReadDrawableSGI_dispatch_table_thunk;
4564    epoxy_glXGetFBConfigAttrib = epoxy_glXGetFBConfigAttrib_dispatch_table_thunk;
4565    epoxy_glXGetFBConfigAttribSGIX = epoxy_glXGetFBConfigAttribSGIX_dispatch_table_thunk;
4566    epoxy_glXGetFBConfigFromVisualSGIX = epoxy_glXGetFBConfigFromVisualSGIX_dispatch_table_thunk;
4567    epoxy_glXGetFBConfigs = epoxy_glXGetFBConfigs_dispatch_table_thunk;
4568    epoxy_glXGetGPUIDsAMD = epoxy_glXGetGPUIDsAMD_dispatch_table_thunk;
4569    epoxy_glXGetGPUInfoAMD = epoxy_glXGetGPUInfoAMD_dispatch_table_thunk;
4570    epoxy_glXGetMscRateOML = epoxy_glXGetMscRateOML_dispatch_table_thunk;
4571    epoxy_glXGetProcAddress = epoxy_glXGetProcAddress_dispatch_table_thunk;
4572    epoxy_glXGetProcAddressARB = epoxy_glXGetProcAddressARB_dispatch_table_thunk;
4573    epoxy_glXGetSelectedEvent = epoxy_glXGetSelectedEvent_dispatch_table_thunk;
4574    epoxy_glXGetSelectedEventSGIX = epoxy_glXGetSelectedEventSGIX_dispatch_table_thunk;
4575    epoxy_glXGetSwapIntervalMESA = epoxy_glXGetSwapIntervalMESA_dispatch_table_thunk;
4576    epoxy_glXGetSyncValuesOML = epoxy_glXGetSyncValuesOML_dispatch_table_thunk;
4577    epoxy_glXGetTransparentIndexSUN = epoxy_glXGetTransparentIndexSUN_dispatch_table_thunk;
4578    epoxy_glXGetVideoDeviceNV = epoxy_glXGetVideoDeviceNV_dispatch_table_thunk;
4579    epoxy_glXGetVideoInfoNV = epoxy_glXGetVideoInfoNV_dispatch_table_thunk;
4580    epoxy_glXGetVideoSyncSGI = epoxy_glXGetVideoSyncSGI_dispatch_table_thunk;
4581    epoxy_glXGetVisualFromFBConfig = epoxy_glXGetVisualFromFBConfig_dispatch_table_thunk;
4582    epoxy_glXGetVisualFromFBConfigSGIX = epoxy_glXGetVisualFromFBConfigSGIX_dispatch_table_thunk;
4583    epoxy_glXHyperpipeAttribSGIX = epoxy_glXHyperpipeAttribSGIX_dispatch_table_thunk;
4584    epoxy_glXHyperpipeConfigSGIX = epoxy_glXHyperpipeConfigSGIX_dispatch_table_thunk;
4585    epoxy_glXImportContextEXT = epoxy_glXImportContextEXT_dispatch_table_thunk;
4586    epoxy_glXIsDirect = epoxy_glXIsDirect_dispatch_table_thunk;
4587    epoxy_glXJoinSwapGroupNV = epoxy_glXJoinSwapGroupNV_dispatch_table_thunk;
4588    epoxy_glXJoinSwapGroupSGIX = epoxy_glXJoinSwapGroupSGIX_dispatch_table_thunk;
4589    epoxy_glXLockVideoCaptureDeviceNV = epoxy_glXLockVideoCaptureDeviceNV_dispatch_table_thunk;
4590    epoxy_glXMakeAssociatedContextCurrentAMD = epoxy_glXMakeAssociatedContextCurrentAMD_dispatch_table_thunk;
4591    epoxy_glXMakeContextCurrent = epoxy_glXMakeContextCurrent_dispatch_table_thunk;
4592    epoxy_glXMakeCurrent = epoxy_glXMakeCurrent_dispatch_table_thunk;
4593    epoxy_glXMakeCurrentReadSGI = epoxy_glXMakeCurrentReadSGI_dispatch_table_thunk;
4594    epoxy_glXNamedCopyBufferSubDataNV = epoxy_glXNamedCopyBufferSubDataNV_dispatch_table_thunk;
4595    epoxy_glXQueryChannelDeltasSGIX = epoxy_glXQueryChannelDeltasSGIX_dispatch_table_thunk;
4596    epoxy_glXQueryChannelRectSGIX = epoxy_glXQueryChannelRectSGIX_dispatch_table_thunk;
4597    epoxy_glXQueryContext = epoxy_glXQueryContext_dispatch_table_thunk;
4598    epoxy_glXQueryContextInfoEXT = epoxy_glXQueryContextInfoEXT_dispatch_table_thunk;
4599    epoxy_glXQueryCurrentRendererIntegerMESA = epoxy_glXQueryCurrentRendererIntegerMESA_dispatch_table_thunk;
4600    epoxy_glXQueryCurrentRendererStringMESA = epoxy_glXQueryCurrentRendererStringMESA_dispatch_table_thunk;
4601    epoxy_glXQueryDrawable = epoxy_glXQueryDrawable_dispatch_table_thunk;
4602    epoxy_glXQueryExtension = epoxy_glXQueryExtension_dispatch_table_thunk;
4603    epoxy_glXQueryExtensionsString = epoxy_glXQueryExtensionsString_dispatch_table_thunk;
4604    epoxy_glXQueryFrameCountNV = epoxy_glXQueryFrameCountNV_dispatch_table_thunk;
4605    epoxy_glXQueryGLXPbufferSGIX = epoxy_glXQueryGLXPbufferSGIX_dispatch_table_thunk;
4606    epoxy_glXQueryHyperpipeAttribSGIX = epoxy_glXQueryHyperpipeAttribSGIX_dispatch_table_thunk;
4607    epoxy_glXQueryHyperpipeBestAttribSGIX = epoxy_glXQueryHyperpipeBestAttribSGIX_dispatch_table_thunk;
4608    epoxy_glXQueryHyperpipeConfigSGIX = epoxy_glXQueryHyperpipeConfigSGIX_dispatch_table_thunk;
4609    epoxy_glXQueryHyperpipeNetworkSGIX = epoxy_glXQueryHyperpipeNetworkSGIX_dispatch_table_thunk;
4610    epoxy_glXQueryMaxSwapBarriersSGIX = epoxy_glXQueryMaxSwapBarriersSGIX_dispatch_table_thunk;
4611    epoxy_glXQueryMaxSwapGroupsNV = epoxy_glXQueryMaxSwapGroupsNV_dispatch_table_thunk;
4612    epoxy_glXQueryRendererIntegerMESA = epoxy_glXQueryRendererIntegerMESA_dispatch_table_thunk;
4613    epoxy_glXQueryRendererStringMESA = epoxy_glXQueryRendererStringMESA_dispatch_table_thunk;
4614    epoxy_glXQueryServerString = epoxy_glXQueryServerString_dispatch_table_thunk;
4615    epoxy_glXQuerySwapGroupNV = epoxy_glXQuerySwapGroupNV_dispatch_table_thunk;
4616    epoxy_glXQueryVersion = epoxy_glXQueryVersion_dispatch_table_thunk;
4617    epoxy_glXQueryVideoCaptureDeviceNV = epoxy_glXQueryVideoCaptureDeviceNV_dispatch_table_thunk;
4618    epoxy_glXReleaseBuffersMESA = epoxy_glXReleaseBuffersMESA_dispatch_table_thunk;
4619    epoxy_glXReleaseTexImageEXT = epoxy_glXReleaseTexImageEXT_dispatch_table_thunk;
4620    epoxy_glXReleaseVideoCaptureDeviceNV = epoxy_glXReleaseVideoCaptureDeviceNV_dispatch_table_thunk;
4621    epoxy_glXReleaseVideoDeviceNV = epoxy_glXReleaseVideoDeviceNV_dispatch_table_thunk;
4622    epoxy_glXReleaseVideoImageNV = epoxy_glXReleaseVideoImageNV_dispatch_table_thunk;
4623    epoxy_glXResetFrameCountNV = epoxy_glXResetFrameCountNV_dispatch_table_thunk;
4624    epoxy_glXSelectEvent = epoxy_glXSelectEvent_dispatch_table_thunk;
4625    epoxy_glXSelectEventSGIX = epoxy_glXSelectEventSGIX_dispatch_table_thunk;
4626    epoxy_glXSendPbufferToVideoNV = epoxy_glXSendPbufferToVideoNV_dispatch_table_thunk;
4627    epoxy_glXSet3DfxModeMESA = epoxy_glXSet3DfxModeMESA_dispatch_table_thunk;
4628    epoxy_glXSwapBuffers = epoxy_glXSwapBuffers_dispatch_table_thunk;
4629    epoxy_glXSwapBuffersMscOML = epoxy_glXSwapBuffersMscOML_dispatch_table_thunk;
4630    epoxy_glXSwapIntervalEXT = epoxy_glXSwapIntervalEXT_dispatch_table_thunk;
4631    epoxy_glXSwapIntervalMESA = epoxy_glXSwapIntervalMESA_dispatch_table_thunk;
4632    epoxy_glXSwapIntervalSGI = epoxy_glXSwapIntervalSGI_dispatch_table_thunk;
4633    epoxy_glXUseXFont = epoxy_glXUseXFont_dispatch_table_thunk;
4634    epoxy_glXWaitForMscOML = epoxy_glXWaitForMscOML_dispatch_table_thunk;
4635    epoxy_glXWaitForSbcOML = epoxy_glXWaitForSbcOML_dispatch_table_thunk;
4636    epoxy_glXWaitGL = epoxy_glXWaitGL_dispatch_table_thunk;
4637    epoxy_glXWaitVideoSyncSGI = epoxy_glXWaitVideoSyncSGI_dispatch_table_thunk;
4638    epoxy_glXWaitX = epoxy_glXWaitX_dispatch_table_thunk;
4639}
4640
4641#endif /* !USING_DISPATCH_TABLE */
4642PFNGLXBINDCHANNELTOWINDOWSGIXPROC epoxy_glXBindChannelToWindowSGIX = epoxy_glXBindChannelToWindowSGIX_global_rewrite_ptr;
4643
4644PFNGLXBINDHYPERPIPESGIXPROC epoxy_glXBindHyperpipeSGIX = epoxy_glXBindHyperpipeSGIX_global_rewrite_ptr;
4645
4646PFNGLXBINDSWAPBARRIERNVPROC epoxy_glXBindSwapBarrierNV = epoxy_glXBindSwapBarrierNV_global_rewrite_ptr;
4647
4648PFNGLXBINDSWAPBARRIERSGIXPROC epoxy_glXBindSwapBarrierSGIX = epoxy_glXBindSwapBarrierSGIX_global_rewrite_ptr;
4649
4650PFNGLXBINDTEXIMAGEEXTPROC epoxy_glXBindTexImageEXT = epoxy_glXBindTexImageEXT_global_rewrite_ptr;
4651
4652PFNGLXBINDVIDEOCAPTUREDEVICENVPROC epoxy_glXBindVideoCaptureDeviceNV = epoxy_glXBindVideoCaptureDeviceNV_global_rewrite_ptr;
4653
4654PFNGLXBINDVIDEODEVICENVPROC epoxy_glXBindVideoDeviceNV = epoxy_glXBindVideoDeviceNV_global_rewrite_ptr;
4655
4656PFNGLXBINDVIDEOIMAGENVPROC epoxy_glXBindVideoImageNV = epoxy_glXBindVideoImageNV_global_rewrite_ptr;
4657
4658PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC epoxy_glXBlitContextFramebufferAMD = epoxy_glXBlitContextFramebufferAMD_global_rewrite_ptr;
4659
4660PFNGLXCHANNELRECTSGIXPROC epoxy_glXChannelRectSGIX = epoxy_glXChannelRectSGIX_global_rewrite_ptr;
4661
4662PFNGLXCHANNELRECTSYNCSGIXPROC epoxy_glXChannelRectSyncSGIX = epoxy_glXChannelRectSyncSGIX_global_rewrite_ptr;
4663
4664PFNGLXCHOOSEFBCONFIGPROC epoxy_glXChooseFBConfig = epoxy_glXChooseFBConfig_global_rewrite_ptr;
4665
4666PFNGLXCHOOSEFBCONFIGSGIXPROC epoxy_glXChooseFBConfigSGIX = epoxy_glXChooseFBConfigSGIX_global_rewrite_ptr;
4667
4668PFNGLXCHOOSEVISUALPROC epoxy_glXChooseVisual = epoxy_glXChooseVisual_global_rewrite_ptr;
4669
4670PFNGLXCOPYBUFFERSUBDATANVPROC epoxy_glXCopyBufferSubDataNV = epoxy_glXCopyBufferSubDataNV_global_rewrite_ptr;
4671
4672PFNGLXCOPYCONTEXTPROC epoxy_glXCopyContext = epoxy_glXCopyContext_global_rewrite_ptr;
4673
4674PFNGLXCOPYIMAGESUBDATANVPROC epoxy_glXCopyImageSubDataNV = epoxy_glXCopyImageSubDataNV_global_rewrite_ptr;
4675
4676PFNGLXCOPYSUBBUFFERMESAPROC epoxy_glXCopySubBufferMESA = epoxy_glXCopySubBufferMESA_global_rewrite_ptr;
4677
4678PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC epoxy_glXCreateAssociatedContextAMD = epoxy_glXCreateAssociatedContextAMD_global_rewrite_ptr;
4679
4680PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC epoxy_glXCreateAssociatedContextAttribsAMD = epoxy_glXCreateAssociatedContextAttribsAMD_global_rewrite_ptr;
4681
4682PFNGLXCREATECONTEXTPROC epoxy_glXCreateContext = epoxy_glXCreateContext_global_rewrite_ptr;
4683
4684PFNGLXCREATECONTEXTATTRIBSARBPROC epoxy_glXCreateContextAttribsARB = epoxy_glXCreateContextAttribsARB_global_rewrite_ptr;
4685
4686PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC epoxy_glXCreateContextWithConfigSGIX = epoxy_glXCreateContextWithConfigSGIX_global_rewrite_ptr;
4687
4688PFNGLXCREATEGLXPBUFFERSGIXPROC epoxy_glXCreateGLXPbufferSGIX = epoxy_glXCreateGLXPbufferSGIX_global_rewrite_ptr;
4689
4690PFNGLXCREATEGLXPIXMAPPROC epoxy_glXCreateGLXPixmap = epoxy_glXCreateGLXPixmap_global_rewrite_ptr;
4691
4692PFNGLXCREATEGLXPIXMAPMESAPROC epoxy_glXCreateGLXPixmapMESA = epoxy_glXCreateGLXPixmapMESA_global_rewrite_ptr;
4693
4694PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC epoxy_glXCreateGLXPixmapWithConfigSGIX = epoxy_glXCreateGLXPixmapWithConfigSGIX_global_rewrite_ptr;
4695
4696PFNGLXCREATENEWCONTEXTPROC epoxy_glXCreateNewContext = epoxy_glXCreateNewContext_global_rewrite_ptr;
4697
4698PFNGLXCREATEPBUFFERPROC epoxy_glXCreatePbuffer = epoxy_glXCreatePbuffer_global_rewrite_ptr;
4699
4700PFNGLXCREATEPIXMAPPROC epoxy_glXCreatePixmap = epoxy_glXCreatePixmap_global_rewrite_ptr;
4701
4702PFNGLXCREATEWINDOWPROC epoxy_glXCreateWindow = epoxy_glXCreateWindow_global_rewrite_ptr;
4703
4704PFNGLXCUSHIONSGIPROC epoxy_glXCushionSGI = epoxy_glXCushionSGI_global_rewrite_ptr;
4705
4706PFNGLXDELAYBEFORESWAPNVPROC epoxy_glXDelayBeforeSwapNV = epoxy_glXDelayBeforeSwapNV_global_rewrite_ptr;
4707
4708PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC epoxy_glXDeleteAssociatedContextAMD = epoxy_glXDeleteAssociatedContextAMD_global_rewrite_ptr;
4709
4710PFNGLXDESTROYCONTEXTPROC epoxy_glXDestroyContext = epoxy_glXDestroyContext_global_rewrite_ptr;
4711
4712PFNGLXDESTROYGLXPBUFFERSGIXPROC epoxy_glXDestroyGLXPbufferSGIX = epoxy_glXDestroyGLXPbufferSGIX_global_rewrite_ptr;
4713
4714PFNGLXDESTROYGLXPIXMAPPROC epoxy_glXDestroyGLXPixmap = epoxy_glXDestroyGLXPixmap_global_rewrite_ptr;
4715
4716PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC epoxy_glXDestroyGLXVideoSourceSGIX = epoxy_glXDestroyGLXVideoSourceSGIX_global_rewrite_ptr;
4717
4718PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC epoxy_glXDestroyHyperpipeConfigSGIX = epoxy_glXDestroyHyperpipeConfigSGIX_global_rewrite_ptr;
4719
4720PFNGLXDESTROYPBUFFERPROC epoxy_glXDestroyPbuffer = epoxy_glXDestroyPbuffer_global_rewrite_ptr;
4721
4722PFNGLXDESTROYPIXMAPPROC epoxy_glXDestroyPixmap = epoxy_glXDestroyPixmap_global_rewrite_ptr;
4723
4724PFNGLXDESTROYWINDOWPROC epoxy_glXDestroyWindow = epoxy_glXDestroyWindow_global_rewrite_ptr;
4725
4726PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC epoxy_glXEnumerateVideoCaptureDevicesNV = epoxy_glXEnumerateVideoCaptureDevicesNV_global_rewrite_ptr;
4727
4728PFNGLXENUMERATEVIDEODEVICESNVPROC epoxy_glXEnumerateVideoDevicesNV = epoxy_glXEnumerateVideoDevicesNV_global_rewrite_ptr;
4729
4730PFNGLXFREECONTEXTEXTPROC epoxy_glXFreeContextEXT = epoxy_glXFreeContextEXT_global_rewrite_ptr;
4731
4732PFNGLXGETAGPOFFSETMESAPROC epoxy_glXGetAGPOffsetMESA = epoxy_glXGetAGPOffsetMESA_global_rewrite_ptr;
4733
4734PFNGLXGETCLIENTSTRINGPROC epoxy_glXGetClientString = epoxy_glXGetClientString_global_rewrite_ptr;
4735
4736PFNGLXGETCONFIGPROC epoxy_glXGetConfig = epoxy_glXGetConfig_global_rewrite_ptr;
4737
4738PFNGLXGETCONTEXTGPUIDAMDPROC epoxy_glXGetContextGPUIDAMD = epoxy_glXGetContextGPUIDAMD_global_rewrite_ptr;
4739
4740PFNGLXGETCONTEXTIDEXTPROC epoxy_glXGetContextIDEXT = epoxy_glXGetContextIDEXT_global_rewrite_ptr;
4741
4742PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC epoxy_glXGetCurrentAssociatedContextAMD = epoxy_glXGetCurrentAssociatedContextAMD_global_rewrite_ptr;
4743
4744PFNGLXGETCURRENTCONTEXTPROC epoxy_glXGetCurrentContext = epoxy_glXGetCurrentContext_global_rewrite_ptr;
4745
4746PFNGLXGETCURRENTDISPLAYPROC epoxy_glXGetCurrentDisplay = epoxy_glXGetCurrentDisplay_global_rewrite_ptr;
4747
4748PFNGLXGETCURRENTDISPLAYEXTPROC epoxy_glXGetCurrentDisplayEXT = epoxy_glXGetCurrentDisplayEXT_global_rewrite_ptr;
4749
4750PFNGLXGETCURRENTDRAWABLEPROC epoxy_glXGetCurrentDrawable = epoxy_glXGetCurrentDrawable_global_rewrite_ptr;
4751
4752PFNGLXGETCURRENTREADDRAWABLEPROC epoxy_glXGetCurrentReadDrawable = epoxy_glXGetCurrentReadDrawable_global_rewrite_ptr;
4753
4754PFNGLXGETCURRENTREADDRAWABLESGIPROC epoxy_glXGetCurrentReadDrawableSGI = epoxy_glXGetCurrentReadDrawableSGI_global_rewrite_ptr;
4755
4756PFNGLXGETFBCONFIGATTRIBPROC epoxy_glXGetFBConfigAttrib = epoxy_glXGetFBConfigAttrib_global_rewrite_ptr;
4757
4758PFNGLXGETFBCONFIGATTRIBSGIXPROC epoxy_glXGetFBConfigAttribSGIX = epoxy_glXGetFBConfigAttribSGIX_global_rewrite_ptr;
4759
4760PFNGLXGETFBCONFIGFROMVISUALSGIXPROC epoxy_glXGetFBConfigFromVisualSGIX = epoxy_glXGetFBConfigFromVisualSGIX_global_rewrite_ptr;
4761
4762PFNGLXGETFBCONFIGSPROC epoxy_glXGetFBConfigs = epoxy_glXGetFBConfigs_global_rewrite_ptr;
4763
4764PFNGLXGETGPUIDSAMDPROC epoxy_glXGetGPUIDsAMD = epoxy_glXGetGPUIDsAMD_global_rewrite_ptr;
4765
4766PFNGLXGETGPUINFOAMDPROC epoxy_glXGetGPUInfoAMD = epoxy_glXGetGPUInfoAMD_global_rewrite_ptr;
4767
4768PFNGLXGETMSCRATEOMLPROC epoxy_glXGetMscRateOML = epoxy_glXGetMscRateOML_global_rewrite_ptr;
4769
4770PFNGLXGETPROCADDRESSPROC epoxy_glXGetProcAddress = epoxy_glXGetProcAddress_global_rewrite_ptr;
4771
4772PFNGLXGETPROCADDRESSARBPROC epoxy_glXGetProcAddressARB = epoxy_glXGetProcAddressARB_global_rewrite_ptr;
4773
4774PFNGLXGETSELECTEDEVENTPROC epoxy_glXGetSelectedEvent = epoxy_glXGetSelectedEvent_global_rewrite_ptr;
4775
4776PFNGLXGETSELECTEDEVENTSGIXPROC epoxy_glXGetSelectedEventSGIX = epoxy_glXGetSelectedEventSGIX_global_rewrite_ptr;
4777
4778PFNGLXGETSWAPINTERVALMESAPROC epoxy_glXGetSwapIntervalMESA = epoxy_glXGetSwapIntervalMESA_global_rewrite_ptr;
4779
4780PFNGLXGETSYNCVALUESOMLPROC epoxy_glXGetSyncValuesOML = epoxy_glXGetSyncValuesOML_global_rewrite_ptr;
4781
4782PFNGLXGETTRANSPARENTINDEXSUNPROC epoxy_glXGetTransparentIndexSUN = epoxy_glXGetTransparentIndexSUN_global_rewrite_ptr;
4783
4784PFNGLXGETVIDEODEVICENVPROC epoxy_glXGetVideoDeviceNV = epoxy_glXGetVideoDeviceNV_global_rewrite_ptr;
4785
4786PFNGLXGETVIDEOINFONVPROC epoxy_glXGetVideoInfoNV = epoxy_glXGetVideoInfoNV_global_rewrite_ptr;
4787
4788PFNGLXGETVIDEOSYNCSGIPROC epoxy_glXGetVideoSyncSGI = epoxy_glXGetVideoSyncSGI_global_rewrite_ptr;
4789
4790PFNGLXGETVISUALFROMFBCONFIGPROC epoxy_glXGetVisualFromFBConfig = epoxy_glXGetVisualFromFBConfig_global_rewrite_ptr;
4791
4792PFNGLXGETVISUALFROMFBCONFIGSGIXPROC epoxy_glXGetVisualFromFBConfigSGIX = epoxy_glXGetVisualFromFBConfigSGIX_global_rewrite_ptr;
4793
4794PFNGLXHYPERPIPEATTRIBSGIXPROC epoxy_glXHyperpipeAttribSGIX = epoxy_glXHyperpipeAttribSGIX_global_rewrite_ptr;
4795
4796PFNGLXHYPERPIPECONFIGSGIXPROC epoxy_glXHyperpipeConfigSGIX = epoxy_glXHyperpipeConfigSGIX_global_rewrite_ptr;
4797
4798PFNGLXIMPORTCONTEXTEXTPROC epoxy_glXImportContextEXT = epoxy_glXImportContextEXT_global_rewrite_ptr;
4799
4800PFNGLXISDIRECTPROC epoxy_glXIsDirect = epoxy_glXIsDirect_global_rewrite_ptr;
4801
4802PFNGLXJOINSWAPGROUPNVPROC epoxy_glXJoinSwapGroupNV = epoxy_glXJoinSwapGroupNV_global_rewrite_ptr;
4803
4804PFNGLXJOINSWAPGROUPSGIXPROC epoxy_glXJoinSwapGroupSGIX = epoxy_glXJoinSwapGroupSGIX_global_rewrite_ptr;
4805
4806PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC epoxy_glXLockVideoCaptureDeviceNV = epoxy_glXLockVideoCaptureDeviceNV_global_rewrite_ptr;
4807
4808PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC epoxy_glXMakeAssociatedContextCurrentAMD = epoxy_glXMakeAssociatedContextCurrentAMD_global_rewrite_ptr;
4809
4810PFNGLXMAKECONTEXTCURRENTPROC epoxy_glXMakeContextCurrent = epoxy_glXMakeContextCurrent_global_rewrite_ptr;
4811
4812PFNGLXMAKECURRENTPROC epoxy_glXMakeCurrent = epoxy_glXMakeCurrent_global_rewrite_ptr;
4813
4814PFNGLXMAKECURRENTREADSGIPROC epoxy_glXMakeCurrentReadSGI = epoxy_glXMakeCurrentReadSGI_global_rewrite_ptr;
4815
4816PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC epoxy_glXNamedCopyBufferSubDataNV = epoxy_glXNamedCopyBufferSubDataNV_global_rewrite_ptr;
4817
4818PFNGLXQUERYCHANNELDELTASSGIXPROC epoxy_glXQueryChannelDeltasSGIX = epoxy_glXQueryChannelDeltasSGIX_global_rewrite_ptr;
4819
4820PFNGLXQUERYCHANNELRECTSGIXPROC epoxy_glXQueryChannelRectSGIX = epoxy_glXQueryChannelRectSGIX_global_rewrite_ptr;
4821
4822PFNGLXQUERYCONTEXTPROC epoxy_glXQueryContext = epoxy_glXQueryContext_global_rewrite_ptr;
4823
4824PFNGLXQUERYCONTEXTINFOEXTPROC epoxy_glXQueryContextInfoEXT = epoxy_glXQueryContextInfoEXT_global_rewrite_ptr;
4825
4826PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC epoxy_glXQueryCurrentRendererIntegerMESA = epoxy_glXQueryCurrentRendererIntegerMESA_global_rewrite_ptr;
4827
4828PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC epoxy_glXQueryCurrentRendererStringMESA = epoxy_glXQueryCurrentRendererStringMESA_global_rewrite_ptr;
4829
4830PFNGLXQUERYDRAWABLEPROC epoxy_glXQueryDrawable = epoxy_glXQueryDrawable_global_rewrite_ptr;
4831
4832PFNGLXQUERYEXTENSIONPROC epoxy_glXQueryExtension = epoxy_glXQueryExtension_global_rewrite_ptr;
4833
4834PFNGLXQUERYEXTENSIONSSTRINGPROC epoxy_glXQueryExtensionsString = epoxy_glXQueryExtensionsString_global_rewrite_ptr;
4835
4836PFNGLXQUERYFRAMECOUNTNVPROC epoxy_glXQueryFrameCountNV = epoxy_glXQueryFrameCountNV_global_rewrite_ptr;
4837
4838PFNGLXQUERYGLXPBUFFERSGIXPROC epoxy_glXQueryGLXPbufferSGIX = epoxy_glXQueryGLXPbufferSGIX_global_rewrite_ptr;
4839
4840PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC epoxy_glXQueryHyperpipeAttribSGIX = epoxy_glXQueryHyperpipeAttribSGIX_global_rewrite_ptr;
4841
4842PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC epoxy_glXQueryHyperpipeBestAttribSGIX = epoxy_glXQueryHyperpipeBestAttribSGIX_global_rewrite_ptr;
4843
4844PFNGLXQUERYHYPERPIPECONFIGSGIXPROC epoxy_glXQueryHyperpipeConfigSGIX = epoxy_glXQueryHyperpipeConfigSGIX_global_rewrite_ptr;
4845
4846PFNGLXQUERYHYPERPIPENETWORKSGIXPROC epoxy_glXQueryHyperpipeNetworkSGIX = epoxy_glXQueryHyperpipeNetworkSGIX_global_rewrite_ptr;
4847
4848PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC epoxy_glXQueryMaxSwapBarriersSGIX = epoxy_glXQueryMaxSwapBarriersSGIX_global_rewrite_ptr;
4849
4850PFNGLXQUERYMAXSWAPGROUPSNVPROC epoxy_glXQueryMaxSwapGroupsNV = epoxy_glXQueryMaxSwapGroupsNV_global_rewrite_ptr;
4851
4852PFNGLXQUERYRENDERERINTEGERMESAPROC epoxy_glXQueryRendererIntegerMESA = epoxy_glXQueryRendererIntegerMESA_global_rewrite_ptr;
4853
4854PFNGLXQUERYRENDERERSTRINGMESAPROC epoxy_glXQueryRendererStringMESA = epoxy_glXQueryRendererStringMESA_global_rewrite_ptr;
4855
4856PFNGLXQUERYSERVERSTRINGPROC epoxy_glXQueryServerString = epoxy_glXQueryServerString_global_rewrite_ptr;
4857
4858PFNGLXQUERYSWAPGROUPNVPROC epoxy_glXQuerySwapGroupNV = epoxy_glXQuerySwapGroupNV_global_rewrite_ptr;
4859
4860PFNGLXQUERYVERSIONPROC epoxy_glXQueryVersion = epoxy_glXQueryVersion_global_rewrite_ptr;
4861
4862PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC epoxy_glXQueryVideoCaptureDeviceNV = epoxy_glXQueryVideoCaptureDeviceNV_global_rewrite_ptr;
4863
4864PFNGLXRELEASEBUFFERSMESAPROC epoxy_glXReleaseBuffersMESA = epoxy_glXReleaseBuffersMESA_global_rewrite_ptr;
4865
4866PFNGLXRELEASETEXIMAGEEXTPROC epoxy_glXReleaseTexImageEXT = epoxy_glXReleaseTexImageEXT_global_rewrite_ptr;
4867
4868PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC epoxy_glXReleaseVideoCaptureDeviceNV = epoxy_glXReleaseVideoCaptureDeviceNV_global_rewrite_ptr;
4869
4870PFNGLXRELEASEVIDEODEVICENVPROC epoxy_glXReleaseVideoDeviceNV = epoxy_glXReleaseVideoDeviceNV_global_rewrite_ptr;
4871
4872PFNGLXRELEASEVIDEOIMAGENVPROC epoxy_glXReleaseVideoImageNV = epoxy_glXReleaseVideoImageNV_global_rewrite_ptr;
4873
4874PFNGLXRESETFRAMECOUNTNVPROC epoxy_glXResetFrameCountNV = epoxy_glXResetFrameCountNV_global_rewrite_ptr;
4875
4876PFNGLXSELECTEVENTPROC epoxy_glXSelectEvent = epoxy_glXSelectEvent_global_rewrite_ptr;
4877
4878PFNGLXSELECTEVENTSGIXPROC epoxy_glXSelectEventSGIX = epoxy_glXSelectEventSGIX_global_rewrite_ptr;
4879
4880PFNGLXSENDPBUFFERTOVIDEONVPROC epoxy_glXSendPbufferToVideoNV = epoxy_glXSendPbufferToVideoNV_global_rewrite_ptr;
4881
4882PFNGLXSET3DFXMODEMESAPROC epoxy_glXSet3DfxModeMESA = epoxy_glXSet3DfxModeMESA_global_rewrite_ptr;
4883
4884PFNGLXSWAPBUFFERSPROC epoxy_glXSwapBuffers = epoxy_glXSwapBuffers_global_rewrite_ptr;
4885
4886PFNGLXSWAPBUFFERSMSCOMLPROC epoxy_glXSwapBuffersMscOML = epoxy_glXSwapBuffersMscOML_global_rewrite_ptr;
4887
4888PFNGLXSWAPINTERVALEXTPROC epoxy_glXSwapIntervalEXT = epoxy_glXSwapIntervalEXT_global_rewrite_ptr;
4889
4890PFNGLXSWAPINTERVALMESAPROC epoxy_glXSwapIntervalMESA = epoxy_glXSwapIntervalMESA_global_rewrite_ptr;
4891
4892PFNGLXSWAPINTERVALSGIPROC epoxy_glXSwapIntervalSGI = epoxy_glXSwapIntervalSGI_global_rewrite_ptr;
4893
4894PFNGLXUSEXFONTPROC epoxy_glXUseXFont = epoxy_glXUseXFont_global_rewrite_ptr;
4895
4896PFNGLXWAITFORMSCOMLPROC epoxy_glXWaitForMscOML = epoxy_glXWaitForMscOML_global_rewrite_ptr;
4897
4898PFNGLXWAITFORSBCOMLPROC epoxy_glXWaitForSbcOML = epoxy_glXWaitForSbcOML_global_rewrite_ptr;
4899
4900PFNGLXWAITGLPROC epoxy_glXWaitGL = epoxy_glXWaitGL_global_rewrite_ptr;
4901
4902PFNGLXWAITVIDEOSYNCSGIPROC epoxy_glXWaitVideoSyncSGI = epoxy_glXWaitVideoSyncSGI_global_rewrite_ptr;
4903
4904PFNGLXWAITXPROC epoxy_glXWaitX = epoxy_glXWaitX_global_rewrite_ptr;
4905
4906