3 * Mesa 3-D graphics library
5 * Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
7 * Permission is hereby granted, free of charge, to any person obtaining a
8 * copy of this software and associated documentation files (the "Software"),
9 * to deal in the Software without restriction, including without limitation
10 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 * and/or sell copies of the Software, and to permit persons to whom the
12 * Software is furnished to do so, subject to the following conditions:
14 * The above copyright notice and this permission notice shall be included
15 * in all copies or substantial portions of the Software.
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
21 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23 * OTHER DEALINGS IN THE SOFTWARE.
33 struct _glxapi_table
*
34 _real_GetGLXDispatchTable(void)
36 static struct _glxapi_table glx
;
38 /* be sure our dispatch table size <= libGL's table */
40 GLuint size
= sizeof(struct _glxapi_table
) / sizeof(void *);
42 assert(_glxapi_get_dispatch_table_size() >= size
);
45 /* initialize the whole table to no-ops */
46 _glxapi_set_no_op_table(&glx
);
48 /* now initialize the table with the functions I implement */
50 /*** GLX_VERSION_1_0 ***/
51 glx
.ChooseVisual
= _real_glXChooseVisual
;
52 glx
.CopyContext
= _real_glXCopyContext
;
53 glx
.CreateContext
= _real_glXCreateContext
;
54 glx
.CreateGLXPixmap
= _real_glXCreateGLXPixmap
;
55 glx
.DestroyContext
= _real_glXDestroyContext
;
56 glx
.DestroyGLXPixmap
= _real_glXDestroyGLXPixmap
;
57 glx
.GetConfig
= _real_glXGetConfig
;
58 /*glx.GetCurrentContext = _real_glXGetCurrentContext;*/
59 /*glx.GetCurrentDrawable = _real_glXGetCurrentDrawable;*/
60 glx
.IsDirect
= _real_glXIsDirect
;
61 glx
.MakeCurrent
= _real_glXMakeCurrent
;
62 glx
.QueryExtension
= _real_glXQueryExtension
;
63 glx
.QueryVersion
= _real_glXQueryVersion
;
64 glx
.SwapBuffers
= _real_glXSwapBuffers
;
65 glx
.UseXFont
= _real_glXUseXFont
;
66 glx
.WaitGL
= _real_glXWaitGL
;
67 glx
.WaitX
= _real_glXWaitX
;
69 /*** GLX_VERSION_1_1 ***/
70 glx
.GetClientString
= _real_glXGetClientString
;
71 glx
.QueryExtensionsString
= _real_glXQueryExtensionsString
;
72 glx
.QueryServerString
= _real_glXQueryServerString
;
74 /*** GLX_VERSION_1_2 ***/
75 /*glx.GetCurrentDisplay = _real_glXGetCurrentDisplay;*/
77 /*** GLX_VERSION_1_3 ***/
78 glx
.ChooseFBConfig
= _real_glXChooseFBConfig
;
79 glx
.CreateNewContext
= _real_glXCreateNewContext
;
80 glx
.CreatePbuffer
= _real_glXCreatePbuffer
;
81 glx
.CreatePixmap
= _real_glXCreatePixmap
;
82 glx
.CreateWindow
= _real_glXCreateWindow
;
83 glx
.DestroyPbuffer
= _real_glXDestroyPbuffer
;
84 glx
.DestroyPixmap
= _real_glXDestroyPixmap
;
85 glx
.DestroyWindow
= _real_glXDestroyWindow
;
86 /*glx.GetCurrentReadDrawable = _real_glXGetCurrentReadDrawable;*/
87 glx
.GetFBConfigAttrib
= _real_glXGetFBConfigAttrib
;
88 glx
.GetFBConfigs
= _real_glXGetFBConfigs
;
89 glx
.GetSelectedEvent
= _real_glXGetSelectedEvent
;
90 glx
.GetVisualFromFBConfig
= _real_glXGetVisualFromFBConfig
;
91 glx
.MakeContextCurrent
= _real_glXMakeContextCurrent
;
92 glx
.QueryContext
= _real_glXQueryContext
;
93 glx
.QueryDrawable
= _real_glXQueryDrawable
;
94 glx
.SelectEvent
= _real_glXSelectEvent
;
96 /*** GLX_SGI_swap_control ***/
97 glx
.SwapIntervalSGI
= _real_glXSwapIntervalSGI
;
99 /*** GLX_SGI_video_sync ***/
100 glx
.GetVideoSyncSGI
= _real_glXGetVideoSyncSGI
;
101 glx
.WaitVideoSyncSGI
= _real_glXWaitVideoSyncSGI
;
103 /*** GLX_SGI_make_current_read ***/
104 glx
.MakeCurrentReadSGI
= _real_glXMakeCurrentReadSGI
;
105 /*glx.GetCurrentReadDrawableSGI = _real_glXGetCurrentReadDrawableSGI;*/
108 /*** GLX_SGIX_video_source ***/
109 glx
.CreateGLXVideoSourceSGIX
= _real_glXCreateGLXVideoSourceSGIX
;
110 glx
.DestroyGLXVideoSourceSGIX
= _real_glXDestroyGLXVideoSourceSGIX
;
113 /*** GLX_EXT_import_context ***/
114 glx
.FreeContextEXT
= _real_glXFreeContextEXT
;
115 /*glx.GetContextIDEXT = _real_glXGetContextIDEXT;*/
116 /*glx.GetCurrentDisplayEXT = _real_glXGetCurrentDisplayEXT;*/
117 glx
.ImportContextEXT
= _real_glXImportContextEXT
;
118 glx
.QueryContextInfoEXT
= _real_glXQueryContextInfoEXT
;
120 /*** GLX_SGIX_fbconfig ***/
121 glx
.GetFBConfigAttribSGIX
= _real_glXGetFBConfigAttribSGIX
;
122 glx
.ChooseFBConfigSGIX
= _real_glXChooseFBConfigSGIX
;
123 glx
.CreateGLXPixmapWithConfigSGIX
= _real_glXCreateGLXPixmapWithConfigSGIX
;
124 glx
.CreateContextWithConfigSGIX
= _real_glXCreateContextWithConfigSGIX
;
125 glx
.GetVisualFromFBConfigSGIX
= _real_glXGetVisualFromFBConfigSGIX
;
126 glx
.GetFBConfigFromVisualSGIX
= _real_glXGetFBConfigFromVisualSGIX
;
128 /*** GLX_SGIX_pbuffer ***/
129 glx
.CreateGLXPbufferSGIX
= _real_glXCreateGLXPbufferSGIX
;
130 glx
.DestroyGLXPbufferSGIX
= _real_glXDestroyGLXPbufferSGIX
;
131 glx
.QueryGLXPbufferSGIX
= _real_glXQueryGLXPbufferSGIX
;
132 glx
.SelectEventSGIX
= _real_glXSelectEventSGIX
;
133 glx
.GetSelectedEventSGIX
= _real_glXGetSelectedEventSGIX
;
135 /*** GLX_SGI_cushion ***/
136 glx
.CushionSGI
= _real_glXCushionSGI
;
138 /*** GLX_SGIX_video_resize ***/
139 glx
.BindChannelToWindowSGIX
= _real_glXBindChannelToWindowSGIX
;
140 glx
.ChannelRectSGIX
= _real_glXChannelRectSGIX
;
141 glx
.QueryChannelRectSGIX
= _real_glXQueryChannelRectSGIX
;
142 glx
.QueryChannelDeltasSGIX
= _real_glXQueryChannelDeltasSGIX
;
143 glx
.ChannelRectSyncSGIX
= _real_glXChannelRectSyncSGIX
;
145 #if defined(_DM_BUFFER_H_)
146 /*** (GLX_SGIX_dmbuffer ***/
147 glx
.AssociateDMPbufferSGIX
= NULL
;
150 /*** GLX_SGIX_swap_group ***/
151 glx
.JoinSwapGroupSGIX
= _real_glXJoinSwapGroupSGIX
;
153 /*** GLX_SGIX_swap_barrier ***/
154 glx
.BindSwapBarrierSGIX
= _real_glXBindSwapBarrierSGIX
;
155 glx
.QueryMaxSwapBarriersSGIX
= _real_glXQueryMaxSwapBarriersSGIX
;
157 /*** GLX_SUN_get_transparent_index ***/
158 glx
.GetTransparentIndexSUN
= _real_glXGetTransparentIndexSUN
;
160 /*** GLX_MESA_copy_sub_buffer ***/
161 glx
.CopySubBufferMESA
= _real_glXCopySubBufferMESA
;
163 /*** GLX_MESA_release_buffers ***/
164 glx
.ReleaseBuffersMESA
= _real_glXReleaseBuffersMESA
;
166 /*** GLX_MESA_pixmap_colormap ***/
167 glx
.CreateGLXPixmapMESA
= _real_glXCreateGLXPixmapMESA
;
169 /*** GLX_MESA_set_3dfx_mode ***/
170 glx
.Set3DfxModeMESA
= _real_glXSet3DfxModeMESA
;
172 /*** GLX_NV_vertex_array_range ***/
173 glx
.AllocateMemoryNV
= _real_glXAllocateMemoryNV
;
174 glx
.FreeMemoryNV
= _real_glXFreeMemoryNV
;
176 /*** GLX_MESA_agp_offset ***/
177 glx
.GetAGPOffsetMESA
= _real_glXGetAGPOffsetMESA
;