summaryrefslogtreecommitdiff
path: root/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.h
blob: 3a52548b961c5b5715f8a96184891405630759fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
/* GdkGLExt - OpenGL Extension to GDK
 * Copyright (C) 2002-2004  Naofumi Yasufuku
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.
 */

/*
 * This is a generated file.  Please modify "gen-gdkglglxext-h.pl".
 */

#ifndef __GDK_GL_GLXEXT_H__
#define __GDK_GL_GLXEXT_H__

#include <X11/Xlib.h>
#include <X11/Xutil.h>

#include <GL/gl.h>
#include <GL/glx.h>

#include <gdk/gdkgldefs.h>
#include <gdk/gdkglquery.h>
#include <gdk/gdkglconfig.h>

G_BEGIN_DECLS

#ifndef GLX_VERSION_1_3
typedef struct __GLXFBConfigRec *GLXFBConfig;
typedef XID GLXFBConfigID;
typedef XID GLXContextID;
typedef XID GLXWindow;
typedef XID GLXPbuffer;
#endif

#ifndef HAVE_GLXFBCONFIGSGIX
#if defined(GLX_SGIX_fbconfig) && defined(GDKGLEXT_NEED_GLXFBCONFIGSGIX_TYPEDEF)
typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
#endif
#endif

#ifndef HAVE_GLXFBCONFIGIDSGIX
#if defined(GLX_SGIX_fbconfig) && defined(GDKGLEXT_NEED_GLXFBCONFIGIDSGIX_TYPEDEF)
typedef XID GLXFBConfigIDSGIX;
#endif
#endif

#ifndef HAVE_GLXPBUFFERSGIX
#if defined(GLX_SGIX_pbuffer) && defined(GDKGLEXT_NEED_GLXPBUFFERSGIX_TYPEDEF)
typedef XID GLXPbufferSGIX;
#endif
#endif

/* for __GLXextFuncPtr typedef in glxext.h */
#ifndef HAVE___GLXEXTFUNCPTR
#if defined(GLX_ARB_get_proc_address) && defined(GDKGLEXT_NEED_GLXEXTFUNCPTR_TYPEDEF)
#undef GLX_ARB_get_proc_address
#endif
#endif

/* Suppress 'redefined' warnings (Solaris 8, etc.) */

#if !defined(GLX_ARB_multisample) && defined(GLX_SAMPLE_BUFFERS_ARB)
#define GLX_ARB_multisample 1
#endif

#if !defined(GLX_SGIS_multisample) && defined(GLX_SAMPLE_BUFFERS_SGIS)
#define GLX_SGIS_multisample 1
#endif

#if !defined(GLX_EXT_visual_rating) && defined(GLX_VISUAL_CAVEAT_EXT)
#define GLX_EXT_visual_rating 1
#endif

#if !defined(GLX_EXT_import_context) && defined(GLX_SHARE_CONTEXT_EXT)
#define GLX_EXT_import_context 1
#endif

/* Avoid old glxext.h bug. */
#if !defined(GLX_SGIX_video_source) && !defined(GDKGLEXT_NEED_GLXVIDEOSOURCESGIX_TYPEDEF)
#define GLX_SGIX_video_source 1
#endif

#undef __glxext_h_
#undef GLX_GLXEXT_VERSION
#include <gdk/glext/glxext.h>
#include <gdk/glext/glxext-extra.h>

/*
 * GLX_VERSION_1_3
 */

/* glXGetFBConfigs */
typedef GLXFBConfig * ( * GdkGLProc_glXGetFBConfigs) (Display *dpy, int screen, int *nelements);
GdkGLProc    gdk_gl_get_glXGetFBConfigs (void);
#define      gdk_gl_glXGetFBConfigs(proc, dpy, screen, nelements) \
  ( ((GdkGLProc_glXGetFBConfigs) (proc)) (dpy, screen, nelements) )

/* glXChooseFBConfig */
typedef GLXFBConfig * ( * GdkGLProc_glXChooseFBConfig) (Display *dpy, int screen, const int *attrib_list, int *nelements);
GdkGLProc    gdk_gl_get_glXChooseFBConfig (void);
#define      gdk_gl_glXChooseFBConfig(proc, dpy, screen, attrib_list, nelements) \
  ( ((GdkGLProc_glXChooseFBConfig) (proc)) (dpy, screen, attrib_list, nelements) )

/* glXGetFBConfigAttrib */
typedef int ( * GdkGLProc_glXGetFBConfigAttrib) (Display *dpy, GLXFBConfig config, int attribute, int *value);
GdkGLProc    gdk_gl_get_glXGetFBConfigAttrib (void);
#define      gdk_gl_glXGetFBConfigAttrib(proc, dpy, config, attribute, value) \
  ( ((GdkGLProc_glXGetFBConfigAttrib) (proc)) (dpy, config, attribute, value) )

/* glXGetVisualFromFBConfig */
typedef XVisualInfo * ( * GdkGLProc_glXGetVisualFromFBConfig) (Display *dpy, GLXFBConfig config);
GdkGLProc    gdk_gl_get_glXGetVisualFromFBConfig (void);
#define      gdk_gl_glXGetVisualFromFBConfig(proc, dpy, config) \
  ( ((GdkGLProc_glXGetVisualFromFBConfig) (proc)) (dpy, config) )

/* glXCreateWindow */
typedef GLXWindow ( * GdkGLProc_glXCreateWindow) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
GdkGLProc    gdk_gl_get_glXCreateWindow (void);
#define      gdk_gl_glXCreateWindow(proc, dpy, config, win, attrib_list) \
  ( ((GdkGLProc_glXCreateWindow) (proc)) (dpy, config, win, attrib_list) )

/* glXDestroyWindow */
typedef void ( * GdkGLProc_glXDestroyWindow) (Display *dpy, GLXWindow win);
GdkGLProc    gdk_gl_get_glXDestroyWindow (void);
#define      gdk_gl_glXDestroyWindow(proc, dpy, win) \
  ( ((GdkGLProc_glXDestroyWindow) (proc)) (dpy, win) )

/* glXCreatePixmap */
typedef GLXPixmap ( * GdkGLProc_glXCreatePixmap) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
GdkGLProc    gdk_gl_get_glXCreatePixmap (void);
#define      gdk_gl_glXCreatePixmap(proc, dpy, config, pixmap, attrib_list) \
  ( ((GdkGLProc_glXCreatePixmap) (proc)) (dpy, config, pixmap, attrib_list) )

/* glXDestroyPixmap */
typedef void ( * GdkGLProc_glXDestroyPixmap) (Display *dpy, GLXPixmap pixmap);
GdkGLProc    gdk_gl_get_glXDestroyPixmap (void);
#define      gdk_gl_glXDestroyPixmap(proc, dpy, pixmap) \
  ( ((GdkGLProc_glXDestroyPixmap) (proc)) (dpy, pixmap) )

/* glXCreatePbuffer */
typedef GLXPbuffer ( * GdkGLProc_glXCreatePbuffer) (Display *dpy, GLXFBConfig config, const int *attrib_list);
GdkGLProc    gdk_gl_get_glXCreatePbuffer (void);
#define      gdk_gl_glXCreatePbuffer(proc, dpy, config, attrib_list) \
  ( ((GdkGLProc_glXCreatePbuffer) (proc)) (dpy, config, attrib_list) )

/* glXDestroyPbuffer */
typedef void ( * GdkGLProc_glXDestroyPbuffer) (Display *dpy, GLXPbuffer pbuf);
GdkGLProc    gdk_gl_get_glXDestroyPbuffer (void);
#define      gdk_gl_glXDestroyPbuffer(proc, dpy, pbuf) \
  ( ((GdkGLProc_glXDestroyPbuffer) (proc)) (dpy, pbuf) )

/* glXQueryDrawable */
typedef void ( * GdkGLProc_glXQueryDrawable) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
GdkGLProc    gdk_gl_get_glXQueryDrawable (void);
#define      gdk_gl_glXQueryDrawable(proc, dpy, draw, attribute, value) \
  ( ((GdkGLProc_glXQueryDrawable) (proc)) (dpy, draw, attribute, value) )

/* glXCreateNewContext */
typedef GLXContext ( * GdkGLProc_glXCreateNewContext) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
GdkGLProc    gdk_gl_get_glXCreateNewContext (void);
#define      gdk_gl_glXCreateNewContext(proc, dpy, config, render_type, share_list, direct) \
  ( ((GdkGLProc_glXCreateNewContext) (proc)) (dpy, config, render_type, share_list, direct) )

/* glXMakeContextCurrent */
typedef Bool ( * GdkGLProc_glXMakeContextCurrent) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
GdkGLProc    gdk_gl_get_glXMakeContextCurrent (void);
#define      gdk_gl_glXMakeContextCurrent(proc, dpy, draw, read, ctx) \
  ( ((GdkGLProc_glXMakeContextCurrent) (proc)) (dpy, draw, read, ctx) )

/* glXGetCurrentReadDrawable */
typedef GLXDrawable ( * GdkGLProc_glXGetCurrentReadDrawable) (void);
GdkGLProc    gdk_gl_get_glXGetCurrentReadDrawable (void);
#define      gdk_gl_glXGetCurrentReadDrawable(proc) \
  ( ((GdkGLProc_glXGetCurrentReadDrawable) (proc)) () )

/* glXGetCurrentDisplay */
typedef Display * ( * GdkGLProc_glXGetCurrentDisplay) (void);
GdkGLProc    gdk_gl_get_glXGetCurrentDisplay (void);
#define      gdk_gl_glXGetCurrentDisplay(proc) \
  ( ((GdkGLProc_glXGetCurrentDisplay) (proc)) () )

/* glXQueryContext */
typedef int ( * GdkGLProc_glXQueryContext) (Display *dpy, GLXContext ctx, int attribute, int *value);
GdkGLProc    gdk_gl_get_glXQueryContext (void);
#define      gdk_gl_glXQueryContext(proc, dpy, ctx, attribute, value) \
  ( ((GdkGLProc_glXQueryContext) (proc)) (dpy, ctx, attribute, value) )

/* glXSelectEvent */
typedef void ( * GdkGLProc_glXSelectEvent) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
GdkGLProc    gdk_gl_get_glXSelectEvent (void);
#define      gdk_gl_glXSelectEvent(proc, dpy, draw, event_mask) \
  ( ((GdkGLProc_glXSelectEvent) (proc)) (dpy, draw, event_mask) )

/* glXGetSelectedEvent */
typedef void ( * GdkGLProc_glXGetSelectedEvent) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
GdkGLProc    gdk_gl_get_glXGetSelectedEvent (void);
#define      gdk_gl_glXGetSelectedEvent(proc, dpy, draw, event_mask) \
  ( ((GdkGLProc_glXGetSelectedEvent) (proc)) (dpy, draw, event_mask) )

/* proc struct */

typedef struct _GdkGL_GLX_VERSION_1_3 GdkGL_GLX_VERSION_1_3;

struct _GdkGL_GLX_VERSION_1_3
{
  GdkGLProc_glXGetFBConfigs glXGetFBConfigs;
  GdkGLProc_glXChooseFBConfig glXChooseFBConfig;
  GdkGLProc_glXGetFBConfigAttrib glXGetFBConfigAttrib;
  GdkGLProc_glXGetVisualFromFBConfig glXGetVisualFromFBConfig;
  GdkGLProc_glXCreateWindow glXCreateWindow;
  GdkGLProc_glXDestroyWindow glXDestroyWindow;
  GdkGLProc_glXCreatePixmap glXCreatePixmap;
  GdkGLProc_glXDestroyPixmap glXDestroyPixmap;
  GdkGLProc_glXCreatePbuffer glXCreatePbuffer;
  GdkGLProc_glXDestroyPbuffer glXDestroyPbuffer;
  GdkGLProc_glXQueryDrawable glXQueryDrawable;
  GdkGLProc_glXCreateNewContext glXCreateNewContext;
  GdkGLProc_glXMakeContextCurrent glXMakeContextCurrent;
  GdkGLProc_glXGetCurrentReadDrawable glXGetCurrentReadDrawable;
  GdkGLProc_glXGetCurrentDisplay glXGetCurrentDisplay;
  GdkGLProc_glXQueryContext glXQueryContext;
  GdkGLProc_glXSelectEvent glXSelectEvent;
  GdkGLProc_glXGetSelectedEvent glXGetSelectedEvent;
};

GdkGL_GLX_VERSION_1_3 *gdk_gl_get_GLX_VERSION_1_3 (void);

/*
 * GLX_VERSION_1_4
 */

/* glXGetProcAddress */
typedef __GLXextFuncPtr ( * GdkGLProc_glXGetProcAddress) (const GLubyte *procName);
GdkGLProc    gdk_gl_get_glXGetProcAddress (void);
#define      gdk_gl_glXGetProcAddress(proc, procName) \
  ( ((GdkGLProc_glXGetProcAddress) (proc)) (procName) )

/* proc struct */

typedef struct _GdkGL_GLX_VERSION_1_4 GdkGL_GLX_VERSION_1_4;

struct _GdkGL_GLX_VERSION_1_4
{
  GdkGLProc_glXGetProcAddress glXGetProcAddress;
};

GdkGL_GLX_VERSION_1_4 *gdk_gl_get_GLX_VERSION_1_4 (void);

/*
 * GLX_ARB_get_proc_address
 */

/* glXGetProcAddressARB */
typedef __GLXextFuncPtr ( * GdkGLProc_glXGetProcAddressARB) (const GLubyte *procName);
GdkGLProc    gdk_gl_get_glXGetProcAddressARB (void);
#define      gdk_gl_glXGetProcAddressARB(proc, procName) \
  ( ((GdkGLProc_glXGetProcAddressARB) (proc)) (procName) )

/* proc struct */

typedef struct _GdkGL_GLX_ARB_get_proc_address GdkGL_GLX_ARB_get_proc_address;

struct _GdkGL_GLX_ARB_get_proc_address
{
  GdkGLProc_glXGetProcAddressARB glXGetProcAddressARB;
};

GdkGL_GLX_ARB_get_proc_address *gdk_gl_get_GLX_ARB_get_proc_address (GdkGLConfig *glconfig);

/*
 * GLX_SGI_swap_control
 */

/* glXSwapIntervalSGI */
typedef int ( * GdkGLProc_glXSwapIntervalSGI) (int interval);
GdkGLProc    gdk_gl_get_glXSwapIntervalSGI (void);
#define      gdk_gl_glXSwapIntervalSGI(proc, interval) \
  ( ((GdkGLProc_glXSwapIntervalSGI) (proc)) (interval) )

/* proc struct */

typedef struct _GdkGL_GLX_SGI_swap_control GdkGL_GLX_SGI_swap_control;

struct _GdkGL_GLX_SGI_swap_control
{
  GdkGLProc_glXSwapIntervalSGI glXSwapIntervalSGI;
};

GdkGL_GLX_SGI_swap_control *gdk_gl_get_GLX_SGI_swap_control (GdkGLConfig *glconfig);

/*
 * GLX_SGI_video_sync
 */

/* glXGetVideoSyncSGI */
typedef int ( * GdkGLProc_glXGetVideoSyncSGI) (unsigned int *count);
GdkGLProc    gdk_gl_get_glXGetVideoSyncSGI (void);
#define      gdk_gl_glXGetVideoSyncSGI(proc, count) \
  ( ((GdkGLProc_glXGetVideoSyncSGI) (proc)) (count) )

/* glXWaitVideoSyncSGI */
typedef int ( * GdkGLProc_glXWaitVideoSyncSGI) (int divisor, int remainder, unsigned int *count);
GdkGLProc    gdk_gl_get_glXWaitVideoSyncSGI (void);
#define      gdk_gl_glXWaitVideoSyncSGI(proc, divisor, remainder, count) \
  ( ((GdkGLProc_glXWaitVideoSyncSGI) (proc)) (divisor, remainder, count) )

/* proc struct */

typedef struct _GdkGL_GLX_SGI_video_sync GdkGL_GLX_SGI_video_sync;

struct _GdkGL_GLX_SGI_video_sync
{
  GdkGLProc_glXGetVideoSyncSGI glXGetVideoSyncSGI;
  GdkGLProc_glXWaitVideoSyncSGI glXWaitVideoSyncSGI;
};

GdkGL_GLX_SGI_video_sync *gdk_gl_get_GLX_SGI_video_sync (GdkGLConfig *glconfig);

/*
 * GLX_SGI_make_current_read
 */

/* glXMakeCurrentReadSGI */
typedef Bool ( * GdkGLProc_glXMakeCurrentReadSGI) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
GdkGLProc    gdk_gl_get_glXMakeCurrentReadSGI (void);
#define      gdk_gl_glXMakeCurrentReadSGI(proc, dpy, draw, read, ctx) \
  ( ((GdkGLProc_glXMakeCurrentReadSGI) (proc)) (dpy, draw, read, ctx) )

/* glXGetCurrentReadDrawableSGI */
typedef GLXDrawable ( * GdkGLProc_glXGetCurrentReadDrawableSGI) (void);
GdkGLProc    gdk_gl_get_glXGetCurrentReadDrawableSGI (void);
#define      gdk_gl_glXGetCurrentReadDrawableSGI(proc) \
  ( ((GdkGLProc_glXGetCurrentReadDrawableSGI) (proc)) () )

/* proc struct */

typedef struct _GdkGL_GLX_SGI_make_current_read GdkGL_GLX_SGI_make_current_read;

struct _GdkGL_GLX_SGI_make_current_read
{
  GdkGLProc_glXMakeCurrentReadSGI glXMakeCurrentReadSGI;
  GdkGLProc_glXGetCurrentReadDrawableSGI glXGetCurrentReadDrawableSGI;
};

GdkGL_GLX_SGI_make_current_read *gdk_gl_get_GLX_SGI_make_current_read (GdkGLConfig *glconfig);

/*
 * GLX_SGIX_video_source
 */

#ifdef _VL_H

/* glXCreateGLXVideoSourceSGIX */
typedef GLXVideoSourceSGIX ( * GdkGLProc_glXCreateGLXVideoSourceSGIX) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode);
GdkGLProc    gdk_gl_get_glXCreateGLXVideoSourceSGIX (void);
#define      gdk_gl_glXCreateGLXVideoSourceSGIX(proc, display, screen, server, path, nodeClass, drainNode) \
  ( ((GdkGLProc_glXCreateGLXVideoSourceSGIX) (proc)) (display, screen, server, path, nodeClass, drainNode) )

/* glXDestroyGLXVideoSourceSGIX */
typedef void ( * GdkGLProc_glXDestroyGLXVideoSourceSGIX) (Display *dpy, GLXVideoSourceSGIX glxvideosource);
GdkGLProc    gdk_gl_get_glXDestroyGLXVideoSourceSGIX (void);
#define      gdk_gl_glXDestroyGLXVideoSourceSGIX(proc, dpy, glxvideosource) \
  ( ((GdkGLProc_glXDestroyGLXVideoSourceSGIX) (proc)) (dpy, glxvideosource) )

/* proc struct */

typedef struct _GdkGL_GLX_SGIX_video_source GdkGL_GLX_SGIX_video_source;

struct _GdkGL_GLX_SGIX_video_source
{
  GdkGLProc_glXCreateGLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX;
  GdkGLProc_glXDestroyGLXVideoSourceSGIX glXDestroyGLXVideoSourceSGIX;
};

GdkGL_GLX_SGIX_video_source *gdk_gl_get_GLX_SGIX_video_source (GdkGLConfig *glconfig);

#endif /* _VL_H */

/*
 * GLX_EXT_import_context
 */

/* glXGetCurrentDisplayEXT */
typedef Display * ( * GdkGLProc_glXGetCurrentDisplayEXT) (void);
GdkGLProc    gdk_gl_get_glXGetCurrentDisplayEXT (void);
#define      gdk_gl_glXGetCurrentDisplayEXT(proc) \
  ( ((GdkGLProc_glXGetCurrentDisplayEXT) (proc)) () )

/* glXQueryContextInfoEXT */
typedef int ( * GdkGLProc_glXQueryContextInfoEXT) (Display *dpy, GLXContext context, int attribute, int *value);
GdkGLProc    gdk_gl_get_glXQueryContextInfoEXT (void);
#define      gdk_gl_glXQueryContextInfoEXT(proc, dpy, context, attribute, value) \
  ( ((GdkGLProc_glXQueryContextInfoEXT) (proc)) (dpy, context, attribute, value) )

/* glXGetContextIDEXT */
typedef GLXContextID ( * GdkGLProc_glXGetContextIDEXT) (const GLXContext context);
GdkGLProc    gdk_gl_get_glXGetContextIDEXT (void);
#define      gdk_gl_glXGetContextIDEXT(proc, context) \
  ( ((GdkGLProc_glXGetContextIDEXT) (proc)) (context) )

/* glXImportContextEXT */
typedef GLXContext ( * GdkGLProc_glXImportContextEXT) (Display *dpy, GLXContextID contextID);
GdkGLProc    gdk_gl_get_glXImportContextEXT (void);
#define      gdk_gl_glXImportContextEXT(proc, dpy, contextID) \
  ( ((GdkGLProc_glXImportContextEXT) (proc)) (dpy, contextID) )

/* glXFreeContextEXT */
typedef void ( * GdkGLProc_glXFreeContextEXT) (Display *dpy, GLXContext context);
GdkGLProc    gdk_gl_get_glXFreeContextEXT (void);
#define      gdk_gl_glXFreeContextEXT(proc, dpy, context) \
  ( ((GdkGLProc_glXFreeContextEXT) (proc)) (dpy, context) )

/* proc struct */

typedef struct _GdkGL_GLX_EXT_import_context GdkGL_GLX_EXT_import_context;

struct _GdkGL_GLX_EXT_import_context
{
  GdkGLProc_glXGetCurrentDisplayEXT glXGetCurrentDisplayEXT;
  GdkGLProc_glXQueryContextInfoEXT glXQueryContextInfoEXT;
  GdkGLProc_glXGetContextIDEXT glXGetContextIDEXT;
  GdkGLProc_glXImportContextEXT glXImportContextEXT;
  GdkGLProc_glXFreeContextEXT glXFreeContextEXT;
};

GdkGL_GLX_EXT_import_context *gdk_gl_get_GLX_EXT_import_context (GdkGLConfig *glconfig);

/*
 * GLX_SGIX_fbconfig
 */

/* glXGetFBConfigAttribSGIX */
typedef int ( * GdkGLProc_glXGetFBConfigAttribSGIX) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
GdkGLProc    gdk_gl_get_glXGetFBConfigAttribSGIX (void);
#define      gdk_gl_glXGetFBConfigAttribSGIX(proc, dpy, config, attribute, value) \
  ( ((GdkGLProc_glXGetFBConfigAttribSGIX) (proc)) (dpy, config, attribute, value) )

/* glXChooseFBConfigSGIX */
typedef GLXFBConfigSGIX * ( * GdkGLProc_glXChooseFBConfigSGIX) (Display *dpy, int screen, int *attrib_list, int *nelements);
GdkGLProc    gdk_gl_get_glXChooseFBConfigSGIX (void);
#define      gdk_gl_glXChooseFBConfigSGIX(proc, dpy, screen, attrib_list, nelements) \
  ( ((GdkGLProc_glXChooseFBConfigSGIX) (proc)) (dpy, screen, attrib_list, nelements) )

/* glXCreateGLXPixmapWithConfigSGIX */
typedef GLXPixmap ( * GdkGLProc_glXCreateGLXPixmapWithConfigSGIX) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap);
GdkGLProc    gdk_gl_get_glXCreateGLXPixmapWithConfigSGIX (void);
#define      gdk_gl_glXCreateGLXPixmapWithConfigSGIX(proc, dpy, config, pixmap) \
  ( ((GdkGLProc_glXCreateGLXPixmapWithConfigSGIX) (proc)) (dpy, config, pixmap) )

/* glXCreateContextWithConfigSGIX */
typedef GLXContext ( * GdkGLProc_glXCreateContextWithConfigSGIX) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
GdkGLProc    gdk_gl_get_glXCreateContextWithConfigSGIX (void);
#define      gdk_gl_glXCreateContextWithConfigSGIX(proc, dpy, config, render_type, share_list, direct) \
  ( ((GdkGLProc_glXCreateContextWithConfigSGIX) (proc)) (dpy, config, render_type, share_list, direct) )

/* glXGetVisualFromFBConfigSGIX */
typedef XVisualInfo * ( * GdkGLProc_glXGetVisualFromFBConfigSGIX) (Display *dpy, GLXFBConfigSGIX config);
GdkGLProc    gdk_gl_get_glXGetVisualFromFBConfigSGIX (void);
#define      gdk_gl_glXGetVisualFromFBConfigSGIX(proc, dpy, config) \
  ( ((GdkGLProc_glXGetVisualFromFBConfigSGIX) (proc)) (dpy, config) )

/* glXGetFBConfigFromVisualSGIX */
typedef GLXFBConfigSGIX ( * GdkGLProc_glXGetFBConfigFromVisualSGIX) (Display *dpy, XVisualInfo *vis);
GdkGLProc    gdk_gl_get_glXGetFBConfigFromVisualSGIX (void);
#define      gdk_gl_glXGetFBConfigFromVisualSGIX(proc, dpy, vis) \
  ( ((GdkGLProc_glXGetFBConfigFromVisualSGIX) (proc)) (dpy, vis) )

/* proc struct */

typedef struct _GdkGL_GLX_SGIX_fbconfig GdkGL_GLX_SGIX_fbconfig;

struct _GdkGL_GLX_SGIX_fbconfig
{
  GdkGLProc_glXGetFBConfigAttribSGIX glXGetFBConfigAttribSGIX;
  GdkGLProc_glXChooseFBConfigSGIX glXChooseFBConfigSGIX;
  GdkGLProc_glXCreateGLXPixmapWithConfigSGIX glXCreateGLXPixmapWithConfigSGIX;
  GdkGLProc_glXCreateContextWithConfigSGIX glXCreateContextWithConfigSGIX;
  GdkGLProc_glXGetVisualFromFBConfigSGIX glXGetVisualFromFBConfigSGIX;
  GdkGLProc_glXGetFBConfigFromVisualSGIX glXGetFBConfigFromVisualSGIX;
};

GdkGL_GLX_SGIX_fbconfig *gdk_gl_get_GLX_SGIX_fbconfig (GdkGLConfig *glconfig);

/*
 * GLX_SGIX_pbuffer
 */

/* glXCreateGLXPbufferSGIX */
typedef GLXPbufferSGIX ( * GdkGLProc_glXCreateGLXPbufferSGIX) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
GdkGLProc    gdk_gl_get_glXCreateGLXPbufferSGIX (void);
#define      gdk_gl_glXCreateGLXPbufferSGIX(proc, dpy, config, width, height, attrib_list) \
  ( ((GdkGLProc_glXCreateGLXPbufferSGIX) (proc)) (dpy, config, width, height, attrib_list) )

/* glXDestroyGLXPbufferSGIX */
typedef void ( * GdkGLProc_glXDestroyGLXPbufferSGIX) (Display *dpy, GLXPbufferSGIX pbuf);
GdkGLProc    gdk_gl_get_glXDestroyGLXPbufferSGIX (void);
#define      gdk_gl_glXDestroyGLXPbufferSGIX(proc, dpy, pbuf) \
  ( ((GdkGLProc_glXDestroyGLXPbufferSGIX) (proc)) (dpy, pbuf) )

/* glXQueryGLXPbufferSGIX */
typedef int ( * GdkGLProc_glXQueryGLXPbufferSGIX) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
GdkGLProc    gdk_gl_get_glXQueryGLXPbufferSGIX (void);
#define      gdk_gl_glXQueryGLXPbufferSGIX(proc, dpy, pbuf, attribute, value) \
  ( ((GdkGLProc_glXQueryGLXPbufferSGIX) (proc)) (dpy, pbuf, attribute, value) )

/* glXSelectEventSGIX */
typedef void ( * GdkGLProc_glXSelectEventSGIX) (Display *dpy, GLXDrawable drawable, unsigned long mask);
GdkGLProc    gdk_gl_get_glXSelectEventSGIX (void);
#define      gdk_gl_glXSelectEventSGIX(proc, dpy, drawable, mask) \
  ( ((GdkGLProc_glXSelectEventSGIX) (proc)) (dpy, drawable, mask) )

/* glXGetSelectedEventSGIX */
typedef void ( * GdkGLProc_glXGetSelectedEventSGIX) (Display *dpy, GLXDrawable drawable, unsigned long *mask);
GdkGLProc    gdk_gl_get_glXGetSelectedEventSGIX (void);
#define      gdk_gl_glXGetSelectedEventSGIX(proc, dpy, drawable, mask) \
  ( ((GdkGLProc_glXGetSelectedEventSGIX) (proc)) (dpy, drawable, mask) )

/* proc struct */

typedef struct _GdkGL_GLX_SGIX_pbuffer GdkGL_GLX_SGIX_pbuffer;

struct _GdkGL_GLX_SGIX_pbuffer
{
  GdkGLProc_glXCreateGLXPbufferSGIX glXCreateGLXPbufferSGIX;
  GdkGLProc_glXDestroyGLXPbufferSGIX glXDestroyGLXPbufferSGIX;
  GdkGLProc_glXQueryGLXPbufferSGIX glXQueryGLXPbufferSGIX;
  GdkGLProc_glXSelectEventSGIX glXSelectEventSGIX;
  GdkGLProc_glXGetSelectedEventSGIX glXGetSelectedEventSGIX;
};

GdkGL_GLX_SGIX_pbuffer *gdk_gl_get_GLX_SGIX_pbuffer (GdkGLConfig *glconfig);

/*
 * GLX_SGI_cushion
 */

/* glXCushionSGI */
typedef void ( * GdkGLProc_glXCushionSGI) (Display *dpy, Window window, float cushion);
GdkGLProc    gdk_gl_get_glXCushionSGI (void);
#define      gdk_gl_glXCushionSGI(proc, dpy, window, cushion) \
  ( ((GdkGLProc_glXCushionSGI) (proc)) (dpy, window, cushion) )

/* proc struct */

typedef struct _GdkGL_GLX_SGI_cushion GdkGL_GLX_SGI_cushion;

struct _GdkGL_GLX_SGI_cushion
{
  GdkGLProc_glXCushionSGI glXCushionSGI;
};

GdkGL_GLX_SGI_cushion *gdk_gl_get_GLX_SGI_cushion (GdkGLConfig *glconfig);

/*
 * GLX_SGIX_video_resize
 */

/* glXBindChannelToWindowSGIX */
typedef int ( * GdkGLProc_glXBindChannelToWindowSGIX) (Display *display, int screen, int channel, Window window);
GdkGLProc    gdk_gl_get_glXBindChannelToWindowSGIX (void);
#define      gdk_gl_glXBindChannelToWindowSGIX(proc, display, screen, channel, window) \
  ( ((GdkGLProc_glXBindChannelToWindowSGIX) (proc)) (display, screen, channel, window) )

/* glXChannelRectSGIX */
typedef int ( * GdkGLProc_glXChannelRectSGIX) (Display *display, int screen, int channel, int x, int y, int w, int h);
GdkGLProc    gdk_gl_get_glXChannelRectSGIX (void);
#define      gdk_gl_glXChannelRectSGIX(proc, display, screen, channel, x, y, w, h) \
  ( ((GdkGLProc_glXChannelRectSGIX) (proc)) (display, screen, channel, x, y, w, h) )

/* glXQueryChannelRectSGIX */
typedef int ( * GdkGLProc_glXQueryChannelRectSGIX) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
GdkGLProc    gdk_gl_get_glXQueryChannelRectSGIX (void);
#define      gdk_gl_glXQueryChannelRectSGIX(proc, display, screen, channel, dx, dy, dw, dh) \
  ( ((GdkGLProc_glXQueryChannelRectSGIX) (proc)) (display, screen, channel, dx, dy, dw, dh) )

/* glXQueryChannelDeltasSGIX */
typedef int ( * GdkGLProc_glXQueryChannelDeltasSGIX) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
GdkGLProc    gdk_gl_get_glXQueryChannelDeltasSGIX (void);
#define      gdk_gl_glXQueryChannelDeltasSGIX(proc, display, screen, channel, x, y, w, h) \
  ( ((GdkGLProc_glXQueryChannelDeltasSGIX) (proc)) (display, screen, channel, x, y, w, h) )

/* glXChannelRectSyncSGIX */
typedef int ( * GdkGLProc_glXChannelRectSyncSGIX) (Display *display, int screen, int channel, GLenum synctype);
GdkGLProc    gdk_gl_get_glXChannelRectSyncSGIX (void);
#define      gdk_gl_glXChannelRectSyncSGIX(proc, display, screen, channel, synctype) \
  ( ((GdkGLProc_glXChannelRectSyncSGIX) (proc)) (display, screen, channel, synctype) )

/* proc struct */

typedef struct _GdkGL_GLX_SGIX_video_resize GdkGL_GLX_SGIX_video_resize;

struct _GdkGL_GLX_SGIX_video_resize
{
  GdkGLProc_glXBindChannelToWindowSGIX glXBindChannelToWindowSGIX;
  GdkGLProc_glXChannelRectSGIX glXChannelRectSGIX;
  GdkGLProc_glXQueryChannelRectSGIX glXQueryChannelRectSGIX;
  GdkGLProc_glXQueryChannelDeltasSGIX glXQueryChannelDeltasSGIX;
  GdkGLProc_glXChannelRectSyncSGIX glXChannelRectSyncSGIX;
};

GdkGL_GLX_SGIX_video_resize *gdk_gl_get_GLX_SGIX_video_resize (GdkGLConfig *glconfig);

/*
 * GLX_SGIX_dmbuffer
 */

#ifdef _DM_BUFFER_H_

/* glXAssociateDMPbufferSGIX */
typedef Bool ( * GdkGLProc_glXAssociateDMPbufferSGIX) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer);
GdkGLProc    gdk_gl_get_glXAssociateDMPbufferSGIX (void);
#define      gdk_gl_glXAssociateDMPbufferSGIX(proc, dpy, pbuffer, params, dmbuffer) \
  ( ((GdkGLProc_glXAssociateDMPbufferSGIX) (proc)) (dpy, pbuffer, params, dmbuffer) )

/* proc struct */

typedef struct _GdkGL_GLX_SGIX_dmbuffer GdkGL_GLX_SGIX_dmbuffer;

struct _GdkGL_GLX_SGIX_dmbuffer
{
  GdkGLProc_glXAssociateDMPbufferSGIX glXAssociateDMPbufferSGIX;
};

GdkGL_GLX_SGIX_dmbuffer *gdk_gl_get_GLX_SGIX_dmbuffer (GdkGLConfig *glconfig);

#endif /* _DM_BUFFER_H_ */

/*
 * GLX_SGIX_swap_group
 */

/* glXJoinSwapGroupSGIX */
typedef void ( * GdkGLProc_glXJoinSwapGroupSGIX) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
GdkGLProc    gdk_gl_get_glXJoinSwapGroupSGIX (void);
#define      gdk_gl_glXJoinSwapGroupSGIX(proc, dpy, drawable, member) \
  ( ((GdkGLProc_glXJoinSwapGroupSGIX) (proc)) (dpy, drawable, member) )

/* proc struct */

typedef struct _GdkGL_GLX_SGIX_swap_group GdkGL_GLX_SGIX_swap_group;

struct _GdkGL_GLX_SGIX_swap_group
{
  GdkGLProc_glXJoinSwapGroupSGIX glXJoinSwapGroupSGIX;
};

GdkGL_GLX_SGIX_swap_group *gdk_gl_get_GLX_SGIX_swap_group (GdkGLConfig *glconfig);

/*
 * GLX_SGIX_swap_barrier
 */

/* glXBindSwapBarrierSGIX */
typedef void ( * GdkGLProc_glXBindSwapBarrierSGIX) (Display *dpy, GLXDrawable drawable, int barrier);
GdkGLProc    gdk_gl_get_glXBindSwapBarrierSGIX (void);
#define      gdk_gl_glXBindSwapBarrierSGIX(proc, dpy, drawable, barrier) \
  ( ((GdkGLProc_glXBindSwapBarrierSGIX) (proc)) (dpy, drawable, barrier) )

/* glXQueryMaxSwapBarriersSGIX */
typedef Bool ( * GdkGLProc_glXQueryMaxSwapBarriersSGIX) (Display *dpy, int screen, int *max);
GdkGLProc    gdk_gl_get_glXQueryMaxSwapBarriersSGIX (void);
#define      gdk_gl_glXQueryMaxSwapBarriersSGIX(proc, dpy, screen, max) \
  ( ((GdkGLProc_glXQueryMaxSwapBarriersSGIX) (proc)) (dpy, screen, max) )

/* proc struct */

typedef struct _GdkGL_GLX_SGIX_swap_barrier GdkGL_GLX_SGIX_swap_barrier;

struct _GdkGL_GLX_SGIX_swap_barrier
{
  GdkGLProc_glXBindSwapBarrierSGIX glXBindSwapBarrierSGIX;
  GdkGLProc_glXQueryMaxSwapBarriersSGIX glXQueryMaxSwapBarriersSGIX;
};

GdkGL_GLX_SGIX_swap_barrier *gdk_gl_get_GLX_SGIX_swap_barrier (GdkGLConfig *glconfig);

/*
 * GLX_SUN_get_transparent_index
 */

/* glXGetTransparentIndexSUN */
typedef Status ( * GdkGLProc_glXGetTransparentIndexSUN) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex);
GdkGLProc    gdk_gl_get_glXGetTransparentIndexSUN (void);
#define      gdk_gl_glXGetTransparentIndexSUN(proc, dpy, overlay, underlay, pTransparentIndex) \
  ( ((GdkGLProc_glXGetTransparentIndexSUN) (proc)) (dpy, overlay, underlay, pTransparentIndex) )

/* proc struct */

typedef struct _GdkGL_GLX_SUN_get_transparent_index GdkGL_GLX_SUN_get_transparent_index;

struct _GdkGL_GLX_SUN_get_transparent_index
{
  GdkGLProc_glXGetTransparentIndexSUN glXGetTransparentIndexSUN;
};

GdkGL_GLX_SUN_get_transparent_index *gdk_gl_get_GLX_SUN_get_transparent_index (GdkGLConfig *glconfig);

/*
 * GLX_MESA_copy_sub_buffer
 */

/* glXCopySubBufferMESA */
typedef void ( * GdkGLProc_glXCopySubBufferMESA) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
GdkGLProc    gdk_gl_get_glXCopySubBufferMESA (void);
#define      gdk_gl_glXCopySubBufferMESA(proc, dpy, drawable, x, y, width, height) \
  ( ((GdkGLProc_glXCopySubBufferMESA) (proc)) (dpy, drawable, x, y, width, height) )

/* proc struct */

typedef struct _GdkGL_GLX_MESA_copy_sub_buffer GdkGL_GLX_MESA_copy_sub_buffer;

struct _GdkGL_GLX_MESA_copy_sub_buffer
{
  GdkGLProc_glXCopySubBufferMESA glXCopySubBufferMESA;
};

GdkGL_GLX_MESA_copy_sub_buffer *gdk_gl_get_GLX_MESA_copy_sub_buffer (GdkGLConfig *glconfig);

/*
 * GLX_MESA_pixmap_colormap
 */

/* glXCreateGLXPixmapMESA */
typedef GLXPixmap ( * GdkGLProc_glXCreateGLXPixmapMESA) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
GdkGLProc    gdk_gl_get_glXCreateGLXPixmapMESA (void);
#define      gdk_gl_glXCreateGLXPixmapMESA(proc, dpy, visual, pixmap, cmap) \
  ( ((GdkGLProc_glXCreateGLXPixmapMESA) (proc)) (dpy, visual, pixmap, cmap) )

/* proc struct */

typedef struct _GdkGL_GLX_MESA_pixmap_colormap GdkGL_GLX_MESA_pixmap_colormap;

struct _GdkGL_GLX_MESA_pixmap_colormap
{
  GdkGLProc_glXCreateGLXPixmapMESA glXCreateGLXPixmapMESA;
};

GdkGL_GLX_MESA_pixmap_colormap *gdk_gl_get_GLX_MESA_pixmap_colormap (GdkGLConfig *glconfig);

/*
 * GLX_MESA_release_buffers
 */

/* glXReleaseBuffersMESA */
typedef Bool ( * GdkGLProc_glXReleaseBuffersMESA) (Display *dpy, GLXDrawable drawable);
GdkGLProc    gdk_gl_get_glXReleaseBuffersMESA (void);
#define      gdk_gl_glXReleaseBuffersMESA(proc, dpy, drawable) \
  ( ((GdkGLProc_glXReleaseBuffersMESA) (proc)) (dpy, drawable) )

/* proc struct */

typedef struct _GdkGL_GLX_MESA_release_buffers GdkGL_GLX_MESA_release_buffers;

struct _GdkGL_GLX_MESA_release_buffers
{
  GdkGLProc_glXReleaseBuffersMESA glXReleaseBuffersMESA;
};

GdkGL_GLX_MESA_release_buffers *gdk_gl_get_GLX_MESA_release_buffers (GdkGLConfig *glconfig);

/*
 * GLX_MESA_set_3dfx_mode
 */

/* glXSet3DfxModeMESA */
typedef Bool ( * GdkGLProc_glXSet3DfxModeMESA) (int mode);
GdkGLProc    gdk_gl_get_glXSet3DfxModeMESA (void);
#define      gdk_gl_glXSet3DfxModeMESA(proc, mode) \
  ( ((GdkGLProc_glXSet3DfxModeMESA) (proc)) (mode) )

/* proc struct */

typedef struct _GdkGL_GLX_MESA_set_3dfx_mode GdkGL_GLX_MESA_set_3dfx_mode;

struct _GdkGL_GLX_MESA_set_3dfx_mode
{
  GdkGLProc_glXSet3DfxModeMESA glXSet3DfxModeMESA;
};

GdkGL_GLX_MESA_set_3dfx_mode *gdk_gl_get_GLX_MESA_set_3dfx_mode (GdkGLConfig *glconfig);

/*
 * GLX_OML_sync_control
 */

/* glXGetSyncValuesOML */
typedef Bool ( * GdkGLProc_glXGetSyncValuesOML) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
GdkGLProc    gdk_gl_get_glXGetSyncValuesOML (void);
#define      gdk_gl_glXGetSyncValuesOML(proc, dpy, drawable, ust, msc, sbc) \
  ( ((GdkGLProc_glXGetSyncValuesOML) (proc)) (dpy, drawable, ust, msc, sbc) )

/* glXGetMscRateOML */
typedef Bool ( * GdkGLProc_glXGetMscRateOML) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
GdkGLProc    gdk_gl_get_glXGetMscRateOML (void);
#define      gdk_gl_glXGetMscRateOML(proc, dpy, drawable, numerator, denominator) \
  ( ((GdkGLProc_glXGetMscRateOML) (proc)) (dpy, drawable, numerator, denominator) )

/* glXSwapBuffersMscOML */
typedef int64_t ( * GdkGLProc_glXSwapBuffersMscOML) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
GdkGLProc    gdk_gl_get_glXSwapBuffersMscOML (void);
#define      gdk_gl_glXSwapBuffersMscOML(proc, dpy, drawable, target_msc, divisor, remainder) \
  ( ((GdkGLProc_glXSwapBuffersMscOML) (proc)) (dpy, drawable, target_msc, divisor, remainder) )

/* glXWaitForMscOML */
typedef Bool ( * GdkGLProc_glXWaitForMscOML) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc);
GdkGLProc    gdk_gl_get_glXWaitForMscOML (void);
#define      gdk_gl_glXWaitForMscOML(proc, dpy, drawable, target_msc, divisor, remainder, ust, msc, sbc) \
  ( ((GdkGLProc_glXWaitForMscOML) (proc)) (dpy, drawable, target_msc, divisor, remainder, ust, msc, sbc) )

/* glXWaitForSbcOML */
typedef Bool ( * GdkGLProc_glXWaitForSbcOML) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
GdkGLProc    gdk_gl_get_glXWaitForSbcOML (void);
#define      gdk_gl_glXWaitForSbcOML(proc, dpy, drawable, target_sbc, ust, msc, sbc) \
  ( ((GdkGLProc_glXWaitForSbcOML) (proc)) (dpy, drawable, target_sbc, ust, msc, sbc) )

/* proc struct */

typedef struct _GdkGL_GLX_OML_sync_control GdkGL_GLX_OML_sync_control;

struct _GdkGL_GLX_OML_sync_control
{
  GdkGLProc_glXGetSyncValuesOML glXGetSyncValuesOML;
  GdkGLProc_glXGetMscRateOML glXGetMscRateOML;
  GdkGLProc_glXSwapBuffersMscOML glXSwapBuffersMscOML;
  GdkGLProc_glXWaitForMscOML glXWaitForMscOML;
  GdkGLProc_glXWaitForSbcOML glXWaitForSbcOML;
};

GdkGL_GLX_OML_sync_control *gdk_gl_get_GLX_OML_sync_control (GdkGLConfig *glconfig);

/*
 * GLX_MESA_agp_offset
 */

/* glXGetAGPOffsetMESA */
typedef GLuint ( * GdkGLProc_glXGetAGPOffsetMESA) (const GLvoid *pointer);
GdkGLProc    gdk_gl_get_glXGetAGPOffsetMESA (void);
#define      gdk_gl_glXGetAGPOffsetMESA(proc, pointer) \
  ( ((GdkGLProc_glXGetAGPOffsetMESA) (proc)) (pointer) )

/* proc struct */

typedef struct _GdkGL_GLX_MESA_agp_offset GdkGL_GLX_MESA_agp_offset;

struct _GdkGL_GLX_MESA_agp_offset
{
  GdkGLProc_glXGetAGPOffsetMESA glXGetAGPOffsetMESA;
};

GdkGL_GLX_MESA_agp_offset *gdk_gl_get_GLX_MESA_agp_offset (GdkGLConfig *glconfig);

/*
 * GLX_NV_vertex_array_range
 */

/* glXAllocateMemoryNV */
typedef void * ( * GdkGLProc_glXAllocateMemoryNV) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
GdkGLProc    gdk_gl_get_glXAllocateMemoryNV (void);
#define      gdk_gl_glXAllocateMemoryNV(proc, size, readfreq, writefreq, priority) \
  ( ((GdkGLProc_glXAllocateMemoryNV) (proc)) (size, readfreq, writefreq, priority) )

/* glXFreeMemoryNV */
typedef void ( * GdkGLProc_glXFreeMemoryNV) (void *pointer);
GdkGLProc    gdk_gl_get_glXFreeMemoryNV (void);
#define      gdk_gl_glXFreeMemoryNV(proc, pointer) \
  ( ((GdkGLProc_glXFreeMemoryNV) (proc)) (pointer) )

/* proc struct */

typedef struct _GdkGL_GLX_NV_vertex_array_range GdkGL_GLX_NV_vertex_array_range;

struct _GdkGL_GLX_NV_vertex_array_range
{
  GdkGLProc_glXAllocateMemoryNV glXAllocateMemoryNV;
  GdkGLProc_glXFreeMemoryNV glXFreeMemoryNV;
};

GdkGL_GLX_NV_vertex_array_range *gdk_gl_get_GLX_NV_vertex_array_range (GdkGLConfig *glconfig);

G_END_DECLS

#endif /* __GDK_GL_GLXEXT_H__ */