Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1901 serge 1
/*
2
 * Mesa 3-D graphics library
3
 * Version:  6.5
4
 *
5
 * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
6
 *
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:
13
 *
14
 * The above copyright notice and this permission notice shall be included
15
 * in all copies or substantial portions of the Software.
16
 *
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
 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21
 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
 */
24
 
25
 
26
#ifndef GLX_H
27
#define GLX_H
28
 
29
 
30
#ifdef __VMS
31
#include 
32
# ifdef __cplusplus
33
/* VMS Xlib.h gives problems with C++.
34
 * this avoids a bunch of trivial warnings */
35
#pragma message disable nosimpint
36
#endif
37
#endif
38
#include 
39
#include 
40
#ifdef __VMS
41
# ifdef __cplusplus
42
#pragma message enable nosimpint
43
#endif
44
#endif
45
#include 
46
 
47
 
48
#if defined(USE_MGL_NAMESPACE)
49
#include "glx_mangle.h"
50
#endif
51
 
52
 
53
#ifdef __cplusplus
54
extern "C" {
55
#endif
56
 
57
 
58
#define GLX_VERSION_1_1		1
59
#define GLX_VERSION_1_2		1
60
#define GLX_VERSION_1_3		1
61
#define GLX_VERSION_1_4		1
62
 
63
#define GLX_EXTENSION_NAME   "GLX"
64
 
65
 
66
 
67
/*
68
 * Tokens for glXChooseVisual and glXGetConfig:
69
 */
70
#define GLX_USE_GL		1
71
#define GLX_BUFFER_SIZE		2
72
#define GLX_LEVEL		3
73
#define GLX_RGBA		4
74
#define GLX_DOUBLEBUFFER	5
75
#define GLX_STEREO		6
76
#define GLX_AUX_BUFFERS		7
77
#define GLX_RED_SIZE		8
78
#define GLX_GREEN_SIZE		9
79
#define GLX_BLUE_SIZE		10
80
#define GLX_ALPHA_SIZE		11
81
#define GLX_DEPTH_SIZE		12
82
#define GLX_STENCIL_SIZE	13
83
#define GLX_ACCUM_RED_SIZE	14
84
#define GLX_ACCUM_GREEN_SIZE	15
85
#define GLX_ACCUM_BLUE_SIZE	16
86
#define GLX_ACCUM_ALPHA_SIZE	17
87
 
88
 
89
/*
90
 * Error codes returned by glXGetConfig:
91
 */
92
#define GLX_BAD_SCREEN		1
93
#define GLX_BAD_ATTRIBUTE	2
94
#define GLX_NO_EXTENSION	3
95
#define GLX_BAD_VISUAL		4
96
#define GLX_BAD_CONTEXT		5
97
#define GLX_BAD_VALUE       	6
98
#define GLX_BAD_ENUM		7
99
 
100
 
101
/*
102
 * GLX 1.1 and later:
103
 */
104
#define GLX_VENDOR		1
105
#define GLX_VERSION		2
106
#define GLX_EXTENSIONS 		3
107
 
108
 
109
/*
110
 * GLX 1.3 and later:
111
 */
112
#define GLX_CONFIG_CAVEAT		0x20
113
#define GLX_DONT_CARE			0xFFFFFFFF
114
#define GLX_X_VISUAL_TYPE		0x22
115
#define GLX_TRANSPARENT_TYPE		0x23
116
#define GLX_TRANSPARENT_INDEX_VALUE	0x24
117
#define GLX_TRANSPARENT_RED_VALUE	0x25
118
#define GLX_TRANSPARENT_GREEN_VALUE	0x26
119
#define GLX_TRANSPARENT_BLUE_VALUE	0x27
120
#define GLX_TRANSPARENT_ALPHA_VALUE	0x28
121
#define GLX_WINDOW_BIT			0x00000001
122
#define GLX_PIXMAP_BIT			0x00000002
123
#define GLX_PBUFFER_BIT			0x00000004
124
#define GLX_AUX_BUFFERS_BIT		0x00000010
125
#define GLX_FRONT_LEFT_BUFFER_BIT	0x00000001
126
#define GLX_FRONT_RIGHT_BUFFER_BIT	0x00000002
127
#define GLX_BACK_LEFT_BUFFER_BIT	0x00000004
128
#define GLX_BACK_RIGHT_BUFFER_BIT	0x00000008
129
#define GLX_DEPTH_BUFFER_BIT		0x00000020
130
#define GLX_STENCIL_BUFFER_BIT		0x00000040
131
#define GLX_ACCUM_BUFFER_BIT		0x00000080
132
#define GLX_NONE			0x8000
133
#define GLX_SLOW_CONFIG			0x8001
134
#define GLX_TRUE_COLOR			0x8002
135
#define GLX_DIRECT_COLOR		0x8003
136
#define GLX_PSEUDO_COLOR		0x8004
137
#define GLX_STATIC_COLOR		0x8005
138
#define GLX_GRAY_SCALE			0x8006
139
#define GLX_STATIC_GRAY			0x8007
140
#define GLX_TRANSPARENT_RGB		0x8008
141
#define GLX_TRANSPARENT_INDEX		0x8009
142
#define GLX_VISUAL_ID			0x800B
143
#define GLX_SCREEN			0x800C
144
#define GLX_NON_CONFORMANT_CONFIG	0x800D
145
#define GLX_DRAWABLE_TYPE		0x8010
146
#define GLX_RENDER_TYPE			0x8011
147
#define GLX_X_RENDERABLE		0x8012
148
#define GLX_FBCONFIG_ID			0x8013
149
#define GLX_RGBA_TYPE			0x8014
150
#define GLX_COLOR_INDEX_TYPE		0x8015
151
#define GLX_MAX_PBUFFER_WIDTH		0x8016
152
#define GLX_MAX_PBUFFER_HEIGHT		0x8017
153
#define GLX_MAX_PBUFFER_PIXELS		0x8018
154
#define GLX_PRESERVED_CONTENTS		0x801B
155
#define GLX_LARGEST_PBUFFER		0x801C
156
#define GLX_WIDTH			0x801D
157
#define GLX_HEIGHT			0x801E
158
#define GLX_EVENT_MASK			0x801F
159
#define GLX_DAMAGED			0x8020
160
#define GLX_SAVED			0x8021
161
#define GLX_WINDOW			0x8022
162
#define GLX_PBUFFER			0x8023
163
#define GLX_PBUFFER_HEIGHT              0x8040
164
#define GLX_PBUFFER_WIDTH               0x8041
165
#define GLX_RGBA_BIT			0x00000001
166
#define GLX_COLOR_INDEX_BIT		0x00000002
167
#define GLX_PBUFFER_CLOBBER_MASK	0x08000000
168
 
169
 
170
/*
171
 * GLX 1.4 and later:
172
 */
173
#define GLX_SAMPLE_BUFFERS              0x186a0 /*100000*/
174
#define GLX_SAMPLES                     0x186a1 /*100001*/
175
 
176
 
177
 
178
typedef struct __GLXcontextRec *GLXContext;
179
typedef XID GLXPixmap;
180
typedef XID GLXDrawable;
181
/* GLX 1.3 and later */
182
typedef struct __GLXFBConfigRec *GLXFBConfig;
183
typedef XID GLXFBConfigID;
184
typedef XID GLXContextID;
185
typedef XID GLXWindow;
186
typedef XID GLXPbuffer;
187
 
188
 
189
/*
190
** Events.
191
** __GLX_NUMBER_EVENTS is set to 17 to account for the BufferClobberSGIX
192
**  event - this helps initialization if the server supports the pbuffer
193
**  extension and the client doesn't.
194
*/
195
#define GLX_PbufferClobber	0
196
#define GLX_BufferSwapComplete	1
197
 
198
#define __GLX_NUMBER_EVENTS 17
199
 
200
extern XVisualInfo* glXChooseVisual( Display *dpy, int screen,
201
				     int *attribList );
202
 
203
extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis,
204
				    GLXContext shareList, Bool direct );
205
 
206
extern void glXDestroyContext( Display *dpy, GLXContext ctx );
207
 
208
extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable,
209
			    GLXContext ctx);
210
 
211
extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst,
212
			    unsigned long mask );
213
 
214
extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable );
215
 
216
extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual,
217
				     Pixmap pixmap );
218
 
219
extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap );
220
 
221
extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event );
222
 
223
extern Bool glXQueryVersion( Display *dpy, int *maj, int *min );
224
 
225
extern Bool glXIsDirect( Display *dpy, GLXContext ctx );
226
 
227
extern int glXGetConfig( Display *dpy, XVisualInfo *visual,
228
			 int attrib, int *value );
229
 
230
extern GLXContext glXGetCurrentContext( void );
231
 
232
extern GLXDrawable glXGetCurrentDrawable( void );
233
 
234
extern void glXWaitGL( void );
235
 
236
extern void glXWaitX( void );
237
 
238
extern void glXUseXFont( Font font, int first, int count, int list );
239
 
240
 
241
 
242
/* GLX 1.1 and later */
243
extern const char *glXQueryExtensionsString( Display *dpy, int screen );
244
 
245
extern const char *glXQueryServerString( Display *dpy, int screen, int name );
246
 
247
extern const char *glXGetClientString( Display *dpy, int name );
248
 
249
 
250
/* GLX 1.2 and later */
251
extern Display *glXGetCurrentDisplay( void );
252
 
253
 
254
/* GLX 1.3 and later */
255
extern GLXFBConfig *glXChooseFBConfig( Display *dpy, int screen,
256
                                       const int *attribList, int *nitems );
257
 
258
extern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config,
259
                                 int attribute, int *value );
260
 
261
extern GLXFBConfig *glXGetFBConfigs( Display *dpy, int screen,
262
                                     int *nelements );
263
 
264
extern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy,
265
                                              GLXFBConfig config );
266
 
267
extern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config,
268
                                  Window win, const int *attribList );
269
 
270
extern void glXDestroyWindow( Display *dpy, GLXWindow window );
271
 
272
extern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config,
273
                                  Pixmap pixmap, const int *attribList );
274
 
275
extern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap );
276
 
277
extern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config,
278
                                    const int *attribList );
279
 
280
extern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf );
281
 
282
extern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute,
283
                              unsigned int *value );
284
 
285
extern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config,
286
                                       int renderType, GLXContext shareList,
287
                                       Bool direct );
288
 
289
extern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw,
290
                                   GLXDrawable read, GLXContext ctx );
291
 
292
extern GLXDrawable glXGetCurrentReadDrawable( void );
293
 
294
extern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute,
295
                            int *value );
296
 
297
extern void glXSelectEvent( Display *dpy, GLXDrawable drawable,
298
                            unsigned long mask );
299
 
300
extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable,
301
                                 unsigned long *mask );
302
 
303
/* GLX 1.3 function pointer typedefs */
304
typedef GLXFBConfig * (* PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
305
typedef GLXFBConfig * (* PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
306
typedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
307
typedef XVisualInfo * (* PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
308
typedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
309
typedef void (* PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
310
typedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
311
typedef void (* PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
312
typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
313
typedef void (* PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
314
typedef void (* PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
315
typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
316
typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
317
typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
318
typedef Display * (* PFNGLXGETCURRENTDISPLAYPROC) (void);
319
typedef int (* PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
320
typedef void (* PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
321
typedef void (* PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
322
 
323
 
324
/*
325
 * ARB 2. GLX_ARB_get_proc_address
326
 */
327
#ifndef GLX_ARB_get_proc_address
328
#define GLX_ARB_get_proc_address 1
329
 
330
typedef void (*__GLXextFuncPtr)(void);
331
extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
332
 
333
#endif /* GLX_ARB_get_proc_address */
334
 
335
 
336
 
337
/* GLX 1.4 and later */
338
extern void (*glXGetProcAddress(const GLubyte *procname))( void );
339
 
340
/* GLX 1.4 function pointer typedefs */
341
typedef __GLXextFuncPtr (* PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
342
 
343
 
344
#ifndef GLX_GLXEXT_LEGACY
345
 
346
#include 
347
 
348
#endif /* GLX_GLXEXT_LEGACY */
349
 
350
 
351
/**
352
 ** The following aren't in glxext.h yet.
353
 **/
354
 
355
 
356
/*
357
 * ???. GLX_NV_vertex_array_range
358
 */
359
#ifndef GLX_NV_vertex_array_range
360
#define GLX_NV_vertex_array_range
361
 
362
extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
363
extern void glXFreeMemoryNV(GLvoid *pointer);
364
typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
365
typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer);
366
 
367
#endif /* GLX_NV_vertex_array_range */
368
 
369
 
370
/*
371
 * ARB ?. GLX_ARB_render_texture
372
 * XXX This was never finalized!
373
 */
374
#ifndef GLX_ARB_render_texture
375
#define GLX_ARB_render_texture 1
376
 
377
extern Bool glXBindTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer);
378
extern Bool glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer);
379
extern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attribList);
380
 
381
#endif /* GLX_ARB_render_texture */
382
 
383
 
384
/*
385
 * Remove this when glxext.h is updated.
386
 */
387
#ifndef GLX_NV_float_buffer
388
#define GLX_NV_float_buffer 1
389
 
390
#define GLX_FLOAT_COMPONENTS_NV         0x20B0
391
 
392
#endif /* GLX_NV_float_buffer */
393
 
394
 
395
 
396
/*
397
 * #?. GLX_MESA_swap_frame_usage
398
 */
399
#ifndef GLX_MESA_swap_frame_usage
400
#define GLX_MESA_swap_frame_usage 1
401
 
402
extern int glXGetFrameUsageMESA(Display *dpy, GLXDrawable drawable, float *usage);
403
extern int glXBeginFrameTrackingMESA(Display *dpy, GLXDrawable drawable);
404
extern int glXEndFrameTrackingMESA(Display *dpy, GLXDrawable drawable);
405
extern int glXQueryFrameTrackingMESA(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage);
406
 
407
typedef int (*PFNGLXGETFRAMEUSAGEMESAPROC) (Display *dpy, GLXDrawable drawable, float *usage);
408
typedef int (*PFNGLXBEGINFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable);
409
typedef int (*PFNGLXENDFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable);
410
typedef int (*PFNGLXQUERYFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage);
411
 
412
#endif /* GLX_MESA_swap_frame_usage */
413
 
414
 
415
 
416
/*
417
 * #?. GLX_MESA_swap_control
418
 */
419
#ifndef GLX_MESA_swap_control
420
#define GLX_MESA_swap_control 1
421
 
422
extern int glXSwapIntervalMESA(unsigned int interval);
423
extern int glXGetSwapIntervalMESA(void);
424
 
425
typedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval);
426
typedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void);
427
 
428
#endif /* GLX_MESA_swap_control */
429
 
430
 
431
 
432
/*
433
 * #?. GLX_EXT_texture_from_pixmap
434
 * XXX not finished?
435
 */
436
#ifndef GLX_EXT_texture_from_pixmap
437
#define GLX_EXT_texture_from_pixmap 1
438
 
439
#define GLX_BIND_TO_TEXTURE_RGB_EXT        0x20D0
440
#define GLX_BIND_TO_TEXTURE_RGBA_EXT       0x20D1
441
#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT     0x20D2
442
#define GLX_BIND_TO_TEXTURE_TARGETS_EXT    0x20D3
443
#define GLX_Y_INVERTED_EXT                 0x20D4
444
 
445
#define GLX_TEXTURE_FORMAT_EXT             0x20D5
446
#define GLX_TEXTURE_TARGET_EXT             0x20D6
447
#define GLX_MIPMAP_TEXTURE_EXT             0x20D7
448
 
449
#define GLX_TEXTURE_FORMAT_NONE_EXT        0x20D8
450
#define GLX_TEXTURE_FORMAT_RGB_EXT         0x20D9
451
#define GLX_TEXTURE_FORMAT_RGBA_EXT        0x20DA
452
 
453
#define GLX_TEXTURE_1D_BIT_EXT             0x00000001
454
#define GLX_TEXTURE_2D_BIT_EXT             0x00000002
455
#define GLX_TEXTURE_RECTANGLE_BIT_EXT      0x00000004
456
 
457
#define GLX_TEXTURE_1D_EXT                 0x20DB
458
#define GLX_TEXTURE_2D_EXT                 0x20DC
459
#define GLX_TEXTURE_RECTANGLE_EXT          0x20DD
460
 
461
#define GLX_FRONT_LEFT_EXT                 0x20DE
462
#define GLX_FRONT_RIGHT_EXT                0x20DF
463
#define GLX_BACK_LEFT_EXT                  0x20E0
464
#define GLX_BACK_RIGHT_EXT                 0x20E1
465
#define GLX_FRONT_EXT                      GLX_FRONT_LEFT_EXT
466
#define GLX_BACK_EXT                       GLX_BACK_LEFT_EXT
467
#define GLX_AUX0_EXT                       0x20E2
468
#define GLX_AUX1_EXT                       0x20E3
469
#define GLX_AUX2_EXT                       0x20E4
470
#define GLX_AUX3_EXT                       0x20E5
471
#define GLX_AUX4_EXT                       0x20E6
472
#define GLX_AUX5_EXT                       0x20E7
473
#define GLX_AUX6_EXT                       0x20E8
474
#define GLX_AUX7_EXT                       0x20E9
475
#define GLX_AUX8_EXT                       0x20EA
476
#define GLX_AUX9_EXT                       0x20EB
477
 
478
extern void glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list);
479
extern void glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer);
480
 
481
#endif /* GLX_EXT_texture_from_pixmap */
482
 
483
 
484
 
485
 
486
/*** Should these go here, or in another header? */
487
/*
488
** GLX Events
489
*/
490
typedef struct {
491
    int event_type;		/* GLX_DAMAGED or GLX_SAVED */
492
    int draw_type;		/* GLX_WINDOW or GLX_PBUFFER */
493
    unsigned long serial;	/* # of last request processed by server */
494
    Bool send_event;		/* true if this came for SendEvent request */
495
    Display *display;		/* display the event was read from */
496
    GLXDrawable drawable;	/* XID of Drawable */
497
    unsigned int buffer_mask;	/* mask indicating which buffers are affected */
498
    unsigned int aux_buffer;	/* which aux buffer was affected */
499
    int x, y;
500
    int width, height;
501
    int count;			/* if nonzero, at least this many more */
502
} GLXPbufferClobberEvent;
503
 
504
typedef struct {
505
    int type;
506
    unsigned long serial;	/* # of last request processed by server */
507
    Bool send_event;		/* true if this came from a SendEvent request */
508
    Display *display;		/* Display the event was read from */
509
    GLXDrawable drawable;	/* drawable on which event was requested in event mask */
510
    int event_type;
511
    int64_t ust;
512
    int64_t msc;
513
    int64_t sbc;
514
} GLXBufferSwapComplete;
515
 
516
typedef union __GLXEvent {
517
    GLXPbufferClobberEvent glxpbufferclobber;
518
    GLXBufferSwapComplete glxbufferswapcomplete;
519
    long pad[24];
520
} GLXEvent;
521
 
522
#ifdef __cplusplus
523
}
524
#endif
525
 
526
#endif