root/trunk/gl/glxext.d

Revision 157, 18.1 kB (checked in by jpelcis, 6 years ago)

Added an OpenAL implementation with ALUT.

Added an OpenGL implementation with all extensions, GLU, and GLUT.

Removed a second copy of d3d9.d.

Line 
1 module c.gl.glxext;
2
3 version (linux) {
4 private import c.gl.gl, c.gl.glx;
5 private import std.loader;
6
7 /*
8  * Constants
9  */
10 /*
11  * ARB Extensions
12  */
13 // 5 - GLX_ARB_multisample
14 const GLuint GLX_SAMPLE_BUFFERS_ARB     = 100000;
15 const GLuint GLX_SAMPLES_ARB            = 100001;
16
17 // 39 - GLX_ARB_fbconfig_float
18 const GLuint GLX_RGBA_FLOAT_TYPE_ARB        = 0x20B9;
19 const GLuint GLX_RGBA_FLOAT_BIT_ARB     = 0x00000004;
20
21 /*
22  * Non-ARB Extensions
23  */
24 // 25 - GLX_SGIS_multisample
25 const GLuint GLX_SAMPLE_BUFFERS_SGIS        = 100000;
26 const GLuint GLX_SAMPLES_SGIS           = 100001;
27
28 // 28 - GLX_EXT_visual_info
29 const GLuint GLX_X_VISUAL_TYPE_EXT      = 0x22;
30 const GLuint GLX_TRANSPARENT_TYPE_EXT       = 0x23;
31 const GLuint GLX_TRANSPARENT_INDEX_VALUE_EXT    = 0x24;
32 const GLuint GLX_TRANSPARENT_RED_VALUE_EXT  = 0x25;
33 const GLuint GLX_TRANSPARENT_GREEN_VALUE_EXT    = 0x26;
34 const GLuint GLX_TRANSPARENT_BLUE_VALUE_EXT = 0x27;
35 const GLuint GLX_TRANSPARENT_ALPHA_VALUE_EXT    = 0x28;
36 const GLuint GLX_NONE_EXT           = 0x8000;
37 const GLuint GLX_TRUE_COLOR_EXT         = 0x8002;
38 const GLuint GLX_DIRECT_COLOR_EXT       = 0x8003;
39 const GLuint GLX_PSEUDO_COLOR_EXT       = 0x8004;
40 const GLuint GLX_STATIC_COLOR_EXT       = 0x8005;
41 const GLuint GLX_GRAY_SCALE_EXT         = 0x8006;
42 const GLuint GLX_STATIC_GRAY_EXT        = 0x8007;
43 const GLuint GLX_TRANSPARENT_RGB_EXT        = 0x8008;
44 const GLuint GLX_TRANSPARENT_INDEX_EXT      = 0x8009;
45
46 // 44 - GLX_EXT_visual_rating
47 const GLuint GLX_VISUAL_CAVEAT_EXT      = 0x20;
48 const GLuint GLX_SLOW_VISUAL_EXT        = 0x8001;
49 const GLuint GLX_NON_CONFORMANT_VISUAL_EXT  = 0x800D;
50
51 // 47 - GLX_EXT_import_context
52 const GLuint GLX_SHARE_CONTEXT_EXT      = 0x800A;
53 const GLuint GLX_VISUAL_ID_EXT          = 0x800B;
54 const GLuint GLX_SCREEN_EXT         = 0x800C;
55
56 // 48 - GLX_SGIX_fbconfig
57 const GLuint GLX_WINDOW_BIT_SGIX        = 0x00000001;
58 const GLuint GLX_PIXMAP_BIT_SGIX        = 0x00000002;
59 const GLuint GLX_RGBA_BIT_SGIX          = 0x00000001;
60 const GLuint GLX_COLOR_INDEX_BIT_SGIX       = 0x00000002;
61 const GLuint GLX_DRAWABLE_TYPE_SGIX     = 0x8010;
62 const GLuint GLX_RENDER_TYPE_SGIX       = 0x8011;
63 const GLuint GLX_X_RENDERABLE_SGIX      = 0x8012;
64 const GLuint GLX_FBCONFIG_ID_SGIX       = 0x8013;
65 const GLuint GLX_RGBA_TYPE_SGIX         = 0x8014;
66 const GLuint GLX_COLOR_INDEX_TYPE_SGIX      = 0x8015;
67
68 // 50 - GLX_SGIX_pbuffer
69 const GLuint GLX_PBUFFER_BIT_SGIX       = 0x00000004;
70 const GLuint GLX_BUFFER_CLOBBER_MASK_SGIX   = 0x08000000;
71 const GLuint GLX_FRONT_LEFT_BUFFER_BIT_SGIX = 0x00000001;
72 const GLuint GLX_FRONT_RIGHT_BUFFER_BIT_SGIX    = 0x00000002;
73 const GLuint GLX_BACK_LEFT_BUFFER_BIT_SGIX  = 0x00000004;
74 const GLuint GLX_BACK_RIGHT_BUFFER_BIT_SGIX = 0x00000008;
75 const GLuint GLX_AUX_BUFFERS_BIT_SGIX       = 0x00000010;
76 const GLuint GLX_DEPTH_BUFFER_BIT_SGIX      = 0x00000020;
77 const GLuint GLX_STENCIL_BUFFER_BIT_SGIX    = 0x00000040;
78 const GLuint GLX_ACCUM_BUFFER_BIT_SGIX      = 0x00000080;
79 const GLuint GLX_SAMPLE_BUFFERS_BIT_SGIX    = 0x00000100;
80 const GLuint GLX_MAX_PBUFFER_WIDTH_SGIX     = 0x8016;
81 const GLuint GLX_MAX_PBUFFER_HEIGHT_SGIX    = 0x8017;
82 const GLuint GLX_MAX_PBUFFER_PIXELS_SGIX    = 0x8018;
83 const GLuint GLX_OPTIMAL_PBUFFER_WIDTH_SGIX = 0x8019;
84 const GLuint GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX    = 0x801A;
85 const GLuint GLX_PRESERVED_CONTENTS_SGIX    = 0x801B;
86 const GLuint GLX_LARGEST_PBUFFER_SGIX       = 0x801C;
87 const GLuint GLX_WIDTH_SGIX         = 0x801D;
88 const GLuint GLX_HEIGHT_SGIX            = 0x801E;
89 const GLuint GLX_EVENT_MASK_SGIX        = 0x801F;
90 const GLuint GLX_DAMAGED_SGIX           = 0x8020;
91 const GLuint GLX_SAVED_SGIX         = 0x8021;
92 const GLuint GLX_WINDOW_SGIX            = 0x8022;
93 const GLuint GLX_PBUFFER_SGIX           = 0x8023;
94
95 // 83 - GLX_SGIX_video_resize
96 const GLuint GLX_SYNC_FRAME_SGIX        = 0x00000000;
97 const GLuint GLX_SYNC_SWAP_SGIX         = 0x00000001;
98
99 // 142 - GLX_SGIS_blended_overlay
100 const GLuint GLX_BLENDED_RGBA_SGIS      = 0x8025;
101
102 // 207 - GLX_3DFX_multisample
103 const GLuint GLX_SAMPLE_BUFFERS_3DFX        = 0x8050;
104 const GLuint GLX_SAMPLES_3DFX           = 0x8051;
105
106 // 218 - GLX_MESA_set_3dfx_mode
107 const GLuint GLX_3DFX_WINDOW_MODE_MESA      = 0x1;
108 const GLuint GLX_3DFX_FULLSCREEN_MODE_MESA  = 0x2;
109
110 // 234 - GLX_SGIX_visual_select_group
111 const GLuint GLX_VISUAL_SELECT_GROUP_SGIX   = 0x8028;
112
113 // 237 - GLX_OML_swap_method
114 const GLuint GLX_SWAP_METHOD_OML        = 0x8060;
115 const GLuint GLX_SWAP_EXCHANGE_OML      = 0x8061;
116 const GLuint GLX_SWAP_COPY_OML          = 0x8062;
117 const GLuint GLX_SWAP_UNDEFINED_OML     = 0x8063;
118
119 // 307 - GLX_SGIX_hyperpipe
120 const GLuint GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX= 80;
121 const GLuint GLX_BAD_HYPERPIPE_CONFIG_SGIX  = 91;
122 const GLuint GLX_BAD_HYPERPIPE_SGIX     = 92;
123 const GLuint GLX_HYPERPIPE_DISPLAY_PIPE_SGIX    = 0x00000001;
124 const GLuint GLX_HYPERPIPE_RENDER_PIPE_SGIX = 0x00000002;
125 const GLuint GLX_PIPE_RECT_SGIX         = 0x00000001;
126 const GLuint GLX_PIPE_RECT_LIMITS_SGIX      = 0x00000002;
127 const GLuint GLX_HYPERPIPE_STEREO_SGIX      = 0x00000003;
128 const GLuint GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX   = 0x00000004;
129 const GLuint GLX_HYPERPIPE_ID_SGIX      = 0x8030;
130
131 /*
132  * Structs and Classes
133  */
134 // Non-ARB 307 - GLX_SGIX_hyperpipe
135 alias int GLXHyperpipeNetworkSGIX;
136 struct {
137     char[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] pipeName;
138     int networkId;
139 }
140 alias int GLXHyperpipeConfigSGIX;
141 struct {
142     char[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] pipeName;
143     int channel;
144     uint participationType;
145     int timeSlice;
146 }
147 alias int GLXPipeRect;
148 struct {
149     char[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] pipeName;
150     int srcXOrigin;
151     int srcYOrigin;
152     int srcWidth;
153     int srcHeight;
154     int destXOrigin;
155     int destYOrigin;
156     int destWidth;
157     int destHeight;
158 }
159 alias int GLXPipeRectLimits;
160 struct {
161     char[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] pipeName;
162     int XOrigin;
163     int YOrigin;
164     int maxHeight;
165     int maxWidth;
166 }
167
168 /*
169  * Functions
170  */
171 private HXModule glxextdrv;
172 private void* getProc(char[] procname) {
173     void* symbol = ExeModule_GetSymbol(glxextdrv, procname);
174     if (symbol is null) {
175         printf ("Failed to load GLX extension proc address " ~ procname ~ ".\n");
176     }
177     return (symbol);
178 }
179
180 static this () {
181     glxextdrv = ExeModule_Load("libGLX.so");
182     glXGetProcAddressARB = cast(pfglXGetProcAddressARB)getProc("glXGetProcAddressARB");
183
184     glXSwapIntervalSGI = cast(pfglXSwapIntervalSGI)getProc("glXSwapIntervalSGI");
185
186     glXGetVideoSyncSGI = cast(pfglXGetVideoSyncSGI)getProc("glXGetVideoSyncSGI");
187     glXWaitVideoSyncSGI = cast(pfglXWaitVideoSyncSGI)getProc("glXWaitVideoSyncSGI");
188
189     glXMakeCurrentReadSGI = cast(pfglXMakeCurrentReadSGI)getProc("glXMakeCurrentReadSGI");
190     glXGetCurrentReadDrawableSGI = cast(pfglXGetCurrentReadDrawableSGI)getProc("glXGetCurrentReadDrawableSGI");
191
192     glXCreateGLXVideoSourceSGIX = cast(pfglXCreateGLXVideoSourceSGIX)getProc("glXCreateGLXVideoSourceSGIX");
193     glXDestroyGLXVideoSourceSGIX = cast(pfglXDestroyGLXVideoSourceSGIX)getProc("glXDestroyGLXVideoSourceSGIX");
194
195     glXGetCurrentDisplayEXT = cast(pfglXGetCurrentDisplayEXT)getProc("glXGetCurrentDisplayEXT");
196     glXQueryContextInfoEXT = cast(pfglXQueryContextInfoEXT)getProc("glXQueryContextInfoEXT");
197     glXGetContextIDEXT = cast(pfglXGetContextIDEXT)getProc("glXGetContextIDEXT");
198     glXImportContextEXT = cast(pfglXImportContextEXT)getProc("glXImportContextEXT");
199     glXFreeContextEXT = cast(pfglXFreeContextEXT)getProc("glXFreeContextEXT");
200
201     glXGetFBConfigAttribSGIX = cast(pfglXGetFBConfigAttribSGIX)getProc("glXGetFBConfigAttribSGIX");
202     glXChooseFBConfigSGIX = cast(pfglXChooseFBConfigSGIX)getProc("glXChooseFBConfigSGIX");
203     glXCreateGLXPixmapWithConfigSGIX = cast(pfglXCreateGLXPixmapWithConfigSGIX)getProc("glXCreateGLXPixmapWithConfigSGIX");
204     glXCreateContextWithConfigSGIX = cast(pfglXCreateContextWithConfigSGIX)getProc("glXCreateContextWithConfigSGIX");
205     glXGetVisualFromFBConfigSGIX = cast(pfglXGetVisualFromFBConfigSGIX)getProc("glXGetVisualFromFBConfigSGIX");
206     glXGetFBConfigFromVisualSGIX = cast(pfglXGetFBConfigFromVisualSGIX)getProc("glXGetFBConfigFromVisualSGIX");
207
208     glXCreateGLXPbufferSGIX = cast(pfglXCreateGLXPbufferSGIX)getProc("glXCreateGLXPbufferSGIX");
209     glXDestroyGLXPbufferSGIX = cast(pfglXDestroyGLXPbufferSGIX)getProc("glXDestroyGLXPbufferSGIX");
210     glXQueryGLXPbufferSGIX = cast(pfglXQueryGLXPbufferSGIX)getProc("glXQueryGLXPbufferSGIX");
211     glXSelectEventSGIX = cast(pfglXSelectEventSGIX)getProc("glXSelectEventSGIX");
212     glXGetSelectedEventSGIX = cast(pfglXGetSelectedEventSGIX)getProc("glXGetSelectedEventSGIX");
213
214     glXBindChannelToWindowSGIX = cast(pfglXBindChannelToWindowSGIX)getProc("glXBindChannelToWindowSGIX");
215     glXChannelRectSGIX = cast(pfglXChannelRectSGIX)getProc("glXChannelRectSGIX");
216     glXQueryChannelRectSGIX = cast(pfglXQueryChannelRectSGIX)getProc("glXQueryChannelRectSGIX");
217     glXQueryChannelDeltasSGIX = cast(pfglXQueryChannelDeltasSGIX)getProc("glXQueryChannelDeltasSGIX");
218     glXChannelRectSyncSGIX = cast(pfglXChannelRectSyncSGIX)getProc("glXChannelRectSyncSGIX");
219
220     glXJoinSwapGroupSGIX = cast(pfglXJoinSwapGroupSGIX)getProc("glXJoinSwapGroupSGIX");
221
222     glXBindSwapBarrierSGIX = cast(pfglXBindSwapBarrierSGIX)getProc("glXBindSwapBarrierSGIX");
223     glXQueryMaxSwapBarriersSGIX = cast(pfglXQueryMaxSwapBarriersSGIX)getProc("glXQueryMaxSwapBarriersSGIX");
224
225     glXGetTransparentIndexSUN = cast(pfglXGetTransparentIndexSUN)getProc("glXGetTransparentIndexSUN");
226
227     glXCopySubBufferMESA = cast(pfglXCopySubBufferMESA)getProc("glXCopySubBufferMESA");
228
229     glXCreateGLXPixmapMESA = cast(pfglXCreateGLXPixmapMESA)getProc("glXCreateGLXPixmapMESA");
230
231     glXReleaseBuffersMESA = cast(pfglXReleaseBuffersMESA)getProc("glXReleaseBuffersMESA");
232
233     glXSet3DfxModeMESA = cast(pfglXSet3DfxModeMESA)getProc("glXSet3DfxModeMESA");
234
235     glXGetSyncValuesOML = cast(pfglXGetSyncValuesOML)getProc("glXGetSyncValuesOML");
236     glXGetMscRateOML = cast(pfglXGetMscRateOML)getProc("glXGetMscRateOML");
237     glXSwapBuffersMscOML = cast(pfglXSwapBuffersMscOML)getProc("glXSwapBuffersMscOML");
238     glXWaitForMscOML = cast(pfglXWaitForMscOML)getProc("glXWaitForMscOML");
239     glXWaitForSbcOML = cast(pfglXWaitForSbcOML)getProc("glXWaitForSbcOML");
240
241     glXQueryHyperpipeNetworkSGIX = cast(pfglXQueryHyperpipeNetworkSGIX)getProc("glXQueryHyperpipeNetworkSGIX");
242     glXHyperpipeConfigSGIX = cast(pfglXHyperpipeConfigSGIX)getProc("glXHyperpipeConfigSGIX");
243     glXQueryHyperpipeConfigSGIX = cast(pfglXQueryHyperpipeConfigSGIX)getProc("glXQueryHyperpipeConfigSGIX");
244     glXDestroyHyperpipeConfigSGIX = cast(pfglXDestroyHyperpipeConfigSGIX)getProc("glXDestroyHyperpipeConfigSGIX");
245     glXBindHyperpipeSGIX = cast(pfglXBindHyperpipeSGIX)getProc("glXBindHyperpipeSGIX");
246     glXQueryHyperpipeBestAttribSGIX = cast(pfglXQueryHyperpipeBestAttribSGIX)getProc("glXQueryHyperpipeBestAttribSGIX");
247     glXHyperpipeAttribSGIX = cast(pfglXHyperpipeAttribSGIX)getProc("glXHyperpipeAttribSGIX");
248     glXQueryHyperpipeAttribSGIX = cast(pfglXQueryHyperpipeAttribSGIX)getProc("glXQueryHyperpipeAttribSGIX");
249
250     glXGetAGPOffsetMESA = cast(pfglXGetAGPOffsetMESA)getProc("glXGetAGPOffsetMESA");
251 }
252
253 static ~this () {
254     ExeModule_Release(glxextdrv);
255 }
256
257 extern (C):
258 /*
259  * ARB Extensions
260  */
261 // 2 - ARB_get_proc_address
262 typedef GLvoid* function(GLchar*) pfiglXGetProcAddressARB;
263 pfiglXGetProcAddressARB iglXGetProcAddressARB;
264
265 /*
266  * Non-ARB Extensions
267  */
268 // 40 - GLX_SGI_swap_control
269 typedef GLint function(GLint) pfglXSwapIntervalSGI;
270 pfglXSwapIntervalSGI glXSwapIntervalSGI;
271
272 // 41 - GLX_SGI_video_sync
273 typedef GLint function(GLuint*) pfglXGetVideoSyncSGI;
274 typedef GLint function(GLint, GLint, GLint*) pfglXWaitVideoSyncSGI;
275 pfglXGetVideoSyncSGI glXGetVideoSyncSGI;
276 pfglXWaitVideoSyncSGI glXWaitVideoSyncSGI;
277
278 // 42 - GLX_SGI_make_read_current
279 typedef Bool function(Display*, GLXDrawable, GLXDrawable, GLXContext) pfglXMakeCurrentReadSGI;
280 typedef GLXDrawable function() pfglXGetCurrentReadDrawableSGI;
281 pfglXMakeCurrentReadSGI glXMakeCurrentReadSGI;
282 pfglXGetCurrentReadDrawableSGI glXGetCurrentReadDrawableSGI;
283
284 // 43 - GLX_SGIX_video_source
285 alias XID GLXVideoSourceSGIX;
286 typedef GLXVideoSourceSGIX function(Display*, GLint, VLServer, VLPath, GLint, VLNode) pfglXCreateGLXVideoSourceSGIX;
287 typedef GLvoid function(Display*, GLXVideoSourceSGIX) pfglXDestroyGLXVideoSourceSGIX;
288 pfglXCreateGLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX;
289 pfglXDestroyGLXVideoSourceSGIX glXDestroyGLXVideoSourceSGIX;
290
291 // 47 - GLX_EXT_import_context
292 typedef Display* function() pfglXGetCurrentDisplayEXT;
293 typedef GLint function(Display*, GLXContext, GLint, GLint*) pfglXQueryContextInfoEXT;
294 typedef GLXContextID function(GLXContext) pfglXGetContextIDEXT;
295 typedef GLXContext function(Display*, GLXContextID) pfglXImportContextEXT;
296 typedef GLvoid function(Display*, GLXContext) pfglXFreeContextEXT;
297 pfglXGetCurrentDisplayEXT glXGetCurrentDisplayEXT;
298 pfglXQueryContextInfoEXT glXQueryContextInfoEXT;
299 pfglXGetContextIDEXT glXGetContextIDEXT;
300 pfglXImportContextEXT glXImportContextEXT;
301 pfglXFreeContextEXT glXFreeContextEXT;
302
303 // 49 - GLX_SGIX_fbconfig
304 typedef int function(Display*, GLXFBConfigSGIX, GLint, GLint*) pfglXGetFBConfigAttribSGIX;
305 typedef GLXFBConfigSGIX* function(Display*, GLint, GLint*, GLint*) pfglXChooseFBConfigSGIX;
306 typedef GLXPixmap function(Display*, GLXFBConfig, Pixmap) pfglXCreateGLXPixmapWithConfigSGIX;
307 typedef GLXContext function(Display*, GLXFBConfig, GLint, GLXContext, Bool) pfglXCreateContextWithConfigSGIX;
308 typedef XVisualInfo* function(Display*, GLXFBConfig) pfglXGetVisualFromFBConfigSGIX;
309 typedef GLXFBConfigSGIX function(Display*, XVisualInfo*) pfglXGetFBConfigFromVisualSGIX;
310 pfglXGetFBConfigAttribSGIX glXGetFBConfigAttribSGIX;
311 pfglXChooseFBConfigSGIX glXChooseFBConfigSGIX;
312 pfglXCreateGLXPixmapWithConfigSGIX glXCreateGLXPixmapWithConfigSGIX;
313 pfglXCreateContextWithConfigSGIX glXCreateContextWithConfigSGIX;
314 pfglXGetVisualFromFBConfigSGIX glXGetVisualFromFBConfigSGIX;
315 pfglXGetFBConfigFromVisualSGIX glXGetFBConfigFromVisualSGIX;
316
317 // 50 - GLX_SGIX_pbuffer
318 typedef GLXPbuffer function(Display*, GLXFBConfig, GLuint, GLuint, GLint*) pfglXCreateGLXPbufferSGIX;
319 typedef GLvoid function(Display*, GLXPbuffer) pfglXDestroyGLXPbufferSGIX;
320 typedef GLvoid function(Display*, GLXPbuffer, GLint, GLuint*) pfglXQueryGLXPbufferSGIX;
321 typedef GLvoid function(Display*, GLXDrawable, GLulong) pfglXSelectEventSGIX;
322 typedef GLvoid function(Display*, GLXDrawable, GLulong*) pfglXGetSelectedEventSGIX;
323 pfglXCreateGLXPbufferSGIX glXCreateGLXPbufferSGIX;
324 pfglXDestroyGLXPbufferSGIX glXDestroyGLXPbufferSGIX;
325 pfglXQueryGLXPbufferSGIX glXQueryGLXPbufferSGIX;
326 pfglXSelectEventSGIX glXSelectEventSGIX;
327 pfglXGetSelectedEventSGIX glXGetSelectedEventSGIX;
328
329 // 83 - GLX_SGIX_video_resize
330 typedef GLint function(Display*, GLint, GLint, Window) pfglXBindChannelToWindowSGIX;
331 typedef GLint function(Display*, GLint, GLint, GLint, GLint, GLint, GLint) pfglXChannelRectSGIX;
332 typedef GLint function(Display*, GLint, GLint, GLint*, GLint*, GLint*, GLint*) pfglXQueryChannelRectSGIX;
333 typedef GLint function(Display*, GLint, GLint, GLint*, GLint*, GLint*, GLint*) pfglXQueryChannelDeltasSGIX;
334 typedef GLint function(Display*, GLint, GLint, GLenum) pfglXChannelRectSyncSGIX;
335 pfglXBindChannelToWindowSGIX glXBindChannelToWindowSGIX;
336 pfglXChannelRectSGIX glXChannelRectSGIX;
337 pfglXQueryChannelRectSGIX glXQueryChannelRectSGIX;
338 pfglXQueryChannelDeltasSGIX glXQueryChannelDeltasSGIX;
339 pfglXChannelRectSyncSGIX glXChannelRectSyncSGIX;
340
341 // 91 - GLX_SGIX_swap_group
342 typedef GLvoid function(Display*, GLXDrawable, GLXDrawable) pfglXJoinSwapGroupSGIX;
343 pfglXJoinSwapGroupSGIX glXJoinSwapGroupSGIX;
344
345 // 92 - GLX_SGIX_swap_barrier
346 typedef GLvoid function(Display*, GLXDrawable, GLint) pfglXBindSwapBarrierSGIX;
347 typedef Bool function(Display*, GLint, GLint*) pfglXQueryMaxSwapBarriersSGIX;
348 pfglXBindSwapBarrierSGIX glXBindSwapBarrierSGIX;
349 pfglXQueryMaxSwapBarriersSGIX glXQueryMaxSwapBarriersSGIX;
350
351 // 183 - GLX_SUN_get_transparent_index
352 typedef Status function(Display*, Window, Window, GLulong*) pfglXGetTransparentIndexSUN;
353 pfglXGetTransparentIndexSUN glXGetTransparentIndexSUN;
354
355 // 215 - GLX_MESA_copy_sub_buffer
356 typedef GLvoid function(Display*, GLXDrawable, GLint, GLint, GLint, GLint) pfglXCopySubBufferMESA;
357 pfglXCopySubBufferMESA glXCopySubBufferMESA;
358
359 // 216 - GLX_MESA_pixmap_colormap
360 typedef GLXPixmap function(Display*, XVisualInfo*, Pixmap, Colormap) pfglXCreateGLXPixmapMESA;
361 pfglXCreateGLXPixmapMESA glXCreateGLXPixmapMESA;
362
363 // 217 - GLX_MESA_release_buffers
364 typedef Bool function(Display*, GLXDrawable) pfglXReleaseBuffersMESA;
365 pfglXReleaseBuffersMESA glXReleaseBuffersMESA;
366
367 // 218 - GLX_MESA_set_3dfx_mode
368 typedef GLboolean function(GLint) pfglXSet3DfxModeMESA;
369 pfglXSet3DfxModeMESA glXSet3DfxModeMESA;
370
371 // 238 - GLX_OML_sync_control
372 typedef Bool function(Display*, GLXDrawable, GLlong*, GLlong*, GLlong*) pfglXGetSyncValuesOML;
373 typedef Bool function(Display*, GLXDrawable, GLint*, GLint*) pfglXGetMscRateOML;
374 typedef GLlong function(Display*, GLXDrawable, GLlong, GLlong, GLlong) pfglXSwapBuffersMscOML;
375 typedef Bool function(Display*, GLXDrawable, GLlong, GLlong, GLlong, GLlong*, GLlong*, GLlong*) pfglXWaitForMscOML;
376 typedef Bool function(Display*, GLXDrawable, GLlong, GLlong*, GLlong*, GLlong*) pfglXWaitForSbcOML;
377 pfglXGetSyncValuesOML glXGetSyncValuesOML;
378 pfglXGetMscRateOML glXGetMscRateOML;
379 pfglXSwapBuffersMscOML glXSwapBuffersMscOML;
380 pfglXWaitForMscOML glXWaitForMscOML;
381 pfglXWaitForSbcOML glXWaitForSbcOML;
382
383 // 307 - GLX_SGIX_hyperpipe
384 typedef GLXHyperpipeNetworkSGIX* function(Display*, GLint*) pfglXQueryHyperpipeNetworkSGIX;
385 typedef GLint function(Display*, GLint, GLint, GLXHyperpipeConfigSGIX*, GLint*) pfglXHyperpipeConfigSGIX;
386 typedef GLXHyperpipeConfigSGIX* function(Display*, GLint, GLint*) pfglXQueryHyperpipeConfigSGIX;
387 typedef GLint function(Display*, GLint) pfglXDestroyHyperpipeConfigSGIX;
388 typedef GLint function(Display*, GLint) pfglXBindHyperpipeSGIX;
389 typedef GLint function(Display*, GLint, GLint, GLint, GLvoid*, GLvoid*) pfglXQueryHyperpipeBestAttribSGIX;
390 typedef GLint function(Display*, GLint, GLint, GLint, GLvoid*) pfglXHyperpipeAttribSGIX;
391 typedef GLint function(Display*, GLint, GLint, GLint, GLvoid*) pfglXQueryHyperpipeAttribSGIX;
392 pfglXQueryHyperpipeNetworkSGIX glXQueryHyperpipeNetworkSGIX;
393 pfglXHyperpipeConfigSGIX glXHyperpipeConfigSGIX;
394 pfglXQueryHyperpipeConfigSGIX glXQueryHyperpipeConfigSGIX;
395 pfglXDestroyHyperpipeConfigSGIX glXDestroyHyperpipeConfigSGIX;
396 pfglXBindHyperpipeSGIX glXBindHyperpipeSGIX;
397 pfglXQueryHyperpipeBestAttribSGIX glXQueryHyperpipeBestAttribSGIX;
398 pfglXHyperpipeAttribSGIX glXHyperpipeAttribSGIX;
399 pfglXQueryHyperpipeAttribSGIX glXQueryHyperpipeAttribSGIX;
400
401 // 308 - GLX_MESA_agp_offset
402 typedef GLuint function(GLvoid*) pfglXGetAGPOffsetMESA;
403 pfglXGetAGPOffsetMESA glXGetAGPOffsetMESA;
404 }
Note: See TracBrowser for help on using the browser.