summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--PORTABLE_VERSION2
-rw-r--r--configure.ac2
-rw-r--r--plugins/gtkui/Makefile.am89
-rw-r--r--plugins/gtkui/actionhandlers.c1
-rw-r--r--plugins/gtkui/gtkglext-gtk2/AUTHORS19
-rw-r--r--plugins/gtkui/gtkglext-gtk2/COPYING340
-rw-r--r--plugins/gtkui/gtkglext-gtk2/COPYING.LIB510
-rw-r--r--plugins/gtkui/gtkglext-gtk2/README160
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkgl.h39
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c442
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.h135
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.c120
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.h73
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkgldebug.h73
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkgldefs.h40
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.c218
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.h93
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.c288
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.h47
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglext-config.h33
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglfont.h44
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.c24997
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.h9018
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.c245
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.h42
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.c803
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.h83
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglprivate.h56
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.c114
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.h52
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.c868
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.h60
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkgltokens.h298
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkgltypes.h42
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.c25
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.h58
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.c817
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.h83
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile464
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile.am25
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/glext/README5
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/glext/common-header.h18
-rwxr-xr-xplugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglext-c.pl145
-rwxr-xr-xplugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglext-h.pl159
-rwxr-xr-xplugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglxext-c.pl154
-rwxr-xr-xplugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglxext-h.pl218
-rwxr-xr-xplugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglwglext-c.pl137
-rwxr-xr-xplugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglwglext-h.pl149
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/glext/glext-extra.h892
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/glext/glext.h5545
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext-extra.h144
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext.h607
-rwxr-xr-xplugins/gtkui/gtkglext-gtk2/gdk/glext/list-ext.pl42
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext-extra.h116
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext.h608
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglconfig-win32.c908
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglconfig-win32.h59
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglcontext-win32.c490
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglcontext-win32.h63
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkgldrawable-win32.c63
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglfont-win32.c109
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.c532
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.h75
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglprivate-win32.h59
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglquery-win32.c252
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.c2186
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.h839
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwin32.h85
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwindow-win32.c442
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwindow-win32.h73
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.c957
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.h61
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.c601
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.h64
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgldrawable-x11.c34
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglfont-x11.c196
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.c1882
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.h893
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c229
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.h49
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.c387
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.h57
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglprivate-x11.h58
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglquery-x11.c503
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.c343
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.h58
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglx.h84
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gtk/gtkgl.h29
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gtk/gtkgldebug.h67
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gtk/gtkgldefs.h38
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.c234
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.h43
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gtk/gtkglprivate.h32
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.c25
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.h58
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.c507
-rw-r--r--plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.h55
-rwxr-xr-xscripts/static_build.sh2
99 files changed, 63624 insertions, 17 deletions
diff --git a/.gitignore b/.gitignore
index 3bebb1ed..14664802 100644
--- a/.gitignore
+++ b/.gitignore
@@ -72,3 +72,6 @@ package_temp
messages.mo
.install
.config
+plugins/libmp4ff/libmp4ff.a
+plugins/libparser/libparser.a
+
diff --git a/PORTABLE_VERSION b/PORTABLE_VERSION
index b49b2533..a2906f35 100644
--- a/PORTABLE_VERSION
+++ b/PORTABLE_VERSION
@@ -1 +1 @@
-0.5.6
+0.6.0-beta5
diff --git a/configure.ac b/configure.ac
index 519938b5..e8d32f9b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -221,7 +221,7 @@ AS_IF([test "${enable_gtk2}" = "yes"], [
AS_IF([test "${enable_staticlink}" != "no"], [
HAVE_GTK2=yes
], [
- PKG_CHECK_MODULES(GTK2_DEPS, gtk+-2.0 >= 2.12 gthread-2.0 glib-2.0 gtkglext-1.0, HAVE_GTK2=yes, HAVE_GTK2=no)
+ PKG_CHECK_MODULES(GTK2_DEPS, gtk+-2.0 >= 2.12 gthread-2.0 glib-2.0, HAVE_GTK2=yes, HAVE_GTK2=no)
])
dnl AC_CHECK_LIB([SM], [main], [HAVE_SM=yes;SM_LIBS="-lSM";AC_SUBST(SM_LIBS)])
dnl AC_CHECK_LIB([ICE], [main], [HAVE_ICE=yes;ICE_LIBS="-lICE";AC_SUBST(ICE_LIBS)])
diff --git a/plugins/gtkui/Makefile.am b/plugins/gtkui/Makefile.am
index 8d93b1b2..8d843f0a 100644
--- a/plugins/gtkui/Makefile.am
+++ b/plugins/gtkui/Makefile.am
@@ -50,6 +50,8 @@ sdk_HEADERS = gtkui_api.h
EXTRA_DIST = deadbeef.glade
+GTKGLEXT_LIBS = -lGL -lGLU
+
if STATICLINK
if HAVE_GTK2
if HAVE_GTK3
@@ -78,19 +80,79 @@ endif
# normal lib
if HAVE_GTK2
+GTKGLEXT_SOURCES_GTK2 = \
+ gtkglext-gtk2/gdk/x11/gdkglconfig-x11.c\
+ gtkglext-gtk2/gdk/x11/gdkglconfig-x11.h\
+ gtkglext-gtk2/gdk/x11/gdkglcontext-x11.c\
+ gtkglext-gtk2/gdk/x11/gdkglcontext-x11.h\
+ gtkglext-gtk2/gdk/x11/gdkgldrawable-x11.c\
+ gtkglext-gtk2/gdk/x11/gdkglglxext.c\
+ gtkglext-gtk2/gdk/x11/gdkglglxext.h\
+ gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c\
+ gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.h\
+ gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.c\
+ gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.h\
+ gtkglext-gtk2/gdk/x11/gdkglprivate-x11.h\
+ gtkglext-gtk2/gdk/x11/gdkglquery-x11.c\
+ gtkglext-gtk2/gdk/x11/gdkglwindow-x11.c\
+ gtkglext-gtk2/gdk/x11/gdkglwindow-x11.h\
+ gtkglext-gtk2/gdk/x11/gdkglx.h\
+ gtkglext-gtk2/gtk/gtkgldebug.h\
+ gtkglext-gtk2/gtk/gtkgldefs.h\
+ gtkglext-gtk2/gtk/gtkgl.h\
+ gtkglext-gtk2/gtk/gtkglinit.c\
+ gtkglext-gtk2/gtk/gtkglinit.h\
+ gtkglext-gtk2/gtk/gtkglprivate.h\
+ gtkglext-gtk2/gtk/gtkglversion.c\
+ gtkglext-gtk2/gtk/gtkglversion.h\
+ gtkglext-gtk2/gtk/gtkglversion.h.in\
+ gtkglext-gtk2/gtk/gtkglwidget.c\
+ gtkglext-gtk2/gtk/gtkglwidget.h\
+ gtkglext-gtk2/gdk/gdkglconfig.c\
+ gtkglext-gtk2/gdk/gdkglconfig.h\
+ gtkglext-gtk2/gdk/gdkglcontext.c\
+ gtkglext-gtk2/gdk/gdkglcontext.h\
+ gtkglext-gtk2/gdk/gdkgldebug.h\
+ gtkglext-gtk2/gdk/gdkgldefs.h\
+ gtkglext-gtk2/gdk/gdkgldrawable.c\
+ gtkglext-gtk2/gdk/gdkgldrawable.h\
+ gtkglext-gtk2/gdk/gdkglenumtypes.c\
+ gtkglext-gtk2/gdk/gdkglenumtypes.h\
+ gtkglext-gtk2/gdk/gdkglext-config.h\
+ gtkglext-gtk2/gdk/gdkglglext.c\
+ gtkglext-gtk2/gdk/gdkglglext.h\
+ gtkglext-gtk2/gdk/gdkgl.h\
+ gtkglext-gtk2/gdk/gdkglinit.c\
+ gtkglext-gtk2/gdk/gdkglinit.h\
+ gtkglext-gtk2/gdk/gdkglpixmap.c\
+ gtkglext-gtk2/gdk/gdkglpixmap.h\
+ gtkglext-gtk2/gdk/gdkglprivate.h\
+ gtkglext-gtk2/gdk/gdkglquery.c\
+ gtkglext-gtk2/gdk/gdkglquery.h\
+ gtkglext-gtk2/gdk/gdkglshapes.c\
+ gtkglext-gtk2/gdk/gdkglshapes.h\
+ gtkglext-gtk2/gdk/gdkgltokens.h\
+ gtkglext-gtk2/gdk/gdkgltypes.h\
+ gtkglext-gtk2/gdk/gdkglversion.c\
+ gtkglext-gtk2/gdk/gdkglversion.h\
+ gtkglext-gtk2/gdk/gdkglwindow.c\
+ gtkglext-gtk2/gdk/gdkglwindow.h
+
+GTKGLEXT_CFLAGS_GTK2 = -I@top_srcdir@/plugins/gtkui/gtkglext-gtk2 -I@top_srcdir@/plugins/gtkui/gtkglext-gtk2/gdk -DGTK_GL_COMPILATION -DGDK_GL_COMPILATION
-ddb_gui_GTK2_la_SOURCES = $(GTKUI_SOURCES)
+ddb_gui_GTK2_la_SOURCES = $(GTKUI_SOURCES) $(GTKGLEXT_SOURCES_GTK2)
ddb_gui_GTK2_la_LDFLAGS = -module
if STATICLINK
GTK_ROOT_216=@top_srcdir@/$(LIB)/gtk-2.16.0
-ddb_gui_GTK2_la_LIBADD = $(LDADD) -L$(GTK_ROOT_216)/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 $(SM_LIBADD) ../libparser/libparser.a
+ddb_gui_GTK2_la_LIBADD = $(LDADD) -L$(GTK_ROOT_216)/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 $(SM_LIBADD) ../libparser/libparser.a $(GTKGLEXT_LIBS)
-ddb_gui_GTK2_la_CFLAGS = -std=c99 -I$(GTK_ROOT_216)/include/gtk-2.0 -I$(GTK_ROOT_216)/lib/gtk-2.0/include -I$(GTK_ROOT_216)/include/atk-1.0 -I$(GTK_ROOT_216)/include/cairo -I$(GTK_ROOT_216)/include/pango-1.0 -I$(GTK_ROOT_216)/include -I$(GTK_ROOT_216)/include/glib-2.0 -I$(GTK_ROOT_216)/lib/glib-2.0/include $(SM_CFLAGS)
+ddb_gui_GTK2_la_CFLAGS = -std=c99 -I$(GTK_ROOT_216)/include/gtk-2.0 -I$(GTK_ROOT_216)/lib/gtk-2.0/include -I$(GTK_ROOT_216)/include/atk-1.0 -I$(GTK_ROOT_216)/include/cairo -I$(GTK_ROOT_216)/include/pango-1.0 -I$(GTK_ROOT_216)/include -I$(GTK_ROOT_216)/include/glib-2.0 -I$(GTK_ROOT_216)/lib/glib-2.0/include $(SM_CFLAGS) $(GTKGLEXT_CFLAGS_GTK2)
else
-ddb_gui_GTK2_la_LIBADD = $(LDADD) $(GTK2_DEPS_LIBS) $(SM_LIBADD) -lGLU ../libparser/libparser.a
-ddb_gui_GTK2_la_CFLAGS = -std=c99 $(GTK2_DEPS_CFLAGS) $(SM_CFLAGS)
+ddb_gui_GTK2_la_LIBADD = $(LDADD) $(GTK2_DEPS_LIBS) $(SM_LIBADD) ../libparser/libparser.a $(GTKGLEXT_LIBS)
+
+ddb_gui_GTK2_la_CFLAGS = -std=c99 $(GTK2_DEPS_CFLAGS) $(SM_CFLAGS) $(GTKGLEXT_CFLAGS_GTK2)
endif
endif
@@ -99,10 +161,9 @@ if HAVE_GTK3
if OS_OSX
AM_CPPFLAGS = $(CXXFLAGS) $(GTK3_DEPS_CFLAGS)
GTK3_OSX_SOURCES = retina.m
-GTKGLEXT_SOURCES =
+GTKGLEXT_SOURCES_GTK3 =
else
-GTKGLEXT_LIBS = -lGL
-GTKGLEXT_SOURCES = \
+GTKGLEXT_SOURCES_GTK3 = \
gtkglext-gtk3/gtk/gtkglinit.c\
gtkglext-gtk3/gtk/gtkglversion.c\
gtkglext-gtk3/gtk/gtkglwidget.c\
@@ -162,9 +223,9 @@ GTKGLEXT_SOURCES = \
gtkglext-gtk3/gdk/gdkglversion.h
endif
-GTKGLEXT_CFLAGS = -I@top_srcdir@/plugins/gtkui/gtkglext-gtk3 -I@top_srcdir@/plugins/gtkui/gtkglext-gtk3/gdk -DGTK_GL_COMPILATION -DGDK_GL_COMPILATION
+GTKGLEXT_CFLAGS_GTK3 = -I@top_srcdir@/plugins/gtkui/gtkglext-gtk3 -I@top_srcdir@/plugins/gtkui/gtkglext-gtk3/gdk -DGTK_GL_COMPILATION -DGDK_GL_COMPILATION
-ddb_gui_GTK3_la_SOURCES = $(GTKUI_SOURCES) $(GTKGLEXT_SOURCES) $(GTK3_OSX_SOURCES)
+ddb_gui_GTK3_la_SOURCES = $(GTKUI_SOURCES) $(GTKGLEXT_SOURCES_GTK3) $(GTK3_OSX_SOURCES)
ddb_gui_GTK3_la_LDFLAGS = -module
if STATICLINK
@@ -172,11 +233,11 @@ GTK_ROOT_300=@top_srcdir@/$(LIB)/gtk-3.0.0
ddb_gui_GTK3_la_LIBADD = $(LDADD) -L$(GTK_ROOT_300)/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lfreetype -lfontconfig $(SM_LIBADD) $(GTKGLEXT_LIBS) ../libparser/libparser.a
-ddb_gui_GTK3_la_CFLAGS = -std=c99 -I$(GTK_ROOT_300)/include/gtk-3.0 -I$(GTK_ROOT_300)/include/pango-1.0 -I$(GTK_ROOT_300)/include/gio-unix-2.0/ -I$(GTK_ROOT_300)/include/atk-1.0 -I$(GTK_ROOT_300)/include/cairo -I$(GTK_ROOT_300)/include/gdk-pixbuf-2.0 -I$(GTK_ROOT_300)/include/freetype2 -I$(GTK_ROOT_300)/include/glib-2.0 -I$(GTK_ROOT_300)/lib/glib-2.0/include $(SM_CFLAGS) $(GTKGLEXT_CFLAGS)
+ddb_gui_GTK3_la_CFLAGS = -std=c99 -I$(GTK_ROOT_300)/include/gtk-3.0 -I$(GTK_ROOT_300)/include/pango-1.0 -I$(GTK_ROOT_300)/include/gio-unix-2.0/ -I$(GTK_ROOT_300)/include/atk-1.0 -I$(GTK_ROOT_300)/include/cairo -I$(GTK_ROOT_300)/include/gdk-pixbuf-2.0 -I$(GTK_ROOT_300)/include/freetype2 -I$(GTK_ROOT_300)/include/glib-2.0 -I$(GTK_ROOT_300)/lib/glib-2.0/include $(SM_CFLAGS) $(GTKGLEXT_CFLAGS_GTK3)
else
ddb_gui_GTK3_la_LIBADD = $(LDADD) $(GTK3_DEPS_LIBS) $(SM_LIBADD) $(GTKGLEXT_LIBS) $(GTK_MAC_LIBS) ../libparser/libparser.a
-ddb_gui_GTK3_la_CFLAGS = -std=c99 $(GTK3_DEPS_CFLAGS) $(SM_CFLAGS) $(GTKGLEXT_CFLAGS) $(GTK_MAC_CFLAGS)
+ddb_gui_GTK3_la_CFLAGS = -std=c99 $(GTK3_DEPS_CFLAGS) $(SM_CFLAGS) $(GTKGLEXT_CFLAGS_GTK3) $(GTK_MAC_CFLAGS)
endif
endif
@@ -187,9 +248,9 @@ GTK_ROOT=@top_srcdir@/$(LIB)/gtk-2.12.12/usr
ddb_gui_GTK2_fallback_la_SOURCES = $(GTKUI_SOURCES)
ddb_gui_GTK2_fallback_la_LDFLAGS = -module
-ddb_gui_GTK2_fallback_la_LIBADD = $(LDADD) -L$(GTK_ROOT)/lib $(GTK_ROOT)/lib/libgtk-x11-2.0.la $(GTK_ROOT)/lib/libgdk-x11-2.0.la $(GTK_ROOT)/lib/libpangoft2-1.0.la $(GTK_ROOT)/lib/libpangocairo-1.0.la $(GTK_ROOT)/lib/libgdk_pixbuf-2.0.la -lm $(GTK_ROOT)/lib/libcairo.la $(GTK_ROOT)/lib/libpango-1.0.la $(GTK_ROOT)/lib/libgobject-2.0.la $(GTK_ROOT)/lib/libgmodule-2.0.la $(GTK_ROOT)/lib/libgthread-2.0.la -lrt $(GTK_ROOT)/lib/libglib-2.0.la $(SM_LIBADD) ../libparser/libparser.a
+ddb_gui_GTK2_fallback_la_LIBADD = $(LDADD) -L$(GTK_ROOT)/lib $(GTK_ROOT)/lib/libgtk-x11-2.0.la $(GTK_ROOT)/lib/libgdk-x11-2.0.la $(GTK_ROOT)/lib/libpangoft2-1.0.la $(GTK_ROOT)/lib/libpangocairo-1.0.la $(GTK_ROOT)/lib/libgdk_pixbuf-2.0.la -lm $(GTK_ROOT)/lib/libcairo.la $(GTK_ROOT)/lib/libpango-1.0.la $(GTK_ROOT)/lib/libgobject-2.0.la $(GTK_ROOT)/lib/libgmodule-2.0.la $(GTK_ROOT)/lib/libgthread-2.0.la -lrt $(GTK_ROOT)/lib/libglib-2.0.la $(SM_LIBADD) ../libparser/libparser.a $(GTKGLEXT_LIBS)
-ddb_gui_GTK2_fallback_la_CFLAGS = -std=c99 -I $(GTK_ROOT)/include -I $(GTK_ROOT)/lib/gtk-2.0/include -I $(GTK_ROOT)/include/glib-2.0 -I $(GTK_ROOT)/include/gtk-2.0 -I $(GTK_ROOT)/include/cairo -I $(GTK_ROOT)/lib/glib-2.0/include/ -I $(GTK_ROOT)/include/pango-1.0 -I $(GTK_ROOT)/include/atk-1.0 $(SM_CFLAGS)
+ddb_gui_GTK2_fallback_la_CFLAGS = -std=c99 -I $(GTK_ROOT)/include -I $(GTK_ROOT)/lib/gtk-2.0/include -I $(GTK_ROOT)/include/glib-2.0 -I $(GTK_ROOT)/include/gtk-2.0 -I $(GTK_ROOT)/include/cairo -I $(GTK_ROOT)/lib/glib-2.0/include/ -I $(GTK_ROOT)/include/pango-1.0 -I $(GTK_ROOT)/include/atk-1.0 $(SM_CFLAGS) -I$(GTKGLEXT_ROOT)/include/gtkglext-1.0 $(GTKGLEXT_CFLAGS_GTK2)
endif
diff --git a/plugins/gtkui/actionhandlers.c b/plugins/gtkui/actionhandlers.c
index b2f909d2..c2b3fcf5 100644
--- a/plugins/gtkui/actionhandlers.c
+++ b/plugins/gtkui/actionhandlers.c
@@ -26,6 +26,7 @@
#include <string.h>
#include <gtk/gtk.h>
+#include <unistd.h>
#include "../../gettext.h"
#include "../../deadbeef.h"
#include "gtkui.h"
diff --git a/plugins/gtkui/gtkglext-gtk2/AUTHORS b/plugins/gtkui/gtkglext-gtk2/AUTHORS
new file mode 100644
index 00000000..a53b90d1
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/AUTHORS
@@ -0,0 +1,19 @@
+
+Original Author
+===============
+
+Naofumi Yasufuku (°ÂÊ¡ ¾°Ê¸) <naofumi@users.sourceforge.net>
+
+
+Contributors
+============
+
+Alif Wahid <awah005@users.sourceforge.net>
+ * Port of viewlw, the LightWave 3D object viewer demo, that comes
+ with the GtkGLArea. The program is originally written by Janne Lof.
+ * rotating-square.c, coolwave.c, coolwave2.c, template.c and
+ scribble-gl.c demo programs.
+
+Igor Fernandez de Bustos <impfedei@bi.ehu.es>
+ * Documentations.
+
diff --git a/plugins/gtkui/gtkglext-gtk2/COPYING b/plugins/gtkui/gtkglext-gtk2/COPYING
new file mode 100644
index 00000000..d60c31a9
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/plugins/gtkui/gtkglext-gtk2/COPYING.LIB b/plugins/gtkui/gtkglext-gtk2/COPYING.LIB
new file mode 100644
index 00000000..cf9b6b99
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/COPYING.LIB
@@ -0,0 +1,510 @@
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+^L
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard. To achieve this, non-free programs must
+be allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+^L
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+^L
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+^L
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at least
+ three years, to give the same user the materials specified in
+ Subsection 6a, above, for a charge no more than the cost of
+ performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+^L
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+^L
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+^L
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+^L
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James
+ Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/plugins/gtkui/gtkglext-gtk2/README b/plugins/gtkui/gtkglext-gtk2/README
new file mode 100644
index 00000000..ae3be691
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/README
@@ -0,0 +1,160 @@
+
+
+ G t k G L E x t
+
+ - OpenGL Extension to GTK
+
+
+General Information
+===================
+
+GtkGLExt is an OpenGL extension to GTK.
+
+This package is composed of GdkGLExt library and GtkGLExt library.
+GdkGLExt library provides the GDK objects which support OpenGL
+rendering in GTK. GtkGLExt library provides the GtkWidget API add-ons
+to make GTK+ widgets OpenGL-capable.
+
+The official web site is:
+ http://gtkglext.sourceforge.net/
+
+The official download & development project site is:
+ http://sourceforge.net/projects/gtkglext/
+
+
+Licensing
+=========
+
+GtkGLExt libraries are released under the terms of the GNU Lesser
+General Public License (GNU LGPL). While components and programs
+included with this release are licensed under the terms of the GNU
+General Public License (GNU GPL).
+
+
+Supported Platforms
+===================
+
+Currently GtkGLExt supports
+
+ * UNIX and UNIX-like platforms
+ Tested under Linux, FreeBSD, IRIX, and Mac OS X.
+
+ * Win32 platforms
+ Tested under Windows XP & 2000 Professional using MinGW/Cygwin
+ environment.
+
+
+Requirements
+============
+
+ * GNU C compiler
+
+ * GNU make
+
+ * GTK 2.0 or later (http://www.gtk.org/)
+
+ * OpenGL or Mesa (http://www.mesa3d.org/)
+
+ * GTK-Doc (http://www.gtk.org/rdp/) [optional]
+
+
+Multihead Support
+=================
+
+Multihead support requires GTK+ 2.1 or above.
+
+If GtkGLExt is already installed, you can check whether installed
+GtkGLExt library supports multihead using the following command.
+
+ $ pkg-config --variable=multihead gtkglext-1.0
+
+
+Installation
+============
+
+To build and install GtkGLExt, type follows (use GNU make)
+
+ $ ./configure --prefix=/foo/bar (other options...)
+ $ make (or gmake)
+ $ make install
+
+To compile example programs, type
+
+ $ make examples
+
+Please read INSTALL or type "./configure --help" for more details.
+
+
+Configure Options
+=================
+
+OpenGL options
+
+ --with-gl-prefix=DIR OpenGL (Mesa) is installed in DIR [default=auto]
+ --with-gl-includedir=DIR OpenGL (Mesa) headers are in DIR [default=auto]
+ --with-gl-libdir=DIR OpenGL (Mesa) libraries are in DIR [default=auto]
+
+Debug options
+
+ --enable-debug=[no/minimum/yes] turn on debugging [default=minimum]
+
+Window system options
+
+ --with-gdktarget=[x11/win32] select GDK target
+
+Auto-generation files options
+
+ --disable-rebuilds disable all source autogeneration rules
+
+Documentation options
+
+ --enable-gtk-doc use gtk-doc to build documentation [default=no]
+ --with-html-dir=PATH path to installed docs
+
+
+Building the CVS Version of GtkGLExt
+====================================
+
+GtkGLExt's SourceForge CVS repository can be checked out through
+anonymous (pserver) CVS with the following instruction set.
+When prompted for a password for anonymous, simply press the Enter key.
+
+ $ cvs \
+ -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gtkglext \
+ login
+ $ cvs -z3 \
+ -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gtkglext \
+ co -r gtkglext-X-Y gtkglext
+
+ (gtkglext-X-Y is a branch name. e.g. gtkglext-1-0 is 1.0.x branch.)
+
+When you are at work on the CVS version of GtkGLExt, you can use autogen.sh
+for generating configure script and Makefiles.
+
+ $ env ACLOCAL_FLAGS='-I /pkgconfig/share/aclocal -I /gtk/share/aclocal' \
+ ./autogen.sh --prefix=${HOME}/gtkglext \
+ --enable-debug=yes
+ $ make
+ $ make install
+ $ make examples
+
+You may have to set ACLOCAL_FLAGS environment variable for some m4
+macros used in configure.in.
+
+The following versions of the GNU autotools are required.
+
+ autoconf 2.54 and above
+ automake 1.7.x
+ libtool 1.5
+
+
+Contact
+=======
+
+Any patches, bug fixes and improvements are always welcome ;-)
+
+ * Home: http://gtkglext.sourceforge.net/
+ * Mailing List: http://mail.gnome.org/mailman/listinfo/gtkglext-list/
+ * Bugs: Use the SourceForge bug tracker at http://sourceforge.net/tracker/?group_id=54333&atid=473434
+ * Patches: Use the SourceForge patch tracker at http://sourceforge.net/tracker/?group_id=54333&atid=473436
+
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkgl.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgl.h
new file mode 100644
index 00000000..f22a31ca
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgl.h
@@ -0,0 +1,39 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_H__
+#define __GDK_GL_H__
+
+#include <gdkglext-config.h>
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkglversion.h>
+#include <gdk/gdkgltokens.h>
+#include <gdk/gdkgltypes.h>
+#include <gdk/gdkglenumtypes.h>
+#include <gdk/gdkglinit.h>
+#include <gdk/gdkglquery.h>
+#include <gdk/gdkglconfig.h>
+#include <gdk/gdkglcontext.h>
+#include <gdk/gdkgldrawable.h>
+#include <gdk/gdkglpixmap.h>
+#include <gdk/gdkglwindow.h>
+#include <gdk/gdkglfont.h>
+#include <gdk/gdkglshapes.h>
+
+#endif /* __GDK_GL_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c
new file mode 100644
index 00000000..7743d05a
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c
@@ -0,0 +1,442 @@
+/* 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.
+ */
+
+#include "gdkglprivate.h"
+#include "gdkglconfig.h"
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+#include <gdk/gdkscreen.h>
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+gboolean _gdk_gl_config_no_standard_colormap = FALSE;
+
+static void gdk_gl_config_class_init (GdkGLConfigClass *klass);
+static void gdk_gl_config_finalize (GObject *object);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_config_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLConfigClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_config_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLConfig),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+
+ type = g_type_register_static (G_TYPE_OBJECT,
+ "GdkGLConfig",
+ &type_info, 0);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_config_class_init (GdkGLConfigClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_config_finalize;
+}
+
+static void
+gdk_gl_config_finalize (GObject *object)
+{
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static GdkGLConfig *
+gdk_gl_config_new_ci (GdkScreen *screen,
+ GdkGLConfigMode mode)
+{
+ GdkGLConfig *glconfig = NULL;
+ static const int buf_size_list[] = { 16, 12, 8, 4, 2, 1, 0 };
+ int list[32];
+ int n = 0;
+ int i;
+
+ list[n++] = GDK_GL_BUFFER_SIZE;
+ list[n++] = 1;
+ if (mode & GDK_GL_MODE_DOUBLE)
+ {
+ list[n++] = GDK_GL_DOUBLEBUFFER;
+ }
+ if (mode & GDK_GL_MODE_STEREO)
+ {
+ list[n++] = GDK_GL_STEREO;
+ }
+ if (mode & GDK_GL_MODE_DEPTH)
+ {
+ list[n++] = GDK_GL_DEPTH_SIZE;
+ list[n++] = 1;
+ }
+ if (mode & GDK_GL_MODE_STENCIL)
+ {
+ list[n++] = GDK_GL_STENCIL_SIZE;
+ list[n++] = 1;
+ }
+ list[n] = GDK_GL_ATTRIB_LIST_NONE;
+
+ /* from GLUT */
+ /* glXChooseVisual specify GLX_BUFFER_SIZE prefers the
+ "smallest index buffer of at least the specified size".
+ This would be reasonable if GLUT allowed the user to
+ specify the required buffe size, but GLUT's display mode
+ is too simplistic (easy to use?). GLUT should try to find
+ the "largest". So start with a large buffer size and
+ shrink until we find a matching one that exists. */
+
+ for (i = 0; buf_size_list[i]; i++)
+ {
+ /* XXX Assumes list[1] is where GDK_GL_BUFFER_SIZE parameter is. */
+ list[1] = buf_size_list[i];
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ glconfig = gdk_gl_config_new_for_screen (screen, list);
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ glconfig = gdk_gl_config_new (list);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ if (glconfig != NULL)
+ return glconfig;
+ }
+
+ return NULL;
+}
+
+static GdkGLConfig *
+gdk_gl_config_new_rgb (GdkScreen *screen,
+ GdkGLConfigMode mode)
+{
+ int list[32];
+ int n = 0;
+
+ list[n++] = GDK_GL_RGBA;
+ list[n++] = GDK_GL_RED_SIZE;
+ list[n++] = 1;
+ list[n++] = GDK_GL_GREEN_SIZE;
+ list[n++] = 1;
+ list[n++] = GDK_GL_BLUE_SIZE;
+ list[n++] = 1;
+ if (mode & GDK_GL_MODE_ALPHA)
+ {
+ list[n++] = GDK_GL_ALPHA_SIZE;
+ list[n++] = 1;
+ }
+ if (mode & GDK_GL_MODE_DOUBLE)
+ {
+ list[n++] = GDK_GL_DOUBLEBUFFER;
+ }
+ if (mode & GDK_GL_MODE_STEREO)
+ {
+ list[n++] = GDK_GL_STEREO;
+ }
+ if (mode & GDK_GL_MODE_DEPTH)
+ {
+ list[n++] = GDK_GL_DEPTH_SIZE;
+ list[n++] = 1;
+ }
+ if (mode & GDK_GL_MODE_STENCIL)
+ {
+ list[n++] = GDK_GL_STENCIL_SIZE;
+ list[n++] = 1;
+ }
+ if (mode & GDK_GL_MODE_ACCUM)
+ {
+ list[n++] = GDK_GL_ACCUM_RED_SIZE;
+ list[n++] = 1;
+ list[n++] = GDK_GL_ACCUM_GREEN_SIZE;
+ list[n++] = 1;
+ list[n++] = GDK_GL_ACCUM_BLUE_SIZE;
+ list[n++] = 1;
+ if (mode & GDK_GL_MODE_ALPHA)
+ {
+ list[n++] = GDK_GL_ACCUM_ALPHA_SIZE;
+ list[n++] = 1;
+ }
+ }
+ list[n] = GDK_GL_ATTRIB_LIST_NONE;
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ return gdk_gl_config_new_for_screen (screen, list);
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ return gdk_gl_config_new (list);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+}
+
+static GdkGLConfig *
+gdk_gl_config_new_by_mode_common (GdkScreen *screen,
+ GdkGLConfigMode mode)
+{
+ GdkGLConfig *glconfig;
+
+#define _GL_CONFIG_NEW_BY_MODE(__screen, __mode) \
+ ( ((__mode) & GDK_GL_MODE_INDEX) ? \
+ gdk_gl_config_new_ci (__screen, __mode) : \
+ gdk_gl_config_new_rgb (__screen, __mode) )
+
+ glconfig = _GL_CONFIG_NEW_BY_MODE (screen, mode);
+ if (glconfig == NULL)
+ {
+ /* Fallback cases when can't get exactly what was asked for... */
+ if (!(mode & GDK_GL_MODE_DOUBLE))
+ {
+ /* If we can't find a single buffered visual, try looking
+ for a double buffered visual. We can treat a double
+ buffered visual as a single buffered visual by changing
+ the draw buffer to GL_FRONT and treating any swap
+ buffers as no-ops. */
+ mode |= GDK_GL_MODE_DOUBLE;
+ glconfig = _GL_CONFIG_NEW_BY_MODE (screen, mode);
+ if (glconfig != NULL)
+ glconfig->as_single_mode = TRUE;
+ }
+ }
+
+#undef _GL_CONFIG_NEW_BY_MODE
+
+ return glconfig;
+}
+
+/**
+ * gdk_gl_config_new_by_mode:
+ * @mode: display mode bit mask.
+ *
+ * Returns an OpenGL frame buffer configuration that match the specified
+ * display mode.
+ *
+ * Return value: the new #GdkGLConfig.
+ **/
+GdkGLConfig *
+gdk_gl_config_new_by_mode (GdkGLConfigMode mode)
+{
+ GdkScreen *screen;
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ screen = gdk_screen_get_default ();
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ screen = NULL;
+#endif
+
+ return gdk_gl_config_new_by_mode_common (screen, mode);
+}
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+/**
+ * gdk_gl_config_new_by_mode_for_screen:
+ * @screen: target screen.
+ * @mode: display mode bit mask.
+ *
+ * Returns an OpenGL frame buffer configuration that match the specified
+ * display mode.
+ *
+ * Return value: the new #GdkGLConfig.
+ **/
+GdkGLConfig *
+gdk_gl_config_new_by_mode_for_screen (GdkScreen *screen,
+ GdkGLConfigMode mode)
+{
+ return gdk_gl_config_new_by_mode_common (screen, mode);
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+/**
+ * gdk_gl_config_get_layer_plane:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Gets the layer plane (level) of the frame buffer.
+ * Zero is the default frame buffer.
+ * Positive layer planes correspond to frame buffers that overlay the default
+ * buffer, and negative layer planes correspond to frame buffers that underlie
+ * the default frame buffer.
+ *
+ * Return value: layer plane.
+ **/
+gint
+gdk_gl_config_get_layer_plane (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), 0);
+
+ return glconfig->layer_plane;
+}
+
+/**
+ * gdk_gl_config_get_n_aux_buffers:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Gets the number of auxiliary color buffers.
+ *
+ * Return value: number of auxiliary color buffers.
+ **/
+gint
+gdk_gl_config_get_n_aux_buffers (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), 0);
+
+ return glconfig->n_aux_buffers;
+}
+
+/**
+ * gdk_gl_config_get_n_sample_buffers:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Gets the number of multisample buffers.
+ *
+ * Return value: number of multisample buffers.
+ **/
+gint
+gdk_gl_config_get_n_sample_buffers (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), 0);
+
+ return glconfig->n_sample_buffers;
+}
+
+/**
+ * gdk_gl_config_is_rgba:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Returns whether the configured frame buffer is RGBA mode.
+ *
+ * Return value: TRUE if the configured frame buffer is RGBA mode, FALSE
+ * otherwise.
+ **/
+gboolean
+gdk_gl_config_is_rgba (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
+
+ return glconfig->is_rgba;
+}
+
+/**
+ * gdk_gl_config_is_double_buffered:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Returns whether the configuration supports the double-buffered visual.
+ *
+ * Return value: TRUE if the double-buffered visual is supported, FALSE
+ * otherwise.
+ **/
+gboolean
+gdk_gl_config_is_double_buffered (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
+
+ return (glconfig->is_double_buffered && (!glconfig->as_single_mode));
+}
+
+/**
+ * gdk_gl_config_is_stereo:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Returns whether the configuration supports the stereo visual.
+ *
+ * Return value: TRUE if the stereo visual is supported, FALSE otherwise.
+ **/
+gboolean
+gdk_gl_config_is_stereo (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
+
+ return glconfig->is_stereo;
+}
+
+/**
+ * gdk_gl_config_has_alpha:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Returns whether the configured color buffer has alpha bits.
+ *
+ * Return value: TRUE if the color buffer has alpha bits, FALSE otherwise.
+ **/
+gboolean
+gdk_gl_config_has_alpha (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
+
+ return glconfig->has_alpha;
+}
+
+/**
+ * gdk_gl_config_has_depth_buffer:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Returns whether the configured frame buffer has depth buffer.
+ *
+ * Return value: TRUE if the frame buffer has depth buffer, FALSE otherwise.
+ **/
+gboolean
+gdk_gl_config_has_depth_buffer (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
+
+ return glconfig->has_depth_buffer;
+}
+
+/**
+ * gdk_gl_config_has_stencil_buffer:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Returns whether the configured frame buffer has stencil buffer.
+ *
+ * Return value: TRUE if the frame buffer has stencil buffer, FALSE otherwise.
+ **/
+gboolean
+gdk_gl_config_has_stencil_buffer (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
+
+ return glconfig->has_stencil_buffer;
+}
+
+/**
+ * gdk_gl_config_has_accum_buffer:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Returns whether the configured frame buffer has accumulation buffer.
+ *
+ * Return value: TRUE if the frame buffer has accumulation buffer, FALSE
+ * otherwise.
+ **/
+gboolean
+gdk_gl_config_has_accum_buffer (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
+
+ return glconfig->has_accum_buffer;
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.h
new file mode 100644
index 00000000..0698abc5
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.h
@@ -0,0 +1,135 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_CONFIG_H__
+#define __GDK_GL_CONFIG_H__
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkgltypes.h>
+
+#include <gdk/gdkwindow.h>
+
+G_BEGIN_DECLS
+
+/*
+ * Display mode bit masks.
+ */
+typedef enum
+{
+ GDK_GL_MODE_RGB = 0,
+ GDK_GL_MODE_RGBA = 0, /* same as RGB */
+ GDK_GL_MODE_INDEX = 1 << 0,
+ GDK_GL_MODE_SINGLE = 0,
+ GDK_GL_MODE_DOUBLE = 1 << 1,
+ GDK_GL_MODE_STEREO = 1 << 2,
+ GDK_GL_MODE_ALPHA = 1 << 3,
+ GDK_GL_MODE_DEPTH = 1 << 4,
+ GDK_GL_MODE_STENCIL = 1 << 5,
+ GDK_GL_MODE_ACCUM = 1 << 6,
+ GDK_GL_MODE_MULTISAMPLE = 1 << 7 /* not supported yet */
+} GdkGLConfigMode;
+
+typedef struct _GdkGLConfigClass GdkGLConfigClass;
+
+#define GDK_TYPE_GL_CONFIG (gdk_gl_config_get_type ())
+#define GDK_GL_CONFIG(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_CONFIG, GdkGLConfig))
+#define GDK_GL_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_CONFIG, GdkGLConfigClass))
+#define GDK_IS_GL_CONFIG(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_CONFIG))
+#define GDK_IS_GL_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_CONFIG))
+#define GDK_GL_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_CONFIG, GdkGLConfigClass))
+
+struct _GdkGLConfig
+{
+ GObject parent_instance;
+
+ gint layer_plane;
+
+ gint n_aux_buffers;
+
+ gint n_sample_buffers;
+
+ guint is_rgba : 1;
+ guint is_double_buffered : 1;
+ guint as_single_mode : 1;
+ guint is_stereo : 1;
+ guint has_alpha : 1;
+ guint has_depth_buffer : 1;
+ guint has_stencil_buffer : 1;
+ guint has_accum_buffer : 1;
+};
+
+struct _GdkGLConfigClass
+{
+ GObjectClass parent_class;
+};
+
+GType gdk_gl_config_get_type (void);
+
+#ifndef GDK_MULTIHEAD_SAFE
+GdkGLConfig *gdk_gl_config_new (const int *attrib_list);
+#endif /* GDK_MULTIHEAD_SAFE */
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+GdkGLConfig *gdk_gl_config_new_for_screen (GdkScreen *screen,
+ const int *attrib_list);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+#ifndef GDK_MULTIHEAD_SAFE
+GdkGLConfig *gdk_gl_config_new_by_mode (GdkGLConfigMode mode);
+#endif /* GDK_MULTIHEAD_SAFE */
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+GdkGLConfig *gdk_gl_config_new_by_mode_for_screen (GdkScreen *screen,
+ GdkGLConfigMode mode);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+GdkScreen *gdk_gl_config_get_screen (GdkGLConfig *glconfig);
+
+gboolean gdk_gl_config_get_attrib (GdkGLConfig *glconfig,
+ int attribute,
+ int *value);
+
+GdkColormap *gdk_gl_config_get_colormap (GdkGLConfig *glconfig);
+
+GdkVisual *gdk_gl_config_get_visual (GdkGLConfig *glconfig);
+
+gint gdk_gl_config_get_depth (GdkGLConfig *glconfig);
+
+gint gdk_gl_config_get_layer_plane (GdkGLConfig *glconfig);
+
+gint gdk_gl_config_get_n_aux_buffers (GdkGLConfig *glconfig);
+
+gint gdk_gl_config_get_n_sample_buffers (GdkGLConfig *glconfig);
+
+gboolean gdk_gl_config_is_rgba (GdkGLConfig *glconfig);
+
+gboolean gdk_gl_config_is_double_buffered (GdkGLConfig *glconfig);
+
+gboolean gdk_gl_config_is_stereo (GdkGLConfig *glconfig);
+
+gboolean gdk_gl_config_has_alpha (GdkGLConfig *glconfig);
+
+gboolean gdk_gl_config_has_depth_buffer (GdkGLConfig *glconfig);
+
+gboolean gdk_gl_config_has_stencil_buffer (GdkGLConfig *glconfig);
+
+gboolean gdk_gl_config_has_accum_buffer (GdkGLConfig *glconfig);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_CONFIG_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.c
new file mode 100644
index 00000000..9ec0189b
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.c
@@ -0,0 +1,120 @@
+/* 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.
+ */
+
+#include "gdkglprivate.h"
+#include "gdkgldrawable.h"
+#include "gdkglconfig.h"
+#include "gdkglcontext.h"
+
+gboolean _gdk_gl_context_force_indirect = FALSE;
+
+static void gdk_gl_context_class_init (GdkGLContextClass *klass);
+static void gdk_gl_context_finalize (GObject *object);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_context_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLContextClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_context_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLContext),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+
+ type = g_type_register_static (G_TYPE_OBJECT,
+ "GdkGLContext",
+ &type_info, 0);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_context_class_init (GdkGLContextClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_context_finalize;
+}
+
+static void
+gdk_gl_context_finalize (GObject *object)
+{
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/**
+ * gdk_gl_context_new:
+ * @gldrawable: a #GdkGLDrawable.
+ * @share_list: the #GdkGLContext with which to share display lists and texture
+ * objects. NULL indicates that no sharing is to take place.
+ * @direct: whether rendering is to be done with a direct connection to
+ * the graphics system.
+ * @render_type: GDK_GL_RGBA_TYPE or GDK_GL_COLOR_INDEX_TYPE (currently not
+ * used).
+ *
+ * Creates a new OpenGL rendering context.
+ *
+ * Return value: the new #GdkGLContext.
+ **/
+GdkGLContext *
+gdk_gl_context_new (GdkGLDrawable *gldrawable,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type)
+{
+ g_return_val_if_fail (GDK_IS_GL_DRAWABLE (gldrawable), NULL);
+
+ return GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->create_new_context (gldrawable,
+ share_list,
+ direct,
+ render_type);
+}
+
+/**
+ * gdk_gl_context_destroy:
+ * @glcontext: a #GdkGLContext.
+ *
+ * Destroys the OpenGL resources associated with @glcontext and
+ * decrements @glcontext's reference count.
+ **/
+void
+gdk_gl_context_destroy (GdkGLContext *glcontext)
+{
+ g_return_if_fail (GDK_IS_GL_CONTEXT (glcontext));
+
+ _gdk_gl_context_destroy (glcontext);
+ g_object_unref (G_OBJECT (glcontext));
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.h
new file mode 100644
index 00000000..ade9d279
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.h
@@ -0,0 +1,73 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_CONTEXT_H__
+#define __GDK_GL_CONTEXT_H__
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkgltypes.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLContextClass GdkGLContextClass;
+
+#define GDK_TYPE_GL_CONTEXT (gdk_gl_context_get_type ())
+#define GDK_GL_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_CONTEXT, GdkGLContext))
+#define GDK_GL_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_CONTEXT, GdkGLContextClass))
+#define GDK_IS_GL_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_CONTEXT))
+#define GDK_IS_GL_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_CONTEXT))
+#define GDK_GL_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_CONTEXT, GdkGLContextClass))
+
+struct _GdkGLContext
+{
+ GObject parent_instance;
+};
+
+struct _GdkGLContextClass
+{
+ GObjectClass parent_class;
+};
+
+GType gdk_gl_context_get_type (void);
+
+GdkGLContext *gdk_gl_context_new (GdkGLDrawable *gldrawable,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type);
+
+void gdk_gl_context_destroy (GdkGLContext *glcontext);
+
+gboolean gdk_gl_context_copy (GdkGLContext *glcontext,
+ GdkGLContext *src,
+ unsigned long mask);
+
+GdkGLDrawable *gdk_gl_context_get_gl_drawable (GdkGLContext *glcontext);
+
+GdkGLConfig *gdk_gl_context_get_gl_config (GdkGLContext *glcontext);
+
+GdkGLContext *gdk_gl_context_get_share_list (GdkGLContext *glcontext);
+
+gboolean gdk_gl_context_is_direct (GdkGLContext *glcontext);
+
+int gdk_gl_context_get_render_type (GdkGLContext *glcontext);
+
+GdkGLContext *gdk_gl_context_get_current (void);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_CONTEXT_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldebug.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldebug.h
new file mode 100644
index 00000000..4a8a8663
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldebug.h
@@ -0,0 +1,73 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_DEBUG_H__
+#define __GDK_GL_DEBUG_H__
+
+#include <glib.h>
+
+#include <gdk/gdkgldefs.h>
+
+G_BEGIN_DECLS
+
+typedef enum {
+ GDK_GL_DEBUG_MISC = 1 << 0,
+ GDK_GL_DEBUG_FUNC = 1 << 1,
+ GDK_GL_DEBUG_IMPL = 1 << 2
+} GdkGLDebugFlag;
+
+#ifdef G_ENABLE_DEBUG
+
+#define GDK_GL_NOTE(type, action) G_STMT_START { \
+ if (gdk_gl_debug_flags & GDK_GL_DEBUG_##type) \
+ { action; }; } G_STMT_END
+
+#if __STDC_VERSION__ < 199901L
+# if __GNUC__ >= 2
+# define __func__ __FUNCTION__
+# else
+# define __func__ "<unknown>"
+# endif
+#endif
+
+#define GDK_GL_NOTE_FUNC() G_STMT_START { \
+ if (gdk_gl_debug_flags & GDK_GL_DEBUG_FUNC) \
+ g_message (" - %s ()", __func__); } G_STMT_END
+
+#define GDK_GL_NOTE_FUNC_PRIVATE() G_STMT_START { \
+ if (gdk_gl_debug_flags & GDK_GL_DEBUG_FUNC) \
+ g_message (" -- %s ()", __func__); } G_STMT_END
+
+#define GDK_GL_NOTE_FUNC_IMPL(func) G_STMT_START { \
+ if (gdk_gl_debug_flags & GDK_GL_DEBUG_IMPL) \
+ g_message (" ** %s ()", (func)); } G_STMT_END
+
+#else /* !G_ENABLE_DEBUG */
+
+#define GDK_GL_NOTE(type, action)
+#define GDK_GL_NOTE_FUNC()
+#define GDK_GL_NOTE_FUNC_PRIVATE()
+#define GDK_GL_NOTE_FUNC_IMPL(func)
+
+#endif /* G_ENABLE_DEBUG */
+
+GDK_GL_VAR guint gdk_gl_debug_flags;
+
+G_END_DECLS
+
+#endif /* __GDK_GL_DEBUG_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldefs.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldefs.h
new file mode 100644
index 00000000..11208228
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldefs.h
@@ -0,0 +1,40 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_DEFS_H__
+#define __GDK_GL_DEFS_H__
+
+#include <glib.h>
+
+#include <gdkglext-config.h>
+
+G_BEGIN_DECLS
+
+#ifdef G_OS_WIN32
+# ifdef GDK_GL_COMPILATION
+# define GDK_GL_VAR __declspec(dllexport)
+# else
+# define GDK_GL_VAR extern __declspec(dllimport)
+# endif
+#else
+# define GDK_GL_VAR extern
+#endif
+
+G_END_DECLS
+
+#endif /* __GDK_GL_DEFS_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.c
new file mode 100644
index 00000000..8518336a
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.c
@@ -0,0 +1,218 @@
+/* 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.
+ */
+
+#include <gdk/gdkdrawable.h>
+
+#include "gdkglprivate.h"
+#include "gdkglcontext.h"
+#include "gdkgldrawable.h"
+
+GType
+gdk_gl_drawable_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLDrawableClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL
+ };
+
+ type = g_type_register_static (G_TYPE_INTERFACE,
+ "GdkGLDrawable",
+ &type_info, 0);
+ }
+
+ return type;
+}
+
+/**
+ * gdk_gl_drawable_make_current:
+ * @gldrawable: a #GdkGLDrawable.
+ * @glcontext: a #GdkGLContext.
+ *
+ * Attach an OpenGL rendering context to a @gldrawable.
+ *
+ * Return value: TRUE if it is successful, FALSE otherwise.
+ **/
+gboolean
+gdk_gl_drawable_make_current (GdkGLDrawable *gldrawable,
+ GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_DRAWABLE (gldrawable), FALSE);
+
+ return GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->make_context_current (gldrawable,
+ gldrawable,
+ glcontext);
+}
+
+/**
+ * gdk_gl_drawable_is_double_buffered:
+ * @gldrawable: a #GdkGLDrawable.
+ *
+ * Returns whether the @gldrawable supports the double-buffered visual.
+ *
+ * Return value: TRUE if the double-buffered visual is supported,
+ * FALSE otherwise.
+ **/
+gboolean
+gdk_gl_drawable_is_double_buffered (GdkGLDrawable *gldrawable)
+{
+ g_return_val_if_fail (GDK_IS_GL_DRAWABLE (gldrawable), FALSE);
+
+ return GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->is_double_buffered (gldrawable);
+}
+
+/**
+ * gdk_gl_drawable_swap_buffers:
+ * @gldrawable: a #GdkGLDrawable.
+ *
+ * Exchange front and back buffers.
+ *
+ **/
+void
+gdk_gl_drawable_swap_buffers (GdkGLDrawable *gldrawable)
+{
+ g_return_if_fail (GDK_IS_GL_DRAWABLE (gldrawable));
+
+ GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->swap_buffers (gldrawable);
+}
+
+/**
+ * gdk_gl_drawable_wait_gl:
+ * @gldrawable: a #GdkGLDrawable.
+ *
+ * Complete OpenGL execution prior to subsequent GDK drawing calls.
+ *
+ **/
+void
+gdk_gl_drawable_wait_gl (GdkGLDrawable *gldrawable)
+{
+ g_return_if_fail (GDK_IS_GL_DRAWABLE (gldrawable));
+
+ GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->wait_gl (gldrawable);
+}
+
+/**
+ * gdk_gl_drawable_wait_gdk:
+ * @gldrawable: a #GdkGLDrawable.
+ *
+ * Complete GDK drawing execution prior to subsequent OpenGL calls.
+ *
+ **/
+void
+gdk_gl_drawable_wait_gdk (GdkGLDrawable *gldrawable)
+{
+ g_return_if_fail (GDK_IS_GL_DRAWABLE (gldrawable));
+
+ GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->wait_gdk (gldrawable);
+}
+
+/**
+ * gdk_gl_drawable_gl_begin:
+ * @gldrawable: a #GdkGLDrawable.
+ * @glcontext: a #GdkGLContext.
+ *
+ * Delimits the begining of the OpenGL execution.
+ *
+ * Return value: TRUE if it is successful, FALSE otherwise.
+ **/
+gboolean
+gdk_gl_drawable_gl_begin (GdkGLDrawable *gldrawable,
+ GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_DRAWABLE (gldrawable), FALSE);
+
+ return GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->gl_begin (gldrawable,
+ gldrawable,
+ glcontext);
+}
+
+/**
+ * gdk_gl_drawable_gl_end:
+ * @gldrawable: a #GdkGLDrawable.
+ *
+ * Delimits the end of the OpenGL execution.
+ *
+ **/
+void
+gdk_gl_drawable_gl_end (GdkGLDrawable *gldrawable)
+{
+ g_return_if_fail (GDK_IS_GL_DRAWABLE (gldrawable));
+
+ GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->gl_end (gldrawable);
+}
+
+/**
+ * gdk_gl_drawable_get_gl_config:
+ * @gldrawable: a #GdkGLDrawable.
+ *
+ * Gets #GdkGLConfig with which the @gldrawable is configured.
+ *
+ * Return value: the #GdkGLConfig.
+ **/
+GdkGLConfig *
+gdk_gl_drawable_get_gl_config (GdkGLDrawable *gldrawable)
+{
+ g_return_val_if_fail (GDK_IS_GL_DRAWABLE (gldrawable), NULL);
+
+ return GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->get_gl_config (gldrawable);
+}
+
+/**
+ * gdk_gl_drawable_get_size:
+ * @gldrawable: a #GdkGLDrawable.
+ * @width: location to store drawable's width, or NULL.
+ * @height: location to store drawable's height, or NULL.
+ *
+ * Fills *width and *height with the size of GL drawable.
+ * width or height can be NULL if you only want the other one.
+ *
+ **/
+void
+gdk_gl_drawable_get_size (GdkGLDrawable *gldrawable,
+ gint *width,
+ gint *height)
+{
+ g_return_if_fail (GDK_IS_GL_DRAWABLE (gldrawable));
+
+ GDK_GL_DRAWABLE_GET_CLASS (gldrawable)->get_size (gldrawable, width, height);
+}
+
+/**
+ * gdk_gl_drawable_get_current:
+ *
+ * Returns the current #GdkGLDrawable.
+ *
+ * Return value: the current #GdkGLDrawable or NULL if there is no current drawable.
+ **/
+GdkGLDrawable *
+gdk_gl_drawable_get_current (void)
+{
+ GdkGLContext *glcontext;
+
+ GDK_GL_NOTE_FUNC ();
+
+ glcontext = gdk_gl_context_get_current ();
+ if (glcontext == NULL)
+ return NULL;
+
+ return gdk_gl_context_get_gl_drawable (glcontext);
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.h
new file mode 100644
index 00000000..98bd9dd6
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.h
@@ -0,0 +1,93 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_DRAWABLE_H__
+#define __GDK_GL_DRAWABLE_H__
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkgltypes.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLDrawableClass GdkGLDrawableClass;
+
+#define GDK_TYPE_GL_DRAWABLE (gdk_gl_drawable_get_type ())
+#define GDK_GL_DRAWABLE(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), GDK_TYPE_GL_DRAWABLE, GdkGLDrawable))
+#define GDK_GL_DRAWABLE_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), GDK_TYPE_GL_DRAWABLE, GdkGLDrawableClass))
+#define GDK_IS_GL_DRAWABLE(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), GDK_TYPE_GL_DRAWABLE))
+#define GDK_IS_GL_DRAWABLE_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), GDK_TYPE_GL_DRAWABLE))
+#define GDK_GL_DRAWABLE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GDK_TYPE_GL_DRAWABLE, GdkGLDrawableClass))
+
+struct _GdkGLDrawableClass
+{
+ GTypeInterface base_iface;
+
+ GdkGLContext* (*create_new_context) (GdkGLDrawable *gldrawable,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type);
+
+ gboolean (*make_context_current) (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext);
+ gboolean (*is_double_buffered) (GdkGLDrawable *gldrawable);
+ void (*swap_buffers) (GdkGLDrawable *gldrawable);
+ void (*wait_gl) (GdkGLDrawable *gldrawable);
+ void (*wait_gdk) (GdkGLDrawable *gldrawable);
+
+ gboolean (*gl_begin) (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext);
+ void (*gl_end) (GdkGLDrawable *gldrawable);
+
+ GdkGLConfig* (*get_gl_config) (GdkGLDrawable *gldrawable);
+
+ void (*get_size) (GdkGLDrawable *gldrawable,
+ gint *width,
+ gint *height);
+};
+
+GType gdk_gl_drawable_get_type (void);
+
+gboolean gdk_gl_drawable_make_current (GdkGLDrawable *gldrawable,
+ GdkGLContext *glcontext);
+
+gboolean gdk_gl_drawable_is_double_buffered (GdkGLDrawable *gldrawable);
+
+void gdk_gl_drawable_swap_buffers (GdkGLDrawable *gldrawable);
+
+void gdk_gl_drawable_wait_gl (GdkGLDrawable *gldrawable);
+
+void gdk_gl_drawable_wait_gdk (GdkGLDrawable *gldrawable);
+
+gboolean gdk_gl_drawable_gl_begin (GdkGLDrawable *gldrawable,
+ GdkGLContext *glcontext);
+
+void gdk_gl_drawable_gl_end (GdkGLDrawable *gldrawable);
+
+GdkGLConfig *gdk_gl_drawable_get_gl_config (GdkGLDrawable *gldrawable);
+
+void gdk_gl_drawable_get_size (GdkGLDrawable *gldrawable,
+ gint *width,
+ gint *height);
+
+GdkGLDrawable *gdk_gl_drawable_get_current (void);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_DRAWABLE_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.c
new file mode 100644
index 00000000..cc5f4fcf
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.c
@@ -0,0 +1,288 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include "gdkgl.h"
+
+/* enumerations from "gdkgltokens.h" */
+GType
+gdk_gl_config_attrib_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { GDK_GL_USE_GL, "GDK_GL_USE_GL", "use-gl" },
+ { GDK_GL_BUFFER_SIZE, "GDK_GL_BUFFER_SIZE", "buffer-size" },
+ { GDK_GL_LEVEL, "GDK_GL_LEVEL", "level" },
+ { GDK_GL_RGBA, "GDK_GL_RGBA", "rgba" },
+ { GDK_GL_DOUBLEBUFFER, "GDK_GL_DOUBLEBUFFER", "doublebuffer" },
+ { GDK_GL_STEREO, "GDK_GL_STEREO", "stereo" },
+ { GDK_GL_AUX_BUFFERS, "GDK_GL_AUX_BUFFERS", "aux-buffers" },
+ { GDK_GL_RED_SIZE, "GDK_GL_RED_SIZE", "red-size" },
+ { GDK_GL_GREEN_SIZE, "GDK_GL_GREEN_SIZE", "green-size" },
+ { GDK_GL_BLUE_SIZE, "GDK_GL_BLUE_SIZE", "blue-size" },
+ { GDK_GL_ALPHA_SIZE, "GDK_GL_ALPHA_SIZE", "alpha-size" },
+ { GDK_GL_DEPTH_SIZE, "GDK_GL_DEPTH_SIZE", "depth-size" },
+ { GDK_GL_STENCIL_SIZE, "GDK_GL_STENCIL_SIZE", "stencil-size" },
+ { GDK_GL_ACCUM_RED_SIZE, "GDK_GL_ACCUM_RED_SIZE", "accum-red-size" },
+ { GDK_GL_ACCUM_GREEN_SIZE, "GDK_GL_ACCUM_GREEN_SIZE", "accum-green-size" },
+ { GDK_GL_ACCUM_BLUE_SIZE, "GDK_GL_ACCUM_BLUE_SIZE", "accum-blue-size" },
+ { GDK_GL_ACCUM_ALPHA_SIZE, "GDK_GL_ACCUM_ALPHA_SIZE", "accum-alpha-size" },
+ { GDK_GL_CONFIG_CAVEAT, "GDK_GL_CONFIG_CAVEAT", "config-caveat" },
+ { GDK_GL_X_VISUAL_TYPE, "GDK_GL_X_VISUAL_TYPE", "x-visual-type" },
+ { GDK_GL_TRANSPARENT_TYPE, "GDK_GL_TRANSPARENT_TYPE", "transparent-type" },
+ { GDK_GL_TRANSPARENT_INDEX_VALUE, "GDK_GL_TRANSPARENT_INDEX_VALUE", "transparent-index-value" },
+ { GDK_GL_TRANSPARENT_RED_VALUE, "GDK_GL_TRANSPARENT_RED_VALUE", "transparent-red-value" },
+ { GDK_GL_TRANSPARENT_GREEN_VALUE, "GDK_GL_TRANSPARENT_GREEN_VALUE", "transparent-green-value" },
+ { GDK_GL_TRANSPARENT_BLUE_VALUE, "GDK_GL_TRANSPARENT_BLUE_VALUE", "transparent-blue-value" },
+ { GDK_GL_TRANSPARENT_ALPHA_VALUE, "GDK_GL_TRANSPARENT_ALPHA_VALUE", "transparent-alpha-value" },
+ { GDK_GL_DRAWABLE_TYPE, "GDK_GL_DRAWABLE_TYPE", "drawable-type" },
+ { GDK_GL_RENDER_TYPE, "GDK_GL_RENDER_TYPE", "render-type" },
+ { GDK_GL_X_RENDERABLE, "GDK_GL_X_RENDERABLE", "x-renderable" },
+ { GDK_GL_FBCONFIG_ID, "GDK_GL_FBCONFIG_ID", "fbconfig-id" },
+ { GDK_GL_MAX_PBUFFER_WIDTH, "GDK_GL_MAX_PBUFFER_WIDTH", "max-pbuffer-width" },
+ { GDK_GL_MAX_PBUFFER_HEIGHT, "GDK_GL_MAX_PBUFFER_HEIGHT", "max-pbuffer-height" },
+ { GDK_GL_MAX_PBUFFER_PIXELS, "GDK_GL_MAX_PBUFFER_PIXELS", "max-pbuffer-pixels" },
+ { GDK_GL_VISUAL_ID, "GDK_GL_VISUAL_ID", "visual-id" },
+ { GDK_GL_SCREEN, "GDK_GL_SCREEN", "screen" },
+ { GDK_GL_SAMPLE_BUFFERS, "GDK_GL_SAMPLE_BUFFERS", "sample-buffers" },
+ { GDK_GL_SAMPLES, "GDK_GL_SAMPLES", "samples" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("GdkGLConfigAttrib", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_config_caveat_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { GDK_GL_CONFIG_CAVEAT_DONT_CARE, "GDK_GL_CONFIG_CAVEAT_DONT_CARE", "config-caveat-dont-care" },
+ { GDK_GL_CONFIG_CAVEAT_NONE, "GDK_GL_CONFIG_CAVEAT_NONE", "config-caveat-none" },
+ { GDK_GL_SLOW_CONFIG, "GDK_GL_SLOW_CONFIG", "slow-config" },
+ { GDK_GL_NON_CONFORMANT_CONFIG, "GDK_GL_NON_CONFORMANT_CONFIG", "non-conformant-config" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("GdkGLConfigCaveat", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_visual_type_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { GDK_GL_VISUAL_TYPE_DONT_CARE, "GDK_GL_VISUAL_TYPE_DONT_CARE", "visual-type-dont-care" },
+ { GDK_GL_TRUE_COLOR, "GDK_GL_TRUE_COLOR", "true-color" },
+ { GDK_GL_DIRECT_COLOR, "GDK_GL_DIRECT_COLOR", "direct-color" },
+ { GDK_GL_PSEUDO_COLOR, "GDK_GL_PSEUDO_COLOR", "pseudo-color" },
+ { GDK_GL_STATIC_COLOR, "GDK_GL_STATIC_COLOR", "static-color" },
+ { GDK_GL_GRAY_SCALE, "GDK_GL_GRAY_SCALE", "gray-scale" },
+ { GDK_GL_STATIC_GRAY, "GDK_GL_STATIC_GRAY", "static-gray" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("GdkGLVisualType", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_transparent_type_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { GDK_GL_TRANSPARENT_NONE, "GDK_GL_TRANSPARENT_NONE", "none" },
+ { GDK_GL_TRANSPARENT_RGB, "GDK_GL_TRANSPARENT_RGB", "rgb" },
+ { GDK_GL_TRANSPARENT_INDEX, "GDK_GL_TRANSPARENT_INDEX", "index" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("GdkGLTransparentType", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_drawable_type_mask_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GFlagsValue values[] = {
+ { GDK_GL_WINDOW_BIT, "GDK_GL_WINDOW_BIT", "window-bit" },
+ { GDK_GL_PIXMAP_BIT, "GDK_GL_PIXMAP_BIT", "pixmap-bit" },
+ { GDK_GL_PBUFFER_BIT, "GDK_GL_PBUFFER_BIT", "pbuffer-bit" },
+ { 0, NULL, NULL }
+ };
+ etype = g_flags_register_static ("GdkGLDrawableTypeMask", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_render_type_mask_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GFlagsValue values[] = {
+ { GDK_GL_RGBA_BIT, "GDK_GL_RGBA_BIT", "rgba-bit" },
+ { GDK_GL_COLOR_INDEX_BIT, "GDK_GL_COLOR_INDEX_BIT", "color-index-bit" },
+ { 0, NULL, NULL }
+ };
+ etype = g_flags_register_static ("GdkGLRenderTypeMask", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_buffer_mask_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GFlagsValue values[] = {
+ { GDK_GL_FRONT_LEFT_BUFFER_BIT, "GDK_GL_FRONT_LEFT_BUFFER_BIT", "front-left-buffer-bit" },
+ { GDK_GL_FRONT_RIGHT_BUFFER_BIT, "GDK_GL_FRONT_RIGHT_BUFFER_BIT", "front-right-buffer-bit" },
+ { GDK_GL_BACK_LEFT_BUFFER_BIT, "GDK_GL_BACK_LEFT_BUFFER_BIT", "back-left-buffer-bit" },
+ { GDK_GL_BACK_RIGHT_BUFFER_BIT, "GDK_GL_BACK_RIGHT_BUFFER_BIT", "back-right-buffer-bit" },
+ { GDK_GL_AUX_BUFFERS_BIT, "GDK_GL_AUX_BUFFERS_BIT", "aux-buffers-bit" },
+ { GDK_GL_DEPTH_BUFFER_BIT, "GDK_GL_DEPTH_BUFFER_BIT", "depth-buffer-bit" },
+ { GDK_GL_STENCIL_BUFFER_BIT, "GDK_GL_STENCIL_BUFFER_BIT", "stencil-buffer-bit" },
+ { GDK_GL_ACCUM_BUFFER_BIT, "GDK_GL_ACCUM_BUFFER_BIT", "accum-buffer-bit" },
+ { 0, NULL, NULL }
+ };
+ etype = g_flags_register_static ("GdkGLBufferMask", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_config_error_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { GDK_GL_BAD_SCREEN, "GDK_GL_BAD_SCREEN", "bad-screen" },
+ { GDK_GL_BAD_ATTRIBUTE, "GDK_GL_BAD_ATTRIBUTE", "bad-attribute" },
+ { GDK_GL_NO_EXTENSION, "GDK_GL_NO_EXTENSION", "no-extension" },
+ { GDK_GL_BAD_VISUAL, "GDK_GL_BAD_VISUAL", "bad-visual" },
+ { GDK_GL_BAD_CONTEXT, "GDK_GL_BAD_CONTEXT", "bad-context" },
+ { GDK_GL_BAD_VALUE, "GDK_GL_BAD_VALUE", "bad-value" },
+ { GDK_GL_BAD_ENUM, "GDK_GL_BAD_ENUM", "bad-enum" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("GdkGLConfigError", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_render_type_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { GDK_GL_RGBA_TYPE, "GDK_GL_RGBA_TYPE", "rgba-type" },
+ { GDK_GL_COLOR_INDEX_TYPE, "GDK_GL_COLOR_INDEX_TYPE", "color-index-type" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("GdkGLRenderType", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_drawable_attrib_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { GDK_GL_PRESERVED_CONTENTS, "GDK_GL_PRESERVED_CONTENTS", "preserved-contents" },
+ { GDK_GL_LARGEST_PBUFFER, "GDK_GL_LARGEST_PBUFFER", "largest-pbuffer" },
+ { GDK_GL_WIDTH, "GDK_GL_WIDTH", "width" },
+ { GDK_GL_HEIGHT, "GDK_GL_HEIGHT", "height" },
+ { GDK_GL_EVENT_MASK, "GDK_GL_EVENT_MASK", "event-mask" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("GdkGLDrawableAttrib", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_pbuffer_attrib_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { GDK_GL_PBUFFER_PRESERVED_CONTENTS, "GDK_GL_PBUFFER_PRESERVED_CONTENTS", "preserved-contents" },
+ { GDK_GL_PBUFFER_LARGEST_PBUFFER, "GDK_GL_PBUFFER_LARGEST_PBUFFER", "largest-pbuffer" },
+ { GDK_GL_PBUFFER_HEIGHT, "GDK_GL_PBUFFER_HEIGHT", "height" },
+ { GDK_GL_PBUFFER_WIDTH, "GDK_GL_PBUFFER_WIDTH", "width" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("GdkGLPbufferAttrib", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_event_mask_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GFlagsValue values[] = {
+ { GDK_GL_PBUFFER_CLOBBER_MASK, "GDK_GL_PBUFFER_CLOBBER_MASK", "mask" },
+ { 0, NULL, NULL }
+ };
+ etype = g_flags_register_static ("GdkGLEventMask", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_event_type_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { GDK_GL_DAMAGED, "GDK_GL_DAMAGED", "damaged" },
+ { GDK_GL_SAVED, "GDK_GL_SAVED", "saved" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("GdkGLEventType", values);
+ }
+ return etype;
+}
+GType
+gdk_gl_drawable_type_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { GDK_GL_WINDOW, "GDK_GL_WINDOW", "window" },
+ { GDK_GL_PBUFFER, "GDK_GL_PBUFFER", "pbuffer" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("GdkGLDrawableType", values);
+ }
+ return etype;
+}
+
+/* enumerations from "gdkglconfig.h" */
+GType
+gdk_gl_config_mode_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GFlagsValue values[] = {
+ { GDK_GL_MODE_RGB, "GDK_GL_MODE_RGB", "rgb" },
+ { GDK_GL_MODE_RGBA, "GDK_GL_MODE_RGBA", "rgba" },
+ { GDK_GL_MODE_INDEX, "GDK_GL_MODE_INDEX", "index" },
+ { GDK_GL_MODE_SINGLE, "GDK_GL_MODE_SINGLE", "single" },
+ { GDK_GL_MODE_DOUBLE, "GDK_GL_MODE_DOUBLE", "double" },
+ { GDK_GL_MODE_STEREO, "GDK_GL_MODE_STEREO", "stereo" },
+ { GDK_GL_MODE_ALPHA, "GDK_GL_MODE_ALPHA", "alpha" },
+ { GDK_GL_MODE_DEPTH, "GDK_GL_MODE_DEPTH", "depth" },
+ { GDK_GL_MODE_STENCIL, "GDK_GL_MODE_STENCIL", "stencil" },
+ { GDK_GL_MODE_ACCUM, "GDK_GL_MODE_ACCUM", "accum" },
+ { GDK_GL_MODE_MULTISAMPLE, "GDK_GL_MODE_MULTISAMPLE", "multisample" },
+ { 0, NULL, NULL }
+ };
+ etype = g_flags_register_static ("GdkGLConfigMode", values);
+ }
+ return etype;
+}
+
+/* Generated data ends here */
+
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.h
new file mode 100644
index 00000000..25d32b4c
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.h
@@ -0,0 +1,47 @@
+
+/* Generated data (by glib-mkenums) */
+
+#ifndef __GDK_GL_ENUM_TYPES_H__
+#define __GDK_GL_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+/* enumerations from "gdkgltokens.h" */
+GType gdk_gl_config_attrib_get_type (void);
+#define GDK_TYPE_GL_CONFIG_ATTRIB (gdk_gl_config_attrib_get_type())
+GType gdk_gl_config_caveat_get_type (void);
+#define GDK_TYPE_GL_CONFIG_CAVEAT (gdk_gl_config_caveat_get_type())
+GType gdk_gl_visual_type_get_type (void);
+#define GDK_TYPE_GL_VISUAL_TYPE (gdk_gl_visual_type_get_type())
+GType gdk_gl_transparent_type_get_type (void);
+#define GDK_TYPE_GL_TRANSPARENT_TYPE (gdk_gl_transparent_type_get_type())
+GType gdk_gl_drawable_type_mask_get_type (void);
+#define GDK_TYPE_GL_DRAWABLE_TYPE_MASK (gdk_gl_drawable_type_mask_get_type())
+GType gdk_gl_render_type_mask_get_type (void);
+#define GDK_TYPE_GL_RENDER_TYPE_MASK (gdk_gl_render_type_mask_get_type())
+GType gdk_gl_buffer_mask_get_type (void);
+#define GDK_TYPE_GL_BUFFER_MASK (gdk_gl_buffer_mask_get_type())
+GType gdk_gl_config_error_get_type (void);
+#define GDK_TYPE_GL_CONFIG_ERROR (gdk_gl_config_error_get_type())
+GType gdk_gl_render_type_get_type (void);
+#define GDK_TYPE_GL_RENDER_TYPE (gdk_gl_render_type_get_type())
+GType gdk_gl_drawable_attrib_get_type (void);
+#define GDK_TYPE_GL_DRAWABLE_ATTRIB (gdk_gl_drawable_attrib_get_type())
+GType gdk_gl_pbuffer_attrib_get_type (void);
+#define GDK_TYPE_GL_PBUFFER_ATTRIB (gdk_gl_pbuffer_attrib_get_type())
+GType gdk_gl_event_mask_get_type (void);
+#define GDK_TYPE_GL_EVENT_MASK (gdk_gl_event_mask_get_type())
+GType gdk_gl_event_type_get_type (void);
+#define GDK_TYPE_GL_EVENT_TYPE (gdk_gl_event_type_get_type())
+GType gdk_gl_drawable_type_get_type (void);
+#define GDK_TYPE_GL_DRAWABLE_TYPE (gdk_gl_drawable_type_get_type())
+/* enumerations from "gdkglconfig.h" */
+GType gdk_gl_config_mode_get_type (void);
+#define GDK_TYPE_GL_CONFIG_MODE (gdk_gl_config_mode_get_type())
+G_END_DECLS
+
+#endif /* __GDK_GL_ENUM_TYPES_H__ */
+
+/* Generated data ends here */
+
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglext-config.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglext-config.h
new file mode 100644
index 00000000..c9529356
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglext-config.h
@@ -0,0 +1,33 @@
+/* gdkglext-config.h
+ *
+ * This is a generated file. Please modify `configure.in'
+ */
+
+#ifndef GDKGLEXT_CONFIG_H
+#define GDKGLEXT_CONFIG_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#define GDKGLEXT_WINDOWING_X11
+
+#define GDKGLEXT_MULTIHEAD_SUPPORT
+
+#if !defined(GDKGLEXT_MULTIHEAD_SUPPORT) && defined(GDK_MULTIHEAD_SAFE)
+#error "Installed GdkGLExt library doesn't have multihead support."
+#endif
+
+
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* GDKGLEXT_CONFIG_H */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglfont.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglfont.h
new file mode 100644
index 00000000..6aaca133
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglfont.h
@@ -0,0 +1,44 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_FONT_H__
+#define __GDK_GL_FONT_H__
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkgltypes.h>
+
+G_BEGIN_DECLS
+
+#ifndef GDK_MULTIHEAD_SAFE
+PangoFont *gdk_gl_font_use_pango_font (const PangoFontDescription *font_desc,
+ int first,
+ int count,
+ int list_base);
+#endif /* GDK_MULTIHEAD_SAFE */
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+PangoFont *gdk_gl_font_use_pango_font_for_display (GdkDisplay *display,
+ const PangoFontDescription *font_desc,
+ int first,
+ int count,
+ int list_base);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+G_END_DECLS
+
+#endif /* __GDK_GL_FONT_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.c
new file mode 100644
index 00000000..2bee4c3d
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.c
@@ -0,0 +1,24997 @@
+/* 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-gdkglglext-c.pl".
+ */
+
+#include "gdkglprivate.h"
+#include "gdkglquery.h"
+#include "gdkglcontext.h"
+#include "gdkglglext.h"
+
+/*
+ * GL_VERSION_1_2
+ */
+
+static GdkGL_GL_VERSION_1_2 _procs_GL_VERSION_1_2 = {
+ (GdkGLProc_glBlendColor) -1,
+ (GdkGLProc_glBlendEquation) -1,
+ (GdkGLProc_glDrawRangeElements) -1,
+ (GdkGLProc_glColorTable) -1,
+ (GdkGLProc_glColorTableParameterfv) -1,
+ (GdkGLProc_glColorTableParameteriv) -1,
+ (GdkGLProc_glCopyColorTable) -1,
+ (GdkGLProc_glGetColorTable) -1,
+ (GdkGLProc_glGetColorTableParameterfv) -1,
+ (GdkGLProc_glGetColorTableParameteriv) -1,
+ (GdkGLProc_glColorSubTable) -1,
+ (GdkGLProc_glCopyColorSubTable) -1,
+ (GdkGLProc_glConvolutionFilter1D) -1,
+ (GdkGLProc_glConvolutionFilter2D) -1,
+ (GdkGLProc_glConvolutionParameterf) -1,
+ (GdkGLProc_glConvolutionParameterfv) -1,
+ (GdkGLProc_glConvolutionParameteri) -1,
+ (GdkGLProc_glConvolutionParameteriv) -1,
+ (GdkGLProc_glCopyConvolutionFilter1D) -1,
+ (GdkGLProc_glCopyConvolutionFilter2D) -1,
+ (GdkGLProc_glGetConvolutionFilter) -1,
+ (GdkGLProc_glGetConvolutionParameterfv) -1,
+ (GdkGLProc_glGetConvolutionParameteriv) -1,
+ (GdkGLProc_glGetSeparableFilter) -1,
+ (GdkGLProc_glSeparableFilter2D) -1,
+ (GdkGLProc_glGetHistogram) -1,
+ (GdkGLProc_glGetHistogramParameterfv) -1,
+ (GdkGLProc_glGetHistogramParameteriv) -1,
+ (GdkGLProc_glGetMinmax) -1,
+ (GdkGLProc_glGetMinmaxParameterfv) -1,
+ (GdkGLProc_glGetMinmaxParameteriv) -1,
+ (GdkGLProc_glHistogram) -1,
+ (GdkGLProc_glMinmax) -1,
+ (GdkGLProc_glResetHistogram) -1,
+ (GdkGLProc_glResetMinmax) -1,
+ (GdkGLProc_glTexImage3D) -1,
+ (GdkGLProc_glTexSubImage3D) -1,
+ (GdkGLProc_glCopyTexSubImage3D) -1
+};
+
+/* glBlendColor */
+GdkGLProc
+gdk_gl_get_glBlendColor (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glBlendColor == (GdkGLProc_glBlendColor) -1)
+ _procs_GL_VERSION_1_2.glBlendColor =
+ (GdkGLProc_glBlendColor) gdk_gl_get_proc_address ("glBlendColor");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBlendColor () - %s",
+ (_procs_GL_VERSION_1_2.glBlendColor) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glBlendColor);
+}
+
+/* glBlendEquation */
+GdkGLProc
+gdk_gl_get_glBlendEquation (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glBlendEquation == (GdkGLProc_glBlendEquation) -1)
+ _procs_GL_VERSION_1_2.glBlendEquation =
+ (GdkGLProc_glBlendEquation) gdk_gl_get_proc_address ("glBlendEquation");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBlendEquation () - %s",
+ (_procs_GL_VERSION_1_2.glBlendEquation) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glBlendEquation);
+}
+
+/* glDrawRangeElements */
+GdkGLProc
+gdk_gl_get_glDrawRangeElements (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glDrawRangeElements == (GdkGLProc_glDrawRangeElements) -1)
+ _procs_GL_VERSION_1_2.glDrawRangeElements =
+ (GdkGLProc_glDrawRangeElements) gdk_gl_get_proc_address ("glDrawRangeElements");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawRangeElements () - %s",
+ (_procs_GL_VERSION_1_2.glDrawRangeElements) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glDrawRangeElements);
+}
+
+/* glColorTable */
+GdkGLProc
+gdk_gl_get_glColorTable (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glColorTable == (GdkGLProc_glColorTable) -1)
+ _procs_GL_VERSION_1_2.glColorTable =
+ (GdkGLProc_glColorTable) gdk_gl_get_proc_address ("glColorTable");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorTable () - %s",
+ (_procs_GL_VERSION_1_2.glColorTable) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glColorTable);
+}
+
+/* glColorTableParameterfv */
+GdkGLProc
+gdk_gl_get_glColorTableParameterfv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glColorTableParameterfv == (GdkGLProc_glColorTableParameterfv) -1)
+ _procs_GL_VERSION_1_2.glColorTableParameterfv =
+ (GdkGLProc_glColorTableParameterfv) gdk_gl_get_proc_address ("glColorTableParameterfv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorTableParameterfv () - %s",
+ (_procs_GL_VERSION_1_2.glColorTableParameterfv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glColorTableParameterfv);
+}
+
+/* glColorTableParameteriv */
+GdkGLProc
+gdk_gl_get_glColorTableParameteriv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glColorTableParameteriv == (GdkGLProc_glColorTableParameteriv) -1)
+ _procs_GL_VERSION_1_2.glColorTableParameteriv =
+ (GdkGLProc_glColorTableParameteriv) gdk_gl_get_proc_address ("glColorTableParameteriv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorTableParameteriv () - %s",
+ (_procs_GL_VERSION_1_2.glColorTableParameteriv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glColorTableParameteriv);
+}
+
+/* glCopyColorTable */
+GdkGLProc
+gdk_gl_get_glCopyColorTable (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glCopyColorTable == (GdkGLProc_glCopyColorTable) -1)
+ _procs_GL_VERSION_1_2.glCopyColorTable =
+ (GdkGLProc_glCopyColorTable) gdk_gl_get_proc_address ("glCopyColorTable");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyColorTable () - %s",
+ (_procs_GL_VERSION_1_2.glCopyColorTable) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glCopyColorTable);
+}
+
+/* glGetColorTable */
+GdkGLProc
+gdk_gl_get_glGetColorTable (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetColorTable == (GdkGLProc_glGetColorTable) -1)
+ _procs_GL_VERSION_1_2.glGetColorTable =
+ (GdkGLProc_glGetColorTable) gdk_gl_get_proc_address ("glGetColorTable");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetColorTable () - %s",
+ (_procs_GL_VERSION_1_2.glGetColorTable) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetColorTable);
+}
+
+/* glGetColorTableParameterfv */
+GdkGLProc
+gdk_gl_get_glGetColorTableParameterfv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetColorTableParameterfv == (GdkGLProc_glGetColorTableParameterfv) -1)
+ _procs_GL_VERSION_1_2.glGetColorTableParameterfv =
+ (GdkGLProc_glGetColorTableParameterfv) gdk_gl_get_proc_address ("glGetColorTableParameterfv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetColorTableParameterfv () - %s",
+ (_procs_GL_VERSION_1_2.glGetColorTableParameterfv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetColorTableParameterfv);
+}
+
+/* glGetColorTableParameteriv */
+GdkGLProc
+gdk_gl_get_glGetColorTableParameteriv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetColorTableParameteriv == (GdkGLProc_glGetColorTableParameteriv) -1)
+ _procs_GL_VERSION_1_2.glGetColorTableParameteriv =
+ (GdkGLProc_glGetColorTableParameteriv) gdk_gl_get_proc_address ("glGetColorTableParameteriv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetColorTableParameteriv () - %s",
+ (_procs_GL_VERSION_1_2.glGetColorTableParameteriv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetColorTableParameteriv);
+}
+
+/* glColorSubTable */
+GdkGLProc
+gdk_gl_get_glColorSubTable (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glColorSubTable == (GdkGLProc_glColorSubTable) -1)
+ _procs_GL_VERSION_1_2.glColorSubTable =
+ (GdkGLProc_glColorSubTable) gdk_gl_get_proc_address ("glColorSubTable");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorSubTable () - %s",
+ (_procs_GL_VERSION_1_2.glColorSubTable) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glColorSubTable);
+}
+
+/* glCopyColorSubTable */
+GdkGLProc
+gdk_gl_get_glCopyColorSubTable (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glCopyColorSubTable == (GdkGLProc_glCopyColorSubTable) -1)
+ _procs_GL_VERSION_1_2.glCopyColorSubTable =
+ (GdkGLProc_glCopyColorSubTable) gdk_gl_get_proc_address ("glCopyColorSubTable");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyColorSubTable () - %s",
+ (_procs_GL_VERSION_1_2.glCopyColorSubTable) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glCopyColorSubTable);
+}
+
+/* glConvolutionFilter1D */
+GdkGLProc
+gdk_gl_get_glConvolutionFilter1D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glConvolutionFilter1D == (GdkGLProc_glConvolutionFilter1D) -1)
+ _procs_GL_VERSION_1_2.glConvolutionFilter1D =
+ (GdkGLProc_glConvolutionFilter1D) gdk_gl_get_proc_address ("glConvolutionFilter1D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionFilter1D () - %s",
+ (_procs_GL_VERSION_1_2.glConvolutionFilter1D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glConvolutionFilter1D);
+}
+
+/* glConvolutionFilter2D */
+GdkGLProc
+gdk_gl_get_glConvolutionFilter2D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glConvolutionFilter2D == (GdkGLProc_glConvolutionFilter2D) -1)
+ _procs_GL_VERSION_1_2.glConvolutionFilter2D =
+ (GdkGLProc_glConvolutionFilter2D) gdk_gl_get_proc_address ("glConvolutionFilter2D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionFilter2D () - %s",
+ (_procs_GL_VERSION_1_2.glConvolutionFilter2D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glConvolutionFilter2D);
+}
+
+/* glConvolutionParameterf */
+GdkGLProc
+gdk_gl_get_glConvolutionParameterf (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glConvolutionParameterf == (GdkGLProc_glConvolutionParameterf) -1)
+ _procs_GL_VERSION_1_2.glConvolutionParameterf =
+ (GdkGLProc_glConvolutionParameterf) gdk_gl_get_proc_address ("glConvolutionParameterf");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionParameterf () - %s",
+ (_procs_GL_VERSION_1_2.glConvolutionParameterf) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glConvolutionParameterf);
+}
+
+/* glConvolutionParameterfv */
+GdkGLProc
+gdk_gl_get_glConvolutionParameterfv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glConvolutionParameterfv == (GdkGLProc_glConvolutionParameterfv) -1)
+ _procs_GL_VERSION_1_2.glConvolutionParameterfv =
+ (GdkGLProc_glConvolutionParameterfv) gdk_gl_get_proc_address ("glConvolutionParameterfv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionParameterfv () - %s",
+ (_procs_GL_VERSION_1_2.glConvolutionParameterfv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glConvolutionParameterfv);
+}
+
+/* glConvolutionParameteri */
+GdkGLProc
+gdk_gl_get_glConvolutionParameteri (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glConvolutionParameteri == (GdkGLProc_glConvolutionParameteri) -1)
+ _procs_GL_VERSION_1_2.glConvolutionParameteri =
+ (GdkGLProc_glConvolutionParameteri) gdk_gl_get_proc_address ("glConvolutionParameteri");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionParameteri () - %s",
+ (_procs_GL_VERSION_1_2.glConvolutionParameteri) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glConvolutionParameteri);
+}
+
+/* glConvolutionParameteriv */
+GdkGLProc
+gdk_gl_get_glConvolutionParameteriv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glConvolutionParameteriv == (GdkGLProc_glConvolutionParameteriv) -1)
+ _procs_GL_VERSION_1_2.glConvolutionParameteriv =
+ (GdkGLProc_glConvolutionParameteriv) gdk_gl_get_proc_address ("glConvolutionParameteriv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionParameteriv () - %s",
+ (_procs_GL_VERSION_1_2.glConvolutionParameteriv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glConvolutionParameteriv);
+}
+
+/* glCopyConvolutionFilter1D */
+GdkGLProc
+gdk_gl_get_glCopyConvolutionFilter1D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glCopyConvolutionFilter1D == (GdkGLProc_glCopyConvolutionFilter1D) -1)
+ _procs_GL_VERSION_1_2.glCopyConvolutionFilter1D =
+ (GdkGLProc_glCopyConvolutionFilter1D) gdk_gl_get_proc_address ("glCopyConvolutionFilter1D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyConvolutionFilter1D () - %s",
+ (_procs_GL_VERSION_1_2.glCopyConvolutionFilter1D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glCopyConvolutionFilter1D);
+}
+
+/* glCopyConvolutionFilter2D */
+GdkGLProc
+gdk_gl_get_glCopyConvolutionFilter2D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glCopyConvolutionFilter2D == (GdkGLProc_glCopyConvolutionFilter2D) -1)
+ _procs_GL_VERSION_1_2.glCopyConvolutionFilter2D =
+ (GdkGLProc_glCopyConvolutionFilter2D) gdk_gl_get_proc_address ("glCopyConvolutionFilter2D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyConvolutionFilter2D () - %s",
+ (_procs_GL_VERSION_1_2.glCopyConvolutionFilter2D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glCopyConvolutionFilter2D);
+}
+
+/* glGetConvolutionFilter */
+GdkGLProc
+gdk_gl_get_glGetConvolutionFilter (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetConvolutionFilter == (GdkGLProc_glGetConvolutionFilter) -1)
+ _procs_GL_VERSION_1_2.glGetConvolutionFilter =
+ (GdkGLProc_glGetConvolutionFilter) gdk_gl_get_proc_address ("glGetConvolutionFilter");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetConvolutionFilter () - %s",
+ (_procs_GL_VERSION_1_2.glGetConvolutionFilter) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetConvolutionFilter);
+}
+
+/* glGetConvolutionParameterfv */
+GdkGLProc
+gdk_gl_get_glGetConvolutionParameterfv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetConvolutionParameterfv == (GdkGLProc_glGetConvolutionParameterfv) -1)
+ _procs_GL_VERSION_1_2.glGetConvolutionParameterfv =
+ (GdkGLProc_glGetConvolutionParameterfv) gdk_gl_get_proc_address ("glGetConvolutionParameterfv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetConvolutionParameterfv () - %s",
+ (_procs_GL_VERSION_1_2.glGetConvolutionParameterfv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetConvolutionParameterfv);
+}
+
+/* glGetConvolutionParameteriv */
+GdkGLProc
+gdk_gl_get_glGetConvolutionParameteriv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetConvolutionParameteriv == (GdkGLProc_glGetConvolutionParameteriv) -1)
+ _procs_GL_VERSION_1_2.glGetConvolutionParameteriv =
+ (GdkGLProc_glGetConvolutionParameteriv) gdk_gl_get_proc_address ("glGetConvolutionParameteriv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetConvolutionParameteriv () - %s",
+ (_procs_GL_VERSION_1_2.glGetConvolutionParameteriv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetConvolutionParameteriv);
+}
+
+/* glGetSeparableFilter */
+GdkGLProc
+gdk_gl_get_glGetSeparableFilter (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetSeparableFilter == (GdkGLProc_glGetSeparableFilter) -1)
+ _procs_GL_VERSION_1_2.glGetSeparableFilter =
+ (GdkGLProc_glGetSeparableFilter) gdk_gl_get_proc_address ("glGetSeparableFilter");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetSeparableFilter () - %s",
+ (_procs_GL_VERSION_1_2.glGetSeparableFilter) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetSeparableFilter);
+}
+
+/* glSeparableFilter2D */
+GdkGLProc
+gdk_gl_get_glSeparableFilter2D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glSeparableFilter2D == (GdkGLProc_glSeparableFilter2D) -1)
+ _procs_GL_VERSION_1_2.glSeparableFilter2D =
+ (GdkGLProc_glSeparableFilter2D) gdk_gl_get_proc_address ("glSeparableFilter2D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSeparableFilter2D () - %s",
+ (_procs_GL_VERSION_1_2.glSeparableFilter2D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glSeparableFilter2D);
+}
+
+/* glGetHistogram */
+GdkGLProc
+gdk_gl_get_glGetHistogram (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetHistogram == (GdkGLProc_glGetHistogram) -1)
+ _procs_GL_VERSION_1_2.glGetHistogram =
+ (GdkGLProc_glGetHistogram) gdk_gl_get_proc_address ("glGetHistogram");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetHistogram () - %s",
+ (_procs_GL_VERSION_1_2.glGetHistogram) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetHistogram);
+}
+
+/* glGetHistogramParameterfv */
+GdkGLProc
+gdk_gl_get_glGetHistogramParameterfv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetHistogramParameterfv == (GdkGLProc_glGetHistogramParameterfv) -1)
+ _procs_GL_VERSION_1_2.glGetHistogramParameterfv =
+ (GdkGLProc_glGetHistogramParameterfv) gdk_gl_get_proc_address ("glGetHistogramParameterfv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetHistogramParameterfv () - %s",
+ (_procs_GL_VERSION_1_2.glGetHistogramParameterfv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetHistogramParameterfv);
+}
+
+/* glGetHistogramParameteriv */
+GdkGLProc
+gdk_gl_get_glGetHistogramParameteriv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetHistogramParameteriv == (GdkGLProc_glGetHistogramParameteriv) -1)
+ _procs_GL_VERSION_1_2.glGetHistogramParameteriv =
+ (GdkGLProc_glGetHistogramParameteriv) gdk_gl_get_proc_address ("glGetHistogramParameteriv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetHistogramParameteriv () - %s",
+ (_procs_GL_VERSION_1_2.glGetHistogramParameteriv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetHistogramParameteriv);
+}
+
+/* glGetMinmax */
+GdkGLProc
+gdk_gl_get_glGetMinmax (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetMinmax == (GdkGLProc_glGetMinmax) -1)
+ _procs_GL_VERSION_1_2.glGetMinmax =
+ (GdkGLProc_glGetMinmax) gdk_gl_get_proc_address ("glGetMinmax");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMinmax () - %s",
+ (_procs_GL_VERSION_1_2.glGetMinmax) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetMinmax);
+}
+
+/* glGetMinmaxParameterfv */
+GdkGLProc
+gdk_gl_get_glGetMinmaxParameterfv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetMinmaxParameterfv == (GdkGLProc_glGetMinmaxParameterfv) -1)
+ _procs_GL_VERSION_1_2.glGetMinmaxParameterfv =
+ (GdkGLProc_glGetMinmaxParameterfv) gdk_gl_get_proc_address ("glGetMinmaxParameterfv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMinmaxParameterfv () - %s",
+ (_procs_GL_VERSION_1_2.glGetMinmaxParameterfv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetMinmaxParameterfv);
+}
+
+/* glGetMinmaxParameteriv */
+GdkGLProc
+gdk_gl_get_glGetMinmaxParameteriv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glGetMinmaxParameteriv == (GdkGLProc_glGetMinmaxParameteriv) -1)
+ _procs_GL_VERSION_1_2.glGetMinmaxParameteriv =
+ (GdkGLProc_glGetMinmaxParameteriv) gdk_gl_get_proc_address ("glGetMinmaxParameteriv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMinmaxParameteriv () - %s",
+ (_procs_GL_VERSION_1_2.glGetMinmaxParameteriv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glGetMinmaxParameteriv);
+}
+
+/* glHistogram */
+GdkGLProc
+gdk_gl_get_glHistogram (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glHistogram == (GdkGLProc_glHistogram) -1)
+ _procs_GL_VERSION_1_2.glHistogram =
+ (GdkGLProc_glHistogram) gdk_gl_get_proc_address ("glHistogram");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glHistogram () - %s",
+ (_procs_GL_VERSION_1_2.glHistogram) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glHistogram);
+}
+
+/* glMinmax */
+GdkGLProc
+gdk_gl_get_glMinmax (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glMinmax == (GdkGLProc_glMinmax) -1)
+ _procs_GL_VERSION_1_2.glMinmax =
+ (GdkGLProc_glMinmax) gdk_gl_get_proc_address ("glMinmax");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMinmax () - %s",
+ (_procs_GL_VERSION_1_2.glMinmax) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glMinmax);
+}
+
+/* glResetHistogram */
+GdkGLProc
+gdk_gl_get_glResetHistogram (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glResetHistogram == (GdkGLProc_glResetHistogram) -1)
+ _procs_GL_VERSION_1_2.glResetHistogram =
+ (GdkGLProc_glResetHistogram) gdk_gl_get_proc_address ("glResetHistogram");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glResetHistogram () - %s",
+ (_procs_GL_VERSION_1_2.glResetHistogram) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glResetHistogram);
+}
+
+/* glResetMinmax */
+GdkGLProc
+gdk_gl_get_glResetMinmax (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glResetMinmax == (GdkGLProc_glResetMinmax) -1)
+ _procs_GL_VERSION_1_2.glResetMinmax =
+ (GdkGLProc_glResetMinmax) gdk_gl_get_proc_address ("glResetMinmax");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glResetMinmax () - %s",
+ (_procs_GL_VERSION_1_2.glResetMinmax) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glResetMinmax);
+}
+
+/* glTexImage3D */
+GdkGLProc
+gdk_gl_get_glTexImage3D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glTexImage3D == (GdkGLProc_glTexImage3D) -1)
+ _procs_GL_VERSION_1_2.glTexImage3D =
+ (GdkGLProc_glTexImage3D) gdk_gl_get_proc_address ("glTexImage3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexImage3D () - %s",
+ (_procs_GL_VERSION_1_2.glTexImage3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glTexImage3D);
+}
+
+/* glTexSubImage3D */
+GdkGLProc
+gdk_gl_get_glTexSubImage3D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glTexSubImage3D == (GdkGLProc_glTexSubImage3D) -1)
+ _procs_GL_VERSION_1_2.glTexSubImage3D =
+ (GdkGLProc_glTexSubImage3D) gdk_gl_get_proc_address ("glTexSubImage3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexSubImage3D () - %s",
+ (_procs_GL_VERSION_1_2.glTexSubImage3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glTexSubImage3D);
+}
+
+/* glCopyTexSubImage3D */
+GdkGLProc
+gdk_gl_get_glCopyTexSubImage3D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_2.glCopyTexSubImage3D == (GdkGLProc_glCopyTexSubImage3D) -1)
+ _procs_GL_VERSION_1_2.glCopyTexSubImage3D =
+ (GdkGLProc_glCopyTexSubImage3D) gdk_gl_get_proc_address ("glCopyTexSubImage3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyTexSubImage3D () - %s",
+ (_procs_GL_VERSION_1_2.glCopyTexSubImage3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_2.glCopyTexSubImage3D);
+}
+
+/* Get GL_VERSION_1_2 functions */
+GdkGL_GL_VERSION_1_2 *
+gdk_gl_get_GL_VERSION_1_2 (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = (gdk_gl_get_glBlendColor () != NULL);
+ supported &= (gdk_gl_get_glBlendEquation () != NULL);
+ supported &= (gdk_gl_get_glDrawRangeElements () != NULL);
+ supported &= (gdk_gl_get_glColorTable () != NULL);
+ supported &= (gdk_gl_get_glColorTableParameterfv () != NULL);
+ supported &= (gdk_gl_get_glColorTableParameteriv () != NULL);
+ supported &= (gdk_gl_get_glCopyColorTable () != NULL);
+ supported &= (gdk_gl_get_glGetColorTable () != NULL);
+ supported &= (gdk_gl_get_glGetColorTableParameterfv () != NULL);
+ supported &= (gdk_gl_get_glGetColorTableParameteriv () != NULL);
+ supported &= (gdk_gl_get_glColorSubTable () != NULL);
+ supported &= (gdk_gl_get_glCopyColorSubTable () != NULL);
+ supported &= (gdk_gl_get_glConvolutionFilter1D () != NULL);
+ supported &= (gdk_gl_get_glConvolutionFilter2D () != NULL);
+ supported &= (gdk_gl_get_glConvolutionParameterf () != NULL);
+ supported &= (gdk_gl_get_glConvolutionParameterfv () != NULL);
+ supported &= (gdk_gl_get_glConvolutionParameteri () != NULL);
+ supported &= (gdk_gl_get_glConvolutionParameteriv () != NULL);
+ supported &= (gdk_gl_get_glCopyConvolutionFilter1D () != NULL);
+ supported &= (gdk_gl_get_glCopyConvolutionFilter2D () != NULL);
+ supported &= (gdk_gl_get_glGetConvolutionFilter () != NULL);
+ supported &= (gdk_gl_get_glGetConvolutionParameterfv () != NULL);
+ supported &= (gdk_gl_get_glGetConvolutionParameteriv () != NULL);
+ supported &= (gdk_gl_get_glGetSeparableFilter () != NULL);
+ supported &= (gdk_gl_get_glSeparableFilter2D () != NULL);
+ supported &= (gdk_gl_get_glGetHistogram () != NULL);
+ supported &= (gdk_gl_get_glGetHistogramParameterfv () != NULL);
+ supported &= (gdk_gl_get_glGetHistogramParameteriv () != NULL);
+ supported &= (gdk_gl_get_glGetMinmax () != NULL);
+ supported &= (gdk_gl_get_glGetMinmaxParameterfv () != NULL);
+ supported &= (gdk_gl_get_glGetMinmaxParameteriv () != NULL);
+ supported &= (gdk_gl_get_glHistogram () != NULL);
+ supported &= (gdk_gl_get_glMinmax () != NULL);
+ supported &= (gdk_gl_get_glResetHistogram () != NULL);
+ supported &= (gdk_gl_get_glResetMinmax () != NULL);
+ supported &= (gdk_gl_get_glTexImage3D () != NULL);
+ supported &= (gdk_gl_get_glTexSubImage3D () != NULL);
+ supported &= (gdk_gl_get_glCopyTexSubImage3D () != NULL);
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_VERSION_1_2 () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_VERSION_1_2;
+}
+
+/*
+ * GL_VERSION_1_3
+ */
+
+static GdkGL_GL_VERSION_1_3 _procs_GL_VERSION_1_3 = {
+ (GdkGLProc_glActiveTexture) -1,
+ (GdkGLProc_glClientActiveTexture) -1,
+ (GdkGLProc_glMultiTexCoord1d) -1,
+ (GdkGLProc_glMultiTexCoord1dv) -1,
+ (GdkGLProc_glMultiTexCoord1f) -1,
+ (GdkGLProc_glMultiTexCoord1fv) -1,
+ (GdkGLProc_glMultiTexCoord1i) -1,
+ (GdkGLProc_glMultiTexCoord1iv) -1,
+ (GdkGLProc_glMultiTexCoord1s) -1,
+ (GdkGLProc_glMultiTexCoord1sv) -1,
+ (GdkGLProc_glMultiTexCoord2d) -1,
+ (GdkGLProc_glMultiTexCoord2dv) -1,
+ (GdkGLProc_glMultiTexCoord2f) -1,
+ (GdkGLProc_glMultiTexCoord2fv) -1,
+ (GdkGLProc_glMultiTexCoord2i) -1,
+ (GdkGLProc_glMultiTexCoord2iv) -1,
+ (GdkGLProc_glMultiTexCoord2s) -1,
+ (GdkGLProc_glMultiTexCoord2sv) -1,
+ (GdkGLProc_glMultiTexCoord3d) -1,
+ (GdkGLProc_glMultiTexCoord3dv) -1,
+ (GdkGLProc_glMultiTexCoord3f) -1,
+ (GdkGLProc_glMultiTexCoord3fv) -1,
+ (GdkGLProc_glMultiTexCoord3i) -1,
+ (GdkGLProc_glMultiTexCoord3iv) -1,
+ (GdkGLProc_glMultiTexCoord3s) -1,
+ (GdkGLProc_glMultiTexCoord3sv) -1,
+ (GdkGLProc_glMultiTexCoord4d) -1,
+ (GdkGLProc_glMultiTexCoord4dv) -1,
+ (GdkGLProc_glMultiTexCoord4f) -1,
+ (GdkGLProc_glMultiTexCoord4fv) -1,
+ (GdkGLProc_glMultiTexCoord4i) -1,
+ (GdkGLProc_glMultiTexCoord4iv) -1,
+ (GdkGLProc_glMultiTexCoord4s) -1,
+ (GdkGLProc_glMultiTexCoord4sv) -1,
+ (GdkGLProc_glLoadTransposeMatrixf) -1,
+ (GdkGLProc_glLoadTransposeMatrixd) -1,
+ (GdkGLProc_glMultTransposeMatrixf) -1,
+ (GdkGLProc_glMultTransposeMatrixd) -1,
+ (GdkGLProc_glSampleCoverage) -1,
+ (GdkGLProc_glCompressedTexImage3D) -1,
+ (GdkGLProc_glCompressedTexImage2D) -1,
+ (GdkGLProc_glCompressedTexImage1D) -1,
+ (GdkGLProc_glCompressedTexSubImage3D) -1,
+ (GdkGLProc_glCompressedTexSubImage2D) -1,
+ (GdkGLProc_glCompressedTexSubImage1D) -1,
+ (GdkGLProc_glGetCompressedTexImage) -1
+};
+
+/* glActiveTexture */
+GdkGLProc
+gdk_gl_get_glActiveTexture (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glActiveTexture == (GdkGLProc_glActiveTexture) -1)
+ _procs_GL_VERSION_1_3.glActiveTexture =
+ (GdkGLProc_glActiveTexture) gdk_gl_get_proc_address ("glActiveTexture");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glActiveTexture () - %s",
+ (_procs_GL_VERSION_1_3.glActiveTexture) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glActiveTexture);
+}
+
+/* glClientActiveTexture */
+GdkGLProc
+gdk_gl_get_glClientActiveTexture (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glClientActiveTexture == (GdkGLProc_glClientActiveTexture) -1)
+ _procs_GL_VERSION_1_3.glClientActiveTexture =
+ (GdkGLProc_glClientActiveTexture) gdk_gl_get_proc_address ("glClientActiveTexture");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glClientActiveTexture () - %s",
+ (_procs_GL_VERSION_1_3.glClientActiveTexture) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glClientActiveTexture);
+}
+
+/* glMultiTexCoord1d */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1d (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord1d == (GdkGLProc_glMultiTexCoord1d) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord1d =
+ (GdkGLProc_glMultiTexCoord1d) gdk_gl_get_proc_address ("glMultiTexCoord1d");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1d () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord1d) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord1d);
+}
+
+/* glMultiTexCoord1dv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1dv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord1dv == (GdkGLProc_glMultiTexCoord1dv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord1dv =
+ (GdkGLProc_glMultiTexCoord1dv) gdk_gl_get_proc_address ("glMultiTexCoord1dv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1dv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord1dv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord1dv);
+}
+
+/* glMultiTexCoord1f */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1f (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord1f == (GdkGLProc_glMultiTexCoord1f) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord1f =
+ (GdkGLProc_glMultiTexCoord1f) gdk_gl_get_proc_address ("glMultiTexCoord1f");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1f () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord1f) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord1f);
+}
+
+/* glMultiTexCoord1fv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1fv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord1fv == (GdkGLProc_glMultiTexCoord1fv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord1fv =
+ (GdkGLProc_glMultiTexCoord1fv) gdk_gl_get_proc_address ("glMultiTexCoord1fv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1fv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord1fv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord1fv);
+}
+
+/* glMultiTexCoord1i */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1i (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord1i == (GdkGLProc_glMultiTexCoord1i) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord1i =
+ (GdkGLProc_glMultiTexCoord1i) gdk_gl_get_proc_address ("glMultiTexCoord1i");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1i () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord1i) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord1i);
+}
+
+/* glMultiTexCoord1iv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1iv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord1iv == (GdkGLProc_glMultiTexCoord1iv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord1iv =
+ (GdkGLProc_glMultiTexCoord1iv) gdk_gl_get_proc_address ("glMultiTexCoord1iv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1iv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord1iv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord1iv);
+}
+
+/* glMultiTexCoord1s */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1s (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord1s == (GdkGLProc_glMultiTexCoord1s) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord1s =
+ (GdkGLProc_glMultiTexCoord1s) gdk_gl_get_proc_address ("glMultiTexCoord1s");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1s () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord1s) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord1s);
+}
+
+/* glMultiTexCoord1sv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1sv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord1sv == (GdkGLProc_glMultiTexCoord1sv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord1sv =
+ (GdkGLProc_glMultiTexCoord1sv) gdk_gl_get_proc_address ("glMultiTexCoord1sv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1sv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord1sv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord1sv);
+}
+
+/* glMultiTexCoord2d */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2d (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord2d == (GdkGLProc_glMultiTexCoord2d) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord2d =
+ (GdkGLProc_glMultiTexCoord2d) gdk_gl_get_proc_address ("glMultiTexCoord2d");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2d () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord2d) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord2d);
+}
+
+/* glMultiTexCoord2dv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2dv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord2dv == (GdkGLProc_glMultiTexCoord2dv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord2dv =
+ (GdkGLProc_glMultiTexCoord2dv) gdk_gl_get_proc_address ("glMultiTexCoord2dv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2dv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord2dv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord2dv);
+}
+
+/* glMultiTexCoord2f */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2f (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord2f == (GdkGLProc_glMultiTexCoord2f) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord2f =
+ (GdkGLProc_glMultiTexCoord2f) gdk_gl_get_proc_address ("glMultiTexCoord2f");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2f () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord2f) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord2f);
+}
+
+/* glMultiTexCoord2fv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2fv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord2fv == (GdkGLProc_glMultiTexCoord2fv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord2fv =
+ (GdkGLProc_glMultiTexCoord2fv) gdk_gl_get_proc_address ("glMultiTexCoord2fv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2fv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord2fv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord2fv);
+}
+
+/* glMultiTexCoord2i */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2i (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord2i == (GdkGLProc_glMultiTexCoord2i) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord2i =
+ (GdkGLProc_glMultiTexCoord2i) gdk_gl_get_proc_address ("glMultiTexCoord2i");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2i () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord2i) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord2i);
+}
+
+/* glMultiTexCoord2iv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2iv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord2iv == (GdkGLProc_glMultiTexCoord2iv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord2iv =
+ (GdkGLProc_glMultiTexCoord2iv) gdk_gl_get_proc_address ("glMultiTexCoord2iv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2iv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord2iv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord2iv);
+}
+
+/* glMultiTexCoord2s */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2s (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord2s == (GdkGLProc_glMultiTexCoord2s) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord2s =
+ (GdkGLProc_glMultiTexCoord2s) gdk_gl_get_proc_address ("glMultiTexCoord2s");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2s () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord2s) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord2s);
+}
+
+/* glMultiTexCoord2sv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2sv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord2sv == (GdkGLProc_glMultiTexCoord2sv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord2sv =
+ (GdkGLProc_glMultiTexCoord2sv) gdk_gl_get_proc_address ("glMultiTexCoord2sv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2sv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord2sv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord2sv);
+}
+
+/* glMultiTexCoord3d */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3d (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord3d == (GdkGLProc_glMultiTexCoord3d) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord3d =
+ (GdkGLProc_glMultiTexCoord3d) gdk_gl_get_proc_address ("glMultiTexCoord3d");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3d () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord3d) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord3d);
+}
+
+/* glMultiTexCoord3dv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3dv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord3dv == (GdkGLProc_glMultiTexCoord3dv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord3dv =
+ (GdkGLProc_glMultiTexCoord3dv) gdk_gl_get_proc_address ("glMultiTexCoord3dv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3dv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord3dv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord3dv);
+}
+
+/* glMultiTexCoord3f */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3f (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord3f == (GdkGLProc_glMultiTexCoord3f) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord3f =
+ (GdkGLProc_glMultiTexCoord3f) gdk_gl_get_proc_address ("glMultiTexCoord3f");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3f () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord3f) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord3f);
+}
+
+/* glMultiTexCoord3fv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3fv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord3fv == (GdkGLProc_glMultiTexCoord3fv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord3fv =
+ (GdkGLProc_glMultiTexCoord3fv) gdk_gl_get_proc_address ("glMultiTexCoord3fv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3fv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord3fv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord3fv);
+}
+
+/* glMultiTexCoord3i */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3i (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord3i == (GdkGLProc_glMultiTexCoord3i) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord3i =
+ (GdkGLProc_glMultiTexCoord3i) gdk_gl_get_proc_address ("glMultiTexCoord3i");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3i () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord3i) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord3i);
+}
+
+/* glMultiTexCoord3iv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3iv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord3iv == (GdkGLProc_glMultiTexCoord3iv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord3iv =
+ (GdkGLProc_glMultiTexCoord3iv) gdk_gl_get_proc_address ("glMultiTexCoord3iv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3iv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord3iv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord3iv);
+}
+
+/* glMultiTexCoord3s */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3s (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord3s == (GdkGLProc_glMultiTexCoord3s) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord3s =
+ (GdkGLProc_glMultiTexCoord3s) gdk_gl_get_proc_address ("glMultiTexCoord3s");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3s () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord3s) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord3s);
+}
+
+/* glMultiTexCoord3sv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3sv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord3sv == (GdkGLProc_glMultiTexCoord3sv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord3sv =
+ (GdkGLProc_glMultiTexCoord3sv) gdk_gl_get_proc_address ("glMultiTexCoord3sv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3sv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord3sv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord3sv);
+}
+
+/* glMultiTexCoord4d */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4d (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord4d == (GdkGLProc_glMultiTexCoord4d) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord4d =
+ (GdkGLProc_glMultiTexCoord4d) gdk_gl_get_proc_address ("glMultiTexCoord4d");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4d () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord4d) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord4d);
+}
+
+/* glMultiTexCoord4dv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4dv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord4dv == (GdkGLProc_glMultiTexCoord4dv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord4dv =
+ (GdkGLProc_glMultiTexCoord4dv) gdk_gl_get_proc_address ("glMultiTexCoord4dv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4dv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord4dv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord4dv);
+}
+
+/* glMultiTexCoord4f */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4f (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord4f == (GdkGLProc_glMultiTexCoord4f) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord4f =
+ (GdkGLProc_glMultiTexCoord4f) gdk_gl_get_proc_address ("glMultiTexCoord4f");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4f () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord4f) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord4f);
+}
+
+/* glMultiTexCoord4fv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4fv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord4fv == (GdkGLProc_glMultiTexCoord4fv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord4fv =
+ (GdkGLProc_glMultiTexCoord4fv) gdk_gl_get_proc_address ("glMultiTexCoord4fv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4fv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord4fv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord4fv);
+}
+
+/* glMultiTexCoord4i */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4i (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord4i == (GdkGLProc_glMultiTexCoord4i) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord4i =
+ (GdkGLProc_glMultiTexCoord4i) gdk_gl_get_proc_address ("glMultiTexCoord4i");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4i () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord4i) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord4i);
+}
+
+/* glMultiTexCoord4iv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4iv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord4iv == (GdkGLProc_glMultiTexCoord4iv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord4iv =
+ (GdkGLProc_glMultiTexCoord4iv) gdk_gl_get_proc_address ("glMultiTexCoord4iv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4iv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord4iv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord4iv);
+}
+
+/* glMultiTexCoord4s */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4s (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord4s == (GdkGLProc_glMultiTexCoord4s) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord4s =
+ (GdkGLProc_glMultiTexCoord4s) gdk_gl_get_proc_address ("glMultiTexCoord4s");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4s () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord4s) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord4s);
+}
+
+/* glMultiTexCoord4sv */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4sv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultiTexCoord4sv == (GdkGLProc_glMultiTexCoord4sv) -1)
+ _procs_GL_VERSION_1_3.glMultiTexCoord4sv =
+ (GdkGLProc_glMultiTexCoord4sv) gdk_gl_get_proc_address ("glMultiTexCoord4sv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4sv () - %s",
+ (_procs_GL_VERSION_1_3.glMultiTexCoord4sv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultiTexCoord4sv);
+}
+
+/* glLoadTransposeMatrixf */
+GdkGLProc
+gdk_gl_get_glLoadTransposeMatrixf (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glLoadTransposeMatrixf == (GdkGLProc_glLoadTransposeMatrixf) -1)
+ _procs_GL_VERSION_1_3.glLoadTransposeMatrixf =
+ (GdkGLProc_glLoadTransposeMatrixf) gdk_gl_get_proc_address ("glLoadTransposeMatrixf");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glLoadTransposeMatrixf () - %s",
+ (_procs_GL_VERSION_1_3.glLoadTransposeMatrixf) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glLoadTransposeMatrixf);
+}
+
+/* glLoadTransposeMatrixd */
+GdkGLProc
+gdk_gl_get_glLoadTransposeMatrixd (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glLoadTransposeMatrixd == (GdkGLProc_glLoadTransposeMatrixd) -1)
+ _procs_GL_VERSION_1_3.glLoadTransposeMatrixd =
+ (GdkGLProc_glLoadTransposeMatrixd) gdk_gl_get_proc_address ("glLoadTransposeMatrixd");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glLoadTransposeMatrixd () - %s",
+ (_procs_GL_VERSION_1_3.glLoadTransposeMatrixd) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glLoadTransposeMatrixd);
+}
+
+/* glMultTransposeMatrixf */
+GdkGLProc
+gdk_gl_get_glMultTransposeMatrixf (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultTransposeMatrixf == (GdkGLProc_glMultTransposeMatrixf) -1)
+ _procs_GL_VERSION_1_3.glMultTransposeMatrixf =
+ (GdkGLProc_glMultTransposeMatrixf) gdk_gl_get_proc_address ("glMultTransposeMatrixf");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultTransposeMatrixf () - %s",
+ (_procs_GL_VERSION_1_3.glMultTransposeMatrixf) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultTransposeMatrixf);
+}
+
+/* glMultTransposeMatrixd */
+GdkGLProc
+gdk_gl_get_glMultTransposeMatrixd (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glMultTransposeMatrixd == (GdkGLProc_glMultTransposeMatrixd) -1)
+ _procs_GL_VERSION_1_3.glMultTransposeMatrixd =
+ (GdkGLProc_glMultTransposeMatrixd) gdk_gl_get_proc_address ("glMultTransposeMatrixd");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultTransposeMatrixd () - %s",
+ (_procs_GL_VERSION_1_3.glMultTransposeMatrixd) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glMultTransposeMatrixd);
+}
+
+/* glSampleCoverage */
+GdkGLProc
+gdk_gl_get_glSampleCoverage (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glSampleCoverage == (GdkGLProc_glSampleCoverage) -1)
+ _procs_GL_VERSION_1_3.glSampleCoverage =
+ (GdkGLProc_glSampleCoverage) gdk_gl_get_proc_address ("glSampleCoverage");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSampleCoverage () - %s",
+ (_procs_GL_VERSION_1_3.glSampleCoverage) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glSampleCoverage);
+}
+
+/* glCompressedTexImage3D */
+GdkGLProc
+gdk_gl_get_glCompressedTexImage3D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glCompressedTexImage3D == (GdkGLProc_glCompressedTexImage3D) -1)
+ _procs_GL_VERSION_1_3.glCompressedTexImage3D =
+ (GdkGLProc_glCompressedTexImage3D) gdk_gl_get_proc_address ("glCompressedTexImage3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexImage3D () - %s",
+ (_procs_GL_VERSION_1_3.glCompressedTexImage3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glCompressedTexImage3D);
+}
+
+/* glCompressedTexImage2D */
+GdkGLProc
+gdk_gl_get_glCompressedTexImage2D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glCompressedTexImage2D == (GdkGLProc_glCompressedTexImage2D) -1)
+ _procs_GL_VERSION_1_3.glCompressedTexImage2D =
+ (GdkGLProc_glCompressedTexImage2D) gdk_gl_get_proc_address ("glCompressedTexImage2D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexImage2D () - %s",
+ (_procs_GL_VERSION_1_3.glCompressedTexImage2D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glCompressedTexImage2D);
+}
+
+/* glCompressedTexImage1D */
+GdkGLProc
+gdk_gl_get_glCompressedTexImage1D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glCompressedTexImage1D == (GdkGLProc_glCompressedTexImage1D) -1)
+ _procs_GL_VERSION_1_3.glCompressedTexImage1D =
+ (GdkGLProc_glCompressedTexImage1D) gdk_gl_get_proc_address ("glCompressedTexImage1D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexImage1D () - %s",
+ (_procs_GL_VERSION_1_3.glCompressedTexImage1D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glCompressedTexImage1D);
+}
+
+/* glCompressedTexSubImage3D */
+GdkGLProc
+gdk_gl_get_glCompressedTexSubImage3D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glCompressedTexSubImage3D == (GdkGLProc_glCompressedTexSubImage3D) -1)
+ _procs_GL_VERSION_1_3.glCompressedTexSubImage3D =
+ (GdkGLProc_glCompressedTexSubImage3D) gdk_gl_get_proc_address ("glCompressedTexSubImage3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexSubImage3D () - %s",
+ (_procs_GL_VERSION_1_3.glCompressedTexSubImage3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glCompressedTexSubImage3D);
+}
+
+/* glCompressedTexSubImage2D */
+GdkGLProc
+gdk_gl_get_glCompressedTexSubImage2D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glCompressedTexSubImage2D == (GdkGLProc_glCompressedTexSubImage2D) -1)
+ _procs_GL_VERSION_1_3.glCompressedTexSubImage2D =
+ (GdkGLProc_glCompressedTexSubImage2D) gdk_gl_get_proc_address ("glCompressedTexSubImage2D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexSubImage2D () - %s",
+ (_procs_GL_VERSION_1_3.glCompressedTexSubImage2D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glCompressedTexSubImage2D);
+}
+
+/* glCompressedTexSubImage1D */
+GdkGLProc
+gdk_gl_get_glCompressedTexSubImage1D (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glCompressedTexSubImage1D == (GdkGLProc_glCompressedTexSubImage1D) -1)
+ _procs_GL_VERSION_1_3.glCompressedTexSubImage1D =
+ (GdkGLProc_glCompressedTexSubImage1D) gdk_gl_get_proc_address ("glCompressedTexSubImage1D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexSubImage1D () - %s",
+ (_procs_GL_VERSION_1_3.glCompressedTexSubImage1D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glCompressedTexSubImage1D);
+}
+
+/* glGetCompressedTexImage */
+GdkGLProc
+gdk_gl_get_glGetCompressedTexImage (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_3.glGetCompressedTexImage == (GdkGLProc_glGetCompressedTexImage) -1)
+ _procs_GL_VERSION_1_3.glGetCompressedTexImage =
+ (GdkGLProc_glGetCompressedTexImage) gdk_gl_get_proc_address ("glGetCompressedTexImage");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetCompressedTexImage () - %s",
+ (_procs_GL_VERSION_1_3.glGetCompressedTexImage) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_3.glGetCompressedTexImage);
+}
+
+/* Get GL_VERSION_1_3 functions */
+GdkGL_GL_VERSION_1_3 *
+gdk_gl_get_GL_VERSION_1_3 (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = (gdk_gl_get_glActiveTexture () != NULL);
+ supported &= (gdk_gl_get_glClientActiveTexture () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1d () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1dv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1f () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1fv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1i () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1iv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1s () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1sv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2d () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2dv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2f () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2fv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2i () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2iv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2s () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2sv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3d () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3dv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3f () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3fv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3i () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3iv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3s () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3sv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4d () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4dv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4f () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4fv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4i () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4iv () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4s () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4sv () != NULL);
+ supported &= (gdk_gl_get_glLoadTransposeMatrixf () != NULL);
+ supported &= (gdk_gl_get_glLoadTransposeMatrixd () != NULL);
+ supported &= (gdk_gl_get_glMultTransposeMatrixf () != NULL);
+ supported &= (gdk_gl_get_glMultTransposeMatrixd () != NULL);
+ supported &= (gdk_gl_get_glSampleCoverage () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexImage3D () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexImage2D () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexImage1D () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexSubImage3D () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexSubImage2D () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexSubImage1D () != NULL);
+ supported &= (gdk_gl_get_glGetCompressedTexImage () != NULL);
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_VERSION_1_3 () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_VERSION_1_3;
+}
+
+/*
+ * GL_VERSION_1_4
+ */
+
+static GdkGL_GL_VERSION_1_4 _procs_GL_VERSION_1_4 = {
+ (GdkGLProc_glBlendFuncSeparate) -1,
+ (GdkGLProc_glFogCoordf) -1,
+ (GdkGLProc_glFogCoordfv) -1,
+ (GdkGLProc_glFogCoordd) -1,
+ (GdkGLProc_glFogCoorddv) -1,
+ (GdkGLProc_glFogCoordPointer) -1,
+ (GdkGLProc_glMultiDrawArrays) -1,
+ (GdkGLProc_glMultiDrawElements) -1,
+ (GdkGLProc_glPointParameterf) -1,
+ (GdkGLProc_glPointParameterfv) -1,
+ (GdkGLProc_glPointParameteri) -1,
+ (GdkGLProc_glPointParameteriv) -1,
+ (GdkGLProc_glSecondaryColor3b) -1,
+ (GdkGLProc_glSecondaryColor3bv) -1,
+ (GdkGLProc_glSecondaryColor3d) -1,
+ (GdkGLProc_glSecondaryColor3dv) -1,
+ (GdkGLProc_glSecondaryColor3f) -1,
+ (GdkGLProc_glSecondaryColor3fv) -1,
+ (GdkGLProc_glSecondaryColor3i) -1,
+ (GdkGLProc_glSecondaryColor3iv) -1,
+ (GdkGLProc_glSecondaryColor3s) -1,
+ (GdkGLProc_glSecondaryColor3sv) -1,
+ (GdkGLProc_glSecondaryColor3ub) -1,
+ (GdkGLProc_glSecondaryColor3ubv) -1,
+ (GdkGLProc_glSecondaryColor3ui) -1,
+ (GdkGLProc_glSecondaryColor3uiv) -1,
+ (GdkGLProc_glSecondaryColor3us) -1,
+ (GdkGLProc_glSecondaryColor3usv) -1,
+ (GdkGLProc_glSecondaryColorPointer) -1,
+ (GdkGLProc_glWindowPos2d) -1,
+ (GdkGLProc_glWindowPos2dv) -1,
+ (GdkGLProc_glWindowPos2f) -1,
+ (GdkGLProc_glWindowPos2fv) -1,
+ (GdkGLProc_glWindowPos2i) -1,
+ (GdkGLProc_glWindowPos2iv) -1,
+ (GdkGLProc_glWindowPos2s) -1,
+ (GdkGLProc_glWindowPos2sv) -1,
+ (GdkGLProc_glWindowPos3d) -1,
+ (GdkGLProc_glWindowPos3dv) -1,
+ (GdkGLProc_glWindowPos3f) -1,
+ (GdkGLProc_glWindowPos3fv) -1,
+ (GdkGLProc_glWindowPos3i) -1,
+ (GdkGLProc_glWindowPos3iv) -1,
+ (GdkGLProc_glWindowPos3s) -1,
+ (GdkGLProc_glWindowPos3sv) -1
+};
+
+/* glBlendFuncSeparate */
+GdkGLProc
+gdk_gl_get_glBlendFuncSeparate (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glBlendFuncSeparate == (GdkGLProc_glBlendFuncSeparate) -1)
+ _procs_GL_VERSION_1_4.glBlendFuncSeparate =
+ (GdkGLProc_glBlendFuncSeparate) gdk_gl_get_proc_address ("glBlendFuncSeparate");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBlendFuncSeparate () - %s",
+ (_procs_GL_VERSION_1_4.glBlendFuncSeparate) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glBlendFuncSeparate);
+}
+
+/* glFogCoordf */
+GdkGLProc
+gdk_gl_get_glFogCoordf (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glFogCoordf == (GdkGLProc_glFogCoordf) -1)
+ _procs_GL_VERSION_1_4.glFogCoordf =
+ (GdkGLProc_glFogCoordf) gdk_gl_get_proc_address ("glFogCoordf");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoordf () - %s",
+ (_procs_GL_VERSION_1_4.glFogCoordf) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glFogCoordf);
+}
+
+/* glFogCoordfv */
+GdkGLProc
+gdk_gl_get_glFogCoordfv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glFogCoordfv == (GdkGLProc_glFogCoordfv) -1)
+ _procs_GL_VERSION_1_4.glFogCoordfv =
+ (GdkGLProc_glFogCoordfv) gdk_gl_get_proc_address ("glFogCoordfv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoordfv () - %s",
+ (_procs_GL_VERSION_1_4.glFogCoordfv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glFogCoordfv);
+}
+
+/* glFogCoordd */
+GdkGLProc
+gdk_gl_get_glFogCoordd (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glFogCoordd == (GdkGLProc_glFogCoordd) -1)
+ _procs_GL_VERSION_1_4.glFogCoordd =
+ (GdkGLProc_glFogCoordd) gdk_gl_get_proc_address ("glFogCoordd");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoordd () - %s",
+ (_procs_GL_VERSION_1_4.glFogCoordd) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glFogCoordd);
+}
+
+/* glFogCoorddv */
+GdkGLProc
+gdk_gl_get_glFogCoorddv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glFogCoorddv == (GdkGLProc_glFogCoorddv) -1)
+ _procs_GL_VERSION_1_4.glFogCoorddv =
+ (GdkGLProc_glFogCoorddv) gdk_gl_get_proc_address ("glFogCoorddv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoorddv () - %s",
+ (_procs_GL_VERSION_1_4.glFogCoorddv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glFogCoorddv);
+}
+
+/* glFogCoordPointer */
+GdkGLProc
+gdk_gl_get_glFogCoordPointer (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glFogCoordPointer == (GdkGLProc_glFogCoordPointer) -1)
+ _procs_GL_VERSION_1_4.glFogCoordPointer =
+ (GdkGLProc_glFogCoordPointer) gdk_gl_get_proc_address ("glFogCoordPointer");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoordPointer () - %s",
+ (_procs_GL_VERSION_1_4.glFogCoordPointer) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glFogCoordPointer);
+}
+
+/* glMultiDrawArrays */
+GdkGLProc
+gdk_gl_get_glMultiDrawArrays (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glMultiDrawArrays == (GdkGLProc_glMultiDrawArrays) -1)
+ _procs_GL_VERSION_1_4.glMultiDrawArrays =
+ (GdkGLProc_glMultiDrawArrays) gdk_gl_get_proc_address ("glMultiDrawArrays");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiDrawArrays () - %s",
+ (_procs_GL_VERSION_1_4.glMultiDrawArrays) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glMultiDrawArrays);
+}
+
+/* glMultiDrawElements */
+GdkGLProc
+gdk_gl_get_glMultiDrawElements (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glMultiDrawElements == (GdkGLProc_glMultiDrawElements) -1)
+ _procs_GL_VERSION_1_4.glMultiDrawElements =
+ (GdkGLProc_glMultiDrawElements) gdk_gl_get_proc_address ("glMultiDrawElements");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiDrawElements () - %s",
+ (_procs_GL_VERSION_1_4.glMultiDrawElements) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glMultiDrawElements);
+}
+
+/* glPointParameterf */
+GdkGLProc
+gdk_gl_get_glPointParameterf (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glPointParameterf == (GdkGLProc_glPointParameterf) -1)
+ _procs_GL_VERSION_1_4.glPointParameterf =
+ (GdkGLProc_glPointParameterf) gdk_gl_get_proc_address ("glPointParameterf");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameterf () - %s",
+ (_procs_GL_VERSION_1_4.glPointParameterf) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glPointParameterf);
+}
+
+/* glPointParameterfv */
+GdkGLProc
+gdk_gl_get_glPointParameterfv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glPointParameterfv == (GdkGLProc_glPointParameterfv) -1)
+ _procs_GL_VERSION_1_4.glPointParameterfv =
+ (GdkGLProc_glPointParameterfv) gdk_gl_get_proc_address ("glPointParameterfv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameterfv () - %s",
+ (_procs_GL_VERSION_1_4.glPointParameterfv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glPointParameterfv);
+}
+
+/* glPointParameteri */
+GdkGLProc
+gdk_gl_get_glPointParameteri (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glPointParameteri == (GdkGLProc_glPointParameteri) -1)
+ _procs_GL_VERSION_1_4.glPointParameteri =
+ (GdkGLProc_glPointParameteri) gdk_gl_get_proc_address ("glPointParameteri");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameteri () - %s",
+ (_procs_GL_VERSION_1_4.glPointParameteri) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glPointParameteri);
+}
+
+/* glPointParameteriv */
+GdkGLProc
+gdk_gl_get_glPointParameteriv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glPointParameteriv == (GdkGLProc_glPointParameteriv) -1)
+ _procs_GL_VERSION_1_4.glPointParameteriv =
+ (GdkGLProc_glPointParameteriv) gdk_gl_get_proc_address ("glPointParameteriv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameteriv () - %s",
+ (_procs_GL_VERSION_1_4.glPointParameteriv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glPointParameteriv);
+}
+
+/* glSecondaryColor3b */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3b (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3b == (GdkGLProc_glSecondaryColor3b) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3b =
+ (GdkGLProc_glSecondaryColor3b) gdk_gl_get_proc_address ("glSecondaryColor3b");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3b () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3b) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3b);
+}
+
+/* glSecondaryColor3bv */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3bv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3bv == (GdkGLProc_glSecondaryColor3bv) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3bv =
+ (GdkGLProc_glSecondaryColor3bv) gdk_gl_get_proc_address ("glSecondaryColor3bv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3bv () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3bv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3bv);
+}
+
+/* glSecondaryColor3d */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3d (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3d == (GdkGLProc_glSecondaryColor3d) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3d =
+ (GdkGLProc_glSecondaryColor3d) gdk_gl_get_proc_address ("glSecondaryColor3d");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3d () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3d) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3d);
+}
+
+/* glSecondaryColor3dv */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3dv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3dv == (GdkGLProc_glSecondaryColor3dv) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3dv =
+ (GdkGLProc_glSecondaryColor3dv) gdk_gl_get_proc_address ("glSecondaryColor3dv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3dv () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3dv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3dv);
+}
+
+/* glSecondaryColor3f */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3f (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3f == (GdkGLProc_glSecondaryColor3f) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3f =
+ (GdkGLProc_glSecondaryColor3f) gdk_gl_get_proc_address ("glSecondaryColor3f");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3f () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3f) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3f);
+}
+
+/* glSecondaryColor3fv */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3fv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3fv == (GdkGLProc_glSecondaryColor3fv) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3fv =
+ (GdkGLProc_glSecondaryColor3fv) gdk_gl_get_proc_address ("glSecondaryColor3fv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3fv () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3fv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3fv);
+}
+
+/* glSecondaryColor3i */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3i (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3i == (GdkGLProc_glSecondaryColor3i) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3i =
+ (GdkGLProc_glSecondaryColor3i) gdk_gl_get_proc_address ("glSecondaryColor3i");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3i () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3i) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3i);
+}
+
+/* glSecondaryColor3iv */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3iv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3iv == (GdkGLProc_glSecondaryColor3iv) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3iv =
+ (GdkGLProc_glSecondaryColor3iv) gdk_gl_get_proc_address ("glSecondaryColor3iv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3iv () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3iv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3iv);
+}
+
+/* glSecondaryColor3s */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3s (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3s == (GdkGLProc_glSecondaryColor3s) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3s =
+ (GdkGLProc_glSecondaryColor3s) gdk_gl_get_proc_address ("glSecondaryColor3s");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3s () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3s) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3s);
+}
+
+/* glSecondaryColor3sv */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3sv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3sv == (GdkGLProc_glSecondaryColor3sv) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3sv =
+ (GdkGLProc_glSecondaryColor3sv) gdk_gl_get_proc_address ("glSecondaryColor3sv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3sv () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3sv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3sv);
+}
+
+/* glSecondaryColor3ub */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3ub (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3ub == (GdkGLProc_glSecondaryColor3ub) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3ub =
+ (GdkGLProc_glSecondaryColor3ub) gdk_gl_get_proc_address ("glSecondaryColor3ub");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3ub () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3ub) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3ub);
+}
+
+/* glSecondaryColor3ubv */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3ubv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3ubv == (GdkGLProc_glSecondaryColor3ubv) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3ubv =
+ (GdkGLProc_glSecondaryColor3ubv) gdk_gl_get_proc_address ("glSecondaryColor3ubv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3ubv () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3ubv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3ubv);
+}
+
+/* glSecondaryColor3ui */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3ui (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3ui == (GdkGLProc_glSecondaryColor3ui) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3ui =
+ (GdkGLProc_glSecondaryColor3ui) gdk_gl_get_proc_address ("glSecondaryColor3ui");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3ui () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3ui) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3ui);
+}
+
+/* glSecondaryColor3uiv */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3uiv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3uiv == (GdkGLProc_glSecondaryColor3uiv) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3uiv =
+ (GdkGLProc_glSecondaryColor3uiv) gdk_gl_get_proc_address ("glSecondaryColor3uiv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3uiv () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3uiv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3uiv);
+}
+
+/* glSecondaryColor3us */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3us (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3us == (GdkGLProc_glSecondaryColor3us) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3us =
+ (GdkGLProc_glSecondaryColor3us) gdk_gl_get_proc_address ("glSecondaryColor3us");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3us () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3us) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3us);
+}
+
+/* glSecondaryColor3usv */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3usv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColor3usv == (GdkGLProc_glSecondaryColor3usv) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColor3usv =
+ (GdkGLProc_glSecondaryColor3usv) gdk_gl_get_proc_address ("glSecondaryColor3usv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3usv () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColor3usv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColor3usv);
+}
+
+/* glSecondaryColorPointer */
+GdkGLProc
+gdk_gl_get_glSecondaryColorPointer (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glSecondaryColorPointer == (GdkGLProc_glSecondaryColorPointer) -1)
+ _procs_GL_VERSION_1_4.glSecondaryColorPointer =
+ (GdkGLProc_glSecondaryColorPointer) gdk_gl_get_proc_address ("glSecondaryColorPointer");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColorPointer () - %s",
+ (_procs_GL_VERSION_1_4.glSecondaryColorPointer) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glSecondaryColorPointer);
+}
+
+/* glWindowPos2d */
+GdkGLProc
+gdk_gl_get_glWindowPos2d (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos2d == (GdkGLProc_glWindowPos2d) -1)
+ _procs_GL_VERSION_1_4.glWindowPos2d =
+ (GdkGLProc_glWindowPos2d) gdk_gl_get_proc_address ("glWindowPos2d");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2d () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos2d) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos2d);
+}
+
+/* glWindowPos2dv */
+GdkGLProc
+gdk_gl_get_glWindowPos2dv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos2dv == (GdkGLProc_glWindowPos2dv) -1)
+ _procs_GL_VERSION_1_4.glWindowPos2dv =
+ (GdkGLProc_glWindowPos2dv) gdk_gl_get_proc_address ("glWindowPos2dv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2dv () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos2dv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos2dv);
+}
+
+/* glWindowPos2f */
+GdkGLProc
+gdk_gl_get_glWindowPos2f (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos2f == (GdkGLProc_glWindowPos2f) -1)
+ _procs_GL_VERSION_1_4.glWindowPos2f =
+ (GdkGLProc_glWindowPos2f) gdk_gl_get_proc_address ("glWindowPos2f");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2f () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos2f) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos2f);
+}
+
+/* glWindowPos2fv */
+GdkGLProc
+gdk_gl_get_glWindowPos2fv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos2fv == (GdkGLProc_glWindowPos2fv) -1)
+ _procs_GL_VERSION_1_4.glWindowPos2fv =
+ (GdkGLProc_glWindowPos2fv) gdk_gl_get_proc_address ("glWindowPos2fv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2fv () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos2fv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos2fv);
+}
+
+/* glWindowPos2i */
+GdkGLProc
+gdk_gl_get_glWindowPos2i (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos2i == (GdkGLProc_glWindowPos2i) -1)
+ _procs_GL_VERSION_1_4.glWindowPos2i =
+ (GdkGLProc_glWindowPos2i) gdk_gl_get_proc_address ("glWindowPos2i");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2i () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos2i) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos2i);
+}
+
+/* glWindowPos2iv */
+GdkGLProc
+gdk_gl_get_glWindowPos2iv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos2iv == (GdkGLProc_glWindowPos2iv) -1)
+ _procs_GL_VERSION_1_4.glWindowPos2iv =
+ (GdkGLProc_glWindowPos2iv) gdk_gl_get_proc_address ("glWindowPos2iv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2iv () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos2iv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos2iv);
+}
+
+/* glWindowPos2s */
+GdkGLProc
+gdk_gl_get_glWindowPos2s (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos2s == (GdkGLProc_glWindowPos2s) -1)
+ _procs_GL_VERSION_1_4.glWindowPos2s =
+ (GdkGLProc_glWindowPos2s) gdk_gl_get_proc_address ("glWindowPos2s");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2s () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos2s) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos2s);
+}
+
+/* glWindowPos2sv */
+GdkGLProc
+gdk_gl_get_glWindowPos2sv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos2sv == (GdkGLProc_glWindowPos2sv) -1)
+ _procs_GL_VERSION_1_4.glWindowPos2sv =
+ (GdkGLProc_glWindowPos2sv) gdk_gl_get_proc_address ("glWindowPos2sv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2sv () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos2sv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos2sv);
+}
+
+/* glWindowPos3d */
+GdkGLProc
+gdk_gl_get_glWindowPos3d (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos3d == (GdkGLProc_glWindowPos3d) -1)
+ _procs_GL_VERSION_1_4.glWindowPos3d =
+ (GdkGLProc_glWindowPos3d) gdk_gl_get_proc_address ("glWindowPos3d");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3d () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos3d) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos3d);
+}
+
+/* glWindowPos3dv */
+GdkGLProc
+gdk_gl_get_glWindowPos3dv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos3dv == (GdkGLProc_glWindowPos3dv) -1)
+ _procs_GL_VERSION_1_4.glWindowPos3dv =
+ (GdkGLProc_glWindowPos3dv) gdk_gl_get_proc_address ("glWindowPos3dv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3dv () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos3dv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos3dv);
+}
+
+/* glWindowPos3f */
+GdkGLProc
+gdk_gl_get_glWindowPos3f (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos3f == (GdkGLProc_glWindowPos3f) -1)
+ _procs_GL_VERSION_1_4.glWindowPos3f =
+ (GdkGLProc_glWindowPos3f) gdk_gl_get_proc_address ("glWindowPos3f");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3f () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos3f) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos3f);
+}
+
+/* glWindowPos3fv */
+GdkGLProc
+gdk_gl_get_glWindowPos3fv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos3fv == (GdkGLProc_glWindowPos3fv) -1)
+ _procs_GL_VERSION_1_4.glWindowPos3fv =
+ (GdkGLProc_glWindowPos3fv) gdk_gl_get_proc_address ("glWindowPos3fv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3fv () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos3fv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos3fv);
+}
+
+/* glWindowPos3i */
+GdkGLProc
+gdk_gl_get_glWindowPos3i (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos3i == (GdkGLProc_glWindowPos3i) -1)
+ _procs_GL_VERSION_1_4.glWindowPos3i =
+ (GdkGLProc_glWindowPos3i) gdk_gl_get_proc_address ("glWindowPos3i");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3i () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos3i) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos3i);
+}
+
+/* glWindowPos3iv */
+GdkGLProc
+gdk_gl_get_glWindowPos3iv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos3iv == (GdkGLProc_glWindowPos3iv) -1)
+ _procs_GL_VERSION_1_4.glWindowPos3iv =
+ (GdkGLProc_glWindowPos3iv) gdk_gl_get_proc_address ("glWindowPos3iv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3iv () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos3iv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos3iv);
+}
+
+/* glWindowPos3s */
+GdkGLProc
+gdk_gl_get_glWindowPos3s (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos3s == (GdkGLProc_glWindowPos3s) -1)
+ _procs_GL_VERSION_1_4.glWindowPos3s =
+ (GdkGLProc_glWindowPos3s) gdk_gl_get_proc_address ("glWindowPos3s");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3s () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos3s) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos3s);
+}
+
+/* glWindowPos3sv */
+GdkGLProc
+gdk_gl_get_glWindowPos3sv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_VERSION_1_4.glWindowPos3sv == (GdkGLProc_glWindowPos3sv) -1)
+ _procs_GL_VERSION_1_4.glWindowPos3sv =
+ (GdkGLProc_glWindowPos3sv) gdk_gl_get_proc_address ("glWindowPos3sv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3sv () - %s",
+ (_procs_GL_VERSION_1_4.glWindowPos3sv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_VERSION_1_4.glWindowPos3sv);
+}
+
+/* Get GL_VERSION_1_4 functions */
+GdkGL_GL_VERSION_1_4 *
+gdk_gl_get_GL_VERSION_1_4 (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = (gdk_gl_get_glBlendFuncSeparate () != NULL);
+ supported &= (gdk_gl_get_glFogCoordf () != NULL);
+ supported &= (gdk_gl_get_glFogCoordfv () != NULL);
+ supported &= (gdk_gl_get_glFogCoordd () != NULL);
+ supported &= (gdk_gl_get_glFogCoorddv () != NULL);
+ supported &= (gdk_gl_get_glFogCoordPointer () != NULL);
+ supported &= (gdk_gl_get_glMultiDrawArrays () != NULL);
+ supported &= (gdk_gl_get_glMultiDrawElements () != NULL);
+ supported &= (gdk_gl_get_glPointParameterf () != NULL);
+ supported &= (gdk_gl_get_glPointParameterfv () != NULL);
+ supported &= (gdk_gl_get_glPointParameteri () != NULL);
+ supported &= (gdk_gl_get_glPointParameteriv () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3b () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3bv () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3d () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3dv () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3f () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3fv () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3i () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3iv () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3s () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3sv () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3ub () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3ubv () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3ui () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3uiv () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3us () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3usv () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColorPointer () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2d () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2dv () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2f () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2fv () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2i () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2iv () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2s () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2sv () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3d () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3dv () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3f () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3fv () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3i () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3iv () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3s () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3sv () != NULL);
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_VERSION_1_4 () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_VERSION_1_4;
+}
+
+/*
+ * GL_ARB_multitexture
+ */
+
+static GdkGL_GL_ARB_multitexture _procs_GL_ARB_multitexture = {
+ (GdkGLProc_glActiveTextureARB) -1,
+ (GdkGLProc_glClientActiveTextureARB) -1,
+ (GdkGLProc_glMultiTexCoord1dARB) -1,
+ (GdkGLProc_glMultiTexCoord1dvARB) -1,
+ (GdkGLProc_glMultiTexCoord1fARB) -1,
+ (GdkGLProc_glMultiTexCoord1fvARB) -1,
+ (GdkGLProc_glMultiTexCoord1iARB) -1,
+ (GdkGLProc_glMultiTexCoord1ivARB) -1,
+ (GdkGLProc_glMultiTexCoord1sARB) -1,
+ (GdkGLProc_glMultiTexCoord1svARB) -1,
+ (GdkGLProc_glMultiTexCoord2dARB) -1,
+ (GdkGLProc_glMultiTexCoord2dvARB) -1,
+ (GdkGLProc_glMultiTexCoord2fARB) -1,
+ (GdkGLProc_glMultiTexCoord2fvARB) -1,
+ (GdkGLProc_glMultiTexCoord2iARB) -1,
+ (GdkGLProc_glMultiTexCoord2ivARB) -1,
+ (GdkGLProc_glMultiTexCoord2sARB) -1,
+ (GdkGLProc_glMultiTexCoord2svARB) -1,
+ (GdkGLProc_glMultiTexCoord3dARB) -1,
+ (GdkGLProc_glMultiTexCoord3dvARB) -1,
+ (GdkGLProc_glMultiTexCoord3fARB) -1,
+ (GdkGLProc_glMultiTexCoord3fvARB) -1,
+ (GdkGLProc_glMultiTexCoord3iARB) -1,
+ (GdkGLProc_glMultiTexCoord3ivARB) -1,
+ (GdkGLProc_glMultiTexCoord3sARB) -1,
+ (GdkGLProc_glMultiTexCoord3svARB) -1,
+ (GdkGLProc_glMultiTexCoord4dARB) -1,
+ (GdkGLProc_glMultiTexCoord4dvARB) -1,
+ (GdkGLProc_glMultiTexCoord4fARB) -1,
+ (GdkGLProc_glMultiTexCoord4fvARB) -1,
+ (GdkGLProc_glMultiTexCoord4iARB) -1,
+ (GdkGLProc_glMultiTexCoord4ivARB) -1,
+ (GdkGLProc_glMultiTexCoord4sARB) -1,
+ (GdkGLProc_glMultiTexCoord4svARB) -1
+};
+
+/* glActiveTextureARB */
+GdkGLProc
+gdk_gl_get_glActiveTextureARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glActiveTextureARB == (GdkGLProc_glActiveTextureARB) -1)
+ _procs_GL_ARB_multitexture.glActiveTextureARB =
+ (GdkGLProc_glActiveTextureARB) gdk_gl_get_proc_address ("glActiveTextureARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glActiveTextureARB () - %s",
+ (_procs_GL_ARB_multitexture.glActiveTextureARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glActiveTextureARB);
+}
+
+/* glClientActiveTextureARB */
+GdkGLProc
+gdk_gl_get_glClientActiveTextureARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glClientActiveTextureARB == (GdkGLProc_glClientActiveTextureARB) -1)
+ _procs_GL_ARB_multitexture.glClientActiveTextureARB =
+ (GdkGLProc_glClientActiveTextureARB) gdk_gl_get_proc_address ("glClientActiveTextureARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glClientActiveTextureARB () - %s",
+ (_procs_GL_ARB_multitexture.glClientActiveTextureARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glClientActiveTextureARB);
+}
+
+/* glMultiTexCoord1dARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord1dARB == (GdkGLProc_glMultiTexCoord1dARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord1dARB =
+ (GdkGLProc_glMultiTexCoord1dARB) gdk_gl_get_proc_address ("glMultiTexCoord1dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1dARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord1dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord1dARB);
+}
+
+/* glMultiTexCoord1dvARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord1dvARB == (GdkGLProc_glMultiTexCoord1dvARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord1dvARB =
+ (GdkGLProc_glMultiTexCoord1dvARB) gdk_gl_get_proc_address ("glMultiTexCoord1dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1dvARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord1dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord1dvARB);
+}
+
+/* glMultiTexCoord1fARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord1fARB == (GdkGLProc_glMultiTexCoord1fARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord1fARB =
+ (GdkGLProc_glMultiTexCoord1fARB) gdk_gl_get_proc_address ("glMultiTexCoord1fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1fARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord1fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord1fARB);
+}
+
+/* glMultiTexCoord1fvARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord1fvARB == (GdkGLProc_glMultiTexCoord1fvARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord1fvARB =
+ (GdkGLProc_glMultiTexCoord1fvARB) gdk_gl_get_proc_address ("glMultiTexCoord1fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1fvARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord1fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord1fvARB);
+}
+
+/* glMultiTexCoord1iARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1iARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord1iARB == (GdkGLProc_glMultiTexCoord1iARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord1iARB =
+ (GdkGLProc_glMultiTexCoord1iARB) gdk_gl_get_proc_address ("glMultiTexCoord1iARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1iARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord1iARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord1iARB);
+}
+
+/* glMultiTexCoord1ivARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1ivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord1ivARB == (GdkGLProc_glMultiTexCoord1ivARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord1ivARB =
+ (GdkGLProc_glMultiTexCoord1ivARB) gdk_gl_get_proc_address ("glMultiTexCoord1ivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1ivARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord1ivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord1ivARB);
+}
+
+/* glMultiTexCoord1sARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1sARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord1sARB == (GdkGLProc_glMultiTexCoord1sARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord1sARB =
+ (GdkGLProc_glMultiTexCoord1sARB) gdk_gl_get_proc_address ("glMultiTexCoord1sARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1sARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord1sARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord1sARB);
+}
+
+/* glMultiTexCoord1svARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1svARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord1svARB == (GdkGLProc_glMultiTexCoord1svARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord1svARB =
+ (GdkGLProc_glMultiTexCoord1svARB) gdk_gl_get_proc_address ("glMultiTexCoord1svARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1svARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord1svARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord1svARB);
+}
+
+/* glMultiTexCoord2dARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord2dARB == (GdkGLProc_glMultiTexCoord2dARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord2dARB =
+ (GdkGLProc_glMultiTexCoord2dARB) gdk_gl_get_proc_address ("glMultiTexCoord2dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2dARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord2dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord2dARB);
+}
+
+/* glMultiTexCoord2dvARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord2dvARB == (GdkGLProc_glMultiTexCoord2dvARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord2dvARB =
+ (GdkGLProc_glMultiTexCoord2dvARB) gdk_gl_get_proc_address ("glMultiTexCoord2dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2dvARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord2dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord2dvARB);
+}
+
+/* glMultiTexCoord2fARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord2fARB == (GdkGLProc_glMultiTexCoord2fARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord2fARB =
+ (GdkGLProc_glMultiTexCoord2fARB) gdk_gl_get_proc_address ("glMultiTexCoord2fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2fARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord2fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord2fARB);
+}
+
+/* glMultiTexCoord2fvARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord2fvARB == (GdkGLProc_glMultiTexCoord2fvARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord2fvARB =
+ (GdkGLProc_glMultiTexCoord2fvARB) gdk_gl_get_proc_address ("glMultiTexCoord2fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2fvARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord2fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord2fvARB);
+}
+
+/* glMultiTexCoord2iARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2iARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord2iARB == (GdkGLProc_glMultiTexCoord2iARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord2iARB =
+ (GdkGLProc_glMultiTexCoord2iARB) gdk_gl_get_proc_address ("glMultiTexCoord2iARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2iARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord2iARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord2iARB);
+}
+
+/* glMultiTexCoord2ivARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2ivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord2ivARB == (GdkGLProc_glMultiTexCoord2ivARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord2ivARB =
+ (GdkGLProc_glMultiTexCoord2ivARB) gdk_gl_get_proc_address ("glMultiTexCoord2ivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2ivARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord2ivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord2ivARB);
+}
+
+/* glMultiTexCoord2sARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2sARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord2sARB == (GdkGLProc_glMultiTexCoord2sARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord2sARB =
+ (GdkGLProc_glMultiTexCoord2sARB) gdk_gl_get_proc_address ("glMultiTexCoord2sARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2sARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord2sARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord2sARB);
+}
+
+/* glMultiTexCoord2svARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2svARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord2svARB == (GdkGLProc_glMultiTexCoord2svARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord2svARB =
+ (GdkGLProc_glMultiTexCoord2svARB) gdk_gl_get_proc_address ("glMultiTexCoord2svARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2svARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord2svARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord2svARB);
+}
+
+/* glMultiTexCoord3dARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord3dARB == (GdkGLProc_glMultiTexCoord3dARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord3dARB =
+ (GdkGLProc_glMultiTexCoord3dARB) gdk_gl_get_proc_address ("glMultiTexCoord3dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3dARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord3dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord3dARB);
+}
+
+/* glMultiTexCoord3dvARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord3dvARB == (GdkGLProc_glMultiTexCoord3dvARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord3dvARB =
+ (GdkGLProc_glMultiTexCoord3dvARB) gdk_gl_get_proc_address ("glMultiTexCoord3dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3dvARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord3dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord3dvARB);
+}
+
+/* glMultiTexCoord3fARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord3fARB == (GdkGLProc_glMultiTexCoord3fARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord3fARB =
+ (GdkGLProc_glMultiTexCoord3fARB) gdk_gl_get_proc_address ("glMultiTexCoord3fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3fARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord3fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord3fARB);
+}
+
+/* glMultiTexCoord3fvARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord3fvARB == (GdkGLProc_glMultiTexCoord3fvARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord3fvARB =
+ (GdkGLProc_glMultiTexCoord3fvARB) gdk_gl_get_proc_address ("glMultiTexCoord3fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3fvARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord3fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord3fvARB);
+}
+
+/* glMultiTexCoord3iARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3iARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord3iARB == (GdkGLProc_glMultiTexCoord3iARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord3iARB =
+ (GdkGLProc_glMultiTexCoord3iARB) gdk_gl_get_proc_address ("glMultiTexCoord3iARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3iARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord3iARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord3iARB);
+}
+
+/* glMultiTexCoord3ivARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3ivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord3ivARB == (GdkGLProc_glMultiTexCoord3ivARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord3ivARB =
+ (GdkGLProc_glMultiTexCoord3ivARB) gdk_gl_get_proc_address ("glMultiTexCoord3ivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3ivARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord3ivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord3ivARB);
+}
+
+/* glMultiTexCoord3sARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3sARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord3sARB == (GdkGLProc_glMultiTexCoord3sARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord3sARB =
+ (GdkGLProc_glMultiTexCoord3sARB) gdk_gl_get_proc_address ("glMultiTexCoord3sARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3sARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord3sARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord3sARB);
+}
+
+/* glMultiTexCoord3svARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3svARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord3svARB == (GdkGLProc_glMultiTexCoord3svARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord3svARB =
+ (GdkGLProc_glMultiTexCoord3svARB) gdk_gl_get_proc_address ("glMultiTexCoord3svARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3svARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord3svARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord3svARB);
+}
+
+/* glMultiTexCoord4dARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord4dARB == (GdkGLProc_glMultiTexCoord4dARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord4dARB =
+ (GdkGLProc_glMultiTexCoord4dARB) gdk_gl_get_proc_address ("glMultiTexCoord4dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4dARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord4dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord4dARB);
+}
+
+/* glMultiTexCoord4dvARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord4dvARB == (GdkGLProc_glMultiTexCoord4dvARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord4dvARB =
+ (GdkGLProc_glMultiTexCoord4dvARB) gdk_gl_get_proc_address ("glMultiTexCoord4dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4dvARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord4dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord4dvARB);
+}
+
+/* glMultiTexCoord4fARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord4fARB == (GdkGLProc_glMultiTexCoord4fARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord4fARB =
+ (GdkGLProc_glMultiTexCoord4fARB) gdk_gl_get_proc_address ("glMultiTexCoord4fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4fARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord4fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord4fARB);
+}
+
+/* glMultiTexCoord4fvARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord4fvARB == (GdkGLProc_glMultiTexCoord4fvARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord4fvARB =
+ (GdkGLProc_glMultiTexCoord4fvARB) gdk_gl_get_proc_address ("glMultiTexCoord4fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4fvARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord4fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord4fvARB);
+}
+
+/* glMultiTexCoord4iARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4iARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord4iARB == (GdkGLProc_glMultiTexCoord4iARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord4iARB =
+ (GdkGLProc_glMultiTexCoord4iARB) gdk_gl_get_proc_address ("glMultiTexCoord4iARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4iARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord4iARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord4iARB);
+}
+
+/* glMultiTexCoord4ivARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4ivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord4ivARB == (GdkGLProc_glMultiTexCoord4ivARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord4ivARB =
+ (GdkGLProc_glMultiTexCoord4ivARB) gdk_gl_get_proc_address ("glMultiTexCoord4ivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4ivARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord4ivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord4ivARB);
+}
+
+/* glMultiTexCoord4sARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4sARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord4sARB == (GdkGLProc_glMultiTexCoord4sARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord4sARB =
+ (GdkGLProc_glMultiTexCoord4sARB) gdk_gl_get_proc_address ("glMultiTexCoord4sARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4sARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord4sARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord4sARB);
+}
+
+/* glMultiTexCoord4svARB */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4svARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multitexture.glMultiTexCoord4svARB == (GdkGLProc_glMultiTexCoord4svARB) -1)
+ _procs_GL_ARB_multitexture.glMultiTexCoord4svARB =
+ (GdkGLProc_glMultiTexCoord4svARB) gdk_gl_get_proc_address ("glMultiTexCoord4svARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4svARB () - %s",
+ (_procs_GL_ARB_multitexture.glMultiTexCoord4svARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multitexture.glMultiTexCoord4svARB);
+}
+
+/* Get GL_ARB_multitexture functions */
+GdkGL_GL_ARB_multitexture *
+gdk_gl_get_GL_ARB_multitexture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ARB_multitexture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glActiveTextureARB () != NULL);
+ supported &= (gdk_gl_get_glClientActiveTextureARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1dARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1dvARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1fARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1fvARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1iARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1ivARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1sARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1svARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2dARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2dvARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2fARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2fvARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2iARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2ivARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2sARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2svARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3dARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3dvARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3fARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3fvARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3iARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3ivARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3sARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3svARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4dARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4dvARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4fARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4fvARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4iARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4ivARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4sARB () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4svARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ARB_multitexture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ARB_multitexture;
+}
+
+/*
+ * GL_ARB_transpose_matrix
+ */
+
+static GdkGL_GL_ARB_transpose_matrix _procs_GL_ARB_transpose_matrix = {
+ (GdkGLProc_glLoadTransposeMatrixfARB) -1,
+ (GdkGLProc_glLoadTransposeMatrixdARB) -1,
+ (GdkGLProc_glMultTransposeMatrixfARB) -1,
+ (GdkGLProc_glMultTransposeMatrixdARB) -1
+};
+
+/* glLoadTransposeMatrixfARB */
+GdkGLProc
+gdk_gl_get_glLoadTransposeMatrixfARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_transpose_matrix.glLoadTransposeMatrixfARB == (GdkGLProc_glLoadTransposeMatrixfARB) -1)
+ _procs_GL_ARB_transpose_matrix.glLoadTransposeMatrixfARB =
+ (GdkGLProc_glLoadTransposeMatrixfARB) gdk_gl_get_proc_address ("glLoadTransposeMatrixfARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glLoadTransposeMatrixfARB () - %s",
+ (_procs_GL_ARB_transpose_matrix.glLoadTransposeMatrixfARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_transpose_matrix.glLoadTransposeMatrixfARB);
+}
+
+/* glLoadTransposeMatrixdARB */
+GdkGLProc
+gdk_gl_get_glLoadTransposeMatrixdARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_transpose_matrix.glLoadTransposeMatrixdARB == (GdkGLProc_glLoadTransposeMatrixdARB) -1)
+ _procs_GL_ARB_transpose_matrix.glLoadTransposeMatrixdARB =
+ (GdkGLProc_glLoadTransposeMatrixdARB) gdk_gl_get_proc_address ("glLoadTransposeMatrixdARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glLoadTransposeMatrixdARB () - %s",
+ (_procs_GL_ARB_transpose_matrix.glLoadTransposeMatrixdARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_transpose_matrix.glLoadTransposeMatrixdARB);
+}
+
+/* glMultTransposeMatrixfARB */
+GdkGLProc
+gdk_gl_get_glMultTransposeMatrixfARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_transpose_matrix.glMultTransposeMatrixfARB == (GdkGLProc_glMultTransposeMatrixfARB) -1)
+ _procs_GL_ARB_transpose_matrix.glMultTransposeMatrixfARB =
+ (GdkGLProc_glMultTransposeMatrixfARB) gdk_gl_get_proc_address ("glMultTransposeMatrixfARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultTransposeMatrixfARB () - %s",
+ (_procs_GL_ARB_transpose_matrix.glMultTransposeMatrixfARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_transpose_matrix.glMultTransposeMatrixfARB);
+}
+
+/* glMultTransposeMatrixdARB */
+GdkGLProc
+gdk_gl_get_glMultTransposeMatrixdARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_transpose_matrix.glMultTransposeMatrixdARB == (GdkGLProc_glMultTransposeMatrixdARB) -1)
+ _procs_GL_ARB_transpose_matrix.glMultTransposeMatrixdARB =
+ (GdkGLProc_glMultTransposeMatrixdARB) gdk_gl_get_proc_address ("glMultTransposeMatrixdARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultTransposeMatrixdARB () - %s",
+ (_procs_GL_ARB_transpose_matrix.glMultTransposeMatrixdARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_transpose_matrix.glMultTransposeMatrixdARB);
+}
+
+/* Get GL_ARB_transpose_matrix functions */
+GdkGL_GL_ARB_transpose_matrix *
+gdk_gl_get_GL_ARB_transpose_matrix (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ARB_transpose_matrix");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glLoadTransposeMatrixfARB () != NULL);
+ supported &= (gdk_gl_get_glLoadTransposeMatrixdARB () != NULL);
+ supported &= (gdk_gl_get_glMultTransposeMatrixfARB () != NULL);
+ supported &= (gdk_gl_get_glMultTransposeMatrixdARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ARB_transpose_matrix () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ARB_transpose_matrix;
+}
+
+/*
+ * GL_ARB_multisample
+ */
+
+static GdkGL_GL_ARB_multisample _procs_GL_ARB_multisample = {
+ (GdkGLProc_glSampleCoverageARB) -1
+};
+
+/* glSampleCoverageARB */
+GdkGLProc
+gdk_gl_get_glSampleCoverageARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_multisample.glSampleCoverageARB == (GdkGLProc_glSampleCoverageARB) -1)
+ _procs_GL_ARB_multisample.glSampleCoverageARB =
+ (GdkGLProc_glSampleCoverageARB) gdk_gl_get_proc_address ("glSampleCoverageARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSampleCoverageARB () - %s",
+ (_procs_GL_ARB_multisample.glSampleCoverageARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_multisample.glSampleCoverageARB);
+}
+
+/* Get GL_ARB_multisample functions */
+GdkGL_GL_ARB_multisample *
+gdk_gl_get_GL_ARB_multisample (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ARB_multisample");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glSampleCoverageARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ARB_multisample () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ARB_multisample;
+}
+
+/*
+ * GL_ARB_texture_compression
+ */
+
+static GdkGL_GL_ARB_texture_compression _procs_GL_ARB_texture_compression = {
+ (GdkGLProc_glCompressedTexImage3DARB) -1,
+ (GdkGLProc_glCompressedTexImage2DARB) -1,
+ (GdkGLProc_glCompressedTexImage1DARB) -1,
+ (GdkGLProc_glCompressedTexSubImage3DARB) -1,
+ (GdkGLProc_glCompressedTexSubImage2DARB) -1,
+ (GdkGLProc_glCompressedTexSubImage1DARB) -1,
+ (GdkGLProc_glGetCompressedTexImageARB) -1
+};
+
+/* glCompressedTexImage3DARB */
+GdkGLProc
+gdk_gl_get_glCompressedTexImage3DARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_texture_compression.glCompressedTexImage3DARB == (GdkGLProc_glCompressedTexImage3DARB) -1)
+ _procs_GL_ARB_texture_compression.glCompressedTexImage3DARB =
+ (GdkGLProc_glCompressedTexImage3DARB) gdk_gl_get_proc_address ("glCompressedTexImage3DARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexImage3DARB () - %s",
+ (_procs_GL_ARB_texture_compression.glCompressedTexImage3DARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_texture_compression.glCompressedTexImage3DARB);
+}
+
+/* glCompressedTexImage2DARB */
+GdkGLProc
+gdk_gl_get_glCompressedTexImage2DARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_texture_compression.glCompressedTexImage2DARB == (GdkGLProc_glCompressedTexImage2DARB) -1)
+ _procs_GL_ARB_texture_compression.glCompressedTexImage2DARB =
+ (GdkGLProc_glCompressedTexImage2DARB) gdk_gl_get_proc_address ("glCompressedTexImage2DARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexImage2DARB () - %s",
+ (_procs_GL_ARB_texture_compression.glCompressedTexImage2DARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_texture_compression.glCompressedTexImage2DARB);
+}
+
+/* glCompressedTexImage1DARB */
+GdkGLProc
+gdk_gl_get_glCompressedTexImage1DARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_texture_compression.glCompressedTexImage1DARB == (GdkGLProc_glCompressedTexImage1DARB) -1)
+ _procs_GL_ARB_texture_compression.glCompressedTexImage1DARB =
+ (GdkGLProc_glCompressedTexImage1DARB) gdk_gl_get_proc_address ("glCompressedTexImage1DARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexImage1DARB () - %s",
+ (_procs_GL_ARB_texture_compression.glCompressedTexImage1DARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_texture_compression.glCompressedTexImage1DARB);
+}
+
+/* glCompressedTexSubImage3DARB */
+GdkGLProc
+gdk_gl_get_glCompressedTexSubImage3DARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_texture_compression.glCompressedTexSubImage3DARB == (GdkGLProc_glCompressedTexSubImage3DARB) -1)
+ _procs_GL_ARB_texture_compression.glCompressedTexSubImage3DARB =
+ (GdkGLProc_glCompressedTexSubImage3DARB) gdk_gl_get_proc_address ("glCompressedTexSubImage3DARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexSubImage3DARB () - %s",
+ (_procs_GL_ARB_texture_compression.glCompressedTexSubImage3DARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_texture_compression.glCompressedTexSubImage3DARB);
+}
+
+/* glCompressedTexSubImage2DARB */
+GdkGLProc
+gdk_gl_get_glCompressedTexSubImage2DARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_texture_compression.glCompressedTexSubImage2DARB == (GdkGLProc_glCompressedTexSubImage2DARB) -1)
+ _procs_GL_ARB_texture_compression.glCompressedTexSubImage2DARB =
+ (GdkGLProc_glCompressedTexSubImage2DARB) gdk_gl_get_proc_address ("glCompressedTexSubImage2DARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexSubImage2DARB () - %s",
+ (_procs_GL_ARB_texture_compression.glCompressedTexSubImage2DARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_texture_compression.glCompressedTexSubImage2DARB);
+}
+
+/* glCompressedTexSubImage1DARB */
+GdkGLProc
+gdk_gl_get_glCompressedTexSubImage1DARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_texture_compression.glCompressedTexSubImage1DARB == (GdkGLProc_glCompressedTexSubImage1DARB) -1)
+ _procs_GL_ARB_texture_compression.glCompressedTexSubImage1DARB =
+ (GdkGLProc_glCompressedTexSubImage1DARB) gdk_gl_get_proc_address ("glCompressedTexSubImage1DARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCompressedTexSubImage1DARB () - %s",
+ (_procs_GL_ARB_texture_compression.glCompressedTexSubImage1DARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_texture_compression.glCompressedTexSubImage1DARB);
+}
+
+/* glGetCompressedTexImageARB */
+GdkGLProc
+gdk_gl_get_glGetCompressedTexImageARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_texture_compression.glGetCompressedTexImageARB == (GdkGLProc_glGetCompressedTexImageARB) -1)
+ _procs_GL_ARB_texture_compression.glGetCompressedTexImageARB =
+ (GdkGLProc_glGetCompressedTexImageARB) gdk_gl_get_proc_address ("glGetCompressedTexImageARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetCompressedTexImageARB () - %s",
+ (_procs_GL_ARB_texture_compression.glGetCompressedTexImageARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_texture_compression.glGetCompressedTexImageARB);
+}
+
+/* Get GL_ARB_texture_compression functions */
+GdkGL_GL_ARB_texture_compression *
+gdk_gl_get_GL_ARB_texture_compression (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ARB_texture_compression");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glCompressedTexImage3DARB () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexImage2DARB () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexImage1DARB () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexSubImage3DARB () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexSubImage2DARB () != NULL);
+ supported &= (gdk_gl_get_glCompressedTexSubImage1DARB () != NULL);
+ supported &= (gdk_gl_get_glGetCompressedTexImageARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ARB_texture_compression () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ARB_texture_compression;
+}
+
+/*
+ * GL_ARB_point_parameters
+ */
+
+static GdkGL_GL_ARB_point_parameters _procs_GL_ARB_point_parameters = {
+ (GdkGLProc_glPointParameterfARB) -1,
+ (GdkGLProc_glPointParameterfvARB) -1
+};
+
+/* glPointParameterfARB */
+GdkGLProc
+gdk_gl_get_glPointParameterfARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_point_parameters.glPointParameterfARB == (GdkGLProc_glPointParameterfARB) -1)
+ _procs_GL_ARB_point_parameters.glPointParameterfARB =
+ (GdkGLProc_glPointParameterfARB) gdk_gl_get_proc_address ("glPointParameterfARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameterfARB () - %s",
+ (_procs_GL_ARB_point_parameters.glPointParameterfARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_point_parameters.glPointParameterfARB);
+}
+
+/* glPointParameterfvARB */
+GdkGLProc
+gdk_gl_get_glPointParameterfvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_point_parameters.glPointParameterfvARB == (GdkGLProc_glPointParameterfvARB) -1)
+ _procs_GL_ARB_point_parameters.glPointParameterfvARB =
+ (GdkGLProc_glPointParameterfvARB) gdk_gl_get_proc_address ("glPointParameterfvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameterfvARB () - %s",
+ (_procs_GL_ARB_point_parameters.glPointParameterfvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_point_parameters.glPointParameterfvARB);
+}
+
+/* Get GL_ARB_point_parameters functions */
+GdkGL_GL_ARB_point_parameters *
+gdk_gl_get_GL_ARB_point_parameters (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ARB_point_parameters");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPointParameterfARB () != NULL);
+ supported &= (gdk_gl_get_glPointParameterfvARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ARB_point_parameters () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ARB_point_parameters;
+}
+
+/*
+ * GL_ARB_vertex_blend
+ */
+
+static GdkGL_GL_ARB_vertex_blend _procs_GL_ARB_vertex_blend = {
+ (GdkGLProc_glWeightbvARB) -1,
+ (GdkGLProc_glWeightsvARB) -1,
+ (GdkGLProc_glWeightivARB) -1,
+ (GdkGLProc_glWeightfvARB) -1,
+ (GdkGLProc_glWeightdvARB) -1,
+ (GdkGLProc_glWeightubvARB) -1,
+ (GdkGLProc_glWeightusvARB) -1,
+ (GdkGLProc_glWeightuivARB) -1,
+ (GdkGLProc_glWeightPointerARB) -1,
+ (GdkGLProc_glVertexBlendARB) -1
+};
+
+/* glWeightbvARB */
+GdkGLProc
+gdk_gl_get_glWeightbvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_blend.glWeightbvARB == (GdkGLProc_glWeightbvARB) -1)
+ _procs_GL_ARB_vertex_blend.glWeightbvARB =
+ (GdkGLProc_glWeightbvARB) gdk_gl_get_proc_address ("glWeightbvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWeightbvARB () - %s",
+ (_procs_GL_ARB_vertex_blend.glWeightbvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_blend.glWeightbvARB);
+}
+
+/* glWeightsvARB */
+GdkGLProc
+gdk_gl_get_glWeightsvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_blend.glWeightsvARB == (GdkGLProc_glWeightsvARB) -1)
+ _procs_GL_ARB_vertex_blend.glWeightsvARB =
+ (GdkGLProc_glWeightsvARB) gdk_gl_get_proc_address ("glWeightsvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWeightsvARB () - %s",
+ (_procs_GL_ARB_vertex_blend.glWeightsvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_blend.glWeightsvARB);
+}
+
+/* glWeightivARB */
+GdkGLProc
+gdk_gl_get_glWeightivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_blend.glWeightivARB == (GdkGLProc_glWeightivARB) -1)
+ _procs_GL_ARB_vertex_blend.glWeightivARB =
+ (GdkGLProc_glWeightivARB) gdk_gl_get_proc_address ("glWeightivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWeightivARB () - %s",
+ (_procs_GL_ARB_vertex_blend.glWeightivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_blend.glWeightivARB);
+}
+
+/* glWeightfvARB */
+GdkGLProc
+gdk_gl_get_glWeightfvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_blend.glWeightfvARB == (GdkGLProc_glWeightfvARB) -1)
+ _procs_GL_ARB_vertex_blend.glWeightfvARB =
+ (GdkGLProc_glWeightfvARB) gdk_gl_get_proc_address ("glWeightfvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWeightfvARB () - %s",
+ (_procs_GL_ARB_vertex_blend.glWeightfvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_blend.glWeightfvARB);
+}
+
+/* glWeightdvARB */
+GdkGLProc
+gdk_gl_get_glWeightdvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_blend.glWeightdvARB == (GdkGLProc_glWeightdvARB) -1)
+ _procs_GL_ARB_vertex_blend.glWeightdvARB =
+ (GdkGLProc_glWeightdvARB) gdk_gl_get_proc_address ("glWeightdvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWeightdvARB () - %s",
+ (_procs_GL_ARB_vertex_blend.glWeightdvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_blend.glWeightdvARB);
+}
+
+/* glWeightubvARB */
+GdkGLProc
+gdk_gl_get_glWeightubvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_blend.glWeightubvARB == (GdkGLProc_glWeightubvARB) -1)
+ _procs_GL_ARB_vertex_blend.glWeightubvARB =
+ (GdkGLProc_glWeightubvARB) gdk_gl_get_proc_address ("glWeightubvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWeightubvARB () - %s",
+ (_procs_GL_ARB_vertex_blend.glWeightubvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_blend.glWeightubvARB);
+}
+
+/* glWeightusvARB */
+GdkGLProc
+gdk_gl_get_glWeightusvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_blend.glWeightusvARB == (GdkGLProc_glWeightusvARB) -1)
+ _procs_GL_ARB_vertex_blend.glWeightusvARB =
+ (GdkGLProc_glWeightusvARB) gdk_gl_get_proc_address ("glWeightusvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWeightusvARB () - %s",
+ (_procs_GL_ARB_vertex_blend.glWeightusvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_blend.glWeightusvARB);
+}
+
+/* glWeightuivARB */
+GdkGLProc
+gdk_gl_get_glWeightuivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_blend.glWeightuivARB == (GdkGLProc_glWeightuivARB) -1)
+ _procs_GL_ARB_vertex_blend.glWeightuivARB =
+ (GdkGLProc_glWeightuivARB) gdk_gl_get_proc_address ("glWeightuivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWeightuivARB () - %s",
+ (_procs_GL_ARB_vertex_blend.glWeightuivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_blend.glWeightuivARB);
+}
+
+/* glWeightPointerARB */
+GdkGLProc
+gdk_gl_get_glWeightPointerARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_blend.glWeightPointerARB == (GdkGLProc_glWeightPointerARB) -1)
+ _procs_GL_ARB_vertex_blend.glWeightPointerARB =
+ (GdkGLProc_glWeightPointerARB) gdk_gl_get_proc_address ("glWeightPointerARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWeightPointerARB () - %s",
+ (_procs_GL_ARB_vertex_blend.glWeightPointerARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_blend.glWeightPointerARB);
+}
+
+/* glVertexBlendARB */
+GdkGLProc
+gdk_gl_get_glVertexBlendARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_blend.glVertexBlendARB == (GdkGLProc_glVertexBlendARB) -1)
+ _procs_GL_ARB_vertex_blend.glVertexBlendARB =
+ (GdkGLProc_glVertexBlendARB) gdk_gl_get_proc_address ("glVertexBlendARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexBlendARB () - %s",
+ (_procs_GL_ARB_vertex_blend.glVertexBlendARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_blend.glVertexBlendARB);
+}
+
+/* Get GL_ARB_vertex_blend functions */
+GdkGL_GL_ARB_vertex_blend *
+gdk_gl_get_GL_ARB_vertex_blend (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ARB_vertex_blend");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glWeightbvARB () != NULL);
+ supported &= (gdk_gl_get_glWeightsvARB () != NULL);
+ supported &= (gdk_gl_get_glWeightivARB () != NULL);
+ supported &= (gdk_gl_get_glWeightfvARB () != NULL);
+ supported &= (gdk_gl_get_glWeightdvARB () != NULL);
+ supported &= (gdk_gl_get_glWeightubvARB () != NULL);
+ supported &= (gdk_gl_get_glWeightusvARB () != NULL);
+ supported &= (gdk_gl_get_glWeightuivARB () != NULL);
+ supported &= (gdk_gl_get_glWeightPointerARB () != NULL);
+ supported &= (gdk_gl_get_glVertexBlendARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ARB_vertex_blend () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ARB_vertex_blend;
+}
+
+/*
+ * GL_ARB_matrix_palette
+ */
+
+static GdkGL_GL_ARB_matrix_palette _procs_GL_ARB_matrix_palette = {
+ (GdkGLProc_glCurrentPaletteMatrixARB) -1,
+ (GdkGLProc_glMatrixIndexubvARB) -1,
+ (GdkGLProc_glMatrixIndexusvARB) -1,
+ (GdkGLProc_glMatrixIndexuivARB) -1,
+ (GdkGLProc_glMatrixIndexPointerARB) -1
+};
+
+/* glCurrentPaletteMatrixARB */
+GdkGLProc
+gdk_gl_get_glCurrentPaletteMatrixARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_matrix_palette.glCurrentPaletteMatrixARB == (GdkGLProc_glCurrentPaletteMatrixARB) -1)
+ _procs_GL_ARB_matrix_palette.glCurrentPaletteMatrixARB =
+ (GdkGLProc_glCurrentPaletteMatrixARB) gdk_gl_get_proc_address ("glCurrentPaletteMatrixARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCurrentPaletteMatrixARB () - %s",
+ (_procs_GL_ARB_matrix_palette.glCurrentPaletteMatrixARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_matrix_palette.glCurrentPaletteMatrixARB);
+}
+
+/* glMatrixIndexubvARB */
+GdkGLProc
+gdk_gl_get_glMatrixIndexubvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_matrix_palette.glMatrixIndexubvARB == (GdkGLProc_glMatrixIndexubvARB) -1)
+ _procs_GL_ARB_matrix_palette.glMatrixIndexubvARB =
+ (GdkGLProc_glMatrixIndexubvARB) gdk_gl_get_proc_address ("glMatrixIndexubvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMatrixIndexubvARB () - %s",
+ (_procs_GL_ARB_matrix_palette.glMatrixIndexubvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_matrix_palette.glMatrixIndexubvARB);
+}
+
+/* glMatrixIndexusvARB */
+GdkGLProc
+gdk_gl_get_glMatrixIndexusvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_matrix_palette.glMatrixIndexusvARB == (GdkGLProc_glMatrixIndexusvARB) -1)
+ _procs_GL_ARB_matrix_palette.glMatrixIndexusvARB =
+ (GdkGLProc_glMatrixIndexusvARB) gdk_gl_get_proc_address ("glMatrixIndexusvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMatrixIndexusvARB () - %s",
+ (_procs_GL_ARB_matrix_palette.glMatrixIndexusvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_matrix_palette.glMatrixIndexusvARB);
+}
+
+/* glMatrixIndexuivARB */
+GdkGLProc
+gdk_gl_get_glMatrixIndexuivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_matrix_palette.glMatrixIndexuivARB == (GdkGLProc_glMatrixIndexuivARB) -1)
+ _procs_GL_ARB_matrix_palette.glMatrixIndexuivARB =
+ (GdkGLProc_glMatrixIndexuivARB) gdk_gl_get_proc_address ("glMatrixIndexuivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMatrixIndexuivARB () - %s",
+ (_procs_GL_ARB_matrix_palette.glMatrixIndexuivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_matrix_palette.glMatrixIndexuivARB);
+}
+
+/* glMatrixIndexPointerARB */
+GdkGLProc
+gdk_gl_get_glMatrixIndexPointerARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_matrix_palette.glMatrixIndexPointerARB == (GdkGLProc_glMatrixIndexPointerARB) -1)
+ _procs_GL_ARB_matrix_palette.glMatrixIndexPointerARB =
+ (GdkGLProc_glMatrixIndexPointerARB) gdk_gl_get_proc_address ("glMatrixIndexPointerARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMatrixIndexPointerARB () - %s",
+ (_procs_GL_ARB_matrix_palette.glMatrixIndexPointerARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_matrix_palette.glMatrixIndexPointerARB);
+}
+
+/* Get GL_ARB_matrix_palette functions */
+GdkGL_GL_ARB_matrix_palette *
+gdk_gl_get_GL_ARB_matrix_palette (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ARB_matrix_palette");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glCurrentPaletteMatrixARB () != NULL);
+ supported &= (gdk_gl_get_glMatrixIndexubvARB () != NULL);
+ supported &= (gdk_gl_get_glMatrixIndexusvARB () != NULL);
+ supported &= (gdk_gl_get_glMatrixIndexuivARB () != NULL);
+ supported &= (gdk_gl_get_glMatrixIndexPointerARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ARB_matrix_palette () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ARB_matrix_palette;
+}
+
+/*
+ * GL_ARB_window_pos
+ */
+
+static GdkGL_GL_ARB_window_pos _procs_GL_ARB_window_pos = {
+ (GdkGLProc_glWindowPos2dARB) -1,
+ (GdkGLProc_glWindowPos2dvARB) -1,
+ (GdkGLProc_glWindowPos2fARB) -1,
+ (GdkGLProc_glWindowPos2fvARB) -1,
+ (GdkGLProc_glWindowPos2iARB) -1,
+ (GdkGLProc_glWindowPos2ivARB) -1,
+ (GdkGLProc_glWindowPos2sARB) -1,
+ (GdkGLProc_glWindowPos2svARB) -1,
+ (GdkGLProc_glWindowPos3dARB) -1,
+ (GdkGLProc_glWindowPos3dvARB) -1,
+ (GdkGLProc_glWindowPos3fARB) -1,
+ (GdkGLProc_glWindowPos3fvARB) -1,
+ (GdkGLProc_glWindowPos3iARB) -1,
+ (GdkGLProc_glWindowPos3ivARB) -1,
+ (GdkGLProc_glWindowPos3sARB) -1,
+ (GdkGLProc_glWindowPos3svARB) -1
+};
+
+/* glWindowPos2dARB */
+GdkGLProc
+gdk_gl_get_glWindowPos2dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos2dARB == (GdkGLProc_glWindowPos2dARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos2dARB =
+ (GdkGLProc_glWindowPos2dARB) gdk_gl_get_proc_address ("glWindowPos2dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2dARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos2dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos2dARB);
+}
+
+/* glWindowPos2dvARB */
+GdkGLProc
+gdk_gl_get_glWindowPos2dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos2dvARB == (GdkGLProc_glWindowPos2dvARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos2dvARB =
+ (GdkGLProc_glWindowPos2dvARB) gdk_gl_get_proc_address ("glWindowPos2dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2dvARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos2dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos2dvARB);
+}
+
+/* glWindowPos2fARB */
+GdkGLProc
+gdk_gl_get_glWindowPos2fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos2fARB == (GdkGLProc_glWindowPos2fARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos2fARB =
+ (GdkGLProc_glWindowPos2fARB) gdk_gl_get_proc_address ("glWindowPos2fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2fARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos2fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos2fARB);
+}
+
+/* glWindowPos2fvARB */
+GdkGLProc
+gdk_gl_get_glWindowPos2fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos2fvARB == (GdkGLProc_glWindowPos2fvARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos2fvARB =
+ (GdkGLProc_glWindowPos2fvARB) gdk_gl_get_proc_address ("glWindowPos2fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2fvARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos2fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos2fvARB);
+}
+
+/* glWindowPos2iARB */
+GdkGLProc
+gdk_gl_get_glWindowPos2iARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos2iARB == (GdkGLProc_glWindowPos2iARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos2iARB =
+ (GdkGLProc_glWindowPos2iARB) gdk_gl_get_proc_address ("glWindowPos2iARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2iARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos2iARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos2iARB);
+}
+
+/* glWindowPos2ivARB */
+GdkGLProc
+gdk_gl_get_glWindowPos2ivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos2ivARB == (GdkGLProc_glWindowPos2ivARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos2ivARB =
+ (GdkGLProc_glWindowPos2ivARB) gdk_gl_get_proc_address ("glWindowPos2ivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2ivARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos2ivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos2ivARB);
+}
+
+/* glWindowPos2sARB */
+GdkGLProc
+gdk_gl_get_glWindowPos2sARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos2sARB == (GdkGLProc_glWindowPos2sARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos2sARB =
+ (GdkGLProc_glWindowPos2sARB) gdk_gl_get_proc_address ("glWindowPos2sARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2sARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos2sARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos2sARB);
+}
+
+/* glWindowPos2svARB */
+GdkGLProc
+gdk_gl_get_glWindowPos2svARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos2svARB == (GdkGLProc_glWindowPos2svARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos2svARB =
+ (GdkGLProc_glWindowPos2svARB) gdk_gl_get_proc_address ("glWindowPos2svARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2svARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos2svARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos2svARB);
+}
+
+/* glWindowPos3dARB */
+GdkGLProc
+gdk_gl_get_glWindowPos3dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos3dARB == (GdkGLProc_glWindowPos3dARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos3dARB =
+ (GdkGLProc_glWindowPos3dARB) gdk_gl_get_proc_address ("glWindowPos3dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3dARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos3dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos3dARB);
+}
+
+/* glWindowPos3dvARB */
+GdkGLProc
+gdk_gl_get_glWindowPos3dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos3dvARB == (GdkGLProc_glWindowPos3dvARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos3dvARB =
+ (GdkGLProc_glWindowPos3dvARB) gdk_gl_get_proc_address ("glWindowPos3dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3dvARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos3dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos3dvARB);
+}
+
+/* glWindowPos3fARB */
+GdkGLProc
+gdk_gl_get_glWindowPos3fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos3fARB == (GdkGLProc_glWindowPos3fARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos3fARB =
+ (GdkGLProc_glWindowPos3fARB) gdk_gl_get_proc_address ("glWindowPos3fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3fARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos3fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos3fARB);
+}
+
+/* glWindowPos3fvARB */
+GdkGLProc
+gdk_gl_get_glWindowPos3fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos3fvARB == (GdkGLProc_glWindowPos3fvARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos3fvARB =
+ (GdkGLProc_glWindowPos3fvARB) gdk_gl_get_proc_address ("glWindowPos3fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3fvARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos3fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos3fvARB);
+}
+
+/* glWindowPos3iARB */
+GdkGLProc
+gdk_gl_get_glWindowPos3iARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos3iARB == (GdkGLProc_glWindowPos3iARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos3iARB =
+ (GdkGLProc_glWindowPos3iARB) gdk_gl_get_proc_address ("glWindowPos3iARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3iARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos3iARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos3iARB);
+}
+
+/* glWindowPos3ivARB */
+GdkGLProc
+gdk_gl_get_glWindowPos3ivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos3ivARB == (GdkGLProc_glWindowPos3ivARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos3ivARB =
+ (GdkGLProc_glWindowPos3ivARB) gdk_gl_get_proc_address ("glWindowPos3ivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3ivARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos3ivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos3ivARB);
+}
+
+/* glWindowPos3sARB */
+GdkGLProc
+gdk_gl_get_glWindowPos3sARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos3sARB == (GdkGLProc_glWindowPos3sARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos3sARB =
+ (GdkGLProc_glWindowPos3sARB) gdk_gl_get_proc_address ("glWindowPos3sARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3sARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos3sARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos3sARB);
+}
+
+/* glWindowPos3svARB */
+GdkGLProc
+gdk_gl_get_glWindowPos3svARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_window_pos.glWindowPos3svARB == (GdkGLProc_glWindowPos3svARB) -1)
+ _procs_GL_ARB_window_pos.glWindowPos3svARB =
+ (GdkGLProc_glWindowPos3svARB) gdk_gl_get_proc_address ("glWindowPos3svARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3svARB () - %s",
+ (_procs_GL_ARB_window_pos.glWindowPos3svARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_window_pos.glWindowPos3svARB);
+}
+
+/* Get GL_ARB_window_pos functions */
+GdkGL_GL_ARB_window_pos *
+gdk_gl_get_GL_ARB_window_pos (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ARB_window_pos");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glWindowPos2dARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2dvARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2fARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2fvARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2iARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2ivARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2sARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2svARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3dARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3dvARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3fARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3fvARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3iARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3ivARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3sARB () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3svARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ARB_window_pos () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ARB_window_pos;
+}
+
+/*
+ * GL_ARB_vertex_program
+ */
+
+static GdkGL_GL_ARB_vertex_program _procs_GL_ARB_vertex_program = {
+ (GdkGLProc_glVertexAttrib1dARB) -1,
+ (GdkGLProc_glVertexAttrib1dvARB) -1,
+ (GdkGLProc_glVertexAttrib1fARB) -1,
+ (GdkGLProc_glVertexAttrib1fvARB) -1,
+ (GdkGLProc_glVertexAttrib1sARB) -1,
+ (GdkGLProc_glVertexAttrib1svARB) -1,
+ (GdkGLProc_glVertexAttrib2dARB) -1,
+ (GdkGLProc_glVertexAttrib2dvARB) -1,
+ (GdkGLProc_glVertexAttrib2fARB) -1,
+ (GdkGLProc_glVertexAttrib2fvARB) -1,
+ (GdkGLProc_glVertexAttrib2sARB) -1,
+ (GdkGLProc_glVertexAttrib2svARB) -1,
+ (GdkGLProc_glVertexAttrib3dARB) -1,
+ (GdkGLProc_glVertexAttrib3dvARB) -1,
+ (GdkGLProc_glVertexAttrib3fARB) -1,
+ (GdkGLProc_glVertexAttrib3fvARB) -1,
+ (GdkGLProc_glVertexAttrib3sARB) -1,
+ (GdkGLProc_glVertexAttrib3svARB) -1,
+ (GdkGLProc_glVertexAttrib4NbvARB) -1,
+ (GdkGLProc_glVertexAttrib4NivARB) -1,
+ (GdkGLProc_glVertexAttrib4NsvARB) -1,
+ (GdkGLProc_glVertexAttrib4NubARB) -1,
+ (GdkGLProc_glVertexAttrib4NubvARB) -1,
+ (GdkGLProc_glVertexAttrib4NuivARB) -1,
+ (GdkGLProc_glVertexAttrib4NusvARB) -1,
+ (GdkGLProc_glVertexAttrib4bvARB) -1,
+ (GdkGLProc_glVertexAttrib4dARB) -1,
+ (GdkGLProc_glVertexAttrib4dvARB) -1,
+ (GdkGLProc_glVertexAttrib4fARB) -1,
+ (GdkGLProc_glVertexAttrib4fvARB) -1,
+ (GdkGLProc_glVertexAttrib4ivARB) -1,
+ (GdkGLProc_glVertexAttrib4sARB) -1,
+ (GdkGLProc_glVertexAttrib4svARB) -1,
+ (GdkGLProc_glVertexAttrib4ubvARB) -1,
+ (GdkGLProc_glVertexAttrib4uivARB) -1,
+ (GdkGLProc_glVertexAttrib4usvARB) -1,
+ (GdkGLProc_glVertexAttribPointerARB) -1,
+ (GdkGLProc_glEnableVertexAttribArrayARB) -1,
+ (GdkGLProc_glDisableVertexAttribArrayARB) -1,
+ (GdkGLProc_glProgramStringARB) -1,
+ (GdkGLProc_glBindProgramARB) -1,
+ (GdkGLProc_glDeleteProgramsARB) -1,
+ (GdkGLProc_glGenProgramsARB) -1,
+ (GdkGLProc_glProgramEnvParameter4dARB) -1,
+ (GdkGLProc_glProgramEnvParameter4dvARB) -1,
+ (GdkGLProc_glProgramEnvParameter4fARB) -1,
+ (GdkGLProc_glProgramEnvParameter4fvARB) -1,
+ (GdkGLProc_glProgramLocalParameter4dARB) -1,
+ (GdkGLProc_glProgramLocalParameter4dvARB) -1,
+ (GdkGLProc_glProgramLocalParameter4fARB) -1,
+ (GdkGLProc_glProgramLocalParameter4fvARB) -1,
+ (GdkGLProc_glGetProgramEnvParameterdvARB) -1,
+ (GdkGLProc_glGetProgramEnvParameterfvARB) -1,
+ (GdkGLProc_glGetProgramLocalParameterdvARB) -1,
+ (GdkGLProc_glGetProgramLocalParameterfvARB) -1,
+ (GdkGLProc_glGetProgramivARB) -1,
+ (GdkGLProc_glGetProgramStringARB) -1,
+ (GdkGLProc_glGetVertexAttribdvARB) -1,
+ (GdkGLProc_glGetVertexAttribfvARB) -1,
+ (GdkGLProc_glGetVertexAttribivARB) -1,
+ (GdkGLProc_glGetVertexAttribPointervARB) -1,
+ (GdkGLProc_glIsProgramARB) -1
+};
+
+/* glVertexAttrib1dARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib1dARB == (GdkGLProc_glVertexAttrib1dARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib1dARB =
+ (GdkGLProc_glVertexAttrib1dARB) gdk_gl_get_proc_address ("glVertexAttrib1dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1dARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib1dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib1dARB);
+}
+
+/* glVertexAttrib1dvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib1dvARB == (GdkGLProc_glVertexAttrib1dvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib1dvARB =
+ (GdkGLProc_glVertexAttrib1dvARB) gdk_gl_get_proc_address ("glVertexAttrib1dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1dvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib1dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib1dvARB);
+}
+
+/* glVertexAttrib1fARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib1fARB == (GdkGLProc_glVertexAttrib1fARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib1fARB =
+ (GdkGLProc_glVertexAttrib1fARB) gdk_gl_get_proc_address ("glVertexAttrib1fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1fARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib1fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib1fARB);
+}
+
+/* glVertexAttrib1fvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib1fvARB == (GdkGLProc_glVertexAttrib1fvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib1fvARB =
+ (GdkGLProc_glVertexAttrib1fvARB) gdk_gl_get_proc_address ("glVertexAttrib1fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1fvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib1fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib1fvARB);
+}
+
+/* glVertexAttrib1sARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1sARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib1sARB == (GdkGLProc_glVertexAttrib1sARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib1sARB =
+ (GdkGLProc_glVertexAttrib1sARB) gdk_gl_get_proc_address ("glVertexAttrib1sARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1sARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib1sARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib1sARB);
+}
+
+/* glVertexAttrib1svARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1svARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib1svARB == (GdkGLProc_glVertexAttrib1svARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib1svARB =
+ (GdkGLProc_glVertexAttrib1svARB) gdk_gl_get_proc_address ("glVertexAttrib1svARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1svARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib1svARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib1svARB);
+}
+
+/* glVertexAttrib2dARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib2dARB == (GdkGLProc_glVertexAttrib2dARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib2dARB =
+ (GdkGLProc_glVertexAttrib2dARB) gdk_gl_get_proc_address ("glVertexAttrib2dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2dARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib2dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib2dARB);
+}
+
+/* glVertexAttrib2dvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib2dvARB == (GdkGLProc_glVertexAttrib2dvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib2dvARB =
+ (GdkGLProc_glVertexAttrib2dvARB) gdk_gl_get_proc_address ("glVertexAttrib2dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2dvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib2dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib2dvARB);
+}
+
+/* glVertexAttrib2fARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib2fARB == (GdkGLProc_glVertexAttrib2fARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib2fARB =
+ (GdkGLProc_glVertexAttrib2fARB) gdk_gl_get_proc_address ("glVertexAttrib2fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2fARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib2fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib2fARB);
+}
+
+/* glVertexAttrib2fvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib2fvARB == (GdkGLProc_glVertexAttrib2fvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib2fvARB =
+ (GdkGLProc_glVertexAttrib2fvARB) gdk_gl_get_proc_address ("glVertexAttrib2fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2fvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib2fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib2fvARB);
+}
+
+/* glVertexAttrib2sARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2sARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib2sARB == (GdkGLProc_glVertexAttrib2sARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib2sARB =
+ (GdkGLProc_glVertexAttrib2sARB) gdk_gl_get_proc_address ("glVertexAttrib2sARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2sARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib2sARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib2sARB);
+}
+
+/* glVertexAttrib2svARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2svARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib2svARB == (GdkGLProc_glVertexAttrib2svARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib2svARB =
+ (GdkGLProc_glVertexAttrib2svARB) gdk_gl_get_proc_address ("glVertexAttrib2svARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2svARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib2svARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib2svARB);
+}
+
+/* glVertexAttrib3dARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib3dARB == (GdkGLProc_glVertexAttrib3dARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib3dARB =
+ (GdkGLProc_glVertexAttrib3dARB) gdk_gl_get_proc_address ("glVertexAttrib3dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3dARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib3dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib3dARB);
+}
+
+/* glVertexAttrib3dvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib3dvARB == (GdkGLProc_glVertexAttrib3dvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib3dvARB =
+ (GdkGLProc_glVertexAttrib3dvARB) gdk_gl_get_proc_address ("glVertexAttrib3dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3dvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib3dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib3dvARB);
+}
+
+/* glVertexAttrib3fARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib3fARB == (GdkGLProc_glVertexAttrib3fARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib3fARB =
+ (GdkGLProc_glVertexAttrib3fARB) gdk_gl_get_proc_address ("glVertexAttrib3fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3fARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib3fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib3fARB);
+}
+
+/* glVertexAttrib3fvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib3fvARB == (GdkGLProc_glVertexAttrib3fvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib3fvARB =
+ (GdkGLProc_glVertexAttrib3fvARB) gdk_gl_get_proc_address ("glVertexAttrib3fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3fvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib3fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib3fvARB);
+}
+
+/* glVertexAttrib3sARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3sARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib3sARB == (GdkGLProc_glVertexAttrib3sARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib3sARB =
+ (GdkGLProc_glVertexAttrib3sARB) gdk_gl_get_proc_address ("glVertexAttrib3sARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3sARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib3sARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib3sARB);
+}
+
+/* glVertexAttrib3svARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3svARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib3svARB == (GdkGLProc_glVertexAttrib3svARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib3svARB =
+ (GdkGLProc_glVertexAttrib3svARB) gdk_gl_get_proc_address ("glVertexAttrib3svARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3svARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib3svARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib3svARB);
+}
+
+/* glVertexAttrib4NbvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4NbvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4NbvARB == (GdkGLProc_glVertexAttrib4NbvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4NbvARB =
+ (GdkGLProc_glVertexAttrib4NbvARB) gdk_gl_get_proc_address ("glVertexAttrib4NbvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4NbvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4NbvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4NbvARB);
+}
+
+/* glVertexAttrib4NivARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4NivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4NivARB == (GdkGLProc_glVertexAttrib4NivARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4NivARB =
+ (GdkGLProc_glVertexAttrib4NivARB) gdk_gl_get_proc_address ("glVertexAttrib4NivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4NivARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4NivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4NivARB);
+}
+
+/* glVertexAttrib4NsvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4NsvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4NsvARB == (GdkGLProc_glVertexAttrib4NsvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4NsvARB =
+ (GdkGLProc_glVertexAttrib4NsvARB) gdk_gl_get_proc_address ("glVertexAttrib4NsvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4NsvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4NsvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4NsvARB);
+}
+
+/* glVertexAttrib4NubARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4NubARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4NubARB == (GdkGLProc_glVertexAttrib4NubARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4NubARB =
+ (GdkGLProc_glVertexAttrib4NubARB) gdk_gl_get_proc_address ("glVertexAttrib4NubARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4NubARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4NubARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4NubARB);
+}
+
+/* glVertexAttrib4NubvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4NubvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4NubvARB == (GdkGLProc_glVertexAttrib4NubvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4NubvARB =
+ (GdkGLProc_glVertexAttrib4NubvARB) gdk_gl_get_proc_address ("glVertexAttrib4NubvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4NubvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4NubvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4NubvARB);
+}
+
+/* glVertexAttrib4NuivARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4NuivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4NuivARB == (GdkGLProc_glVertexAttrib4NuivARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4NuivARB =
+ (GdkGLProc_glVertexAttrib4NuivARB) gdk_gl_get_proc_address ("glVertexAttrib4NuivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4NuivARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4NuivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4NuivARB);
+}
+
+/* glVertexAttrib4NusvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4NusvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4NusvARB == (GdkGLProc_glVertexAttrib4NusvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4NusvARB =
+ (GdkGLProc_glVertexAttrib4NusvARB) gdk_gl_get_proc_address ("glVertexAttrib4NusvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4NusvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4NusvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4NusvARB);
+}
+
+/* glVertexAttrib4bvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4bvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4bvARB == (GdkGLProc_glVertexAttrib4bvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4bvARB =
+ (GdkGLProc_glVertexAttrib4bvARB) gdk_gl_get_proc_address ("glVertexAttrib4bvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4bvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4bvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4bvARB);
+}
+
+/* glVertexAttrib4dARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4dARB == (GdkGLProc_glVertexAttrib4dARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4dARB =
+ (GdkGLProc_glVertexAttrib4dARB) gdk_gl_get_proc_address ("glVertexAttrib4dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4dARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4dARB);
+}
+
+/* glVertexAttrib4dvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4dvARB == (GdkGLProc_glVertexAttrib4dvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4dvARB =
+ (GdkGLProc_glVertexAttrib4dvARB) gdk_gl_get_proc_address ("glVertexAttrib4dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4dvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4dvARB);
+}
+
+/* glVertexAttrib4fARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4fARB == (GdkGLProc_glVertexAttrib4fARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4fARB =
+ (GdkGLProc_glVertexAttrib4fARB) gdk_gl_get_proc_address ("glVertexAttrib4fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4fARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4fARB);
+}
+
+/* glVertexAttrib4fvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4fvARB == (GdkGLProc_glVertexAttrib4fvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4fvARB =
+ (GdkGLProc_glVertexAttrib4fvARB) gdk_gl_get_proc_address ("glVertexAttrib4fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4fvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4fvARB);
+}
+
+/* glVertexAttrib4ivARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4ivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4ivARB == (GdkGLProc_glVertexAttrib4ivARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4ivARB =
+ (GdkGLProc_glVertexAttrib4ivARB) gdk_gl_get_proc_address ("glVertexAttrib4ivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4ivARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4ivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4ivARB);
+}
+
+/* glVertexAttrib4sARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4sARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4sARB == (GdkGLProc_glVertexAttrib4sARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4sARB =
+ (GdkGLProc_glVertexAttrib4sARB) gdk_gl_get_proc_address ("glVertexAttrib4sARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4sARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4sARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4sARB);
+}
+
+/* glVertexAttrib4svARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4svARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4svARB == (GdkGLProc_glVertexAttrib4svARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4svARB =
+ (GdkGLProc_glVertexAttrib4svARB) gdk_gl_get_proc_address ("glVertexAttrib4svARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4svARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4svARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4svARB);
+}
+
+/* glVertexAttrib4ubvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4ubvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4ubvARB == (GdkGLProc_glVertexAttrib4ubvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4ubvARB =
+ (GdkGLProc_glVertexAttrib4ubvARB) gdk_gl_get_proc_address ("glVertexAttrib4ubvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4ubvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4ubvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4ubvARB);
+}
+
+/* glVertexAttrib4uivARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4uivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4uivARB == (GdkGLProc_glVertexAttrib4uivARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4uivARB =
+ (GdkGLProc_glVertexAttrib4uivARB) gdk_gl_get_proc_address ("glVertexAttrib4uivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4uivARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4uivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4uivARB);
+}
+
+/* glVertexAttrib4usvARB */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4usvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttrib4usvARB == (GdkGLProc_glVertexAttrib4usvARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttrib4usvARB =
+ (GdkGLProc_glVertexAttrib4usvARB) gdk_gl_get_proc_address ("glVertexAttrib4usvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4usvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttrib4usvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttrib4usvARB);
+}
+
+/* glVertexAttribPointerARB */
+GdkGLProc
+gdk_gl_get_glVertexAttribPointerARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glVertexAttribPointerARB == (GdkGLProc_glVertexAttribPointerARB) -1)
+ _procs_GL_ARB_vertex_program.glVertexAttribPointerARB =
+ (GdkGLProc_glVertexAttribPointerARB) gdk_gl_get_proc_address ("glVertexAttribPointerARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribPointerARB () - %s",
+ (_procs_GL_ARB_vertex_program.glVertexAttribPointerARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glVertexAttribPointerARB);
+}
+
+/* glEnableVertexAttribArrayARB */
+GdkGLProc
+gdk_gl_get_glEnableVertexAttribArrayARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glEnableVertexAttribArrayARB == (GdkGLProc_glEnableVertexAttribArrayARB) -1)
+ _procs_GL_ARB_vertex_program.glEnableVertexAttribArrayARB =
+ (GdkGLProc_glEnableVertexAttribArrayARB) gdk_gl_get_proc_address ("glEnableVertexAttribArrayARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glEnableVertexAttribArrayARB () - %s",
+ (_procs_GL_ARB_vertex_program.glEnableVertexAttribArrayARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glEnableVertexAttribArrayARB);
+}
+
+/* glDisableVertexAttribArrayARB */
+GdkGLProc
+gdk_gl_get_glDisableVertexAttribArrayARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glDisableVertexAttribArrayARB == (GdkGLProc_glDisableVertexAttribArrayARB) -1)
+ _procs_GL_ARB_vertex_program.glDisableVertexAttribArrayARB =
+ (GdkGLProc_glDisableVertexAttribArrayARB) gdk_gl_get_proc_address ("glDisableVertexAttribArrayARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDisableVertexAttribArrayARB () - %s",
+ (_procs_GL_ARB_vertex_program.glDisableVertexAttribArrayARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glDisableVertexAttribArrayARB);
+}
+
+/* glProgramStringARB */
+GdkGLProc
+gdk_gl_get_glProgramStringARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glProgramStringARB == (GdkGLProc_glProgramStringARB) -1)
+ _procs_GL_ARB_vertex_program.glProgramStringARB =
+ (GdkGLProc_glProgramStringARB) gdk_gl_get_proc_address ("glProgramStringARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramStringARB () - %s",
+ (_procs_GL_ARB_vertex_program.glProgramStringARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glProgramStringARB);
+}
+
+/* glBindProgramARB */
+GdkGLProc
+gdk_gl_get_glBindProgramARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glBindProgramARB == (GdkGLProc_glBindProgramARB) -1)
+ _procs_GL_ARB_vertex_program.glBindProgramARB =
+ (GdkGLProc_glBindProgramARB) gdk_gl_get_proc_address ("glBindProgramARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindProgramARB () - %s",
+ (_procs_GL_ARB_vertex_program.glBindProgramARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glBindProgramARB);
+}
+
+/* glDeleteProgramsARB */
+GdkGLProc
+gdk_gl_get_glDeleteProgramsARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glDeleteProgramsARB == (GdkGLProc_glDeleteProgramsARB) -1)
+ _procs_GL_ARB_vertex_program.glDeleteProgramsARB =
+ (GdkGLProc_glDeleteProgramsARB) gdk_gl_get_proc_address ("glDeleteProgramsARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteProgramsARB () - %s",
+ (_procs_GL_ARB_vertex_program.glDeleteProgramsARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glDeleteProgramsARB);
+}
+
+/* glGenProgramsARB */
+GdkGLProc
+gdk_gl_get_glGenProgramsARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGenProgramsARB == (GdkGLProc_glGenProgramsARB) -1)
+ _procs_GL_ARB_vertex_program.glGenProgramsARB =
+ (GdkGLProc_glGenProgramsARB) gdk_gl_get_proc_address ("glGenProgramsARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenProgramsARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGenProgramsARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGenProgramsARB);
+}
+
+/* glProgramEnvParameter4dARB */
+GdkGLProc
+gdk_gl_get_glProgramEnvParameter4dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glProgramEnvParameter4dARB == (GdkGLProc_glProgramEnvParameter4dARB) -1)
+ _procs_GL_ARB_vertex_program.glProgramEnvParameter4dARB =
+ (GdkGLProc_glProgramEnvParameter4dARB) gdk_gl_get_proc_address ("glProgramEnvParameter4dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramEnvParameter4dARB () - %s",
+ (_procs_GL_ARB_vertex_program.glProgramEnvParameter4dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glProgramEnvParameter4dARB);
+}
+
+/* glProgramEnvParameter4dvARB */
+GdkGLProc
+gdk_gl_get_glProgramEnvParameter4dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glProgramEnvParameter4dvARB == (GdkGLProc_glProgramEnvParameter4dvARB) -1)
+ _procs_GL_ARB_vertex_program.glProgramEnvParameter4dvARB =
+ (GdkGLProc_glProgramEnvParameter4dvARB) gdk_gl_get_proc_address ("glProgramEnvParameter4dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramEnvParameter4dvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glProgramEnvParameter4dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glProgramEnvParameter4dvARB);
+}
+
+/* glProgramEnvParameter4fARB */
+GdkGLProc
+gdk_gl_get_glProgramEnvParameter4fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glProgramEnvParameter4fARB == (GdkGLProc_glProgramEnvParameter4fARB) -1)
+ _procs_GL_ARB_vertex_program.glProgramEnvParameter4fARB =
+ (GdkGLProc_glProgramEnvParameter4fARB) gdk_gl_get_proc_address ("glProgramEnvParameter4fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramEnvParameter4fARB () - %s",
+ (_procs_GL_ARB_vertex_program.glProgramEnvParameter4fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glProgramEnvParameter4fARB);
+}
+
+/* glProgramEnvParameter4fvARB */
+GdkGLProc
+gdk_gl_get_glProgramEnvParameter4fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glProgramEnvParameter4fvARB == (GdkGLProc_glProgramEnvParameter4fvARB) -1)
+ _procs_GL_ARB_vertex_program.glProgramEnvParameter4fvARB =
+ (GdkGLProc_glProgramEnvParameter4fvARB) gdk_gl_get_proc_address ("glProgramEnvParameter4fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramEnvParameter4fvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glProgramEnvParameter4fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glProgramEnvParameter4fvARB);
+}
+
+/* glProgramLocalParameter4dARB */
+GdkGLProc
+gdk_gl_get_glProgramLocalParameter4dARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glProgramLocalParameter4dARB == (GdkGLProc_glProgramLocalParameter4dARB) -1)
+ _procs_GL_ARB_vertex_program.glProgramLocalParameter4dARB =
+ (GdkGLProc_glProgramLocalParameter4dARB) gdk_gl_get_proc_address ("glProgramLocalParameter4dARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramLocalParameter4dARB () - %s",
+ (_procs_GL_ARB_vertex_program.glProgramLocalParameter4dARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glProgramLocalParameter4dARB);
+}
+
+/* glProgramLocalParameter4dvARB */
+GdkGLProc
+gdk_gl_get_glProgramLocalParameter4dvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glProgramLocalParameter4dvARB == (GdkGLProc_glProgramLocalParameter4dvARB) -1)
+ _procs_GL_ARB_vertex_program.glProgramLocalParameter4dvARB =
+ (GdkGLProc_glProgramLocalParameter4dvARB) gdk_gl_get_proc_address ("glProgramLocalParameter4dvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramLocalParameter4dvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glProgramLocalParameter4dvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glProgramLocalParameter4dvARB);
+}
+
+/* glProgramLocalParameter4fARB */
+GdkGLProc
+gdk_gl_get_glProgramLocalParameter4fARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glProgramLocalParameter4fARB == (GdkGLProc_glProgramLocalParameter4fARB) -1)
+ _procs_GL_ARB_vertex_program.glProgramLocalParameter4fARB =
+ (GdkGLProc_glProgramLocalParameter4fARB) gdk_gl_get_proc_address ("glProgramLocalParameter4fARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramLocalParameter4fARB () - %s",
+ (_procs_GL_ARB_vertex_program.glProgramLocalParameter4fARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glProgramLocalParameter4fARB);
+}
+
+/* glProgramLocalParameter4fvARB */
+GdkGLProc
+gdk_gl_get_glProgramLocalParameter4fvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glProgramLocalParameter4fvARB == (GdkGLProc_glProgramLocalParameter4fvARB) -1)
+ _procs_GL_ARB_vertex_program.glProgramLocalParameter4fvARB =
+ (GdkGLProc_glProgramLocalParameter4fvARB) gdk_gl_get_proc_address ("glProgramLocalParameter4fvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramLocalParameter4fvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glProgramLocalParameter4fvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glProgramLocalParameter4fvARB);
+}
+
+/* glGetProgramEnvParameterdvARB */
+GdkGLProc
+gdk_gl_get_glGetProgramEnvParameterdvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGetProgramEnvParameterdvARB == (GdkGLProc_glGetProgramEnvParameterdvARB) -1)
+ _procs_GL_ARB_vertex_program.glGetProgramEnvParameterdvARB =
+ (GdkGLProc_glGetProgramEnvParameterdvARB) gdk_gl_get_proc_address ("glGetProgramEnvParameterdvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramEnvParameterdvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGetProgramEnvParameterdvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGetProgramEnvParameterdvARB);
+}
+
+/* glGetProgramEnvParameterfvARB */
+GdkGLProc
+gdk_gl_get_glGetProgramEnvParameterfvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGetProgramEnvParameterfvARB == (GdkGLProc_glGetProgramEnvParameterfvARB) -1)
+ _procs_GL_ARB_vertex_program.glGetProgramEnvParameterfvARB =
+ (GdkGLProc_glGetProgramEnvParameterfvARB) gdk_gl_get_proc_address ("glGetProgramEnvParameterfvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramEnvParameterfvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGetProgramEnvParameterfvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGetProgramEnvParameterfvARB);
+}
+
+/* glGetProgramLocalParameterdvARB */
+GdkGLProc
+gdk_gl_get_glGetProgramLocalParameterdvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGetProgramLocalParameterdvARB == (GdkGLProc_glGetProgramLocalParameterdvARB) -1)
+ _procs_GL_ARB_vertex_program.glGetProgramLocalParameterdvARB =
+ (GdkGLProc_glGetProgramLocalParameterdvARB) gdk_gl_get_proc_address ("glGetProgramLocalParameterdvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramLocalParameterdvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGetProgramLocalParameterdvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGetProgramLocalParameterdvARB);
+}
+
+/* glGetProgramLocalParameterfvARB */
+GdkGLProc
+gdk_gl_get_glGetProgramLocalParameterfvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGetProgramLocalParameterfvARB == (GdkGLProc_glGetProgramLocalParameterfvARB) -1)
+ _procs_GL_ARB_vertex_program.glGetProgramLocalParameterfvARB =
+ (GdkGLProc_glGetProgramLocalParameterfvARB) gdk_gl_get_proc_address ("glGetProgramLocalParameterfvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramLocalParameterfvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGetProgramLocalParameterfvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGetProgramLocalParameterfvARB);
+}
+
+/* glGetProgramivARB */
+GdkGLProc
+gdk_gl_get_glGetProgramivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGetProgramivARB == (GdkGLProc_glGetProgramivARB) -1)
+ _procs_GL_ARB_vertex_program.glGetProgramivARB =
+ (GdkGLProc_glGetProgramivARB) gdk_gl_get_proc_address ("glGetProgramivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramivARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGetProgramivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGetProgramivARB);
+}
+
+/* glGetProgramStringARB */
+GdkGLProc
+gdk_gl_get_glGetProgramStringARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGetProgramStringARB == (GdkGLProc_glGetProgramStringARB) -1)
+ _procs_GL_ARB_vertex_program.glGetProgramStringARB =
+ (GdkGLProc_glGetProgramStringARB) gdk_gl_get_proc_address ("glGetProgramStringARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramStringARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGetProgramStringARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGetProgramStringARB);
+}
+
+/* glGetVertexAttribdvARB */
+GdkGLProc
+gdk_gl_get_glGetVertexAttribdvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGetVertexAttribdvARB == (GdkGLProc_glGetVertexAttribdvARB) -1)
+ _procs_GL_ARB_vertex_program.glGetVertexAttribdvARB =
+ (GdkGLProc_glGetVertexAttribdvARB) gdk_gl_get_proc_address ("glGetVertexAttribdvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVertexAttribdvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGetVertexAttribdvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGetVertexAttribdvARB);
+}
+
+/* glGetVertexAttribfvARB */
+GdkGLProc
+gdk_gl_get_glGetVertexAttribfvARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGetVertexAttribfvARB == (GdkGLProc_glGetVertexAttribfvARB) -1)
+ _procs_GL_ARB_vertex_program.glGetVertexAttribfvARB =
+ (GdkGLProc_glGetVertexAttribfvARB) gdk_gl_get_proc_address ("glGetVertexAttribfvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVertexAttribfvARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGetVertexAttribfvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGetVertexAttribfvARB);
+}
+
+/* glGetVertexAttribivARB */
+GdkGLProc
+gdk_gl_get_glGetVertexAttribivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGetVertexAttribivARB == (GdkGLProc_glGetVertexAttribivARB) -1)
+ _procs_GL_ARB_vertex_program.glGetVertexAttribivARB =
+ (GdkGLProc_glGetVertexAttribivARB) gdk_gl_get_proc_address ("glGetVertexAttribivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVertexAttribivARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGetVertexAttribivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGetVertexAttribivARB);
+}
+
+/* glGetVertexAttribPointervARB */
+GdkGLProc
+gdk_gl_get_glGetVertexAttribPointervARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glGetVertexAttribPointervARB == (GdkGLProc_glGetVertexAttribPointervARB) -1)
+ _procs_GL_ARB_vertex_program.glGetVertexAttribPointervARB =
+ (GdkGLProc_glGetVertexAttribPointervARB) gdk_gl_get_proc_address ("glGetVertexAttribPointervARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVertexAttribPointervARB () - %s",
+ (_procs_GL_ARB_vertex_program.glGetVertexAttribPointervARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glGetVertexAttribPointervARB);
+}
+
+/* glIsProgramARB */
+GdkGLProc
+gdk_gl_get_glIsProgramARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_program.glIsProgramARB == (GdkGLProc_glIsProgramARB) -1)
+ _procs_GL_ARB_vertex_program.glIsProgramARB =
+ (GdkGLProc_glIsProgramARB) gdk_gl_get_proc_address ("glIsProgramARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsProgramARB () - %s",
+ (_procs_GL_ARB_vertex_program.glIsProgramARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_program.glIsProgramARB);
+}
+
+/* Get GL_ARB_vertex_program functions */
+GdkGL_GL_ARB_vertex_program *
+gdk_gl_get_GL_ARB_vertex_program (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ARB_vertex_program");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glVertexAttrib1dARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1dvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1fARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1fvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1sARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1svARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2dARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2dvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2fARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2fvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2sARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2svARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3dARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3dvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3fARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3fvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3sARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3svARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4NbvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4NivARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4NsvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4NubARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4NubvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4NuivARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4NusvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4bvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4dARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4dvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4fARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4fvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4ivARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4sARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4svARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4ubvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4uivARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4usvARB () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribPointerARB () != NULL);
+ supported &= (gdk_gl_get_glEnableVertexAttribArrayARB () != NULL);
+ supported &= (gdk_gl_get_glDisableVertexAttribArrayARB () != NULL);
+ supported &= (gdk_gl_get_glProgramStringARB () != NULL);
+ supported &= (gdk_gl_get_glBindProgramARB () != NULL);
+ supported &= (gdk_gl_get_glDeleteProgramsARB () != NULL);
+ supported &= (gdk_gl_get_glGenProgramsARB () != NULL);
+ supported &= (gdk_gl_get_glProgramEnvParameter4dARB () != NULL);
+ supported &= (gdk_gl_get_glProgramEnvParameter4dvARB () != NULL);
+ supported &= (gdk_gl_get_glProgramEnvParameter4fARB () != NULL);
+ supported &= (gdk_gl_get_glProgramEnvParameter4fvARB () != NULL);
+ supported &= (gdk_gl_get_glProgramLocalParameter4dARB () != NULL);
+ supported &= (gdk_gl_get_glProgramLocalParameter4dvARB () != NULL);
+ supported &= (gdk_gl_get_glProgramLocalParameter4fARB () != NULL);
+ supported &= (gdk_gl_get_glProgramLocalParameter4fvARB () != NULL);
+ supported &= (gdk_gl_get_glGetProgramEnvParameterdvARB () != NULL);
+ supported &= (gdk_gl_get_glGetProgramEnvParameterfvARB () != NULL);
+ supported &= (gdk_gl_get_glGetProgramLocalParameterdvARB () != NULL);
+ supported &= (gdk_gl_get_glGetProgramLocalParameterfvARB () != NULL);
+ supported &= (gdk_gl_get_glGetProgramivARB () != NULL);
+ supported &= (gdk_gl_get_glGetProgramStringARB () != NULL);
+ supported &= (gdk_gl_get_glGetVertexAttribdvARB () != NULL);
+ supported &= (gdk_gl_get_glGetVertexAttribfvARB () != NULL);
+ supported &= (gdk_gl_get_glGetVertexAttribivARB () != NULL);
+ supported &= (gdk_gl_get_glGetVertexAttribPointervARB () != NULL);
+ supported &= (gdk_gl_get_glIsProgramARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ARB_vertex_program () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ARB_vertex_program;
+}
+
+/*
+ * GL_ARB_vertex_buffer_object
+ */
+
+static GdkGL_GL_ARB_vertex_buffer_object _procs_GL_ARB_vertex_buffer_object = {
+ (GdkGLProc_glBindBufferARB) -1,
+ (GdkGLProc_glDeleteBuffersARB) -1,
+ (GdkGLProc_glGenBuffersARB) -1,
+ (GdkGLProc_glIsBufferARB) -1,
+ (GdkGLProc_glBufferDataARB) -1,
+ (GdkGLProc_glBufferSubDataARB) -1,
+ (GdkGLProc_glGetBufferSubDataARB) -1,
+ (GdkGLProc_glMapBufferARB) -1,
+ (GdkGLProc_glUnmapBufferARB) -1,
+ (GdkGLProc_glGetBufferParameterivARB) -1,
+ (GdkGLProc_glGetBufferPointervARB) -1
+};
+
+/* glBindBufferARB */
+GdkGLProc
+gdk_gl_get_glBindBufferARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glBindBufferARB == (GdkGLProc_glBindBufferARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glBindBufferARB =
+ (GdkGLProc_glBindBufferARB) gdk_gl_get_proc_address ("glBindBufferARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindBufferARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glBindBufferARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glBindBufferARB);
+}
+
+/* glDeleteBuffersARB */
+GdkGLProc
+gdk_gl_get_glDeleteBuffersARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glDeleteBuffersARB == (GdkGLProc_glDeleteBuffersARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glDeleteBuffersARB =
+ (GdkGLProc_glDeleteBuffersARB) gdk_gl_get_proc_address ("glDeleteBuffersARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteBuffersARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glDeleteBuffersARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glDeleteBuffersARB);
+}
+
+/* glGenBuffersARB */
+GdkGLProc
+gdk_gl_get_glGenBuffersARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glGenBuffersARB == (GdkGLProc_glGenBuffersARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glGenBuffersARB =
+ (GdkGLProc_glGenBuffersARB) gdk_gl_get_proc_address ("glGenBuffersARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenBuffersARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glGenBuffersARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glGenBuffersARB);
+}
+
+/* glIsBufferARB */
+GdkGLProc
+gdk_gl_get_glIsBufferARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glIsBufferARB == (GdkGLProc_glIsBufferARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glIsBufferARB =
+ (GdkGLProc_glIsBufferARB) gdk_gl_get_proc_address ("glIsBufferARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsBufferARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glIsBufferARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glIsBufferARB);
+}
+
+/* glBufferDataARB */
+GdkGLProc
+gdk_gl_get_glBufferDataARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glBufferDataARB == (GdkGLProc_glBufferDataARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glBufferDataARB =
+ (GdkGLProc_glBufferDataARB) gdk_gl_get_proc_address ("glBufferDataARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBufferDataARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glBufferDataARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glBufferDataARB);
+}
+
+/* glBufferSubDataARB */
+GdkGLProc
+gdk_gl_get_glBufferSubDataARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glBufferSubDataARB == (GdkGLProc_glBufferSubDataARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glBufferSubDataARB =
+ (GdkGLProc_glBufferSubDataARB) gdk_gl_get_proc_address ("glBufferSubDataARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBufferSubDataARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glBufferSubDataARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glBufferSubDataARB);
+}
+
+/* glGetBufferSubDataARB */
+GdkGLProc
+gdk_gl_get_glGetBufferSubDataARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glGetBufferSubDataARB == (GdkGLProc_glGetBufferSubDataARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glGetBufferSubDataARB =
+ (GdkGLProc_glGetBufferSubDataARB) gdk_gl_get_proc_address ("glGetBufferSubDataARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetBufferSubDataARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glGetBufferSubDataARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glGetBufferSubDataARB);
+}
+
+/* glMapBufferARB */
+GdkGLProc
+gdk_gl_get_glMapBufferARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glMapBufferARB == (GdkGLProc_glMapBufferARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glMapBufferARB =
+ (GdkGLProc_glMapBufferARB) gdk_gl_get_proc_address ("glMapBufferARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMapBufferARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glMapBufferARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glMapBufferARB);
+}
+
+/* glUnmapBufferARB */
+GdkGLProc
+gdk_gl_get_glUnmapBufferARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glUnmapBufferARB == (GdkGLProc_glUnmapBufferARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glUnmapBufferARB =
+ (GdkGLProc_glUnmapBufferARB) gdk_gl_get_proc_address ("glUnmapBufferARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glUnmapBufferARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glUnmapBufferARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glUnmapBufferARB);
+}
+
+/* glGetBufferParameterivARB */
+GdkGLProc
+gdk_gl_get_glGetBufferParameterivARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glGetBufferParameterivARB == (GdkGLProc_glGetBufferParameterivARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glGetBufferParameterivARB =
+ (GdkGLProc_glGetBufferParameterivARB) gdk_gl_get_proc_address ("glGetBufferParameterivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetBufferParameterivARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glGetBufferParameterivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glGetBufferParameterivARB);
+}
+
+/* glGetBufferPointervARB */
+GdkGLProc
+gdk_gl_get_glGetBufferPointervARB (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ARB_vertex_buffer_object.glGetBufferPointervARB == (GdkGLProc_glGetBufferPointervARB) -1)
+ _procs_GL_ARB_vertex_buffer_object.glGetBufferPointervARB =
+ (GdkGLProc_glGetBufferPointervARB) gdk_gl_get_proc_address ("glGetBufferPointervARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetBufferPointervARB () - %s",
+ (_procs_GL_ARB_vertex_buffer_object.glGetBufferPointervARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ARB_vertex_buffer_object.glGetBufferPointervARB);
+}
+
+/* Get GL_ARB_vertex_buffer_object functions */
+GdkGL_GL_ARB_vertex_buffer_object *
+gdk_gl_get_GL_ARB_vertex_buffer_object (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ARB_vertex_buffer_object");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glBindBufferARB () != NULL);
+ supported &= (gdk_gl_get_glDeleteBuffersARB () != NULL);
+ supported &= (gdk_gl_get_glGenBuffersARB () != NULL);
+ supported &= (gdk_gl_get_glIsBufferARB () != NULL);
+ supported &= (gdk_gl_get_glBufferDataARB () != NULL);
+ supported &= (gdk_gl_get_glBufferSubDataARB () != NULL);
+ supported &= (gdk_gl_get_glGetBufferSubDataARB () != NULL);
+ supported &= (gdk_gl_get_glMapBufferARB () != NULL);
+ supported &= (gdk_gl_get_glUnmapBufferARB () != NULL);
+ supported &= (gdk_gl_get_glGetBufferParameterivARB () != NULL);
+ supported &= (gdk_gl_get_glGetBufferPointervARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ARB_vertex_buffer_object () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ARB_vertex_buffer_object;
+}
+
+/*
+ * GL_EXT_blend_color
+ */
+
+static GdkGL_GL_EXT_blend_color _procs_GL_EXT_blend_color = {
+ (GdkGLProc_glBlendColorEXT) -1
+};
+
+/* glBlendColorEXT */
+GdkGLProc
+gdk_gl_get_glBlendColorEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_blend_color.glBlendColorEXT == (GdkGLProc_glBlendColorEXT) -1)
+ _procs_GL_EXT_blend_color.glBlendColorEXT =
+ (GdkGLProc_glBlendColorEXT) gdk_gl_get_proc_address ("glBlendColorEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBlendColorEXT () - %s",
+ (_procs_GL_EXT_blend_color.glBlendColorEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_blend_color.glBlendColorEXT);
+}
+
+/* Get GL_EXT_blend_color functions */
+GdkGL_GL_EXT_blend_color *
+gdk_gl_get_GL_EXT_blend_color (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_blend_color");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glBlendColorEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_blend_color () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_blend_color;
+}
+
+/*
+ * GL_EXT_polygon_offset
+ */
+
+static GdkGL_GL_EXT_polygon_offset _procs_GL_EXT_polygon_offset = {
+ (GdkGLProc_glPolygonOffsetEXT) -1
+};
+
+/* glPolygonOffsetEXT */
+GdkGLProc
+gdk_gl_get_glPolygonOffsetEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_polygon_offset.glPolygonOffsetEXT == (GdkGLProc_glPolygonOffsetEXT) -1)
+ _procs_GL_EXT_polygon_offset.glPolygonOffsetEXT =
+ (GdkGLProc_glPolygonOffsetEXT) gdk_gl_get_proc_address ("glPolygonOffsetEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPolygonOffsetEXT () - %s",
+ (_procs_GL_EXT_polygon_offset.glPolygonOffsetEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_polygon_offset.glPolygonOffsetEXT);
+}
+
+/* Get GL_EXT_polygon_offset functions */
+GdkGL_GL_EXT_polygon_offset *
+gdk_gl_get_GL_EXT_polygon_offset (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_polygon_offset");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPolygonOffsetEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_polygon_offset () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_polygon_offset;
+}
+
+/*
+ * GL_EXT_texture3D
+ */
+
+static GdkGL_GL_EXT_texture3D _procs_GL_EXT_texture3D = {
+ (GdkGLProc_glTexImage3DEXT) -1,
+ (GdkGLProc_glTexSubImage3DEXT) -1
+};
+
+/* glTexImage3DEXT */
+GdkGLProc
+gdk_gl_get_glTexImage3DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_texture3D.glTexImage3DEXT == (GdkGLProc_glTexImage3DEXT) -1)
+ _procs_GL_EXT_texture3D.glTexImage3DEXT =
+ (GdkGLProc_glTexImage3DEXT) gdk_gl_get_proc_address ("glTexImage3DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexImage3DEXT () - %s",
+ (_procs_GL_EXT_texture3D.glTexImage3DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_texture3D.glTexImage3DEXT);
+}
+
+/* glTexSubImage3DEXT */
+GdkGLProc
+gdk_gl_get_glTexSubImage3DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_texture3D.glTexSubImage3DEXT == (GdkGLProc_glTexSubImage3DEXT) -1)
+ _procs_GL_EXT_texture3D.glTexSubImage3DEXT =
+ (GdkGLProc_glTexSubImage3DEXT) gdk_gl_get_proc_address ("glTexSubImage3DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexSubImage3DEXT () - %s",
+ (_procs_GL_EXT_texture3D.glTexSubImage3DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_texture3D.glTexSubImage3DEXT);
+}
+
+/* Get GL_EXT_texture3D functions */
+GdkGL_GL_EXT_texture3D *
+gdk_gl_get_GL_EXT_texture3D (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_texture3D");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTexImage3DEXT () != NULL);
+ supported &= (gdk_gl_get_glTexSubImage3DEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_texture3D () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_texture3D;
+}
+
+/*
+ * GL_SGIS_texture_filter4
+ */
+
+static GdkGL_GL_SGIS_texture_filter4 _procs_GL_SGIS_texture_filter4 = {
+ (GdkGLProc_glGetTexFilterFuncSGIS) -1,
+ (GdkGLProc_glTexFilterFuncSGIS) -1
+};
+
+/* glGetTexFilterFuncSGIS */
+GdkGLProc
+gdk_gl_get_glGetTexFilterFuncSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_texture_filter4.glGetTexFilterFuncSGIS == (GdkGLProc_glGetTexFilterFuncSGIS) -1)
+ _procs_GL_SGIS_texture_filter4.glGetTexFilterFuncSGIS =
+ (GdkGLProc_glGetTexFilterFuncSGIS) gdk_gl_get_proc_address ("glGetTexFilterFuncSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetTexFilterFuncSGIS () - %s",
+ (_procs_GL_SGIS_texture_filter4.glGetTexFilterFuncSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_texture_filter4.glGetTexFilterFuncSGIS);
+}
+
+/* glTexFilterFuncSGIS */
+GdkGLProc
+gdk_gl_get_glTexFilterFuncSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_texture_filter4.glTexFilterFuncSGIS == (GdkGLProc_glTexFilterFuncSGIS) -1)
+ _procs_GL_SGIS_texture_filter4.glTexFilterFuncSGIS =
+ (GdkGLProc_glTexFilterFuncSGIS) gdk_gl_get_proc_address ("glTexFilterFuncSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexFilterFuncSGIS () - %s",
+ (_procs_GL_SGIS_texture_filter4.glTexFilterFuncSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_texture_filter4.glTexFilterFuncSGIS);
+}
+
+/* Get GL_SGIS_texture_filter4 functions */
+GdkGL_GL_SGIS_texture_filter4 *
+gdk_gl_get_GL_SGIS_texture_filter4 (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIS_texture_filter4");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glGetTexFilterFuncSGIS () != NULL);
+ supported &= (gdk_gl_get_glTexFilterFuncSGIS () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIS_texture_filter4 () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIS_texture_filter4;
+}
+
+/*
+ * GL_EXT_subtexture
+ */
+
+static GdkGL_GL_EXT_subtexture _procs_GL_EXT_subtexture = {
+ (GdkGLProc_glTexSubImage1DEXT) -1,
+ (GdkGLProc_glTexSubImage2DEXT) -1
+};
+
+/* glTexSubImage1DEXT */
+GdkGLProc
+gdk_gl_get_glTexSubImage1DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_subtexture.glTexSubImage1DEXT == (GdkGLProc_glTexSubImage1DEXT) -1)
+ _procs_GL_EXT_subtexture.glTexSubImage1DEXT =
+ (GdkGLProc_glTexSubImage1DEXT) gdk_gl_get_proc_address ("glTexSubImage1DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexSubImage1DEXT () - %s",
+ (_procs_GL_EXT_subtexture.glTexSubImage1DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_subtexture.glTexSubImage1DEXT);
+}
+
+/* glTexSubImage2DEXT */
+GdkGLProc
+gdk_gl_get_glTexSubImage2DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_subtexture.glTexSubImage2DEXT == (GdkGLProc_glTexSubImage2DEXT) -1)
+ _procs_GL_EXT_subtexture.glTexSubImage2DEXT =
+ (GdkGLProc_glTexSubImage2DEXT) gdk_gl_get_proc_address ("glTexSubImage2DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexSubImage2DEXT () - %s",
+ (_procs_GL_EXT_subtexture.glTexSubImage2DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_subtexture.glTexSubImage2DEXT);
+}
+
+/* Get GL_EXT_subtexture functions */
+GdkGL_GL_EXT_subtexture *
+gdk_gl_get_GL_EXT_subtexture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_subtexture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTexSubImage1DEXT () != NULL);
+ supported &= (gdk_gl_get_glTexSubImage2DEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_subtexture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_subtexture;
+}
+
+/*
+ * GL_EXT_copy_texture
+ */
+
+static GdkGL_GL_EXT_copy_texture _procs_GL_EXT_copy_texture = {
+ (GdkGLProc_glCopyTexImage1DEXT) -1,
+ (GdkGLProc_glCopyTexImage2DEXT) -1,
+ (GdkGLProc_glCopyTexSubImage1DEXT) -1,
+ (GdkGLProc_glCopyTexSubImage2DEXT) -1,
+ (GdkGLProc_glCopyTexSubImage3DEXT) -1
+};
+
+/* glCopyTexImage1DEXT */
+GdkGLProc
+gdk_gl_get_glCopyTexImage1DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_copy_texture.glCopyTexImage1DEXT == (GdkGLProc_glCopyTexImage1DEXT) -1)
+ _procs_GL_EXT_copy_texture.glCopyTexImage1DEXT =
+ (GdkGLProc_glCopyTexImage1DEXT) gdk_gl_get_proc_address ("glCopyTexImage1DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyTexImage1DEXT () - %s",
+ (_procs_GL_EXT_copy_texture.glCopyTexImage1DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_copy_texture.glCopyTexImage1DEXT);
+}
+
+/* glCopyTexImage2DEXT */
+GdkGLProc
+gdk_gl_get_glCopyTexImage2DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_copy_texture.glCopyTexImage2DEXT == (GdkGLProc_glCopyTexImage2DEXT) -1)
+ _procs_GL_EXT_copy_texture.glCopyTexImage2DEXT =
+ (GdkGLProc_glCopyTexImage2DEXT) gdk_gl_get_proc_address ("glCopyTexImage2DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyTexImage2DEXT () - %s",
+ (_procs_GL_EXT_copy_texture.glCopyTexImage2DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_copy_texture.glCopyTexImage2DEXT);
+}
+
+/* glCopyTexSubImage1DEXT */
+GdkGLProc
+gdk_gl_get_glCopyTexSubImage1DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_copy_texture.glCopyTexSubImage1DEXT == (GdkGLProc_glCopyTexSubImage1DEXT) -1)
+ _procs_GL_EXT_copy_texture.glCopyTexSubImage1DEXT =
+ (GdkGLProc_glCopyTexSubImage1DEXT) gdk_gl_get_proc_address ("glCopyTexSubImage1DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyTexSubImage1DEXT () - %s",
+ (_procs_GL_EXT_copy_texture.glCopyTexSubImage1DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_copy_texture.glCopyTexSubImage1DEXT);
+}
+
+/* glCopyTexSubImage2DEXT */
+GdkGLProc
+gdk_gl_get_glCopyTexSubImage2DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_copy_texture.glCopyTexSubImage2DEXT == (GdkGLProc_glCopyTexSubImage2DEXT) -1)
+ _procs_GL_EXT_copy_texture.glCopyTexSubImage2DEXT =
+ (GdkGLProc_glCopyTexSubImage2DEXT) gdk_gl_get_proc_address ("glCopyTexSubImage2DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyTexSubImage2DEXT () - %s",
+ (_procs_GL_EXT_copy_texture.glCopyTexSubImage2DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_copy_texture.glCopyTexSubImage2DEXT);
+}
+
+/* glCopyTexSubImage3DEXT */
+GdkGLProc
+gdk_gl_get_glCopyTexSubImage3DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_copy_texture.glCopyTexSubImage3DEXT == (GdkGLProc_glCopyTexSubImage3DEXT) -1)
+ _procs_GL_EXT_copy_texture.glCopyTexSubImage3DEXT =
+ (GdkGLProc_glCopyTexSubImage3DEXT) gdk_gl_get_proc_address ("glCopyTexSubImage3DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyTexSubImage3DEXT () - %s",
+ (_procs_GL_EXT_copy_texture.glCopyTexSubImage3DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_copy_texture.glCopyTexSubImage3DEXT);
+}
+
+/* Get GL_EXT_copy_texture functions */
+GdkGL_GL_EXT_copy_texture *
+gdk_gl_get_GL_EXT_copy_texture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_copy_texture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glCopyTexImage1DEXT () != NULL);
+ supported &= (gdk_gl_get_glCopyTexImage2DEXT () != NULL);
+ supported &= (gdk_gl_get_glCopyTexSubImage1DEXT () != NULL);
+ supported &= (gdk_gl_get_glCopyTexSubImage2DEXT () != NULL);
+ supported &= (gdk_gl_get_glCopyTexSubImage3DEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_copy_texture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_copy_texture;
+}
+
+/*
+ * GL_EXT_histogram
+ */
+
+static GdkGL_GL_EXT_histogram _procs_GL_EXT_histogram = {
+ (GdkGLProc_glGetHistogramEXT) -1,
+ (GdkGLProc_glGetHistogramParameterfvEXT) -1,
+ (GdkGLProc_glGetHistogramParameterivEXT) -1,
+ (GdkGLProc_glGetMinmaxEXT) -1,
+ (GdkGLProc_glGetMinmaxParameterfvEXT) -1,
+ (GdkGLProc_glGetMinmaxParameterivEXT) -1,
+ (GdkGLProc_glHistogramEXT) -1,
+ (GdkGLProc_glMinmaxEXT) -1,
+ (GdkGLProc_glResetHistogramEXT) -1,
+ (GdkGLProc_glResetMinmaxEXT) -1
+};
+
+/* glGetHistogramEXT */
+GdkGLProc
+gdk_gl_get_glGetHistogramEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_histogram.glGetHistogramEXT == (GdkGLProc_glGetHistogramEXT) -1)
+ _procs_GL_EXT_histogram.glGetHistogramEXT =
+ (GdkGLProc_glGetHistogramEXT) gdk_gl_get_proc_address ("glGetHistogramEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetHistogramEXT () - %s",
+ (_procs_GL_EXT_histogram.glGetHistogramEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_histogram.glGetHistogramEXT);
+}
+
+/* glGetHistogramParameterfvEXT */
+GdkGLProc
+gdk_gl_get_glGetHistogramParameterfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_histogram.glGetHistogramParameterfvEXT == (GdkGLProc_glGetHistogramParameterfvEXT) -1)
+ _procs_GL_EXT_histogram.glGetHistogramParameterfvEXT =
+ (GdkGLProc_glGetHistogramParameterfvEXT) gdk_gl_get_proc_address ("glGetHistogramParameterfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetHistogramParameterfvEXT () - %s",
+ (_procs_GL_EXT_histogram.glGetHistogramParameterfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_histogram.glGetHistogramParameterfvEXT);
+}
+
+/* glGetHistogramParameterivEXT */
+GdkGLProc
+gdk_gl_get_glGetHistogramParameterivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_histogram.glGetHistogramParameterivEXT == (GdkGLProc_glGetHistogramParameterivEXT) -1)
+ _procs_GL_EXT_histogram.glGetHistogramParameterivEXT =
+ (GdkGLProc_glGetHistogramParameterivEXT) gdk_gl_get_proc_address ("glGetHistogramParameterivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetHistogramParameterivEXT () - %s",
+ (_procs_GL_EXT_histogram.glGetHistogramParameterivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_histogram.glGetHistogramParameterivEXT);
+}
+
+/* glGetMinmaxEXT */
+GdkGLProc
+gdk_gl_get_glGetMinmaxEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_histogram.glGetMinmaxEXT == (GdkGLProc_glGetMinmaxEXT) -1)
+ _procs_GL_EXT_histogram.glGetMinmaxEXT =
+ (GdkGLProc_glGetMinmaxEXT) gdk_gl_get_proc_address ("glGetMinmaxEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMinmaxEXT () - %s",
+ (_procs_GL_EXT_histogram.glGetMinmaxEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_histogram.glGetMinmaxEXT);
+}
+
+/* glGetMinmaxParameterfvEXT */
+GdkGLProc
+gdk_gl_get_glGetMinmaxParameterfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_histogram.glGetMinmaxParameterfvEXT == (GdkGLProc_glGetMinmaxParameterfvEXT) -1)
+ _procs_GL_EXT_histogram.glGetMinmaxParameterfvEXT =
+ (GdkGLProc_glGetMinmaxParameterfvEXT) gdk_gl_get_proc_address ("glGetMinmaxParameterfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMinmaxParameterfvEXT () - %s",
+ (_procs_GL_EXT_histogram.glGetMinmaxParameterfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_histogram.glGetMinmaxParameterfvEXT);
+}
+
+/* glGetMinmaxParameterivEXT */
+GdkGLProc
+gdk_gl_get_glGetMinmaxParameterivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_histogram.glGetMinmaxParameterivEXT == (GdkGLProc_glGetMinmaxParameterivEXT) -1)
+ _procs_GL_EXT_histogram.glGetMinmaxParameterivEXT =
+ (GdkGLProc_glGetMinmaxParameterivEXT) gdk_gl_get_proc_address ("glGetMinmaxParameterivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMinmaxParameterivEXT () - %s",
+ (_procs_GL_EXT_histogram.glGetMinmaxParameterivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_histogram.glGetMinmaxParameterivEXT);
+}
+
+/* glHistogramEXT */
+GdkGLProc
+gdk_gl_get_glHistogramEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_histogram.glHistogramEXT == (GdkGLProc_glHistogramEXT) -1)
+ _procs_GL_EXT_histogram.glHistogramEXT =
+ (GdkGLProc_glHistogramEXT) gdk_gl_get_proc_address ("glHistogramEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glHistogramEXT () - %s",
+ (_procs_GL_EXT_histogram.glHistogramEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_histogram.glHistogramEXT);
+}
+
+/* glMinmaxEXT */
+GdkGLProc
+gdk_gl_get_glMinmaxEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_histogram.glMinmaxEXT == (GdkGLProc_glMinmaxEXT) -1)
+ _procs_GL_EXT_histogram.glMinmaxEXT =
+ (GdkGLProc_glMinmaxEXT) gdk_gl_get_proc_address ("glMinmaxEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMinmaxEXT () - %s",
+ (_procs_GL_EXT_histogram.glMinmaxEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_histogram.glMinmaxEXT);
+}
+
+/* glResetHistogramEXT */
+GdkGLProc
+gdk_gl_get_glResetHistogramEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_histogram.glResetHistogramEXT == (GdkGLProc_glResetHistogramEXT) -1)
+ _procs_GL_EXT_histogram.glResetHistogramEXT =
+ (GdkGLProc_glResetHistogramEXT) gdk_gl_get_proc_address ("glResetHistogramEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glResetHistogramEXT () - %s",
+ (_procs_GL_EXT_histogram.glResetHistogramEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_histogram.glResetHistogramEXT);
+}
+
+/* glResetMinmaxEXT */
+GdkGLProc
+gdk_gl_get_glResetMinmaxEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_histogram.glResetMinmaxEXT == (GdkGLProc_glResetMinmaxEXT) -1)
+ _procs_GL_EXT_histogram.glResetMinmaxEXT =
+ (GdkGLProc_glResetMinmaxEXT) gdk_gl_get_proc_address ("glResetMinmaxEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glResetMinmaxEXT () - %s",
+ (_procs_GL_EXT_histogram.glResetMinmaxEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_histogram.glResetMinmaxEXT);
+}
+
+/* Get GL_EXT_histogram functions */
+GdkGL_GL_EXT_histogram *
+gdk_gl_get_GL_EXT_histogram (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_histogram");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glGetHistogramEXT () != NULL);
+ supported &= (gdk_gl_get_glGetHistogramParameterfvEXT () != NULL);
+ supported &= (gdk_gl_get_glGetHistogramParameterivEXT () != NULL);
+ supported &= (gdk_gl_get_glGetMinmaxEXT () != NULL);
+ supported &= (gdk_gl_get_glGetMinmaxParameterfvEXT () != NULL);
+ supported &= (gdk_gl_get_glGetMinmaxParameterivEXT () != NULL);
+ supported &= (gdk_gl_get_glHistogramEXT () != NULL);
+ supported &= (gdk_gl_get_glMinmaxEXT () != NULL);
+ supported &= (gdk_gl_get_glResetHistogramEXT () != NULL);
+ supported &= (gdk_gl_get_glResetMinmaxEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_histogram () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_histogram;
+}
+
+/*
+ * GL_EXT_convolution
+ */
+
+static GdkGL_GL_EXT_convolution _procs_GL_EXT_convolution = {
+ (GdkGLProc_glConvolutionFilter1DEXT) -1,
+ (GdkGLProc_glConvolutionFilter2DEXT) -1,
+ (GdkGLProc_glConvolutionParameterfEXT) -1,
+ (GdkGLProc_glConvolutionParameterfvEXT) -1,
+ (GdkGLProc_glConvolutionParameteriEXT) -1,
+ (GdkGLProc_glConvolutionParameterivEXT) -1,
+ (GdkGLProc_glCopyConvolutionFilter1DEXT) -1,
+ (GdkGLProc_glCopyConvolutionFilter2DEXT) -1,
+ (GdkGLProc_glGetConvolutionFilterEXT) -1,
+ (GdkGLProc_glGetConvolutionParameterfvEXT) -1,
+ (GdkGLProc_glGetConvolutionParameterivEXT) -1,
+ (GdkGLProc_glGetSeparableFilterEXT) -1,
+ (GdkGLProc_glSeparableFilter2DEXT) -1
+};
+
+/* glConvolutionFilter1DEXT */
+GdkGLProc
+gdk_gl_get_glConvolutionFilter1DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glConvolutionFilter1DEXT == (GdkGLProc_glConvolutionFilter1DEXT) -1)
+ _procs_GL_EXT_convolution.glConvolutionFilter1DEXT =
+ (GdkGLProc_glConvolutionFilter1DEXT) gdk_gl_get_proc_address ("glConvolutionFilter1DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionFilter1DEXT () - %s",
+ (_procs_GL_EXT_convolution.glConvolutionFilter1DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glConvolutionFilter1DEXT);
+}
+
+/* glConvolutionFilter2DEXT */
+GdkGLProc
+gdk_gl_get_glConvolutionFilter2DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glConvolutionFilter2DEXT == (GdkGLProc_glConvolutionFilter2DEXT) -1)
+ _procs_GL_EXT_convolution.glConvolutionFilter2DEXT =
+ (GdkGLProc_glConvolutionFilter2DEXT) gdk_gl_get_proc_address ("glConvolutionFilter2DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionFilter2DEXT () - %s",
+ (_procs_GL_EXT_convolution.glConvolutionFilter2DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glConvolutionFilter2DEXT);
+}
+
+/* glConvolutionParameterfEXT */
+GdkGLProc
+gdk_gl_get_glConvolutionParameterfEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glConvolutionParameterfEXT == (GdkGLProc_glConvolutionParameterfEXT) -1)
+ _procs_GL_EXT_convolution.glConvolutionParameterfEXT =
+ (GdkGLProc_glConvolutionParameterfEXT) gdk_gl_get_proc_address ("glConvolutionParameterfEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionParameterfEXT () - %s",
+ (_procs_GL_EXT_convolution.glConvolutionParameterfEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glConvolutionParameterfEXT);
+}
+
+/* glConvolutionParameterfvEXT */
+GdkGLProc
+gdk_gl_get_glConvolutionParameterfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glConvolutionParameterfvEXT == (GdkGLProc_glConvolutionParameterfvEXT) -1)
+ _procs_GL_EXT_convolution.glConvolutionParameterfvEXT =
+ (GdkGLProc_glConvolutionParameterfvEXT) gdk_gl_get_proc_address ("glConvolutionParameterfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionParameterfvEXT () - %s",
+ (_procs_GL_EXT_convolution.glConvolutionParameterfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glConvolutionParameterfvEXT);
+}
+
+/* glConvolutionParameteriEXT */
+GdkGLProc
+gdk_gl_get_glConvolutionParameteriEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glConvolutionParameteriEXT == (GdkGLProc_glConvolutionParameteriEXT) -1)
+ _procs_GL_EXT_convolution.glConvolutionParameteriEXT =
+ (GdkGLProc_glConvolutionParameteriEXT) gdk_gl_get_proc_address ("glConvolutionParameteriEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionParameteriEXT () - %s",
+ (_procs_GL_EXT_convolution.glConvolutionParameteriEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glConvolutionParameteriEXT);
+}
+
+/* glConvolutionParameterivEXT */
+GdkGLProc
+gdk_gl_get_glConvolutionParameterivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glConvolutionParameterivEXT == (GdkGLProc_glConvolutionParameterivEXT) -1)
+ _procs_GL_EXT_convolution.glConvolutionParameterivEXT =
+ (GdkGLProc_glConvolutionParameterivEXT) gdk_gl_get_proc_address ("glConvolutionParameterivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glConvolutionParameterivEXT () - %s",
+ (_procs_GL_EXT_convolution.glConvolutionParameterivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glConvolutionParameterivEXT);
+}
+
+/* glCopyConvolutionFilter1DEXT */
+GdkGLProc
+gdk_gl_get_glCopyConvolutionFilter1DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glCopyConvolutionFilter1DEXT == (GdkGLProc_glCopyConvolutionFilter1DEXT) -1)
+ _procs_GL_EXT_convolution.glCopyConvolutionFilter1DEXT =
+ (GdkGLProc_glCopyConvolutionFilter1DEXT) gdk_gl_get_proc_address ("glCopyConvolutionFilter1DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyConvolutionFilter1DEXT () - %s",
+ (_procs_GL_EXT_convolution.glCopyConvolutionFilter1DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glCopyConvolutionFilter1DEXT);
+}
+
+/* glCopyConvolutionFilter2DEXT */
+GdkGLProc
+gdk_gl_get_glCopyConvolutionFilter2DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glCopyConvolutionFilter2DEXT == (GdkGLProc_glCopyConvolutionFilter2DEXT) -1)
+ _procs_GL_EXT_convolution.glCopyConvolutionFilter2DEXT =
+ (GdkGLProc_glCopyConvolutionFilter2DEXT) gdk_gl_get_proc_address ("glCopyConvolutionFilter2DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyConvolutionFilter2DEXT () - %s",
+ (_procs_GL_EXT_convolution.glCopyConvolutionFilter2DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glCopyConvolutionFilter2DEXT);
+}
+
+/* glGetConvolutionFilterEXT */
+GdkGLProc
+gdk_gl_get_glGetConvolutionFilterEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glGetConvolutionFilterEXT == (GdkGLProc_glGetConvolutionFilterEXT) -1)
+ _procs_GL_EXT_convolution.glGetConvolutionFilterEXT =
+ (GdkGLProc_glGetConvolutionFilterEXT) gdk_gl_get_proc_address ("glGetConvolutionFilterEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetConvolutionFilterEXT () - %s",
+ (_procs_GL_EXT_convolution.glGetConvolutionFilterEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glGetConvolutionFilterEXT);
+}
+
+/* glGetConvolutionParameterfvEXT */
+GdkGLProc
+gdk_gl_get_glGetConvolutionParameterfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glGetConvolutionParameterfvEXT == (GdkGLProc_glGetConvolutionParameterfvEXT) -1)
+ _procs_GL_EXT_convolution.glGetConvolutionParameterfvEXT =
+ (GdkGLProc_glGetConvolutionParameterfvEXT) gdk_gl_get_proc_address ("glGetConvolutionParameterfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetConvolutionParameterfvEXT () - %s",
+ (_procs_GL_EXT_convolution.glGetConvolutionParameterfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glGetConvolutionParameterfvEXT);
+}
+
+/* glGetConvolutionParameterivEXT */
+GdkGLProc
+gdk_gl_get_glGetConvolutionParameterivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glGetConvolutionParameterivEXT == (GdkGLProc_glGetConvolutionParameterivEXT) -1)
+ _procs_GL_EXT_convolution.glGetConvolutionParameterivEXT =
+ (GdkGLProc_glGetConvolutionParameterivEXT) gdk_gl_get_proc_address ("glGetConvolutionParameterivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetConvolutionParameterivEXT () - %s",
+ (_procs_GL_EXT_convolution.glGetConvolutionParameterivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glGetConvolutionParameterivEXT);
+}
+
+/* glGetSeparableFilterEXT */
+GdkGLProc
+gdk_gl_get_glGetSeparableFilterEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glGetSeparableFilterEXT == (GdkGLProc_glGetSeparableFilterEXT) -1)
+ _procs_GL_EXT_convolution.glGetSeparableFilterEXT =
+ (GdkGLProc_glGetSeparableFilterEXT) gdk_gl_get_proc_address ("glGetSeparableFilterEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetSeparableFilterEXT () - %s",
+ (_procs_GL_EXT_convolution.glGetSeparableFilterEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glGetSeparableFilterEXT);
+}
+
+/* glSeparableFilter2DEXT */
+GdkGLProc
+gdk_gl_get_glSeparableFilter2DEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_convolution.glSeparableFilter2DEXT == (GdkGLProc_glSeparableFilter2DEXT) -1)
+ _procs_GL_EXT_convolution.glSeparableFilter2DEXT =
+ (GdkGLProc_glSeparableFilter2DEXT) gdk_gl_get_proc_address ("glSeparableFilter2DEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSeparableFilter2DEXT () - %s",
+ (_procs_GL_EXT_convolution.glSeparableFilter2DEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_convolution.glSeparableFilter2DEXT);
+}
+
+/* Get GL_EXT_convolution functions */
+GdkGL_GL_EXT_convolution *
+gdk_gl_get_GL_EXT_convolution (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_convolution");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glConvolutionFilter1DEXT () != NULL);
+ supported &= (gdk_gl_get_glConvolutionFilter2DEXT () != NULL);
+ supported &= (gdk_gl_get_glConvolutionParameterfEXT () != NULL);
+ supported &= (gdk_gl_get_glConvolutionParameterfvEXT () != NULL);
+ supported &= (gdk_gl_get_glConvolutionParameteriEXT () != NULL);
+ supported &= (gdk_gl_get_glConvolutionParameterivEXT () != NULL);
+ supported &= (gdk_gl_get_glCopyConvolutionFilter1DEXT () != NULL);
+ supported &= (gdk_gl_get_glCopyConvolutionFilter2DEXT () != NULL);
+ supported &= (gdk_gl_get_glGetConvolutionFilterEXT () != NULL);
+ supported &= (gdk_gl_get_glGetConvolutionParameterfvEXT () != NULL);
+ supported &= (gdk_gl_get_glGetConvolutionParameterivEXT () != NULL);
+ supported &= (gdk_gl_get_glGetSeparableFilterEXT () != NULL);
+ supported &= (gdk_gl_get_glSeparableFilter2DEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_convolution () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_convolution;
+}
+
+/*
+ * GL_SGI_color_table
+ */
+
+static GdkGL_GL_SGI_color_table _procs_GL_SGI_color_table = {
+ (GdkGLProc_glColorTableSGI) -1,
+ (GdkGLProc_glColorTableParameterfvSGI) -1,
+ (GdkGLProc_glColorTableParameterivSGI) -1,
+ (GdkGLProc_glCopyColorTableSGI) -1,
+ (GdkGLProc_glGetColorTableSGI) -1,
+ (GdkGLProc_glGetColorTableParameterfvSGI) -1,
+ (GdkGLProc_glGetColorTableParameterivSGI) -1
+};
+
+/* glColorTableSGI */
+GdkGLProc
+gdk_gl_get_glColorTableSGI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGI_color_table.glColorTableSGI == (GdkGLProc_glColorTableSGI) -1)
+ _procs_GL_SGI_color_table.glColorTableSGI =
+ (GdkGLProc_glColorTableSGI) gdk_gl_get_proc_address ("glColorTableSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorTableSGI () - %s",
+ (_procs_GL_SGI_color_table.glColorTableSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGI_color_table.glColorTableSGI);
+}
+
+/* glColorTableParameterfvSGI */
+GdkGLProc
+gdk_gl_get_glColorTableParameterfvSGI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGI_color_table.glColorTableParameterfvSGI == (GdkGLProc_glColorTableParameterfvSGI) -1)
+ _procs_GL_SGI_color_table.glColorTableParameterfvSGI =
+ (GdkGLProc_glColorTableParameterfvSGI) gdk_gl_get_proc_address ("glColorTableParameterfvSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorTableParameterfvSGI () - %s",
+ (_procs_GL_SGI_color_table.glColorTableParameterfvSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGI_color_table.glColorTableParameterfvSGI);
+}
+
+/* glColorTableParameterivSGI */
+GdkGLProc
+gdk_gl_get_glColorTableParameterivSGI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGI_color_table.glColorTableParameterivSGI == (GdkGLProc_glColorTableParameterivSGI) -1)
+ _procs_GL_SGI_color_table.glColorTableParameterivSGI =
+ (GdkGLProc_glColorTableParameterivSGI) gdk_gl_get_proc_address ("glColorTableParameterivSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorTableParameterivSGI () - %s",
+ (_procs_GL_SGI_color_table.glColorTableParameterivSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGI_color_table.glColorTableParameterivSGI);
+}
+
+/* glCopyColorTableSGI */
+GdkGLProc
+gdk_gl_get_glCopyColorTableSGI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGI_color_table.glCopyColorTableSGI == (GdkGLProc_glCopyColorTableSGI) -1)
+ _procs_GL_SGI_color_table.glCopyColorTableSGI =
+ (GdkGLProc_glCopyColorTableSGI) gdk_gl_get_proc_address ("glCopyColorTableSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyColorTableSGI () - %s",
+ (_procs_GL_SGI_color_table.glCopyColorTableSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGI_color_table.glCopyColorTableSGI);
+}
+
+/* glGetColorTableSGI */
+GdkGLProc
+gdk_gl_get_glGetColorTableSGI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGI_color_table.glGetColorTableSGI == (GdkGLProc_glGetColorTableSGI) -1)
+ _procs_GL_SGI_color_table.glGetColorTableSGI =
+ (GdkGLProc_glGetColorTableSGI) gdk_gl_get_proc_address ("glGetColorTableSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetColorTableSGI () - %s",
+ (_procs_GL_SGI_color_table.glGetColorTableSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGI_color_table.glGetColorTableSGI);
+}
+
+/* glGetColorTableParameterfvSGI */
+GdkGLProc
+gdk_gl_get_glGetColorTableParameterfvSGI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGI_color_table.glGetColorTableParameterfvSGI == (GdkGLProc_glGetColorTableParameterfvSGI) -1)
+ _procs_GL_SGI_color_table.glGetColorTableParameterfvSGI =
+ (GdkGLProc_glGetColorTableParameterfvSGI) gdk_gl_get_proc_address ("glGetColorTableParameterfvSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetColorTableParameterfvSGI () - %s",
+ (_procs_GL_SGI_color_table.glGetColorTableParameterfvSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGI_color_table.glGetColorTableParameterfvSGI);
+}
+
+/* glGetColorTableParameterivSGI */
+GdkGLProc
+gdk_gl_get_glGetColorTableParameterivSGI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGI_color_table.glGetColorTableParameterivSGI == (GdkGLProc_glGetColorTableParameterivSGI) -1)
+ _procs_GL_SGI_color_table.glGetColorTableParameterivSGI =
+ (GdkGLProc_glGetColorTableParameterivSGI) gdk_gl_get_proc_address ("glGetColorTableParameterivSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetColorTableParameterivSGI () - %s",
+ (_procs_GL_SGI_color_table.glGetColorTableParameterivSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGI_color_table.glGetColorTableParameterivSGI);
+}
+
+/* Get GL_SGI_color_table functions */
+GdkGL_GL_SGI_color_table *
+gdk_gl_get_GL_SGI_color_table (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGI_color_table");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glColorTableSGI () != NULL);
+ supported &= (gdk_gl_get_glColorTableParameterfvSGI () != NULL);
+ supported &= (gdk_gl_get_glColorTableParameterivSGI () != NULL);
+ supported &= (gdk_gl_get_glCopyColorTableSGI () != NULL);
+ supported &= (gdk_gl_get_glGetColorTableSGI () != NULL);
+ supported &= (gdk_gl_get_glGetColorTableParameterfvSGI () != NULL);
+ supported &= (gdk_gl_get_glGetColorTableParameterivSGI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGI_color_table () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGI_color_table;
+}
+
+/*
+ * GL_SGIX_pixel_texture
+ */
+
+static GdkGL_GL_SGIX_pixel_texture _procs_GL_SGIX_pixel_texture = {
+ (GdkGLProc_glPixelTexGenSGIX) -1
+};
+
+/* glPixelTexGenSGIX */
+GdkGLProc
+gdk_gl_get_glPixelTexGenSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_pixel_texture.glPixelTexGenSGIX == (GdkGLProc_glPixelTexGenSGIX) -1)
+ _procs_GL_SGIX_pixel_texture.glPixelTexGenSGIX =
+ (GdkGLProc_glPixelTexGenSGIX) gdk_gl_get_proc_address ("glPixelTexGenSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPixelTexGenSGIX () - %s",
+ (_procs_GL_SGIX_pixel_texture.glPixelTexGenSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_pixel_texture.glPixelTexGenSGIX);
+}
+
+/* Get GL_SGIX_pixel_texture functions */
+GdkGL_GL_SGIX_pixel_texture *
+gdk_gl_get_GL_SGIX_pixel_texture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_pixel_texture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPixelTexGenSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_pixel_texture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_pixel_texture;
+}
+
+/*
+ * GL_SGIS_pixel_texture
+ */
+
+static GdkGL_GL_SGIS_pixel_texture _procs_GL_SGIS_pixel_texture = {
+ (GdkGLProc_glPixelTexGenParameteriSGIS) -1,
+ (GdkGLProc_glPixelTexGenParameterivSGIS) -1,
+ (GdkGLProc_glPixelTexGenParameterfSGIS) -1,
+ (GdkGLProc_glPixelTexGenParameterfvSGIS) -1,
+ (GdkGLProc_glGetPixelTexGenParameterivSGIS) -1,
+ (GdkGLProc_glGetPixelTexGenParameterfvSGIS) -1
+};
+
+/* glPixelTexGenParameteriSGIS */
+GdkGLProc
+gdk_gl_get_glPixelTexGenParameteriSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameteriSGIS == (GdkGLProc_glPixelTexGenParameteriSGIS) -1)
+ _procs_GL_SGIS_pixel_texture.glPixelTexGenParameteriSGIS =
+ (GdkGLProc_glPixelTexGenParameteriSGIS) gdk_gl_get_proc_address ("glPixelTexGenParameteriSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPixelTexGenParameteriSGIS () - %s",
+ (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameteriSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameteriSGIS);
+}
+
+/* glPixelTexGenParameterivSGIS */
+GdkGLProc
+gdk_gl_get_glPixelTexGenParameterivSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameterivSGIS == (GdkGLProc_glPixelTexGenParameterivSGIS) -1)
+ _procs_GL_SGIS_pixel_texture.glPixelTexGenParameterivSGIS =
+ (GdkGLProc_glPixelTexGenParameterivSGIS) gdk_gl_get_proc_address ("glPixelTexGenParameterivSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPixelTexGenParameterivSGIS () - %s",
+ (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameterivSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameterivSGIS);
+}
+
+/* glPixelTexGenParameterfSGIS */
+GdkGLProc
+gdk_gl_get_glPixelTexGenParameterfSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameterfSGIS == (GdkGLProc_glPixelTexGenParameterfSGIS) -1)
+ _procs_GL_SGIS_pixel_texture.glPixelTexGenParameterfSGIS =
+ (GdkGLProc_glPixelTexGenParameterfSGIS) gdk_gl_get_proc_address ("glPixelTexGenParameterfSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPixelTexGenParameterfSGIS () - %s",
+ (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameterfSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameterfSGIS);
+}
+
+/* glPixelTexGenParameterfvSGIS */
+GdkGLProc
+gdk_gl_get_glPixelTexGenParameterfvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameterfvSGIS == (GdkGLProc_glPixelTexGenParameterfvSGIS) -1)
+ _procs_GL_SGIS_pixel_texture.glPixelTexGenParameterfvSGIS =
+ (GdkGLProc_glPixelTexGenParameterfvSGIS) gdk_gl_get_proc_address ("glPixelTexGenParameterfvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPixelTexGenParameterfvSGIS () - %s",
+ (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameterfvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_pixel_texture.glPixelTexGenParameterfvSGIS);
+}
+
+/* glGetPixelTexGenParameterivSGIS */
+GdkGLProc
+gdk_gl_get_glGetPixelTexGenParameterivSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_pixel_texture.glGetPixelTexGenParameterivSGIS == (GdkGLProc_glGetPixelTexGenParameterivSGIS) -1)
+ _procs_GL_SGIS_pixel_texture.glGetPixelTexGenParameterivSGIS =
+ (GdkGLProc_glGetPixelTexGenParameterivSGIS) gdk_gl_get_proc_address ("glGetPixelTexGenParameterivSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetPixelTexGenParameterivSGIS () - %s",
+ (_procs_GL_SGIS_pixel_texture.glGetPixelTexGenParameterivSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_pixel_texture.glGetPixelTexGenParameterivSGIS);
+}
+
+/* glGetPixelTexGenParameterfvSGIS */
+GdkGLProc
+gdk_gl_get_glGetPixelTexGenParameterfvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_pixel_texture.glGetPixelTexGenParameterfvSGIS == (GdkGLProc_glGetPixelTexGenParameterfvSGIS) -1)
+ _procs_GL_SGIS_pixel_texture.glGetPixelTexGenParameterfvSGIS =
+ (GdkGLProc_glGetPixelTexGenParameterfvSGIS) gdk_gl_get_proc_address ("glGetPixelTexGenParameterfvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetPixelTexGenParameterfvSGIS () - %s",
+ (_procs_GL_SGIS_pixel_texture.glGetPixelTexGenParameterfvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_pixel_texture.glGetPixelTexGenParameterfvSGIS);
+}
+
+/* Get GL_SGIS_pixel_texture functions */
+GdkGL_GL_SGIS_pixel_texture *
+gdk_gl_get_GL_SGIS_pixel_texture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIS_pixel_texture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPixelTexGenParameteriSGIS () != NULL);
+ supported &= (gdk_gl_get_glPixelTexGenParameterivSGIS () != NULL);
+ supported &= (gdk_gl_get_glPixelTexGenParameterfSGIS () != NULL);
+ supported &= (gdk_gl_get_glPixelTexGenParameterfvSGIS () != NULL);
+ supported &= (gdk_gl_get_glGetPixelTexGenParameterivSGIS () != NULL);
+ supported &= (gdk_gl_get_glGetPixelTexGenParameterfvSGIS () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIS_pixel_texture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIS_pixel_texture;
+}
+
+/*
+ * GL_SGIS_texture4D
+ */
+
+static GdkGL_GL_SGIS_texture4D _procs_GL_SGIS_texture4D = {
+ (GdkGLProc_glTexImage4DSGIS) -1,
+ (GdkGLProc_glTexSubImage4DSGIS) -1
+};
+
+/* glTexImage4DSGIS */
+GdkGLProc
+gdk_gl_get_glTexImage4DSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_texture4D.glTexImage4DSGIS == (GdkGLProc_glTexImage4DSGIS) -1)
+ _procs_GL_SGIS_texture4D.glTexImage4DSGIS =
+ (GdkGLProc_glTexImage4DSGIS) gdk_gl_get_proc_address ("glTexImage4DSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexImage4DSGIS () - %s",
+ (_procs_GL_SGIS_texture4D.glTexImage4DSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_texture4D.glTexImage4DSGIS);
+}
+
+/* glTexSubImage4DSGIS */
+GdkGLProc
+gdk_gl_get_glTexSubImage4DSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_texture4D.glTexSubImage4DSGIS == (GdkGLProc_glTexSubImage4DSGIS) -1)
+ _procs_GL_SGIS_texture4D.glTexSubImage4DSGIS =
+ (GdkGLProc_glTexSubImage4DSGIS) gdk_gl_get_proc_address ("glTexSubImage4DSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexSubImage4DSGIS () - %s",
+ (_procs_GL_SGIS_texture4D.glTexSubImage4DSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_texture4D.glTexSubImage4DSGIS);
+}
+
+/* Get GL_SGIS_texture4D functions */
+GdkGL_GL_SGIS_texture4D *
+gdk_gl_get_GL_SGIS_texture4D (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIS_texture4D");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTexImage4DSGIS () != NULL);
+ supported &= (gdk_gl_get_glTexSubImage4DSGIS () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIS_texture4D () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIS_texture4D;
+}
+
+/*
+ * GL_EXT_texture_object
+ */
+
+static GdkGL_GL_EXT_texture_object _procs_GL_EXT_texture_object = {
+ (GdkGLProc_glAreTexturesResidentEXT) -1,
+ (GdkGLProc_glBindTextureEXT) -1,
+ (GdkGLProc_glDeleteTexturesEXT) -1,
+ (GdkGLProc_glGenTexturesEXT) -1,
+ (GdkGLProc_glIsTextureEXT) -1,
+ (GdkGLProc_glPrioritizeTexturesEXT) -1
+};
+
+/* glAreTexturesResidentEXT */
+GdkGLProc
+gdk_gl_get_glAreTexturesResidentEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_texture_object.glAreTexturesResidentEXT == (GdkGLProc_glAreTexturesResidentEXT) -1)
+ _procs_GL_EXT_texture_object.glAreTexturesResidentEXT =
+ (GdkGLProc_glAreTexturesResidentEXT) gdk_gl_get_proc_address ("glAreTexturesResidentEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glAreTexturesResidentEXT () - %s",
+ (_procs_GL_EXT_texture_object.glAreTexturesResidentEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_texture_object.glAreTexturesResidentEXT);
+}
+
+/* glBindTextureEXT */
+GdkGLProc
+gdk_gl_get_glBindTextureEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_texture_object.glBindTextureEXT == (GdkGLProc_glBindTextureEXT) -1)
+ _procs_GL_EXT_texture_object.glBindTextureEXT =
+ (GdkGLProc_glBindTextureEXT) gdk_gl_get_proc_address ("glBindTextureEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindTextureEXT () - %s",
+ (_procs_GL_EXT_texture_object.glBindTextureEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_texture_object.glBindTextureEXT);
+}
+
+/* glDeleteTexturesEXT */
+GdkGLProc
+gdk_gl_get_glDeleteTexturesEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_texture_object.glDeleteTexturesEXT == (GdkGLProc_glDeleteTexturesEXT) -1)
+ _procs_GL_EXT_texture_object.glDeleteTexturesEXT =
+ (GdkGLProc_glDeleteTexturesEXT) gdk_gl_get_proc_address ("glDeleteTexturesEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteTexturesEXT () - %s",
+ (_procs_GL_EXT_texture_object.glDeleteTexturesEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_texture_object.glDeleteTexturesEXT);
+}
+
+/* glGenTexturesEXT */
+GdkGLProc
+gdk_gl_get_glGenTexturesEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_texture_object.glGenTexturesEXT == (GdkGLProc_glGenTexturesEXT) -1)
+ _procs_GL_EXT_texture_object.glGenTexturesEXT =
+ (GdkGLProc_glGenTexturesEXT) gdk_gl_get_proc_address ("glGenTexturesEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenTexturesEXT () - %s",
+ (_procs_GL_EXT_texture_object.glGenTexturesEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_texture_object.glGenTexturesEXT);
+}
+
+/* glIsTextureEXT */
+GdkGLProc
+gdk_gl_get_glIsTextureEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_texture_object.glIsTextureEXT == (GdkGLProc_glIsTextureEXT) -1)
+ _procs_GL_EXT_texture_object.glIsTextureEXT =
+ (GdkGLProc_glIsTextureEXT) gdk_gl_get_proc_address ("glIsTextureEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsTextureEXT () - %s",
+ (_procs_GL_EXT_texture_object.glIsTextureEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_texture_object.glIsTextureEXT);
+}
+
+/* glPrioritizeTexturesEXT */
+GdkGLProc
+gdk_gl_get_glPrioritizeTexturesEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_texture_object.glPrioritizeTexturesEXT == (GdkGLProc_glPrioritizeTexturesEXT) -1)
+ _procs_GL_EXT_texture_object.glPrioritizeTexturesEXT =
+ (GdkGLProc_glPrioritizeTexturesEXT) gdk_gl_get_proc_address ("glPrioritizeTexturesEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPrioritizeTexturesEXT () - %s",
+ (_procs_GL_EXT_texture_object.glPrioritizeTexturesEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_texture_object.glPrioritizeTexturesEXT);
+}
+
+/* Get GL_EXT_texture_object functions */
+GdkGL_GL_EXT_texture_object *
+gdk_gl_get_GL_EXT_texture_object (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_texture_object");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glAreTexturesResidentEXT () != NULL);
+ supported &= (gdk_gl_get_glBindTextureEXT () != NULL);
+ supported &= (gdk_gl_get_glDeleteTexturesEXT () != NULL);
+ supported &= (gdk_gl_get_glGenTexturesEXT () != NULL);
+ supported &= (gdk_gl_get_glIsTextureEXT () != NULL);
+ supported &= (gdk_gl_get_glPrioritizeTexturesEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_texture_object () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_texture_object;
+}
+
+/*
+ * GL_SGIS_detail_texture
+ */
+
+static GdkGL_GL_SGIS_detail_texture _procs_GL_SGIS_detail_texture = {
+ (GdkGLProc_glDetailTexFuncSGIS) -1,
+ (GdkGLProc_glGetDetailTexFuncSGIS) -1
+};
+
+/* glDetailTexFuncSGIS */
+GdkGLProc
+gdk_gl_get_glDetailTexFuncSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_detail_texture.glDetailTexFuncSGIS == (GdkGLProc_glDetailTexFuncSGIS) -1)
+ _procs_GL_SGIS_detail_texture.glDetailTexFuncSGIS =
+ (GdkGLProc_glDetailTexFuncSGIS) gdk_gl_get_proc_address ("glDetailTexFuncSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDetailTexFuncSGIS () - %s",
+ (_procs_GL_SGIS_detail_texture.glDetailTexFuncSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_detail_texture.glDetailTexFuncSGIS);
+}
+
+/* glGetDetailTexFuncSGIS */
+GdkGLProc
+gdk_gl_get_glGetDetailTexFuncSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_detail_texture.glGetDetailTexFuncSGIS == (GdkGLProc_glGetDetailTexFuncSGIS) -1)
+ _procs_GL_SGIS_detail_texture.glGetDetailTexFuncSGIS =
+ (GdkGLProc_glGetDetailTexFuncSGIS) gdk_gl_get_proc_address ("glGetDetailTexFuncSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetDetailTexFuncSGIS () - %s",
+ (_procs_GL_SGIS_detail_texture.glGetDetailTexFuncSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_detail_texture.glGetDetailTexFuncSGIS);
+}
+
+/* Get GL_SGIS_detail_texture functions */
+GdkGL_GL_SGIS_detail_texture *
+gdk_gl_get_GL_SGIS_detail_texture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIS_detail_texture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glDetailTexFuncSGIS () != NULL);
+ supported &= (gdk_gl_get_glGetDetailTexFuncSGIS () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIS_detail_texture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIS_detail_texture;
+}
+
+/*
+ * GL_SGIS_sharpen_texture
+ */
+
+static GdkGL_GL_SGIS_sharpen_texture _procs_GL_SGIS_sharpen_texture = {
+ (GdkGLProc_glSharpenTexFuncSGIS) -1,
+ (GdkGLProc_glGetSharpenTexFuncSGIS) -1
+};
+
+/* glSharpenTexFuncSGIS */
+GdkGLProc
+gdk_gl_get_glSharpenTexFuncSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_sharpen_texture.glSharpenTexFuncSGIS == (GdkGLProc_glSharpenTexFuncSGIS) -1)
+ _procs_GL_SGIS_sharpen_texture.glSharpenTexFuncSGIS =
+ (GdkGLProc_glSharpenTexFuncSGIS) gdk_gl_get_proc_address ("glSharpenTexFuncSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSharpenTexFuncSGIS () - %s",
+ (_procs_GL_SGIS_sharpen_texture.glSharpenTexFuncSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_sharpen_texture.glSharpenTexFuncSGIS);
+}
+
+/* glGetSharpenTexFuncSGIS */
+GdkGLProc
+gdk_gl_get_glGetSharpenTexFuncSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_sharpen_texture.glGetSharpenTexFuncSGIS == (GdkGLProc_glGetSharpenTexFuncSGIS) -1)
+ _procs_GL_SGIS_sharpen_texture.glGetSharpenTexFuncSGIS =
+ (GdkGLProc_glGetSharpenTexFuncSGIS) gdk_gl_get_proc_address ("glGetSharpenTexFuncSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetSharpenTexFuncSGIS () - %s",
+ (_procs_GL_SGIS_sharpen_texture.glGetSharpenTexFuncSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_sharpen_texture.glGetSharpenTexFuncSGIS);
+}
+
+/* Get GL_SGIS_sharpen_texture functions */
+GdkGL_GL_SGIS_sharpen_texture *
+gdk_gl_get_GL_SGIS_sharpen_texture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIS_sharpen_texture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glSharpenTexFuncSGIS () != NULL);
+ supported &= (gdk_gl_get_glGetSharpenTexFuncSGIS () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIS_sharpen_texture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIS_sharpen_texture;
+}
+
+/*
+ * GL_SGIS_multisample
+ */
+
+static GdkGL_GL_SGIS_multisample _procs_GL_SGIS_multisample = {
+ (GdkGLProc_glSampleMaskSGIS) -1,
+ (GdkGLProc_glSamplePatternSGIS) -1
+};
+
+/* glSampleMaskSGIS */
+GdkGLProc
+gdk_gl_get_glSampleMaskSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multisample.glSampleMaskSGIS == (GdkGLProc_glSampleMaskSGIS) -1)
+ _procs_GL_SGIS_multisample.glSampleMaskSGIS =
+ (GdkGLProc_glSampleMaskSGIS) gdk_gl_get_proc_address ("glSampleMaskSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSampleMaskSGIS () - %s",
+ (_procs_GL_SGIS_multisample.glSampleMaskSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multisample.glSampleMaskSGIS);
+}
+
+/* glSamplePatternSGIS */
+GdkGLProc
+gdk_gl_get_glSamplePatternSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multisample.glSamplePatternSGIS == (GdkGLProc_glSamplePatternSGIS) -1)
+ _procs_GL_SGIS_multisample.glSamplePatternSGIS =
+ (GdkGLProc_glSamplePatternSGIS) gdk_gl_get_proc_address ("glSamplePatternSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSamplePatternSGIS () - %s",
+ (_procs_GL_SGIS_multisample.glSamplePatternSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multisample.glSamplePatternSGIS);
+}
+
+/* Get GL_SGIS_multisample functions */
+GdkGL_GL_SGIS_multisample *
+gdk_gl_get_GL_SGIS_multisample (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIS_multisample");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glSampleMaskSGIS () != NULL);
+ supported &= (gdk_gl_get_glSamplePatternSGIS () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIS_multisample () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIS_multisample;
+}
+
+/*
+ * GL_EXT_vertex_array
+ */
+
+static GdkGL_GL_EXT_vertex_array _procs_GL_EXT_vertex_array = {
+ (GdkGLProc_glArrayElementEXT) -1,
+ (GdkGLProc_glColorPointerEXT) -1,
+ (GdkGLProc_glDrawArraysEXT) -1,
+ (GdkGLProc_glEdgeFlagPointerEXT) -1,
+ (GdkGLProc_glGetPointervEXT) -1,
+ (GdkGLProc_glIndexPointerEXT) -1,
+ (GdkGLProc_glNormalPointerEXT) -1,
+ (GdkGLProc_glTexCoordPointerEXT) -1,
+ (GdkGLProc_glVertexPointerEXT) -1
+};
+
+/* glArrayElementEXT */
+GdkGLProc
+gdk_gl_get_glArrayElementEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_array.glArrayElementEXT == (GdkGLProc_glArrayElementEXT) -1)
+ _procs_GL_EXT_vertex_array.glArrayElementEXT =
+ (GdkGLProc_glArrayElementEXT) gdk_gl_get_proc_address ("glArrayElementEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glArrayElementEXT () - %s",
+ (_procs_GL_EXT_vertex_array.glArrayElementEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_array.glArrayElementEXT);
+}
+
+/* glColorPointerEXT */
+GdkGLProc
+gdk_gl_get_glColorPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_array.glColorPointerEXT == (GdkGLProc_glColorPointerEXT) -1)
+ _procs_GL_EXT_vertex_array.glColorPointerEXT =
+ (GdkGLProc_glColorPointerEXT) gdk_gl_get_proc_address ("glColorPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorPointerEXT () - %s",
+ (_procs_GL_EXT_vertex_array.glColorPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_array.glColorPointerEXT);
+}
+
+/* glDrawArraysEXT */
+GdkGLProc
+gdk_gl_get_glDrawArraysEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_array.glDrawArraysEXT == (GdkGLProc_glDrawArraysEXT) -1)
+ _procs_GL_EXT_vertex_array.glDrawArraysEXT =
+ (GdkGLProc_glDrawArraysEXT) gdk_gl_get_proc_address ("glDrawArraysEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawArraysEXT () - %s",
+ (_procs_GL_EXT_vertex_array.glDrawArraysEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_array.glDrawArraysEXT);
+}
+
+/* glEdgeFlagPointerEXT */
+GdkGLProc
+gdk_gl_get_glEdgeFlagPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_array.glEdgeFlagPointerEXT == (GdkGLProc_glEdgeFlagPointerEXT) -1)
+ _procs_GL_EXT_vertex_array.glEdgeFlagPointerEXT =
+ (GdkGLProc_glEdgeFlagPointerEXT) gdk_gl_get_proc_address ("glEdgeFlagPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glEdgeFlagPointerEXT () - %s",
+ (_procs_GL_EXT_vertex_array.glEdgeFlagPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_array.glEdgeFlagPointerEXT);
+}
+
+/* glGetPointervEXT */
+GdkGLProc
+gdk_gl_get_glGetPointervEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_array.glGetPointervEXT == (GdkGLProc_glGetPointervEXT) -1)
+ _procs_GL_EXT_vertex_array.glGetPointervEXT =
+ (GdkGLProc_glGetPointervEXT) gdk_gl_get_proc_address ("glGetPointervEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetPointervEXT () - %s",
+ (_procs_GL_EXT_vertex_array.glGetPointervEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_array.glGetPointervEXT);
+}
+
+/* glIndexPointerEXT */
+GdkGLProc
+gdk_gl_get_glIndexPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_array.glIndexPointerEXT == (GdkGLProc_glIndexPointerEXT) -1)
+ _procs_GL_EXT_vertex_array.glIndexPointerEXT =
+ (GdkGLProc_glIndexPointerEXT) gdk_gl_get_proc_address ("glIndexPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIndexPointerEXT () - %s",
+ (_procs_GL_EXT_vertex_array.glIndexPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_array.glIndexPointerEXT);
+}
+
+/* glNormalPointerEXT */
+GdkGLProc
+gdk_gl_get_glNormalPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_array.glNormalPointerEXT == (GdkGLProc_glNormalPointerEXT) -1)
+ _procs_GL_EXT_vertex_array.glNormalPointerEXT =
+ (GdkGLProc_glNormalPointerEXT) gdk_gl_get_proc_address ("glNormalPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalPointerEXT () - %s",
+ (_procs_GL_EXT_vertex_array.glNormalPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_array.glNormalPointerEXT);
+}
+
+/* glTexCoordPointerEXT */
+GdkGLProc
+gdk_gl_get_glTexCoordPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_array.glTexCoordPointerEXT == (GdkGLProc_glTexCoordPointerEXT) -1)
+ _procs_GL_EXT_vertex_array.glTexCoordPointerEXT =
+ (GdkGLProc_glTexCoordPointerEXT) gdk_gl_get_proc_address ("glTexCoordPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoordPointerEXT () - %s",
+ (_procs_GL_EXT_vertex_array.glTexCoordPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_array.glTexCoordPointerEXT);
+}
+
+/* glVertexPointerEXT */
+GdkGLProc
+gdk_gl_get_glVertexPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_array.glVertexPointerEXT == (GdkGLProc_glVertexPointerEXT) -1)
+ _procs_GL_EXT_vertex_array.glVertexPointerEXT =
+ (GdkGLProc_glVertexPointerEXT) gdk_gl_get_proc_address ("glVertexPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexPointerEXT () - %s",
+ (_procs_GL_EXT_vertex_array.glVertexPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_array.glVertexPointerEXT);
+}
+
+/* Get GL_EXT_vertex_array functions */
+GdkGL_GL_EXT_vertex_array *
+gdk_gl_get_GL_EXT_vertex_array (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_vertex_array");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glArrayElementEXT () != NULL);
+ supported &= (gdk_gl_get_glColorPointerEXT () != NULL);
+ supported &= (gdk_gl_get_glDrawArraysEXT () != NULL);
+ supported &= (gdk_gl_get_glEdgeFlagPointerEXT () != NULL);
+ supported &= (gdk_gl_get_glGetPointervEXT () != NULL);
+ supported &= (gdk_gl_get_glIndexPointerEXT () != NULL);
+ supported &= (gdk_gl_get_glNormalPointerEXT () != NULL);
+ supported &= (gdk_gl_get_glTexCoordPointerEXT () != NULL);
+ supported &= (gdk_gl_get_glVertexPointerEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_vertex_array () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_vertex_array;
+}
+
+/*
+ * GL_EXT_blend_minmax
+ */
+
+static GdkGL_GL_EXT_blend_minmax _procs_GL_EXT_blend_minmax = {
+ (GdkGLProc_glBlendEquationEXT) -1
+};
+
+/* glBlendEquationEXT */
+GdkGLProc
+gdk_gl_get_glBlendEquationEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_blend_minmax.glBlendEquationEXT == (GdkGLProc_glBlendEquationEXT) -1)
+ _procs_GL_EXT_blend_minmax.glBlendEquationEXT =
+ (GdkGLProc_glBlendEquationEXT) gdk_gl_get_proc_address ("glBlendEquationEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBlendEquationEXT () - %s",
+ (_procs_GL_EXT_blend_minmax.glBlendEquationEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_blend_minmax.glBlendEquationEXT);
+}
+
+/* Get GL_EXT_blend_minmax functions */
+GdkGL_GL_EXT_blend_minmax *
+gdk_gl_get_GL_EXT_blend_minmax (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_blend_minmax");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glBlendEquationEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_blend_minmax () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_blend_minmax;
+}
+
+/*
+ * GL_SGIX_sprite
+ */
+
+static GdkGL_GL_SGIX_sprite _procs_GL_SGIX_sprite = {
+ (GdkGLProc_glSpriteParameterfSGIX) -1,
+ (GdkGLProc_glSpriteParameterfvSGIX) -1,
+ (GdkGLProc_glSpriteParameteriSGIX) -1,
+ (GdkGLProc_glSpriteParameterivSGIX) -1
+};
+
+/* glSpriteParameterfSGIX */
+GdkGLProc
+gdk_gl_get_glSpriteParameterfSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_sprite.glSpriteParameterfSGIX == (GdkGLProc_glSpriteParameterfSGIX) -1)
+ _procs_GL_SGIX_sprite.glSpriteParameterfSGIX =
+ (GdkGLProc_glSpriteParameterfSGIX) gdk_gl_get_proc_address ("glSpriteParameterfSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSpriteParameterfSGIX () - %s",
+ (_procs_GL_SGIX_sprite.glSpriteParameterfSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_sprite.glSpriteParameterfSGIX);
+}
+
+/* glSpriteParameterfvSGIX */
+GdkGLProc
+gdk_gl_get_glSpriteParameterfvSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_sprite.glSpriteParameterfvSGIX == (GdkGLProc_glSpriteParameterfvSGIX) -1)
+ _procs_GL_SGIX_sprite.glSpriteParameterfvSGIX =
+ (GdkGLProc_glSpriteParameterfvSGIX) gdk_gl_get_proc_address ("glSpriteParameterfvSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSpriteParameterfvSGIX () - %s",
+ (_procs_GL_SGIX_sprite.glSpriteParameterfvSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_sprite.glSpriteParameterfvSGIX);
+}
+
+/* glSpriteParameteriSGIX */
+GdkGLProc
+gdk_gl_get_glSpriteParameteriSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_sprite.glSpriteParameteriSGIX == (GdkGLProc_glSpriteParameteriSGIX) -1)
+ _procs_GL_SGIX_sprite.glSpriteParameteriSGIX =
+ (GdkGLProc_glSpriteParameteriSGIX) gdk_gl_get_proc_address ("glSpriteParameteriSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSpriteParameteriSGIX () - %s",
+ (_procs_GL_SGIX_sprite.glSpriteParameteriSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_sprite.glSpriteParameteriSGIX);
+}
+
+/* glSpriteParameterivSGIX */
+GdkGLProc
+gdk_gl_get_glSpriteParameterivSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_sprite.glSpriteParameterivSGIX == (GdkGLProc_glSpriteParameterivSGIX) -1)
+ _procs_GL_SGIX_sprite.glSpriteParameterivSGIX =
+ (GdkGLProc_glSpriteParameterivSGIX) gdk_gl_get_proc_address ("glSpriteParameterivSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSpriteParameterivSGIX () - %s",
+ (_procs_GL_SGIX_sprite.glSpriteParameterivSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_sprite.glSpriteParameterivSGIX);
+}
+
+/* Get GL_SGIX_sprite functions */
+GdkGL_GL_SGIX_sprite *
+gdk_gl_get_GL_SGIX_sprite (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_sprite");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glSpriteParameterfSGIX () != NULL);
+ supported &= (gdk_gl_get_glSpriteParameterfvSGIX () != NULL);
+ supported &= (gdk_gl_get_glSpriteParameteriSGIX () != NULL);
+ supported &= (gdk_gl_get_glSpriteParameterivSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_sprite () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_sprite;
+}
+
+/*
+ * GL_EXT_point_parameters
+ */
+
+static GdkGL_GL_EXT_point_parameters _procs_GL_EXT_point_parameters = {
+ (GdkGLProc_glPointParameterfEXT) -1,
+ (GdkGLProc_glPointParameterfvEXT) -1
+};
+
+/* glPointParameterfEXT */
+GdkGLProc
+gdk_gl_get_glPointParameterfEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_point_parameters.glPointParameterfEXT == (GdkGLProc_glPointParameterfEXT) -1)
+ _procs_GL_EXT_point_parameters.glPointParameterfEXT =
+ (GdkGLProc_glPointParameterfEXT) gdk_gl_get_proc_address ("glPointParameterfEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameterfEXT () - %s",
+ (_procs_GL_EXT_point_parameters.glPointParameterfEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_point_parameters.glPointParameterfEXT);
+}
+
+/* glPointParameterfvEXT */
+GdkGLProc
+gdk_gl_get_glPointParameterfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_point_parameters.glPointParameterfvEXT == (GdkGLProc_glPointParameterfvEXT) -1)
+ _procs_GL_EXT_point_parameters.glPointParameterfvEXT =
+ (GdkGLProc_glPointParameterfvEXT) gdk_gl_get_proc_address ("glPointParameterfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameterfvEXT () - %s",
+ (_procs_GL_EXT_point_parameters.glPointParameterfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_point_parameters.glPointParameterfvEXT);
+}
+
+/* Get GL_EXT_point_parameters functions */
+GdkGL_GL_EXT_point_parameters *
+gdk_gl_get_GL_EXT_point_parameters (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_point_parameters");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPointParameterfEXT () != NULL);
+ supported &= (gdk_gl_get_glPointParameterfvEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_point_parameters () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_point_parameters;
+}
+
+/*
+ * GL_SGIS_point_parameters
+ */
+
+static GdkGL_GL_SGIS_point_parameters _procs_GL_SGIS_point_parameters = {
+ (GdkGLProc_glPointParameterfSGIS) -1,
+ (GdkGLProc_glPointParameterfvSGIS) -1
+};
+
+/* glPointParameterfSGIS */
+GdkGLProc
+gdk_gl_get_glPointParameterfSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_point_parameters.glPointParameterfSGIS == (GdkGLProc_glPointParameterfSGIS) -1)
+ _procs_GL_SGIS_point_parameters.glPointParameterfSGIS =
+ (GdkGLProc_glPointParameterfSGIS) gdk_gl_get_proc_address ("glPointParameterfSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameterfSGIS () - %s",
+ (_procs_GL_SGIS_point_parameters.glPointParameterfSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_point_parameters.glPointParameterfSGIS);
+}
+
+/* glPointParameterfvSGIS */
+GdkGLProc
+gdk_gl_get_glPointParameterfvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_point_parameters.glPointParameterfvSGIS == (GdkGLProc_glPointParameterfvSGIS) -1)
+ _procs_GL_SGIS_point_parameters.glPointParameterfvSGIS =
+ (GdkGLProc_glPointParameterfvSGIS) gdk_gl_get_proc_address ("glPointParameterfvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameterfvSGIS () - %s",
+ (_procs_GL_SGIS_point_parameters.glPointParameterfvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_point_parameters.glPointParameterfvSGIS);
+}
+
+/* Get GL_SGIS_point_parameters functions */
+GdkGL_GL_SGIS_point_parameters *
+gdk_gl_get_GL_SGIS_point_parameters (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIS_point_parameters");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPointParameterfSGIS () != NULL);
+ supported &= (gdk_gl_get_glPointParameterfvSGIS () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIS_point_parameters () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIS_point_parameters;
+}
+
+/*
+ * GL_SGIX_instruments
+ */
+
+static GdkGL_GL_SGIX_instruments _procs_GL_SGIX_instruments = {
+ (GdkGLProc_glGetInstrumentsSGIX) -1,
+ (GdkGLProc_glInstrumentsBufferSGIX) -1,
+ (GdkGLProc_glPollInstrumentsSGIX) -1,
+ (GdkGLProc_glReadInstrumentsSGIX) -1,
+ (GdkGLProc_glStartInstrumentsSGIX) -1,
+ (GdkGLProc_glStopInstrumentsSGIX) -1
+};
+
+/* glGetInstrumentsSGIX */
+GdkGLProc
+gdk_gl_get_glGetInstrumentsSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_instruments.glGetInstrumentsSGIX == (GdkGLProc_glGetInstrumentsSGIX) -1)
+ _procs_GL_SGIX_instruments.glGetInstrumentsSGIX =
+ (GdkGLProc_glGetInstrumentsSGIX) gdk_gl_get_proc_address ("glGetInstrumentsSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetInstrumentsSGIX () - %s",
+ (_procs_GL_SGIX_instruments.glGetInstrumentsSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_instruments.glGetInstrumentsSGIX);
+}
+
+/* glInstrumentsBufferSGIX */
+GdkGLProc
+gdk_gl_get_glInstrumentsBufferSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_instruments.glInstrumentsBufferSGIX == (GdkGLProc_glInstrumentsBufferSGIX) -1)
+ _procs_GL_SGIX_instruments.glInstrumentsBufferSGIX =
+ (GdkGLProc_glInstrumentsBufferSGIX) gdk_gl_get_proc_address ("glInstrumentsBufferSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glInstrumentsBufferSGIX () - %s",
+ (_procs_GL_SGIX_instruments.glInstrumentsBufferSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_instruments.glInstrumentsBufferSGIX);
+}
+
+/* glPollInstrumentsSGIX */
+GdkGLProc
+gdk_gl_get_glPollInstrumentsSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_instruments.glPollInstrumentsSGIX == (GdkGLProc_glPollInstrumentsSGIX) -1)
+ _procs_GL_SGIX_instruments.glPollInstrumentsSGIX =
+ (GdkGLProc_glPollInstrumentsSGIX) gdk_gl_get_proc_address ("glPollInstrumentsSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPollInstrumentsSGIX () - %s",
+ (_procs_GL_SGIX_instruments.glPollInstrumentsSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_instruments.glPollInstrumentsSGIX);
+}
+
+/* glReadInstrumentsSGIX */
+GdkGLProc
+gdk_gl_get_glReadInstrumentsSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_instruments.glReadInstrumentsSGIX == (GdkGLProc_glReadInstrumentsSGIX) -1)
+ _procs_GL_SGIX_instruments.glReadInstrumentsSGIX =
+ (GdkGLProc_glReadInstrumentsSGIX) gdk_gl_get_proc_address ("glReadInstrumentsSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReadInstrumentsSGIX () - %s",
+ (_procs_GL_SGIX_instruments.glReadInstrumentsSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_instruments.glReadInstrumentsSGIX);
+}
+
+/* glStartInstrumentsSGIX */
+GdkGLProc
+gdk_gl_get_glStartInstrumentsSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_instruments.glStartInstrumentsSGIX == (GdkGLProc_glStartInstrumentsSGIX) -1)
+ _procs_GL_SGIX_instruments.glStartInstrumentsSGIX =
+ (GdkGLProc_glStartInstrumentsSGIX) gdk_gl_get_proc_address ("glStartInstrumentsSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glStartInstrumentsSGIX () - %s",
+ (_procs_GL_SGIX_instruments.glStartInstrumentsSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_instruments.glStartInstrumentsSGIX);
+}
+
+/* glStopInstrumentsSGIX */
+GdkGLProc
+gdk_gl_get_glStopInstrumentsSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_instruments.glStopInstrumentsSGIX == (GdkGLProc_glStopInstrumentsSGIX) -1)
+ _procs_GL_SGIX_instruments.glStopInstrumentsSGIX =
+ (GdkGLProc_glStopInstrumentsSGIX) gdk_gl_get_proc_address ("glStopInstrumentsSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glStopInstrumentsSGIX () - %s",
+ (_procs_GL_SGIX_instruments.glStopInstrumentsSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_instruments.glStopInstrumentsSGIX);
+}
+
+/* Get GL_SGIX_instruments functions */
+GdkGL_GL_SGIX_instruments *
+gdk_gl_get_GL_SGIX_instruments (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_instruments");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glGetInstrumentsSGIX () != NULL);
+ supported &= (gdk_gl_get_glInstrumentsBufferSGIX () != NULL);
+ supported &= (gdk_gl_get_glPollInstrumentsSGIX () != NULL);
+ supported &= (gdk_gl_get_glReadInstrumentsSGIX () != NULL);
+ supported &= (gdk_gl_get_glStartInstrumentsSGIX () != NULL);
+ supported &= (gdk_gl_get_glStopInstrumentsSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_instruments () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_instruments;
+}
+
+/*
+ * GL_SGIX_framezoom
+ */
+
+static GdkGL_GL_SGIX_framezoom _procs_GL_SGIX_framezoom = {
+ (GdkGLProc_glFrameZoomSGIX) -1
+};
+
+/* glFrameZoomSGIX */
+GdkGLProc
+gdk_gl_get_glFrameZoomSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_framezoom.glFrameZoomSGIX == (GdkGLProc_glFrameZoomSGIX) -1)
+ _procs_GL_SGIX_framezoom.glFrameZoomSGIX =
+ (GdkGLProc_glFrameZoomSGIX) gdk_gl_get_proc_address ("glFrameZoomSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFrameZoomSGIX () - %s",
+ (_procs_GL_SGIX_framezoom.glFrameZoomSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_framezoom.glFrameZoomSGIX);
+}
+
+/* Get GL_SGIX_framezoom functions */
+GdkGL_GL_SGIX_framezoom *
+gdk_gl_get_GL_SGIX_framezoom (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_framezoom");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glFrameZoomSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_framezoom () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_framezoom;
+}
+
+/*
+ * GL_SGIX_tag_sample_buffer
+ */
+
+static GdkGL_GL_SGIX_tag_sample_buffer _procs_GL_SGIX_tag_sample_buffer = {
+ (GdkGLProc_glTagSampleBufferSGIX) -1
+};
+
+/* glTagSampleBufferSGIX */
+GdkGLProc
+gdk_gl_get_glTagSampleBufferSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_tag_sample_buffer.glTagSampleBufferSGIX == (GdkGLProc_glTagSampleBufferSGIX) -1)
+ _procs_GL_SGIX_tag_sample_buffer.glTagSampleBufferSGIX =
+ (GdkGLProc_glTagSampleBufferSGIX) gdk_gl_get_proc_address ("glTagSampleBufferSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTagSampleBufferSGIX () - %s",
+ (_procs_GL_SGIX_tag_sample_buffer.glTagSampleBufferSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_tag_sample_buffer.glTagSampleBufferSGIX);
+}
+
+/* Get GL_SGIX_tag_sample_buffer functions */
+GdkGL_GL_SGIX_tag_sample_buffer *
+gdk_gl_get_GL_SGIX_tag_sample_buffer (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_tag_sample_buffer");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTagSampleBufferSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_tag_sample_buffer () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_tag_sample_buffer;
+}
+
+/*
+ * GL_SGIX_polynomial_ffd
+ */
+
+static GdkGL_GL_SGIX_polynomial_ffd _procs_GL_SGIX_polynomial_ffd = {
+ (GdkGLProc_glDeformationMap3dSGIX) -1,
+ (GdkGLProc_glDeformationMap3fSGIX) -1,
+ (GdkGLProc_glDeformSGIX) -1,
+ (GdkGLProc_glLoadIdentityDeformationMapSGIX) -1
+};
+
+/* glDeformationMap3dSGIX */
+GdkGLProc
+gdk_gl_get_glDeformationMap3dSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_polynomial_ffd.glDeformationMap3dSGIX == (GdkGLProc_glDeformationMap3dSGIX) -1)
+ _procs_GL_SGIX_polynomial_ffd.glDeformationMap3dSGIX =
+ (GdkGLProc_glDeformationMap3dSGIX) gdk_gl_get_proc_address ("glDeformationMap3dSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeformationMap3dSGIX () - %s",
+ (_procs_GL_SGIX_polynomial_ffd.glDeformationMap3dSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_polynomial_ffd.glDeformationMap3dSGIX);
+}
+
+/* glDeformationMap3fSGIX */
+GdkGLProc
+gdk_gl_get_glDeformationMap3fSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_polynomial_ffd.glDeformationMap3fSGIX == (GdkGLProc_glDeformationMap3fSGIX) -1)
+ _procs_GL_SGIX_polynomial_ffd.glDeformationMap3fSGIX =
+ (GdkGLProc_glDeformationMap3fSGIX) gdk_gl_get_proc_address ("glDeformationMap3fSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeformationMap3fSGIX () - %s",
+ (_procs_GL_SGIX_polynomial_ffd.glDeformationMap3fSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_polynomial_ffd.glDeformationMap3fSGIX);
+}
+
+/* glDeformSGIX */
+GdkGLProc
+gdk_gl_get_glDeformSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_polynomial_ffd.glDeformSGIX == (GdkGLProc_glDeformSGIX) -1)
+ _procs_GL_SGIX_polynomial_ffd.glDeformSGIX =
+ (GdkGLProc_glDeformSGIX) gdk_gl_get_proc_address ("glDeformSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeformSGIX () - %s",
+ (_procs_GL_SGIX_polynomial_ffd.glDeformSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_polynomial_ffd.glDeformSGIX);
+}
+
+/* glLoadIdentityDeformationMapSGIX */
+GdkGLProc
+gdk_gl_get_glLoadIdentityDeformationMapSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_polynomial_ffd.glLoadIdentityDeformationMapSGIX == (GdkGLProc_glLoadIdentityDeformationMapSGIX) -1)
+ _procs_GL_SGIX_polynomial_ffd.glLoadIdentityDeformationMapSGIX =
+ (GdkGLProc_glLoadIdentityDeformationMapSGIX) gdk_gl_get_proc_address ("glLoadIdentityDeformationMapSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glLoadIdentityDeformationMapSGIX () - %s",
+ (_procs_GL_SGIX_polynomial_ffd.glLoadIdentityDeformationMapSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_polynomial_ffd.glLoadIdentityDeformationMapSGIX);
+}
+
+/* Get GL_SGIX_polynomial_ffd functions */
+GdkGL_GL_SGIX_polynomial_ffd *
+gdk_gl_get_GL_SGIX_polynomial_ffd (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_polynomial_ffd");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glDeformationMap3dSGIX () != NULL);
+ supported &= (gdk_gl_get_glDeformationMap3fSGIX () != NULL);
+ supported &= (gdk_gl_get_glDeformSGIX () != NULL);
+ supported &= (gdk_gl_get_glLoadIdentityDeformationMapSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_polynomial_ffd () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_polynomial_ffd;
+}
+
+/*
+ * GL_SGIX_reference_plane
+ */
+
+static GdkGL_GL_SGIX_reference_plane _procs_GL_SGIX_reference_plane = {
+ (GdkGLProc_glReferencePlaneSGIX) -1
+};
+
+/* glReferencePlaneSGIX */
+GdkGLProc
+gdk_gl_get_glReferencePlaneSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_reference_plane.glReferencePlaneSGIX == (GdkGLProc_glReferencePlaneSGIX) -1)
+ _procs_GL_SGIX_reference_plane.glReferencePlaneSGIX =
+ (GdkGLProc_glReferencePlaneSGIX) gdk_gl_get_proc_address ("glReferencePlaneSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReferencePlaneSGIX () - %s",
+ (_procs_GL_SGIX_reference_plane.glReferencePlaneSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_reference_plane.glReferencePlaneSGIX);
+}
+
+/* Get GL_SGIX_reference_plane functions */
+GdkGL_GL_SGIX_reference_plane *
+gdk_gl_get_GL_SGIX_reference_plane (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_reference_plane");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glReferencePlaneSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_reference_plane () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_reference_plane;
+}
+
+/*
+ * GL_SGIX_flush_raster
+ */
+
+static GdkGL_GL_SGIX_flush_raster _procs_GL_SGIX_flush_raster = {
+ (GdkGLProc_glFlushRasterSGIX) -1
+};
+
+/* glFlushRasterSGIX */
+GdkGLProc
+gdk_gl_get_glFlushRasterSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_flush_raster.glFlushRasterSGIX == (GdkGLProc_glFlushRasterSGIX) -1)
+ _procs_GL_SGIX_flush_raster.glFlushRasterSGIX =
+ (GdkGLProc_glFlushRasterSGIX) gdk_gl_get_proc_address ("glFlushRasterSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFlushRasterSGIX () - %s",
+ (_procs_GL_SGIX_flush_raster.glFlushRasterSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_flush_raster.glFlushRasterSGIX);
+}
+
+/* Get GL_SGIX_flush_raster functions */
+GdkGL_GL_SGIX_flush_raster *
+gdk_gl_get_GL_SGIX_flush_raster (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_flush_raster");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glFlushRasterSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_flush_raster () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_flush_raster;
+}
+
+/*
+ * GL_SGIS_fog_function
+ */
+
+static GdkGL_GL_SGIS_fog_function _procs_GL_SGIS_fog_function = {
+ (GdkGLProc_glFogFuncSGIS) -1,
+ (GdkGLProc_glGetFogFuncSGIS) -1
+};
+
+/* glFogFuncSGIS */
+GdkGLProc
+gdk_gl_get_glFogFuncSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_fog_function.glFogFuncSGIS == (GdkGLProc_glFogFuncSGIS) -1)
+ _procs_GL_SGIS_fog_function.glFogFuncSGIS =
+ (GdkGLProc_glFogFuncSGIS) gdk_gl_get_proc_address ("glFogFuncSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogFuncSGIS () - %s",
+ (_procs_GL_SGIS_fog_function.glFogFuncSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_fog_function.glFogFuncSGIS);
+}
+
+/* glGetFogFuncSGIS */
+GdkGLProc
+gdk_gl_get_glGetFogFuncSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_fog_function.glGetFogFuncSGIS == (GdkGLProc_glGetFogFuncSGIS) -1)
+ _procs_GL_SGIS_fog_function.glGetFogFuncSGIS =
+ (GdkGLProc_glGetFogFuncSGIS) gdk_gl_get_proc_address ("glGetFogFuncSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFogFuncSGIS () - %s",
+ (_procs_GL_SGIS_fog_function.glGetFogFuncSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_fog_function.glGetFogFuncSGIS);
+}
+
+/* Get GL_SGIS_fog_function functions */
+GdkGL_GL_SGIS_fog_function *
+gdk_gl_get_GL_SGIS_fog_function (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIS_fog_function");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glFogFuncSGIS () != NULL);
+ supported &= (gdk_gl_get_glGetFogFuncSGIS () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIS_fog_function () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIS_fog_function;
+}
+
+/*
+ * GL_HP_image_transform
+ */
+
+static GdkGL_GL_HP_image_transform _procs_GL_HP_image_transform = {
+ (GdkGLProc_glImageTransformParameteriHP) -1,
+ (GdkGLProc_glImageTransformParameterfHP) -1,
+ (GdkGLProc_glImageTransformParameterivHP) -1,
+ (GdkGLProc_glImageTransformParameterfvHP) -1,
+ (GdkGLProc_glGetImageTransformParameterivHP) -1,
+ (GdkGLProc_glGetImageTransformParameterfvHP) -1
+};
+
+/* glImageTransformParameteriHP */
+GdkGLProc
+gdk_gl_get_glImageTransformParameteriHP (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_HP_image_transform.glImageTransformParameteriHP == (GdkGLProc_glImageTransformParameteriHP) -1)
+ _procs_GL_HP_image_transform.glImageTransformParameteriHP =
+ (GdkGLProc_glImageTransformParameteriHP) gdk_gl_get_proc_address ("glImageTransformParameteriHP");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glImageTransformParameteriHP () - %s",
+ (_procs_GL_HP_image_transform.glImageTransformParameteriHP) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_HP_image_transform.glImageTransformParameteriHP);
+}
+
+/* glImageTransformParameterfHP */
+GdkGLProc
+gdk_gl_get_glImageTransformParameterfHP (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_HP_image_transform.glImageTransformParameterfHP == (GdkGLProc_glImageTransformParameterfHP) -1)
+ _procs_GL_HP_image_transform.glImageTransformParameterfHP =
+ (GdkGLProc_glImageTransformParameterfHP) gdk_gl_get_proc_address ("glImageTransformParameterfHP");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glImageTransformParameterfHP () - %s",
+ (_procs_GL_HP_image_transform.glImageTransformParameterfHP) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_HP_image_transform.glImageTransformParameterfHP);
+}
+
+/* glImageTransformParameterivHP */
+GdkGLProc
+gdk_gl_get_glImageTransformParameterivHP (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_HP_image_transform.glImageTransformParameterivHP == (GdkGLProc_glImageTransformParameterivHP) -1)
+ _procs_GL_HP_image_transform.glImageTransformParameterivHP =
+ (GdkGLProc_glImageTransformParameterivHP) gdk_gl_get_proc_address ("glImageTransformParameterivHP");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glImageTransformParameterivHP () - %s",
+ (_procs_GL_HP_image_transform.glImageTransformParameterivHP) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_HP_image_transform.glImageTransformParameterivHP);
+}
+
+/* glImageTransformParameterfvHP */
+GdkGLProc
+gdk_gl_get_glImageTransformParameterfvHP (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_HP_image_transform.glImageTransformParameterfvHP == (GdkGLProc_glImageTransformParameterfvHP) -1)
+ _procs_GL_HP_image_transform.glImageTransformParameterfvHP =
+ (GdkGLProc_glImageTransformParameterfvHP) gdk_gl_get_proc_address ("glImageTransformParameterfvHP");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glImageTransformParameterfvHP () - %s",
+ (_procs_GL_HP_image_transform.glImageTransformParameterfvHP) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_HP_image_transform.glImageTransformParameterfvHP);
+}
+
+/* glGetImageTransformParameterivHP */
+GdkGLProc
+gdk_gl_get_glGetImageTransformParameterivHP (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_HP_image_transform.glGetImageTransformParameterivHP == (GdkGLProc_glGetImageTransformParameterivHP) -1)
+ _procs_GL_HP_image_transform.glGetImageTransformParameterivHP =
+ (GdkGLProc_glGetImageTransformParameterivHP) gdk_gl_get_proc_address ("glGetImageTransformParameterivHP");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetImageTransformParameterivHP () - %s",
+ (_procs_GL_HP_image_transform.glGetImageTransformParameterivHP) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_HP_image_transform.glGetImageTransformParameterivHP);
+}
+
+/* glGetImageTransformParameterfvHP */
+GdkGLProc
+gdk_gl_get_glGetImageTransformParameterfvHP (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_HP_image_transform.glGetImageTransformParameterfvHP == (GdkGLProc_glGetImageTransformParameterfvHP) -1)
+ _procs_GL_HP_image_transform.glGetImageTransformParameterfvHP =
+ (GdkGLProc_glGetImageTransformParameterfvHP) gdk_gl_get_proc_address ("glGetImageTransformParameterfvHP");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetImageTransformParameterfvHP () - %s",
+ (_procs_GL_HP_image_transform.glGetImageTransformParameterfvHP) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_HP_image_transform.glGetImageTransformParameterfvHP);
+}
+
+/* Get GL_HP_image_transform functions */
+GdkGL_GL_HP_image_transform *
+gdk_gl_get_GL_HP_image_transform (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_HP_image_transform");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glImageTransformParameteriHP () != NULL);
+ supported &= (gdk_gl_get_glImageTransformParameterfHP () != NULL);
+ supported &= (gdk_gl_get_glImageTransformParameterivHP () != NULL);
+ supported &= (gdk_gl_get_glImageTransformParameterfvHP () != NULL);
+ supported &= (gdk_gl_get_glGetImageTransformParameterivHP () != NULL);
+ supported &= (gdk_gl_get_glGetImageTransformParameterfvHP () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_HP_image_transform () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_HP_image_transform;
+}
+
+/*
+ * GL_EXT_color_subtable
+ */
+
+static GdkGL_GL_EXT_color_subtable _procs_GL_EXT_color_subtable = {
+ (GdkGLProc_glColorSubTableEXT) -1,
+ (GdkGLProc_glCopyColorSubTableEXT) -1
+};
+
+/* glColorSubTableEXT */
+GdkGLProc
+gdk_gl_get_glColorSubTableEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_color_subtable.glColorSubTableEXT == (GdkGLProc_glColorSubTableEXT) -1)
+ _procs_GL_EXT_color_subtable.glColorSubTableEXT =
+ (GdkGLProc_glColorSubTableEXT) gdk_gl_get_proc_address ("glColorSubTableEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorSubTableEXT () - %s",
+ (_procs_GL_EXT_color_subtable.glColorSubTableEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_color_subtable.glColorSubTableEXT);
+}
+
+/* glCopyColorSubTableEXT */
+GdkGLProc
+gdk_gl_get_glCopyColorSubTableEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_color_subtable.glCopyColorSubTableEXT == (GdkGLProc_glCopyColorSubTableEXT) -1)
+ _procs_GL_EXT_color_subtable.glCopyColorSubTableEXT =
+ (GdkGLProc_glCopyColorSubTableEXT) gdk_gl_get_proc_address ("glCopyColorSubTableEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCopyColorSubTableEXT () - %s",
+ (_procs_GL_EXT_color_subtable.glCopyColorSubTableEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_color_subtable.glCopyColorSubTableEXT);
+}
+
+/* Get GL_EXT_color_subtable functions */
+GdkGL_GL_EXT_color_subtable *
+gdk_gl_get_GL_EXT_color_subtable (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_color_subtable");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glColorSubTableEXT () != NULL);
+ supported &= (gdk_gl_get_glCopyColorSubTableEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_color_subtable () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_color_subtable;
+}
+
+/*
+ * GL_PGI_misc_hints
+ */
+
+static GdkGL_GL_PGI_misc_hints _procs_GL_PGI_misc_hints = {
+ (GdkGLProc_glHintPGI) -1
+};
+
+/* glHintPGI */
+GdkGLProc
+gdk_gl_get_glHintPGI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_PGI_misc_hints.glHintPGI == (GdkGLProc_glHintPGI) -1)
+ _procs_GL_PGI_misc_hints.glHintPGI =
+ (GdkGLProc_glHintPGI) gdk_gl_get_proc_address ("glHintPGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glHintPGI () - %s",
+ (_procs_GL_PGI_misc_hints.glHintPGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_PGI_misc_hints.glHintPGI);
+}
+
+/* Get GL_PGI_misc_hints functions */
+GdkGL_GL_PGI_misc_hints *
+gdk_gl_get_GL_PGI_misc_hints (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_PGI_misc_hints");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glHintPGI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_PGI_misc_hints () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_PGI_misc_hints;
+}
+
+/*
+ * GL_EXT_paletted_texture
+ */
+
+static GdkGL_GL_EXT_paletted_texture _procs_GL_EXT_paletted_texture = {
+ (GdkGLProc_glColorTableEXT) -1,
+ (GdkGLProc_glGetColorTableEXT) -1,
+ (GdkGLProc_glGetColorTableParameterivEXT) -1,
+ (GdkGLProc_glGetColorTableParameterfvEXT) -1
+};
+
+/* glColorTableEXT */
+GdkGLProc
+gdk_gl_get_glColorTableEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_paletted_texture.glColorTableEXT == (GdkGLProc_glColorTableEXT) -1)
+ _procs_GL_EXT_paletted_texture.glColorTableEXT =
+ (GdkGLProc_glColorTableEXT) gdk_gl_get_proc_address ("glColorTableEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorTableEXT () - %s",
+ (_procs_GL_EXT_paletted_texture.glColorTableEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_paletted_texture.glColorTableEXT);
+}
+
+/* glGetColorTableEXT */
+GdkGLProc
+gdk_gl_get_glGetColorTableEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_paletted_texture.glGetColorTableEXT == (GdkGLProc_glGetColorTableEXT) -1)
+ _procs_GL_EXT_paletted_texture.glGetColorTableEXT =
+ (GdkGLProc_glGetColorTableEXT) gdk_gl_get_proc_address ("glGetColorTableEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetColorTableEXT () - %s",
+ (_procs_GL_EXT_paletted_texture.glGetColorTableEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_paletted_texture.glGetColorTableEXT);
+}
+
+/* glGetColorTableParameterivEXT */
+GdkGLProc
+gdk_gl_get_glGetColorTableParameterivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_paletted_texture.glGetColorTableParameterivEXT == (GdkGLProc_glGetColorTableParameterivEXT) -1)
+ _procs_GL_EXT_paletted_texture.glGetColorTableParameterivEXT =
+ (GdkGLProc_glGetColorTableParameterivEXT) gdk_gl_get_proc_address ("glGetColorTableParameterivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetColorTableParameterivEXT () - %s",
+ (_procs_GL_EXT_paletted_texture.glGetColorTableParameterivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_paletted_texture.glGetColorTableParameterivEXT);
+}
+
+/* glGetColorTableParameterfvEXT */
+GdkGLProc
+gdk_gl_get_glGetColorTableParameterfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_paletted_texture.glGetColorTableParameterfvEXT == (GdkGLProc_glGetColorTableParameterfvEXT) -1)
+ _procs_GL_EXT_paletted_texture.glGetColorTableParameterfvEXT =
+ (GdkGLProc_glGetColorTableParameterfvEXT) gdk_gl_get_proc_address ("glGetColorTableParameterfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetColorTableParameterfvEXT () - %s",
+ (_procs_GL_EXT_paletted_texture.glGetColorTableParameterfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_paletted_texture.glGetColorTableParameterfvEXT);
+}
+
+/* Get GL_EXT_paletted_texture functions */
+GdkGL_GL_EXT_paletted_texture *
+gdk_gl_get_GL_EXT_paletted_texture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_paletted_texture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glColorTableEXT () != NULL);
+ supported &= (gdk_gl_get_glGetColorTableEXT () != NULL);
+ supported &= (gdk_gl_get_glGetColorTableParameterivEXT () != NULL);
+ supported &= (gdk_gl_get_glGetColorTableParameterfvEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_paletted_texture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_paletted_texture;
+}
+
+/*
+ * GL_SGIX_list_priority
+ */
+
+static GdkGL_GL_SGIX_list_priority _procs_GL_SGIX_list_priority = {
+ (GdkGLProc_glGetListParameterfvSGIX) -1,
+ (GdkGLProc_glGetListParameterivSGIX) -1,
+ (GdkGLProc_glListParameterfSGIX) -1,
+ (GdkGLProc_glListParameterfvSGIX) -1,
+ (GdkGLProc_glListParameteriSGIX) -1,
+ (GdkGLProc_glListParameterivSGIX) -1
+};
+
+/* glGetListParameterfvSGIX */
+GdkGLProc
+gdk_gl_get_glGetListParameterfvSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_list_priority.glGetListParameterfvSGIX == (GdkGLProc_glGetListParameterfvSGIX) -1)
+ _procs_GL_SGIX_list_priority.glGetListParameterfvSGIX =
+ (GdkGLProc_glGetListParameterfvSGIX) gdk_gl_get_proc_address ("glGetListParameterfvSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetListParameterfvSGIX () - %s",
+ (_procs_GL_SGIX_list_priority.glGetListParameterfvSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_list_priority.glGetListParameterfvSGIX);
+}
+
+/* glGetListParameterivSGIX */
+GdkGLProc
+gdk_gl_get_glGetListParameterivSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_list_priority.glGetListParameterivSGIX == (GdkGLProc_glGetListParameterivSGIX) -1)
+ _procs_GL_SGIX_list_priority.glGetListParameterivSGIX =
+ (GdkGLProc_glGetListParameterivSGIX) gdk_gl_get_proc_address ("glGetListParameterivSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetListParameterivSGIX () - %s",
+ (_procs_GL_SGIX_list_priority.glGetListParameterivSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_list_priority.glGetListParameterivSGIX);
+}
+
+/* glListParameterfSGIX */
+GdkGLProc
+gdk_gl_get_glListParameterfSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_list_priority.glListParameterfSGIX == (GdkGLProc_glListParameterfSGIX) -1)
+ _procs_GL_SGIX_list_priority.glListParameterfSGIX =
+ (GdkGLProc_glListParameterfSGIX) gdk_gl_get_proc_address ("glListParameterfSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glListParameterfSGIX () - %s",
+ (_procs_GL_SGIX_list_priority.glListParameterfSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_list_priority.glListParameterfSGIX);
+}
+
+/* glListParameterfvSGIX */
+GdkGLProc
+gdk_gl_get_glListParameterfvSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_list_priority.glListParameterfvSGIX == (GdkGLProc_glListParameterfvSGIX) -1)
+ _procs_GL_SGIX_list_priority.glListParameterfvSGIX =
+ (GdkGLProc_glListParameterfvSGIX) gdk_gl_get_proc_address ("glListParameterfvSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glListParameterfvSGIX () - %s",
+ (_procs_GL_SGIX_list_priority.glListParameterfvSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_list_priority.glListParameterfvSGIX);
+}
+
+/* glListParameteriSGIX */
+GdkGLProc
+gdk_gl_get_glListParameteriSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_list_priority.glListParameteriSGIX == (GdkGLProc_glListParameteriSGIX) -1)
+ _procs_GL_SGIX_list_priority.glListParameteriSGIX =
+ (GdkGLProc_glListParameteriSGIX) gdk_gl_get_proc_address ("glListParameteriSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glListParameteriSGIX () - %s",
+ (_procs_GL_SGIX_list_priority.glListParameteriSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_list_priority.glListParameteriSGIX);
+}
+
+/* glListParameterivSGIX */
+GdkGLProc
+gdk_gl_get_glListParameterivSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_list_priority.glListParameterivSGIX == (GdkGLProc_glListParameterivSGIX) -1)
+ _procs_GL_SGIX_list_priority.glListParameterivSGIX =
+ (GdkGLProc_glListParameterivSGIX) gdk_gl_get_proc_address ("glListParameterivSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glListParameterivSGIX () - %s",
+ (_procs_GL_SGIX_list_priority.glListParameterivSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_list_priority.glListParameterivSGIX);
+}
+
+/* Get GL_SGIX_list_priority functions */
+GdkGL_GL_SGIX_list_priority *
+gdk_gl_get_GL_SGIX_list_priority (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_list_priority");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glGetListParameterfvSGIX () != NULL);
+ supported &= (gdk_gl_get_glGetListParameterivSGIX () != NULL);
+ supported &= (gdk_gl_get_glListParameterfSGIX () != NULL);
+ supported &= (gdk_gl_get_glListParameterfvSGIX () != NULL);
+ supported &= (gdk_gl_get_glListParameteriSGIX () != NULL);
+ supported &= (gdk_gl_get_glListParameterivSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_list_priority () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_list_priority;
+}
+
+/*
+ * GL_EXT_index_material
+ */
+
+static GdkGL_GL_EXT_index_material _procs_GL_EXT_index_material = {
+ (GdkGLProc_glIndexMaterialEXT) -1
+};
+
+/* glIndexMaterialEXT */
+GdkGLProc
+gdk_gl_get_glIndexMaterialEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_index_material.glIndexMaterialEXT == (GdkGLProc_glIndexMaterialEXT) -1)
+ _procs_GL_EXT_index_material.glIndexMaterialEXT =
+ (GdkGLProc_glIndexMaterialEXT) gdk_gl_get_proc_address ("glIndexMaterialEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIndexMaterialEXT () - %s",
+ (_procs_GL_EXT_index_material.glIndexMaterialEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_index_material.glIndexMaterialEXT);
+}
+
+/* Get GL_EXT_index_material functions */
+GdkGL_GL_EXT_index_material *
+gdk_gl_get_GL_EXT_index_material (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_index_material");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glIndexMaterialEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_index_material () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_index_material;
+}
+
+/*
+ * GL_EXT_index_func
+ */
+
+static GdkGL_GL_EXT_index_func _procs_GL_EXT_index_func = {
+ (GdkGLProc_glIndexFuncEXT) -1
+};
+
+/* glIndexFuncEXT */
+GdkGLProc
+gdk_gl_get_glIndexFuncEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_index_func.glIndexFuncEXT == (GdkGLProc_glIndexFuncEXT) -1)
+ _procs_GL_EXT_index_func.glIndexFuncEXT =
+ (GdkGLProc_glIndexFuncEXT) gdk_gl_get_proc_address ("glIndexFuncEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIndexFuncEXT () - %s",
+ (_procs_GL_EXT_index_func.glIndexFuncEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_index_func.glIndexFuncEXT);
+}
+
+/* Get GL_EXT_index_func functions */
+GdkGL_GL_EXT_index_func *
+gdk_gl_get_GL_EXT_index_func (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_index_func");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glIndexFuncEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_index_func () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_index_func;
+}
+
+/*
+ * GL_EXT_compiled_vertex_array
+ */
+
+static GdkGL_GL_EXT_compiled_vertex_array _procs_GL_EXT_compiled_vertex_array = {
+ (GdkGLProc_glLockArraysEXT) -1,
+ (GdkGLProc_glUnlockArraysEXT) -1
+};
+
+/* glLockArraysEXT */
+GdkGLProc
+gdk_gl_get_glLockArraysEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_compiled_vertex_array.glLockArraysEXT == (GdkGLProc_glLockArraysEXT) -1)
+ _procs_GL_EXT_compiled_vertex_array.glLockArraysEXT =
+ (GdkGLProc_glLockArraysEXT) gdk_gl_get_proc_address ("glLockArraysEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glLockArraysEXT () - %s",
+ (_procs_GL_EXT_compiled_vertex_array.glLockArraysEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_compiled_vertex_array.glLockArraysEXT);
+}
+
+/* glUnlockArraysEXT */
+GdkGLProc
+gdk_gl_get_glUnlockArraysEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_compiled_vertex_array.glUnlockArraysEXT == (GdkGLProc_glUnlockArraysEXT) -1)
+ _procs_GL_EXT_compiled_vertex_array.glUnlockArraysEXT =
+ (GdkGLProc_glUnlockArraysEXT) gdk_gl_get_proc_address ("glUnlockArraysEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glUnlockArraysEXT () - %s",
+ (_procs_GL_EXT_compiled_vertex_array.glUnlockArraysEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_compiled_vertex_array.glUnlockArraysEXT);
+}
+
+/* Get GL_EXT_compiled_vertex_array functions */
+GdkGL_GL_EXT_compiled_vertex_array *
+gdk_gl_get_GL_EXT_compiled_vertex_array (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_compiled_vertex_array");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glLockArraysEXT () != NULL);
+ supported &= (gdk_gl_get_glUnlockArraysEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_compiled_vertex_array () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_compiled_vertex_array;
+}
+
+/*
+ * GL_EXT_cull_vertex
+ */
+
+static GdkGL_GL_EXT_cull_vertex _procs_GL_EXT_cull_vertex = {
+ (GdkGLProc_glCullParameterdvEXT) -1,
+ (GdkGLProc_glCullParameterfvEXT) -1
+};
+
+/* glCullParameterdvEXT */
+GdkGLProc
+gdk_gl_get_glCullParameterdvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_cull_vertex.glCullParameterdvEXT == (GdkGLProc_glCullParameterdvEXT) -1)
+ _procs_GL_EXT_cull_vertex.glCullParameterdvEXT =
+ (GdkGLProc_glCullParameterdvEXT) gdk_gl_get_proc_address ("glCullParameterdvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCullParameterdvEXT () - %s",
+ (_procs_GL_EXT_cull_vertex.glCullParameterdvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_cull_vertex.glCullParameterdvEXT);
+}
+
+/* glCullParameterfvEXT */
+GdkGLProc
+gdk_gl_get_glCullParameterfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_cull_vertex.glCullParameterfvEXT == (GdkGLProc_glCullParameterfvEXT) -1)
+ _procs_GL_EXT_cull_vertex.glCullParameterfvEXT =
+ (GdkGLProc_glCullParameterfvEXT) gdk_gl_get_proc_address ("glCullParameterfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCullParameterfvEXT () - %s",
+ (_procs_GL_EXT_cull_vertex.glCullParameterfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_cull_vertex.glCullParameterfvEXT);
+}
+
+/* Get GL_EXT_cull_vertex functions */
+GdkGL_GL_EXT_cull_vertex *
+gdk_gl_get_GL_EXT_cull_vertex (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_cull_vertex");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glCullParameterdvEXT () != NULL);
+ supported &= (gdk_gl_get_glCullParameterfvEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_cull_vertex () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_cull_vertex;
+}
+
+/*
+ * GL_SGIX_fragment_lighting
+ */
+
+static GdkGL_GL_SGIX_fragment_lighting _procs_GL_SGIX_fragment_lighting = {
+ (GdkGLProc_glFragmentColorMaterialSGIX) -1,
+ (GdkGLProc_glFragmentLightfSGIX) -1,
+ (GdkGLProc_glFragmentLightfvSGIX) -1,
+ (GdkGLProc_glFragmentLightiSGIX) -1,
+ (GdkGLProc_glFragmentLightivSGIX) -1,
+ (GdkGLProc_glFragmentLightModelfSGIX) -1,
+ (GdkGLProc_glFragmentLightModelfvSGIX) -1,
+ (GdkGLProc_glFragmentLightModeliSGIX) -1,
+ (GdkGLProc_glFragmentLightModelivSGIX) -1,
+ (GdkGLProc_glFragmentMaterialfSGIX) -1,
+ (GdkGLProc_glFragmentMaterialfvSGIX) -1,
+ (GdkGLProc_glFragmentMaterialiSGIX) -1,
+ (GdkGLProc_glFragmentMaterialivSGIX) -1,
+ (GdkGLProc_glGetFragmentLightfvSGIX) -1,
+ (GdkGLProc_glGetFragmentLightivSGIX) -1,
+ (GdkGLProc_glGetFragmentMaterialfvSGIX) -1,
+ (GdkGLProc_glGetFragmentMaterialivSGIX) -1,
+ (GdkGLProc_glLightEnviSGIX) -1
+};
+
+/* glFragmentColorMaterialSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentColorMaterialSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentColorMaterialSGIX == (GdkGLProc_glFragmentColorMaterialSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentColorMaterialSGIX =
+ (GdkGLProc_glFragmentColorMaterialSGIX) gdk_gl_get_proc_address ("glFragmentColorMaterialSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentColorMaterialSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentColorMaterialSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentColorMaterialSGIX);
+}
+
+/* glFragmentLightfSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentLightfSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentLightfSGIX == (GdkGLProc_glFragmentLightfSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentLightfSGIX =
+ (GdkGLProc_glFragmentLightfSGIX) gdk_gl_get_proc_address ("glFragmentLightfSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightfSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentLightfSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentLightfSGIX);
+}
+
+/* glFragmentLightfvSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentLightfvSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentLightfvSGIX == (GdkGLProc_glFragmentLightfvSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentLightfvSGIX =
+ (GdkGLProc_glFragmentLightfvSGIX) gdk_gl_get_proc_address ("glFragmentLightfvSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightfvSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentLightfvSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentLightfvSGIX);
+}
+
+/* glFragmentLightiSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentLightiSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentLightiSGIX == (GdkGLProc_glFragmentLightiSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentLightiSGIX =
+ (GdkGLProc_glFragmentLightiSGIX) gdk_gl_get_proc_address ("glFragmentLightiSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightiSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentLightiSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentLightiSGIX);
+}
+
+/* glFragmentLightivSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentLightivSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentLightivSGIX == (GdkGLProc_glFragmentLightivSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentLightivSGIX =
+ (GdkGLProc_glFragmentLightivSGIX) gdk_gl_get_proc_address ("glFragmentLightivSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightivSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentLightivSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentLightivSGIX);
+}
+
+/* glFragmentLightModelfSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentLightModelfSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentLightModelfSGIX == (GdkGLProc_glFragmentLightModelfSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentLightModelfSGIX =
+ (GdkGLProc_glFragmentLightModelfSGIX) gdk_gl_get_proc_address ("glFragmentLightModelfSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightModelfSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentLightModelfSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentLightModelfSGIX);
+}
+
+/* glFragmentLightModelfvSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentLightModelfvSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentLightModelfvSGIX == (GdkGLProc_glFragmentLightModelfvSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentLightModelfvSGIX =
+ (GdkGLProc_glFragmentLightModelfvSGIX) gdk_gl_get_proc_address ("glFragmentLightModelfvSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightModelfvSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentLightModelfvSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentLightModelfvSGIX);
+}
+
+/* glFragmentLightModeliSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentLightModeliSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentLightModeliSGIX == (GdkGLProc_glFragmentLightModeliSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentLightModeliSGIX =
+ (GdkGLProc_glFragmentLightModeliSGIX) gdk_gl_get_proc_address ("glFragmentLightModeliSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightModeliSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentLightModeliSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentLightModeliSGIX);
+}
+
+/* glFragmentLightModelivSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentLightModelivSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentLightModelivSGIX == (GdkGLProc_glFragmentLightModelivSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentLightModelivSGIX =
+ (GdkGLProc_glFragmentLightModelivSGIX) gdk_gl_get_proc_address ("glFragmentLightModelivSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightModelivSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentLightModelivSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentLightModelivSGIX);
+}
+
+/* glFragmentMaterialfSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentMaterialfSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialfSGIX == (GdkGLProc_glFragmentMaterialfSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentMaterialfSGIX =
+ (GdkGLProc_glFragmentMaterialfSGIX) gdk_gl_get_proc_address ("glFragmentMaterialfSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentMaterialfSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialfSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialfSGIX);
+}
+
+/* glFragmentMaterialfvSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentMaterialfvSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialfvSGIX == (GdkGLProc_glFragmentMaterialfvSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentMaterialfvSGIX =
+ (GdkGLProc_glFragmentMaterialfvSGIX) gdk_gl_get_proc_address ("glFragmentMaterialfvSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentMaterialfvSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialfvSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialfvSGIX);
+}
+
+/* glFragmentMaterialiSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentMaterialiSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialiSGIX == (GdkGLProc_glFragmentMaterialiSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentMaterialiSGIX =
+ (GdkGLProc_glFragmentMaterialiSGIX) gdk_gl_get_proc_address ("glFragmentMaterialiSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentMaterialiSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialiSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialiSGIX);
+}
+
+/* glFragmentMaterialivSGIX */
+GdkGLProc
+gdk_gl_get_glFragmentMaterialivSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialivSGIX == (GdkGLProc_glFragmentMaterialivSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glFragmentMaterialivSGIX =
+ (GdkGLProc_glFragmentMaterialivSGIX) gdk_gl_get_proc_address ("glFragmentMaterialivSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentMaterialivSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialivSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glFragmentMaterialivSGIX);
+}
+
+/* glGetFragmentLightfvSGIX */
+GdkGLProc
+gdk_gl_get_glGetFragmentLightfvSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glGetFragmentLightfvSGIX == (GdkGLProc_glGetFragmentLightfvSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glGetFragmentLightfvSGIX =
+ (GdkGLProc_glGetFragmentLightfvSGIX) gdk_gl_get_proc_address ("glGetFragmentLightfvSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFragmentLightfvSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glGetFragmentLightfvSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glGetFragmentLightfvSGIX);
+}
+
+/* glGetFragmentLightivSGIX */
+GdkGLProc
+gdk_gl_get_glGetFragmentLightivSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glGetFragmentLightivSGIX == (GdkGLProc_glGetFragmentLightivSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glGetFragmentLightivSGIX =
+ (GdkGLProc_glGetFragmentLightivSGIX) gdk_gl_get_proc_address ("glGetFragmentLightivSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFragmentLightivSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glGetFragmentLightivSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glGetFragmentLightivSGIX);
+}
+
+/* glGetFragmentMaterialfvSGIX */
+GdkGLProc
+gdk_gl_get_glGetFragmentMaterialfvSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glGetFragmentMaterialfvSGIX == (GdkGLProc_glGetFragmentMaterialfvSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glGetFragmentMaterialfvSGIX =
+ (GdkGLProc_glGetFragmentMaterialfvSGIX) gdk_gl_get_proc_address ("glGetFragmentMaterialfvSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFragmentMaterialfvSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glGetFragmentMaterialfvSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glGetFragmentMaterialfvSGIX);
+}
+
+/* glGetFragmentMaterialivSGIX */
+GdkGLProc
+gdk_gl_get_glGetFragmentMaterialivSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glGetFragmentMaterialivSGIX == (GdkGLProc_glGetFragmentMaterialivSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glGetFragmentMaterialivSGIX =
+ (GdkGLProc_glGetFragmentMaterialivSGIX) gdk_gl_get_proc_address ("glGetFragmentMaterialivSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFragmentMaterialivSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glGetFragmentMaterialivSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glGetFragmentMaterialivSGIX);
+}
+
+/* glLightEnviSGIX */
+GdkGLProc
+gdk_gl_get_glLightEnviSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fragment_lighting.glLightEnviSGIX == (GdkGLProc_glLightEnviSGIX) -1)
+ _procs_GL_SGIX_fragment_lighting.glLightEnviSGIX =
+ (GdkGLProc_glLightEnviSGIX) gdk_gl_get_proc_address ("glLightEnviSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glLightEnviSGIX () - %s",
+ (_procs_GL_SGIX_fragment_lighting.glLightEnviSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fragment_lighting.glLightEnviSGIX);
+}
+
+/* Get GL_SGIX_fragment_lighting functions */
+GdkGL_GL_SGIX_fragment_lighting *
+gdk_gl_get_GL_SGIX_fragment_lighting (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_fragment_lighting");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glFragmentColorMaterialSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightfSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightfvSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightiSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightivSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightModelfSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightModelfvSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightModeliSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightModelivSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentMaterialfSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentMaterialfvSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentMaterialiSGIX () != NULL);
+ supported &= (gdk_gl_get_glFragmentMaterialivSGIX () != NULL);
+ supported &= (gdk_gl_get_glGetFragmentLightfvSGIX () != NULL);
+ supported &= (gdk_gl_get_glGetFragmentLightivSGIX () != NULL);
+ supported &= (gdk_gl_get_glGetFragmentMaterialfvSGIX () != NULL);
+ supported &= (gdk_gl_get_glGetFragmentMaterialivSGIX () != NULL);
+ supported &= (gdk_gl_get_glLightEnviSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_fragment_lighting () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_fragment_lighting;
+}
+
+/*
+ * GL_EXT_draw_range_elements
+ */
+
+static GdkGL_GL_EXT_draw_range_elements _procs_GL_EXT_draw_range_elements = {
+ (GdkGLProc_glDrawRangeElementsEXT) -1
+};
+
+/* glDrawRangeElementsEXT */
+GdkGLProc
+gdk_gl_get_glDrawRangeElementsEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_draw_range_elements.glDrawRangeElementsEXT == (GdkGLProc_glDrawRangeElementsEXT) -1)
+ _procs_GL_EXT_draw_range_elements.glDrawRangeElementsEXT =
+ (GdkGLProc_glDrawRangeElementsEXT) gdk_gl_get_proc_address ("glDrawRangeElementsEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawRangeElementsEXT () - %s",
+ (_procs_GL_EXT_draw_range_elements.glDrawRangeElementsEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_draw_range_elements.glDrawRangeElementsEXT);
+}
+
+/* Get GL_EXT_draw_range_elements functions */
+GdkGL_GL_EXT_draw_range_elements *
+gdk_gl_get_GL_EXT_draw_range_elements (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_draw_range_elements");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glDrawRangeElementsEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_draw_range_elements () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_draw_range_elements;
+}
+
+/*
+ * GL_EXT_light_texture
+ */
+
+static GdkGL_GL_EXT_light_texture _procs_GL_EXT_light_texture = {
+ (GdkGLProc_glApplyTextureEXT) -1,
+ (GdkGLProc_glTextureLightEXT) -1,
+ (GdkGLProc_glTextureMaterialEXT) -1
+};
+
+/* glApplyTextureEXT */
+GdkGLProc
+gdk_gl_get_glApplyTextureEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_light_texture.glApplyTextureEXT == (GdkGLProc_glApplyTextureEXT) -1)
+ _procs_GL_EXT_light_texture.glApplyTextureEXT =
+ (GdkGLProc_glApplyTextureEXT) gdk_gl_get_proc_address ("glApplyTextureEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glApplyTextureEXT () - %s",
+ (_procs_GL_EXT_light_texture.glApplyTextureEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_light_texture.glApplyTextureEXT);
+}
+
+/* glTextureLightEXT */
+GdkGLProc
+gdk_gl_get_glTextureLightEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_light_texture.glTextureLightEXT == (GdkGLProc_glTextureLightEXT) -1)
+ _procs_GL_EXT_light_texture.glTextureLightEXT =
+ (GdkGLProc_glTextureLightEXT) gdk_gl_get_proc_address ("glTextureLightEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTextureLightEXT () - %s",
+ (_procs_GL_EXT_light_texture.glTextureLightEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_light_texture.glTextureLightEXT);
+}
+
+/* glTextureMaterialEXT */
+GdkGLProc
+gdk_gl_get_glTextureMaterialEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_light_texture.glTextureMaterialEXT == (GdkGLProc_glTextureMaterialEXT) -1)
+ _procs_GL_EXT_light_texture.glTextureMaterialEXT =
+ (GdkGLProc_glTextureMaterialEXT) gdk_gl_get_proc_address ("glTextureMaterialEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTextureMaterialEXT () - %s",
+ (_procs_GL_EXT_light_texture.glTextureMaterialEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_light_texture.glTextureMaterialEXT);
+}
+
+/* Get GL_EXT_light_texture functions */
+GdkGL_GL_EXT_light_texture *
+gdk_gl_get_GL_EXT_light_texture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_light_texture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glApplyTextureEXT () != NULL);
+ supported &= (gdk_gl_get_glTextureLightEXT () != NULL);
+ supported &= (gdk_gl_get_glTextureMaterialEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_light_texture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_light_texture;
+}
+
+/*
+ * GL_SGIX_async
+ */
+
+static GdkGL_GL_SGIX_async _procs_GL_SGIX_async = {
+ (GdkGLProc_glAsyncMarkerSGIX) -1,
+ (GdkGLProc_glFinishAsyncSGIX) -1,
+ (GdkGLProc_glPollAsyncSGIX) -1,
+ (GdkGLProc_glGenAsyncMarkersSGIX) -1,
+ (GdkGLProc_glDeleteAsyncMarkersSGIX) -1,
+ (GdkGLProc_glIsAsyncMarkerSGIX) -1
+};
+
+/* glAsyncMarkerSGIX */
+GdkGLProc
+gdk_gl_get_glAsyncMarkerSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_async.glAsyncMarkerSGIX == (GdkGLProc_glAsyncMarkerSGIX) -1)
+ _procs_GL_SGIX_async.glAsyncMarkerSGIX =
+ (GdkGLProc_glAsyncMarkerSGIX) gdk_gl_get_proc_address ("glAsyncMarkerSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glAsyncMarkerSGIX () - %s",
+ (_procs_GL_SGIX_async.glAsyncMarkerSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_async.glAsyncMarkerSGIX);
+}
+
+/* glFinishAsyncSGIX */
+GdkGLProc
+gdk_gl_get_glFinishAsyncSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_async.glFinishAsyncSGIX == (GdkGLProc_glFinishAsyncSGIX) -1)
+ _procs_GL_SGIX_async.glFinishAsyncSGIX =
+ (GdkGLProc_glFinishAsyncSGIX) gdk_gl_get_proc_address ("glFinishAsyncSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFinishAsyncSGIX () - %s",
+ (_procs_GL_SGIX_async.glFinishAsyncSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_async.glFinishAsyncSGIX);
+}
+
+/* glPollAsyncSGIX */
+GdkGLProc
+gdk_gl_get_glPollAsyncSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_async.glPollAsyncSGIX == (GdkGLProc_glPollAsyncSGIX) -1)
+ _procs_GL_SGIX_async.glPollAsyncSGIX =
+ (GdkGLProc_glPollAsyncSGIX) gdk_gl_get_proc_address ("glPollAsyncSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPollAsyncSGIX () - %s",
+ (_procs_GL_SGIX_async.glPollAsyncSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_async.glPollAsyncSGIX);
+}
+
+/* glGenAsyncMarkersSGIX */
+GdkGLProc
+gdk_gl_get_glGenAsyncMarkersSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_async.glGenAsyncMarkersSGIX == (GdkGLProc_glGenAsyncMarkersSGIX) -1)
+ _procs_GL_SGIX_async.glGenAsyncMarkersSGIX =
+ (GdkGLProc_glGenAsyncMarkersSGIX) gdk_gl_get_proc_address ("glGenAsyncMarkersSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenAsyncMarkersSGIX () - %s",
+ (_procs_GL_SGIX_async.glGenAsyncMarkersSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_async.glGenAsyncMarkersSGIX);
+}
+
+/* glDeleteAsyncMarkersSGIX */
+GdkGLProc
+gdk_gl_get_glDeleteAsyncMarkersSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_async.glDeleteAsyncMarkersSGIX == (GdkGLProc_glDeleteAsyncMarkersSGIX) -1)
+ _procs_GL_SGIX_async.glDeleteAsyncMarkersSGIX =
+ (GdkGLProc_glDeleteAsyncMarkersSGIX) gdk_gl_get_proc_address ("glDeleteAsyncMarkersSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteAsyncMarkersSGIX () - %s",
+ (_procs_GL_SGIX_async.glDeleteAsyncMarkersSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_async.glDeleteAsyncMarkersSGIX);
+}
+
+/* glIsAsyncMarkerSGIX */
+GdkGLProc
+gdk_gl_get_glIsAsyncMarkerSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_async.glIsAsyncMarkerSGIX == (GdkGLProc_glIsAsyncMarkerSGIX) -1)
+ _procs_GL_SGIX_async.glIsAsyncMarkerSGIX =
+ (GdkGLProc_glIsAsyncMarkerSGIX) gdk_gl_get_proc_address ("glIsAsyncMarkerSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsAsyncMarkerSGIX () - %s",
+ (_procs_GL_SGIX_async.glIsAsyncMarkerSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_async.glIsAsyncMarkerSGIX);
+}
+
+/* Get GL_SGIX_async functions */
+GdkGL_GL_SGIX_async *
+gdk_gl_get_GL_SGIX_async (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_async");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glAsyncMarkerSGIX () != NULL);
+ supported &= (gdk_gl_get_glFinishAsyncSGIX () != NULL);
+ supported &= (gdk_gl_get_glPollAsyncSGIX () != NULL);
+ supported &= (gdk_gl_get_glGenAsyncMarkersSGIX () != NULL);
+ supported &= (gdk_gl_get_glDeleteAsyncMarkersSGIX () != NULL);
+ supported &= (gdk_gl_get_glIsAsyncMarkerSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_async () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_async;
+}
+
+/*
+ * GL_INTEL_parallel_arrays
+ */
+
+static GdkGL_GL_INTEL_parallel_arrays _procs_GL_INTEL_parallel_arrays = {
+ (GdkGLProc_glVertexPointervINTEL) -1,
+ (GdkGLProc_glNormalPointervINTEL) -1,
+ (GdkGLProc_glColorPointervINTEL) -1,
+ (GdkGLProc_glTexCoordPointervINTEL) -1
+};
+
+/* glVertexPointervINTEL */
+GdkGLProc
+gdk_gl_get_glVertexPointervINTEL (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_INTEL_parallel_arrays.glVertexPointervINTEL == (GdkGLProc_glVertexPointervINTEL) -1)
+ _procs_GL_INTEL_parallel_arrays.glVertexPointervINTEL =
+ (GdkGLProc_glVertexPointervINTEL) gdk_gl_get_proc_address ("glVertexPointervINTEL");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexPointervINTEL () - %s",
+ (_procs_GL_INTEL_parallel_arrays.glVertexPointervINTEL) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_INTEL_parallel_arrays.glVertexPointervINTEL);
+}
+
+/* glNormalPointervINTEL */
+GdkGLProc
+gdk_gl_get_glNormalPointervINTEL (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_INTEL_parallel_arrays.glNormalPointervINTEL == (GdkGLProc_glNormalPointervINTEL) -1)
+ _procs_GL_INTEL_parallel_arrays.glNormalPointervINTEL =
+ (GdkGLProc_glNormalPointervINTEL) gdk_gl_get_proc_address ("glNormalPointervINTEL");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalPointervINTEL () - %s",
+ (_procs_GL_INTEL_parallel_arrays.glNormalPointervINTEL) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_INTEL_parallel_arrays.glNormalPointervINTEL);
+}
+
+/* glColorPointervINTEL */
+GdkGLProc
+gdk_gl_get_glColorPointervINTEL (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_INTEL_parallel_arrays.glColorPointervINTEL == (GdkGLProc_glColorPointervINTEL) -1)
+ _procs_GL_INTEL_parallel_arrays.glColorPointervINTEL =
+ (GdkGLProc_glColorPointervINTEL) gdk_gl_get_proc_address ("glColorPointervINTEL");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorPointervINTEL () - %s",
+ (_procs_GL_INTEL_parallel_arrays.glColorPointervINTEL) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_INTEL_parallel_arrays.glColorPointervINTEL);
+}
+
+/* glTexCoordPointervINTEL */
+GdkGLProc
+gdk_gl_get_glTexCoordPointervINTEL (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_INTEL_parallel_arrays.glTexCoordPointervINTEL == (GdkGLProc_glTexCoordPointervINTEL) -1)
+ _procs_GL_INTEL_parallel_arrays.glTexCoordPointervINTEL =
+ (GdkGLProc_glTexCoordPointervINTEL) gdk_gl_get_proc_address ("glTexCoordPointervINTEL");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoordPointervINTEL () - %s",
+ (_procs_GL_INTEL_parallel_arrays.glTexCoordPointervINTEL) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_INTEL_parallel_arrays.glTexCoordPointervINTEL);
+}
+
+/* Get GL_INTEL_parallel_arrays functions */
+GdkGL_GL_INTEL_parallel_arrays *
+gdk_gl_get_GL_INTEL_parallel_arrays (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_INTEL_parallel_arrays");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glVertexPointervINTEL () != NULL);
+ supported &= (gdk_gl_get_glNormalPointervINTEL () != NULL);
+ supported &= (gdk_gl_get_glColorPointervINTEL () != NULL);
+ supported &= (gdk_gl_get_glTexCoordPointervINTEL () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_INTEL_parallel_arrays () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_INTEL_parallel_arrays;
+}
+
+/*
+ * GL_EXT_pixel_transform
+ */
+
+static GdkGL_GL_EXT_pixel_transform _procs_GL_EXT_pixel_transform = {
+ (GdkGLProc_glPixelTransformParameteriEXT) -1,
+ (GdkGLProc_glPixelTransformParameterfEXT) -1,
+ (GdkGLProc_glPixelTransformParameterivEXT) -1,
+ (GdkGLProc_glPixelTransformParameterfvEXT) -1
+};
+
+/* glPixelTransformParameteriEXT */
+GdkGLProc
+gdk_gl_get_glPixelTransformParameteriEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_pixel_transform.glPixelTransformParameteriEXT == (GdkGLProc_glPixelTransformParameteriEXT) -1)
+ _procs_GL_EXT_pixel_transform.glPixelTransformParameteriEXT =
+ (GdkGLProc_glPixelTransformParameteriEXT) gdk_gl_get_proc_address ("glPixelTransformParameteriEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPixelTransformParameteriEXT () - %s",
+ (_procs_GL_EXT_pixel_transform.glPixelTransformParameteriEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_pixel_transform.glPixelTransformParameteriEXT);
+}
+
+/* glPixelTransformParameterfEXT */
+GdkGLProc
+gdk_gl_get_glPixelTransformParameterfEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_pixel_transform.glPixelTransformParameterfEXT == (GdkGLProc_glPixelTransformParameterfEXT) -1)
+ _procs_GL_EXT_pixel_transform.glPixelTransformParameterfEXT =
+ (GdkGLProc_glPixelTransformParameterfEXT) gdk_gl_get_proc_address ("glPixelTransformParameterfEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPixelTransformParameterfEXT () - %s",
+ (_procs_GL_EXT_pixel_transform.glPixelTransformParameterfEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_pixel_transform.glPixelTransformParameterfEXT);
+}
+
+/* glPixelTransformParameterivEXT */
+GdkGLProc
+gdk_gl_get_glPixelTransformParameterivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_pixel_transform.glPixelTransformParameterivEXT == (GdkGLProc_glPixelTransformParameterivEXT) -1)
+ _procs_GL_EXT_pixel_transform.glPixelTransformParameterivEXT =
+ (GdkGLProc_glPixelTransformParameterivEXT) gdk_gl_get_proc_address ("glPixelTransformParameterivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPixelTransformParameterivEXT () - %s",
+ (_procs_GL_EXT_pixel_transform.glPixelTransformParameterivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_pixel_transform.glPixelTransformParameterivEXT);
+}
+
+/* glPixelTransformParameterfvEXT */
+GdkGLProc
+gdk_gl_get_glPixelTransformParameterfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_pixel_transform.glPixelTransformParameterfvEXT == (GdkGLProc_glPixelTransformParameterfvEXT) -1)
+ _procs_GL_EXT_pixel_transform.glPixelTransformParameterfvEXT =
+ (GdkGLProc_glPixelTransformParameterfvEXT) gdk_gl_get_proc_address ("glPixelTransformParameterfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPixelTransformParameterfvEXT () - %s",
+ (_procs_GL_EXT_pixel_transform.glPixelTransformParameterfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_pixel_transform.glPixelTransformParameterfvEXT);
+}
+
+/* Get GL_EXT_pixel_transform functions */
+GdkGL_GL_EXT_pixel_transform *
+gdk_gl_get_GL_EXT_pixel_transform (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_pixel_transform");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPixelTransformParameteriEXT () != NULL);
+ supported &= (gdk_gl_get_glPixelTransformParameterfEXT () != NULL);
+ supported &= (gdk_gl_get_glPixelTransformParameterivEXT () != NULL);
+ supported &= (gdk_gl_get_glPixelTransformParameterfvEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_pixel_transform () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_pixel_transform;
+}
+
+/*
+ * GL_EXT_secondary_color
+ */
+
+static GdkGL_GL_EXT_secondary_color _procs_GL_EXT_secondary_color = {
+ (GdkGLProc_glSecondaryColor3bEXT) -1,
+ (GdkGLProc_glSecondaryColor3bvEXT) -1,
+ (GdkGLProc_glSecondaryColor3dEXT) -1,
+ (GdkGLProc_glSecondaryColor3dvEXT) -1,
+ (GdkGLProc_glSecondaryColor3fEXT) -1,
+ (GdkGLProc_glSecondaryColor3fvEXT) -1,
+ (GdkGLProc_glSecondaryColor3iEXT) -1,
+ (GdkGLProc_glSecondaryColor3ivEXT) -1,
+ (GdkGLProc_glSecondaryColor3sEXT) -1,
+ (GdkGLProc_glSecondaryColor3svEXT) -1,
+ (GdkGLProc_glSecondaryColor3ubEXT) -1,
+ (GdkGLProc_glSecondaryColor3ubvEXT) -1,
+ (GdkGLProc_glSecondaryColor3uiEXT) -1,
+ (GdkGLProc_glSecondaryColor3uivEXT) -1,
+ (GdkGLProc_glSecondaryColor3usEXT) -1,
+ (GdkGLProc_glSecondaryColor3usvEXT) -1,
+ (GdkGLProc_glSecondaryColorPointerEXT) -1
+};
+
+/* glSecondaryColor3bEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3bEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3bEXT == (GdkGLProc_glSecondaryColor3bEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3bEXT =
+ (GdkGLProc_glSecondaryColor3bEXT) gdk_gl_get_proc_address ("glSecondaryColor3bEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3bEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3bEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3bEXT);
+}
+
+/* glSecondaryColor3bvEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3bvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3bvEXT == (GdkGLProc_glSecondaryColor3bvEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3bvEXT =
+ (GdkGLProc_glSecondaryColor3bvEXT) gdk_gl_get_proc_address ("glSecondaryColor3bvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3bvEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3bvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3bvEXT);
+}
+
+/* glSecondaryColor3dEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3dEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3dEXT == (GdkGLProc_glSecondaryColor3dEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3dEXT =
+ (GdkGLProc_glSecondaryColor3dEXT) gdk_gl_get_proc_address ("glSecondaryColor3dEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3dEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3dEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3dEXT);
+}
+
+/* glSecondaryColor3dvEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3dvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3dvEXT == (GdkGLProc_glSecondaryColor3dvEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3dvEXT =
+ (GdkGLProc_glSecondaryColor3dvEXT) gdk_gl_get_proc_address ("glSecondaryColor3dvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3dvEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3dvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3dvEXT);
+}
+
+/* glSecondaryColor3fEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3fEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3fEXT == (GdkGLProc_glSecondaryColor3fEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3fEXT =
+ (GdkGLProc_glSecondaryColor3fEXT) gdk_gl_get_proc_address ("glSecondaryColor3fEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3fEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3fEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3fEXT);
+}
+
+/* glSecondaryColor3fvEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3fvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3fvEXT == (GdkGLProc_glSecondaryColor3fvEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3fvEXT =
+ (GdkGLProc_glSecondaryColor3fvEXT) gdk_gl_get_proc_address ("glSecondaryColor3fvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3fvEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3fvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3fvEXT);
+}
+
+/* glSecondaryColor3iEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3iEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3iEXT == (GdkGLProc_glSecondaryColor3iEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3iEXT =
+ (GdkGLProc_glSecondaryColor3iEXT) gdk_gl_get_proc_address ("glSecondaryColor3iEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3iEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3iEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3iEXT);
+}
+
+/* glSecondaryColor3ivEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3ivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3ivEXT == (GdkGLProc_glSecondaryColor3ivEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3ivEXT =
+ (GdkGLProc_glSecondaryColor3ivEXT) gdk_gl_get_proc_address ("glSecondaryColor3ivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3ivEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3ivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3ivEXT);
+}
+
+/* glSecondaryColor3sEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3sEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3sEXT == (GdkGLProc_glSecondaryColor3sEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3sEXT =
+ (GdkGLProc_glSecondaryColor3sEXT) gdk_gl_get_proc_address ("glSecondaryColor3sEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3sEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3sEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3sEXT);
+}
+
+/* glSecondaryColor3svEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3svEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3svEXT == (GdkGLProc_glSecondaryColor3svEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3svEXT =
+ (GdkGLProc_glSecondaryColor3svEXT) gdk_gl_get_proc_address ("glSecondaryColor3svEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3svEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3svEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3svEXT);
+}
+
+/* glSecondaryColor3ubEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3ubEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3ubEXT == (GdkGLProc_glSecondaryColor3ubEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3ubEXT =
+ (GdkGLProc_glSecondaryColor3ubEXT) gdk_gl_get_proc_address ("glSecondaryColor3ubEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3ubEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3ubEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3ubEXT);
+}
+
+/* glSecondaryColor3ubvEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3ubvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3ubvEXT == (GdkGLProc_glSecondaryColor3ubvEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3ubvEXT =
+ (GdkGLProc_glSecondaryColor3ubvEXT) gdk_gl_get_proc_address ("glSecondaryColor3ubvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3ubvEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3ubvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3ubvEXT);
+}
+
+/* glSecondaryColor3uiEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3uiEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3uiEXT == (GdkGLProc_glSecondaryColor3uiEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3uiEXT =
+ (GdkGLProc_glSecondaryColor3uiEXT) gdk_gl_get_proc_address ("glSecondaryColor3uiEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3uiEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3uiEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3uiEXT);
+}
+
+/* glSecondaryColor3uivEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3uivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3uivEXT == (GdkGLProc_glSecondaryColor3uivEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3uivEXT =
+ (GdkGLProc_glSecondaryColor3uivEXT) gdk_gl_get_proc_address ("glSecondaryColor3uivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3uivEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3uivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3uivEXT);
+}
+
+/* glSecondaryColor3usEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3usEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3usEXT == (GdkGLProc_glSecondaryColor3usEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3usEXT =
+ (GdkGLProc_glSecondaryColor3usEXT) gdk_gl_get_proc_address ("glSecondaryColor3usEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3usEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3usEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3usEXT);
+}
+
+/* glSecondaryColor3usvEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3usvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColor3usvEXT == (GdkGLProc_glSecondaryColor3usvEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColor3usvEXT =
+ (GdkGLProc_glSecondaryColor3usvEXT) gdk_gl_get_proc_address ("glSecondaryColor3usvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3usvEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColor3usvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColor3usvEXT);
+}
+
+/* glSecondaryColorPointerEXT */
+GdkGLProc
+gdk_gl_get_glSecondaryColorPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_secondary_color.glSecondaryColorPointerEXT == (GdkGLProc_glSecondaryColorPointerEXT) -1)
+ _procs_GL_EXT_secondary_color.glSecondaryColorPointerEXT =
+ (GdkGLProc_glSecondaryColorPointerEXT) gdk_gl_get_proc_address ("glSecondaryColorPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColorPointerEXT () - %s",
+ (_procs_GL_EXT_secondary_color.glSecondaryColorPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_secondary_color.glSecondaryColorPointerEXT);
+}
+
+/* Get GL_EXT_secondary_color functions */
+GdkGL_GL_EXT_secondary_color *
+gdk_gl_get_GL_EXT_secondary_color (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_secondary_color");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glSecondaryColor3bEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3bvEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3dEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3dvEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3fEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3fvEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3iEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3ivEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3sEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3svEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3ubEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3ubvEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3uiEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3uivEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3usEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3usvEXT () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColorPointerEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_secondary_color () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_secondary_color;
+}
+
+/*
+ * GL_EXT_texture_perturb_normal
+ */
+
+static GdkGL_GL_EXT_texture_perturb_normal _procs_GL_EXT_texture_perturb_normal = {
+ (GdkGLProc_glTextureNormalEXT) -1
+};
+
+/* glTextureNormalEXT */
+GdkGLProc
+gdk_gl_get_glTextureNormalEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_texture_perturb_normal.glTextureNormalEXT == (GdkGLProc_glTextureNormalEXT) -1)
+ _procs_GL_EXT_texture_perturb_normal.glTextureNormalEXT =
+ (GdkGLProc_glTextureNormalEXT) gdk_gl_get_proc_address ("glTextureNormalEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTextureNormalEXT () - %s",
+ (_procs_GL_EXT_texture_perturb_normal.glTextureNormalEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_texture_perturb_normal.glTextureNormalEXT);
+}
+
+/* Get GL_EXT_texture_perturb_normal functions */
+GdkGL_GL_EXT_texture_perturb_normal *
+gdk_gl_get_GL_EXT_texture_perturb_normal (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_texture_perturb_normal");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTextureNormalEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_texture_perturb_normal () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_texture_perturb_normal;
+}
+
+/*
+ * GL_EXT_multi_draw_arrays
+ */
+
+static GdkGL_GL_EXT_multi_draw_arrays _procs_GL_EXT_multi_draw_arrays = {
+ (GdkGLProc_glMultiDrawArraysEXT) -1,
+ (GdkGLProc_glMultiDrawElementsEXT) -1
+};
+
+/* glMultiDrawArraysEXT */
+GdkGLProc
+gdk_gl_get_glMultiDrawArraysEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multi_draw_arrays.glMultiDrawArraysEXT == (GdkGLProc_glMultiDrawArraysEXT) -1)
+ _procs_GL_EXT_multi_draw_arrays.glMultiDrawArraysEXT =
+ (GdkGLProc_glMultiDrawArraysEXT) gdk_gl_get_proc_address ("glMultiDrawArraysEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiDrawArraysEXT () - %s",
+ (_procs_GL_EXT_multi_draw_arrays.glMultiDrawArraysEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multi_draw_arrays.glMultiDrawArraysEXT);
+}
+
+/* glMultiDrawElementsEXT */
+GdkGLProc
+gdk_gl_get_glMultiDrawElementsEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multi_draw_arrays.glMultiDrawElementsEXT == (GdkGLProc_glMultiDrawElementsEXT) -1)
+ _procs_GL_EXT_multi_draw_arrays.glMultiDrawElementsEXT =
+ (GdkGLProc_glMultiDrawElementsEXT) gdk_gl_get_proc_address ("glMultiDrawElementsEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiDrawElementsEXT () - %s",
+ (_procs_GL_EXT_multi_draw_arrays.glMultiDrawElementsEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multi_draw_arrays.glMultiDrawElementsEXT);
+}
+
+/* Get GL_EXT_multi_draw_arrays functions */
+GdkGL_GL_EXT_multi_draw_arrays *
+gdk_gl_get_GL_EXT_multi_draw_arrays (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_multi_draw_arrays");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glMultiDrawArraysEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiDrawElementsEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_multi_draw_arrays () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_multi_draw_arrays;
+}
+
+/*
+ * GL_EXT_fog_coord
+ */
+
+static GdkGL_GL_EXT_fog_coord _procs_GL_EXT_fog_coord = {
+ (GdkGLProc_glFogCoordfEXT) -1,
+ (GdkGLProc_glFogCoordfvEXT) -1,
+ (GdkGLProc_glFogCoorddEXT) -1,
+ (GdkGLProc_glFogCoorddvEXT) -1,
+ (GdkGLProc_glFogCoordPointerEXT) -1
+};
+
+/* glFogCoordfEXT */
+GdkGLProc
+gdk_gl_get_glFogCoordfEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fog_coord.glFogCoordfEXT == (GdkGLProc_glFogCoordfEXT) -1)
+ _procs_GL_EXT_fog_coord.glFogCoordfEXT =
+ (GdkGLProc_glFogCoordfEXT) gdk_gl_get_proc_address ("glFogCoordfEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoordfEXT () - %s",
+ (_procs_GL_EXT_fog_coord.glFogCoordfEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fog_coord.glFogCoordfEXT);
+}
+
+/* glFogCoordfvEXT */
+GdkGLProc
+gdk_gl_get_glFogCoordfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fog_coord.glFogCoordfvEXT == (GdkGLProc_glFogCoordfvEXT) -1)
+ _procs_GL_EXT_fog_coord.glFogCoordfvEXT =
+ (GdkGLProc_glFogCoordfvEXT) gdk_gl_get_proc_address ("glFogCoordfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoordfvEXT () - %s",
+ (_procs_GL_EXT_fog_coord.glFogCoordfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fog_coord.glFogCoordfvEXT);
+}
+
+/* glFogCoorddEXT */
+GdkGLProc
+gdk_gl_get_glFogCoorddEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fog_coord.glFogCoorddEXT == (GdkGLProc_glFogCoorddEXT) -1)
+ _procs_GL_EXT_fog_coord.glFogCoorddEXT =
+ (GdkGLProc_glFogCoorddEXT) gdk_gl_get_proc_address ("glFogCoorddEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoorddEXT () - %s",
+ (_procs_GL_EXT_fog_coord.glFogCoorddEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fog_coord.glFogCoorddEXT);
+}
+
+/* glFogCoorddvEXT */
+GdkGLProc
+gdk_gl_get_glFogCoorddvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fog_coord.glFogCoorddvEXT == (GdkGLProc_glFogCoorddvEXT) -1)
+ _procs_GL_EXT_fog_coord.glFogCoorddvEXT =
+ (GdkGLProc_glFogCoorddvEXT) gdk_gl_get_proc_address ("glFogCoorddvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoorddvEXT () - %s",
+ (_procs_GL_EXT_fog_coord.glFogCoorddvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fog_coord.glFogCoorddvEXT);
+}
+
+/* glFogCoordPointerEXT */
+GdkGLProc
+gdk_gl_get_glFogCoordPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fog_coord.glFogCoordPointerEXT == (GdkGLProc_glFogCoordPointerEXT) -1)
+ _procs_GL_EXT_fog_coord.glFogCoordPointerEXT =
+ (GdkGLProc_glFogCoordPointerEXT) gdk_gl_get_proc_address ("glFogCoordPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoordPointerEXT () - %s",
+ (_procs_GL_EXT_fog_coord.glFogCoordPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fog_coord.glFogCoordPointerEXT);
+}
+
+/* Get GL_EXT_fog_coord functions */
+GdkGL_GL_EXT_fog_coord *
+gdk_gl_get_GL_EXT_fog_coord (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_fog_coord");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glFogCoordfEXT () != NULL);
+ supported &= (gdk_gl_get_glFogCoordfvEXT () != NULL);
+ supported &= (gdk_gl_get_glFogCoorddEXT () != NULL);
+ supported &= (gdk_gl_get_glFogCoorddvEXT () != NULL);
+ supported &= (gdk_gl_get_glFogCoordPointerEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_fog_coord () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_fog_coord;
+}
+
+/*
+ * GL_EXT_coordinate_frame
+ */
+
+static GdkGL_GL_EXT_coordinate_frame _procs_GL_EXT_coordinate_frame = {
+ (GdkGLProc_glTangent3bEXT) -1,
+ (GdkGLProc_glTangent3bvEXT) -1,
+ (GdkGLProc_glTangent3dEXT) -1,
+ (GdkGLProc_glTangent3dvEXT) -1,
+ (GdkGLProc_glTangent3fEXT) -1,
+ (GdkGLProc_glTangent3fvEXT) -1,
+ (GdkGLProc_glTangent3iEXT) -1,
+ (GdkGLProc_glTangent3ivEXT) -1,
+ (GdkGLProc_glTangent3sEXT) -1,
+ (GdkGLProc_glTangent3svEXT) -1,
+ (GdkGLProc_glBinormal3bEXT) -1,
+ (GdkGLProc_glBinormal3bvEXT) -1,
+ (GdkGLProc_glBinormal3dEXT) -1,
+ (GdkGLProc_glBinormal3dvEXT) -1,
+ (GdkGLProc_glBinormal3fEXT) -1,
+ (GdkGLProc_glBinormal3fvEXT) -1,
+ (GdkGLProc_glBinormal3iEXT) -1,
+ (GdkGLProc_glBinormal3ivEXT) -1,
+ (GdkGLProc_glBinormal3sEXT) -1,
+ (GdkGLProc_glBinormal3svEXT) -1,
+ (GdkGLProc_glTangentPointerEXT) -1,
+ (GdkGLProc_glBinormalPointerEXT) -1
+};
+
+/* glTangent3bEXT */
+GdkGLProc
+gdk_gl_get_glTangent3bEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangent3bEXT == (GdkGLProc_glTangent3bEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangent3bEXT =
+ (GdkGLProc_glTangent3bEXT) gdk_gl_get_proc_address ("glTangent3bEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangent3bEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangent3bEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangent3bEXT);
+}
+
+/* glTangent3bvEXT */
+GdkGLProc
+gdk_gl_get_glTangent3bvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangent3bvEXT == (GdkGLProc_glTangent3bvEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangent3bvEXT =
+ (GdkGLProc_glTangent3bvEXT) gdk_gl_get_proc_address ("glTangent3bvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangent3bvEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangent3bvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangent3bvEXT);
+}
+
+/* glTangent3dEXT */
+GdkGLProc
+gdk_gl_get_glTangent3dEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangent3dEXT == (GdkGLProc_glTangent3dEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangent3dEXT =
+ (GdkGLProc_glTangent3dEXT) gdk_gl_get_proc_address ("glTangent3dEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangent3dEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangent3dEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangent3dEXT);
+}
+
+/* glTangent3dvEXT */
+GdkGLProc
+gdk_gl_get_glTangent3dvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangent3dvEXT == (GdkGLProc_glTangent3dvEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangent3dvEXT =
+ (GdkGLProc_glTangent3dvEXT) gdk_gl_get_proc_address ("glTangent3dvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangent3dvEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangent3dvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangent3dvEXT);
+}
+
+/* glTangent3fEXT */
+GdkGLProc
+gdk_gl_get_glTangent3fEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangent3fEXT == (GdkGLProc_glTangent3fEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangent3fEXT =
+ (GdkGLProc_glTangent3fEXT) gdk_gl_get_proc_address ("glTangent3fEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangent3fEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangent3fEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangent3fEXT);
+}
+
+/* glTangent3fvEXT */
+GdkGLProc
+gdk_gl_get_glTangent3fvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangent3fvEXT == (GdkGLProc_glTangent3fvEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangent3fvEXT =
+ (GdkGLProc_glTangent3fvEXT) gdk_gl_get_proc_address ("glTangent3fvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangent3fvEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangent3fvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangent3fvEXT);
+}
+
+/* glTangent3iEXT */
+GdkGLProc
+gdk_gl_get_glTangent3iEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangent3iEXT == (GdkGLProc_glTangent3iEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangent3iEXT =
+ (GdkGLProc_glTangent3iEXT) gdk_gl_get_proc_address ("glTangent3iEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangent3iEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangent3iEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangent3iEXT);
+}
+
+/* glTangent3ivEXT */
+GdkGLProc
+gdk_gl_get_glTangent3ivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangent3ivEXT == (GdkGLProc_glTangent3ivEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangent3ivEXT =
+ (GdkGLProc_glTangent3ivEXT) gdk_gl_get_proc_address ("glTangent3ivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangent3ivEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangent3ivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangent3ivEXT);
+}
+
+/* glTangent3sEXT */
+GdkGLProc
+gdk_gl_get_glTangent3sEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangent3sEXT == (GdkGLProc_glTangent3sEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangent3sEXT =
+ (GdkGLProc_glTangent3sEXT) gdk_gl_get_proc_address ("glTangent3sEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangent3sEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangent3sEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangent3sEXT);
+}
+
+/* glTangent3svEXT */
+GdkGLProc
+gdk_gl_get_glTangent3svEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangent3svEXT == (GdkGLProc_glTangent3svEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangent3svEXT =
+ (GdkGLProc_glTangent3svEXT) gdk_gl_get_proc_address ("glTangent3svEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangent3svEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangent3svEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangent3svEXT);
+}
+
+/* glBinormal3bEXT */
+GdkGLProc
+gdk_gl_get_glBinormal3bEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormal3bEXT == (GdkGLProc_glBinormal3bEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormal3bEXT =
+ (GdkGLProc_glBinormal3bEXT) gdk_gl_get_proc_address ("glBinormal3bEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormal3bEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormal3bEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormal3bEXT);
+}
+
+/* glBinormal3bvEXT */
+GdkGLProc
+gdk_gl_get_glBinormal3bvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormal3bvEXT == (GdkGLProc_glBinormal3bvEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormal3bvEXT =
+ (GdkGLProc_glBinormal3bvEXT) gdk_gl_get_proc_address ("glBinormal3bvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormal3bvEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormal3bvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormal3bvEXT);
+}
+
+/* glBinormal3dEXT */
+GdkGLProc
+gdk_gl_get_glBinormal3dEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormal3dEXT == (GdkGLProc_glBinormal3dEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormal3dEXT =
+ (GdkGLProc_glBinormal3dEXT) gdk_gl_get_proc_address ("glBinormal3dEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormal3dEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormal3dEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormal3dEXT);
+}
+
+/* glBinormal3dvEXT */
+GdkGLProc
+gdk_gl_get_glBinormal3dvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormal3dvEXT == (GdkGLProc_glBinormal3dvEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormal3dvEXT =
+ (GdkGLProc_glBinormal3dvEXT) gdk_gl_get_proc_address ("glBinormal3dvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormal3dvEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormal3dvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormal3dvEXT);
+}
+
+/* glBinormal3fEXT */
+GdkGLProc
+gdk_gl_get_glBinormal3fEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormal3fEXT == (GdkGLProc_glBinormal3fEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormal3fEXT =
+ (GdkGLProc_glBinormal3fEXT) gdk_gl_get_proc_address ("glBinormal3fEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormal3fEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormal3fEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormal3fEXT);
+}
+
+/* glBinormal3fvEXT */
+GdkGLProc
+gdk_gl_get_glBinormal3fvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormal3fvEXT == (GdkGLProc_glBinormal3fvEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormal3fvEXT =
+ (GdkGLProc_glBinormal3fvEXT) gdk_gl_get_proc_address ("glBinormal3fvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormal3fvEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormal3fvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormal3fvEXT);
+}
+
+/* glBinormal3iEXT */
+GdkGLProc
+gdk_gl_get_glBinormal3iEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormal3iEXT == (GdkGLProc_glBinormal3iEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormal3iEXT =
+ (GdkGLProc_glBinormal3iEXT) gdk_gl_get_proc_address ("glBinormal3iEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormal3iEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormal3iEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormal3iEXT);
+}
+
+/* glBinormal3ivEXT */
+GdkGLProc
+gdk_gl_get_glBinormal3ivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormal3ivEXT == (GdkGLProc_glBinormal3ivEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormal3ivEXT =
+ (GdkGLProc_glBinormal3ivEXT) gdk_gl_get_proc_address ("glBinormal3ivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormal3ivEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormal3ivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormal3ivEXT);
+}
+
+/* glBinormal3sEXT */
+GdkGLProc
+gdk_gl_get_glBinormal3sEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormal3sEXT == (GdkGLProc_glBinormal3sEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormal3sEXT =
+ (GdkGLProc_glBinormal3sEXT) gdk_gl_get_proc_address ("glBinormal3sEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormal3sEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormal3sEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormal3sEXT);
+}
+
+/* glBinormal3svEXT */
+GdkGLProc
+gdk_gl_get_glBinormal3svEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormal3svEXT == (GdkGLProc_glBinormal3svEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormal3svEXT =
+ (GdkGLProc_glBinormal3svEXT) gdk_gl_get_proc_address ("glBinormal3svEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormal3svEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormal3svEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormal3svEXT);
+}
+
+/* glTangentPointerEXT */
+GdkGLProc
+gdk_gl_get_glTangentPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glTangentPointerEXT == (GdkGLProc_glTangentPointerEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glTangentPointerEXT =
+ (GdkGLProc_glTangentPointerEXT) gdk_gl_get_proc_address ("glTangentPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTangentPointerEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glTangentPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glTangentPointerEXT);
+}
+
+/* glBinormalPointerEXT */
+GdkGLProc
+gdk_gl_get_glBinormalPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_coordinate_frame.glBinormalPointerEXT == (GdkGLProc_glBinormalPointerEXT) -1)
+ _procs_GL_EXT_coordinate_frame.glBinormalPointerEXT =
+ (GdkGLProc_glBinormalPointerEXT) gdk_gl_get_proc_address ("glBinormalPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBinormalPointerEXT () - %s",
+ (_procs_GL_EXT_coordinate_frame.glBinormalPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_coordinate_frame.glBinormalPointerEXT);
+}
+
+/* Get GL_EXT_coordinate_frame functions */
+GdkGL_GL_EXT_coordinate_frame *
+gdk_gl_get_GL_EXT_coordinate_frame (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_coordinate_frame");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTangent3bEXT () != NULL);
+ supported &= (gdk_gl_get_glTangent3bvEXT () != NULL);
+ supported &= (gdk_gl_get_glTangent3dEXT () != NULL);
+ supported &= (gdk_gl_get_glTangent3dvEXT () != NULL);
+ supported &= (gdk_gl_get_glTangent3fEXT () != NULL);
+ supported &= (gdk_gl_get_glTangent3fvEXT () != NULL);
+ supported &= (gdk_gl_get_glTangent3iEXT () != NULL);
+ supported &= (gdk_gl_get_glTangent3ivEXT () != NULL);
+ supported &= (gdk_gl_get_glTangent3sEXT () != NULL);
+ supported &= (gdk_gl_get_glTangent3svEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormal3bEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormal3bvEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormal3dEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormal3dvEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormal3fEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormal3fvEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormal3iEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormal3ivEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormal3sEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormal3svEXT () != NULL);
+ supported &= (gdk_gl_get_glTangentPointerEXT () != NULL);
+ supported &= (gdk_gl_get_glBinormalPointerEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_coordinate_frame () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_coordinate_frame;
+}
+
+/*
+ * GL_SUNX_constant_data
+ */
+
+static GdkGL_GL_SUNX_constant_data _procs_GL_SUNX_constant_data = {
+ (GdkGLProc_glFinishTextureSUNX) -1
+};
+
+/* glFinishTextureSUNX */
+GdkGLProc
+gdk_gl_get_glFinishTextureSUNX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUNX_constant_data.glFinishTextureSUNX == (GdkGLProc_glFinishTextureSUNX) -1)
+ _procs_GL_SUNX_constant_data.glFinishTextureSUNX =
+ (GdkGLProc_glFinishTextureSUNX) gdk_gl_get_proc_address ("glFinishTextureSUNX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFinishTextureSUNX () - %s",
+ (_procs_GL_SUNX_constant_data.glFinishTextureSUNX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUNX_constant_data.glFinishTextureSUNX);
+}
+
+/* Get GL_SUNX_constant_data functions */
+GdkGL_GL_SUNX_constant_data *
+gdk_gl_get_GL_SUNX_constant_data (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SUNX_constant_data");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glFinishTextureSUNX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SUNX_constant_data () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SUNX_constant_data;
+}
+
+/*
+ * GL_SUN_global_alpha
+ */
+
+static GdkGL_GL_SUN_global_alpha _procs_GL_SUN_global_alpha = {
+ (GdkGLProc_glGlobalAlphaFactorbSUN) -1,
+ (GdkGLProc_glGlobalAlphaFactorsSUN) -1,
+ (GdkGLProc_glGlobalAlphaFactoriSUN) -1,
+ (GdkGLProc_glGlobalAlphaFactorfSUN) -1,
+ (GdkGLProc_glGlobalAlphaFactordSUN) -1,
+ (GdkGLProc_glGlobalAlphaFactorubSUN) -1,
+ (GdkGLProc_glGlobalAlphaFactorusSUN) -1,
+ (GdkGLProc_glGlobalAlphaFactoruiSUN) -1
+};
+
+/* glGlobalAlphaFactorbSUN */
+GdkGLProc
+gdk_gl_get_glGlobalAlphaFactorbSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorbSUN == (GdkGLProc_glGlobalAlphaFactorbSUN) -1)
+ _procs_GL_SUN_global_alpha.glGlobalAlphaFactorbSUN =
+ (GdkGLProc_glGlobalAlphaFactorbSUN) gdk_gl_get_proc_address ("glGlobalAlphaFactorbSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGlobalAlphaFactorbSUN () - %s",
+ (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorbSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorbSUN);
+}
+
+/* glGlobalAlphaFactorsSUN */
+GdkGLProc
+gdk_gl_get_glGlobalAlphaFactorsSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorsSUN == (GdkGLProc_glGlobalAlphaFactorsSUN) -1)
+ _procs_GL_SUN_global_alpha.glGlobalAlphaFactorsSUN =
+ (GdkGLProc_glGlobalAlphaFactorsSUN) gdk_gl_get_proc_address ("glGlobalAlphaFactorsSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGlobalAlphaFactorsSUN () - %s",
+ (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorsSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorsSUN);
+}
+
+/* glGlobalAlphaFactoriSUN */
+GdkGLProc
+gdk_gl_get_glGlobalAlphaFactoriSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_global_alpha.glGlobalAlphaFactoriSUN == (GdkGLProc_glGlobalAlphaFactoriSUN) -1)
+ _procs_GL_SUN_global_alpha.glGlobalAlphaFactoriSUN =
+ (GdkGLProc_glGlobalAlphaFactoriSUN) gdk_gl_get_proc_address ("glGlobalAlphaFactoriSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGlobalAlphaFactoriSUN () - %s",
+ (_procs_GL_SUN_global_alpha.glGlobalAlphaFactoriSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_global_alpha.glGlobalAlphaFactoriSUN);
+}
+
+/* glGlobalAlphaFactorfSUN */
+GdkGLProc
+gdk_gl_get_glGlobalAlphaFactorfSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorfSUN == (GdkGLProc_glGlobalAlphaFactorfSUN) -1)
+ _procs_GL_SUN_global_alpha.glGlobalAlphaFactorfSUN =
+ (GdkGLProc_glGlobalAlphaFactorfSUN) gdk_gl_get_proc_address ("glGlobalAlphaFactorfSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGlobalAlphaFactorfSUN () - %s",
+ (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorfSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorfSUN);
+}
+
+/* glGlobalAlphaFactordSUN */
+GdkGLProc
+gdk_gl_get_glGlobalAlphaFactordSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_global_alpha.glGlobalAlphaFactordSUN == (GdkGLProc_glGlobalAlphaFactordSUN) -1)
+ _procs_GL_SUN_global_alpha.glGlobalAlphaFactordSUN =
+ (GdkGLProc_glGlobalAlphaFactordSUN) gdk_gl_get_proc_address ("glGlobalAlphaFactordSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGlobalAlphaFactordSUN () - %s",
+ (_procs_GL_SUN_global_alpha.glGlobalAlphaFactordSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_global_alpha.glGlobalAlphaFactordSUN);
+}
+
+/* glGlobalAlphaFactorubSUN */
+GdkGLProc
+gdk_gl_get_glGlobalAlphaFactorubSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorubSUN == (GdkGLProc_glGlobalAlphaFactorubSUN) -1)
+ _procs_GL_SUN_global_alpha.glGlobalAlphaFactorubSUN =
+ (GdkGLProc_glGlobalAlphaFactorubSUN) gdk_gl_get_proc_address ("glGlobalAlphaFactorubSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGlobalAlphaFactorubSUN () - %s",
+ (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorubSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorubSUN);
+}
+
+/* glGlobalAlphaFactorusSUN */
+GdkGLProc
+gdk_gl_get_glGlobalAlphaFactorusSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorusSUN == (GdkGLProc_glGlobalAlphaFactorusSUN) -1)
+ _procs_GL_SUN_global_alpha.glGlobalAlphaFactorusSUN =
+ (GdkGLProc_glGlobalAlphaFactorusSUN) gdk_gl_get_proc_address ("glGlobalAlphaFactorusSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGlobalAlphaFactorusSUN () - %s",
+ (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorusSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_global_alpha.glGlobalAlphaFactorusSUN);
+}
+
+/* glGlobalAlphaFactoruiSUN */
+GdkGLProc
+gdk_gl_get_glGlobalAlphaFactoruiSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_global_alpha.glGlobalAlphaFactoruiSUN == (GdkGLProc_glGlobalAlphaFactoruiSUN) -1)
+ _procs_GL_SUN_global_alpha.glGlobalAlphaFactoruiSUN =
+ (GdkGLProc_glGlobalAlphaFactoruiSUN) gdk_gl_get_proc_address ("glGlobalAlphaFactoruiSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGlobalAlphaFactoruiSUN () - %s",
+ (_procs_GL_SUN_global_alpha.glGlobalAlphaFactoruiSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_global_alpha.glGlobalAlphaFactoruiSUN);
+}
+
+/* Get GL_SUN_global_alpha functions */
+GdkGL_GL_SUN_global_alpha *
+gdk_gl_get_GL_SUN_global_alpha (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SUN_global_alpha");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glGlobalAlphaFactorbSUN () != NULL);
+ supported &= (gdk_gl_get_glGlobalAlphaFactorsSUN () != NULL);
+ supported &= (gdk_gl_get_glGlobalAlphaFactoriSUN () != NULL);
+ supported &= (gdk_gl_get_glGlobalAlphaFactorfSUN () != NULL);
+ supported &= (gdk_gl_get_glGlobalAlphaFactordSUN () != NULL);
+ supported &= (gdk_gl_get_glGlobalAlphaFactorubSUN () != NULL);
+ supported &= (gdk_gl_get_glGlobalAlphaFactorusSUN () != NULL);
+ supported &= (gdk_gl_get_glGlobalAlphaFactoruiSUN () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SUN_global_alpha () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SUN_global_alpha;
+}
+
+/*
+ * GL_SUN_triangle_list
+ */
+
+static GdkGL_GL_SUN_triangle_list _procs_GL_SUN_triangle_list = {
+ (GdkGLProc_glReplacementCodeuiSUN) -1,
+ (GdkGLProc_glReplacementCodeusSUN) -1,
+ (GdkGLProc_glReplacementCodeubSUN) -1,
+ (GdkGLProc_glReplacementCodeuivSUN) -1,
+ (GdkGLProc_glReplacementCodeusvSUN) -1,
+ (GdkGLProc_glReplacementCodeubvSUN) -1,
+ (GdkGLProc_glReplacementCodePointerSUN) -1
+};
+
+/* glReplacementCodeuiSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_triangle_list.glReplacementCodeuiSUN == (GdkGLProc_glReplacementCodeuiSUN) -1)
+ _procs_GL_SUN_triangle_list.glReplacementCodeuiSUN =
+ (GdkGLProc_glReplacementCodeuiSUN) gdk_gl_get_proc_address ("glReplacementCodeuiSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiSUN () - %s",
+ (_procs_GL_SUN_triangle_list.glReplacementCodeuiSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_triangle_list.glReplacementCodeuiSUN);
+}
+
+/* glReplacementCodeusSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeusSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_triangle_list.glReplacementCodeusSUN == (GdkGLProc_glReplacementCodeusSUN) -1)
+ _procs_GL_SUN_triangle_list.glReplacementCodeusSUN =
+ (GdkGLProc_glReplacementCodeusSUN) gdk_gl_get_proc_address ("glReplacementCodeusSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeusSUN () - %s",
+ (_procs_GL_SUN_triangle_list.glReplacementCodeusSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_triangle_list.glReplacementCodeusSUN);
+}
+
+/* glReplacementCodeubSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeubSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_triangle_list.glReplacementCodeubSUN == (GdkGLProc_glReplacementCodeubSUN) -1)
+ _procs_GL_SUN_triangle_list.glReplacementCodeubSUN =
+ (GdkGLProc_glReplacementCodeubSUN) gdk_gl_get_proc_address ("glReplacementCodeubSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeubSUN () - %s",
+ (_procs_GL_SUN_triangle_list.glReplacementCodeubSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_triangle_list.glReplacementCodeubSUN);
+}
+
+/* glReplacementCodeuivSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuivSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_triangle_list.glReplacementCodeuivSUN == (GdkGLProc_glReplacementCodeuivSUN) -1)
+ _procs_GL_SUN_triangle_list.glReplacementCodeuivSUN =
+ (GdkGLProc_glReplacementCodeuivSUN) gdk_gl_get_proc_address ("glReplacementCodeuivSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuivSUN () - %s",
+ (_procs_GL_SUN_triangle_list.glReplacementCodeuivSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_triangle_list.glReplacementCodeuivSUN);
+}
+
+/* glReplacementCodeusvSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeusvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_triangle_list.glReplacementCodeusvSUN == (GdkGLProc_glReplacementCodeusvSUN) -1)
+ _procs_GL_SUN_triangle_list.glReplacementCodeusvSUN =
+ (GdkGLProc_glReplacementCodeusvSUN) gdk_gl_get_proc_address ("glReplacementCodeusvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeusvSUN () - %s",
+ (_procs_GL_SUN_triangle_list.glReplacementCodeusvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_triangle_list.glReplacementCodeusvSUN);
+}
+
+/* glReplacementCodeubvSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeubvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_triangle_list.glReplacementCodeubvSUN == (GdkGLProc_glReplacementCodeubvSUN) -1)
+ _procs_GL_SUN_triangle_list.glReplacementCodeubvSUN =
+ (GdkGLProc_glReplacementCodeubvSUN) gdk_gl_get_proc_address ("glReplacementCodeubvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeubvSUN () - %s",
+ (_procs_GL_SUN_triangle_list.glReplacementCodeubvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_triangle_list.glReplacementCodeubvSUN);
+}
+
+/* glReplacementCodePointerSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodePointerSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_triangle_list.glReplacementCodePointerSUN == (GdkGLProc_glReplacementCodePointerSUN) -1)
+ _procs_GL_SUN_triangle_list.glReplacementCodePointerSUN =
+ (GdkGLProc_glReplacementCodePointerSUN) gdk_gl_get_proc_address ("glReplacementCodePointerSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodePointerSUN () - %s",
+ (_procs_GL_SUN_triangle_list.glReplacementCodePointerSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_triangle_list.glReplacementCodePointerSUN);
+}
+
+/* Get GL_SUN_triangle_list functions */
+GdkGL_GL_SUN_triangle_list *
+gdk_gl_get_GL_SUN_triangle_list (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SUN_triangle_list");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glReplacementCodeuiSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeusSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeubSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuivSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeusvSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeubvSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodePointerSUN () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SUN_triangle_list () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SUN_triangle_list;
+}
+
+/*
+ * GL_SUN_vertex
+ */
+
+static GdkGL_GL_SUN_vertex _procs_GL_SUN_vertex = {
+ (GdkGLProc_glColor4ubVertex2fSUN) -1,
+ (GdkGLProc_glColor4ubVertex2fvSUN) -1,
+ (GdkGLProc_glColor4ubVertex3fSUN) -1,
+ (GdkGLProc_glColor4ubVertex3fvSUN) -1,
+ (GdkGLProc_glColor3fVertex3fSUN) -1,
+ (GdkGLProc_glColor3fVertex3fvSUN) -1,
+ (GdkGLProc_glNormal3fVertex3fSUN) -1,
+ (GdkGLProc_glNormal3fVertex3fvSUN) -1,
+ (GdkGLProc_glColor4fNormal3fVertex3fSUN) -1,
+ (GdkGLProc_glColor4fNormal3fVertex3fvSUN) -1,
+ (GdkGLProc_glTexCoord2fVertex3fSUN) -1,
+ (GdkGLProc_glTexCoord2fVertex3fvSUN) -1,
+ (GdkGLProc_glTexCoord4fVertex4fSUN) -1,
+ (GdkGLProc_glTexCoord4fVertex4fvSUN) -1,
+ (GdkGLProc_glTexCoord2fColor4ubVertex3fSUN) -1,
+ (GdkGLProc_glTexCoord2fColor4ubVertex3fvSUN) -1,
+ (GdkGLProc_glTexCoord2fColor3fVertex3fSUN) -1,
+ (GdkGLProc_glTexCoord2fColor3fVertex3fvSUN) -1,
+ (GdkGLProc_glTexCoord2fNormal3fVertex3fSUN) -1,
+ (GdkGLProc_glTexCoord2fNormal3fVertex3fvSUN) -1,
+ (GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fSUN) -1,
+ (GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fvSUN) -1,
+ (GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fSUN) -1,
+ (GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fvSUN) -1,
+ (GdkGLProc_glReplacementCodeuiVertex3fSUN) -1,
+ (GdkGLProc_glReplacementCodeuiVertex3fvSUN) -1,
+ (GdkGLProc_glReplacementCodeuiColor4ubVertex3fSUN) -1,
+ (GdkGLProc_glReplacementCodeuiColor4ubVertex3fvSUN) -1,
+ (GdkGLProc_glReplacementCodeuiColor3fVertex3fSUN) -1,
+ (GdkGLProc_glReplacementCodeuiColor3fVertex3fvSUN) -1,
+ (GdkGLProc_glReplacementCodeuiNormal3fVertex3fSUN) -1,
+ (GdkGLProc_glReplacementCodeuiNormal3fVertex3fvSUN) -1,
+ (GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fSUN) -1,
+ (GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fvSUN) -1,
+ (GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fSUN) -1,
+ (GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fvSUN) -1,
+ (GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) -1,
+ (GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) -1,
+ (GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) -1,
+ (GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) -1
+};
+
+/* glColor4ubVertex2fSUN */
+GdkGLProc
+gdk_gl_get_glColor4ubVertex2fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glColor4ubVertex2fSUN == (GdkGLProc_glColor4ubVertex2fSUN) -1)
+ _procs_GL_SUN_vertex.glColor4ubVertex2fSUN =
+ (GdkGLProc_glColor4ubVertex2fSUN) gdk_gl_get_proc_address ("glColor4ubVertex2fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor4ubVertex2fSUN () - %s",
+ (_procs_GL_SUN_vertex.glColor4ubVertex2fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glColor4ubVertex2fSUN);
+}
+
+/* glColor4ubVertex2fvSUN */
+GdkGLProc
+gdk_gl_get_glColor4ubVertex2fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glColor4ubVertex2fvSUN == (GdkGLProc_glColor4ubVertex2fvSUN) -1)
+ _procs_GL_SUN_vertex.glColor4ubVertex2fvSUN =
+ (GdkGLProc_glColor4ubVertex2fvSUN) gdk_gl_get_proc_address ("glColor4ubVertex2fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor4ubVertex2fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glColor4ubVertex2fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glColor4ubVertex2fvSUN);
+}
+
+/* glColor4ubVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glColor4ubVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glColor4ubVertex3fSUN == (GdkGLProc_glColor4ubVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glColor4ubVertex3fSUN =
+ (GdkGLProc_glColor4ubVertex3fSUN) gdk_gl_get_proc_address ("glColor4ubVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor4ubVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glColor4ubVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glColor4ubVertex3fSUN);
+}
+
+/* glColor4ubVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glColor4ubVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glColor4ubVertex3fvSUN == (GdkGLProc_glColor4ubVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glColor4ubVertex3fvSUN =
+ (GdkGLProc_glColor4ubVertex3fvSUN) gdk_gl_get_proc_address ("glColor4ubVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor4ubVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glColor4ubVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glColor4ubVertex3fvSUN);
+}
+
+/* glColor3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glColor3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glColor3fVertex3fSUN == (GdkGLProc_glColor3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glColor3fVertex3fSUN =
+ (GdkGLProc_glColor3fVertex3fSUN) gdk_gl_get_proc_address ("glColor3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glColor3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glColor3fVertex3fSUN);
+}
+
+/* glColor3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glColor3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glColor3fVertex3fvSUN == (GdkGLProc_glColor3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glColor3fVertex3fvSUN =
+ (GdkGLProc_glColor3fVertex3fvSUN) gdk_gl_get_proc_address ("glColor3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glColor3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glColor3fVertex3fvSUN);
+}
+
+/* glNormal3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glNormal3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glNormal3fVertex3fSUN == (GdkGLProc_glNormal3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glNormal3fVertex3fSUN =
+ (GdkGLProc_glNormal3fVertex3fSUN) gdk_gl_get_proc_address ("glNormal3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormal3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glNormal3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glNormal3fVertex3fSUN);
+}
+
+/* glNormal3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glNormal3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glNormal3fVertex3fvSUN == (GdkGLProc_glNormal3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glNormal3fVertex3fvSUN =
+ (GdkGLProc_glNormal3fVertex3fvSUN) gdk_gl_get_proc_address ("glNormal3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormal3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glNormal3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glNormal3fVertex3fvSUN);
+}
+
+/* glColor4fNormal3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glColor4fNormal3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glColor4fNormal3fVertex3fSUN == (GdkGLProc_glColor4fNormal3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glColor4fNormal3fVertex3fSUN =
+ (GdkGLProc_glColor4fNormal3fVertex3fSUN) gdk_gl_get_proc_address ("glColor4fNormal3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor4fNormal3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glColor4fNormal3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glColor4fNormal3fVertex3fSUN);
+}
+
+/* glColor4fNormal3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glColor4fNormal3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glColor4fNormal3fVertex3fvSUN == (GdkGLProc_glColor4fNormal3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glColor4fNormal3fVertex3fvSUN =
+ (GdkGLProc_glColor4fNormal3fVertex3fvSUN) gdk_gl_get_proc_address ("glColor4fNormal3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor4fNormal3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glColor4fNormal3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glColor4fNormal3fVertex3fvSUN);
+}
+
+/* glTexCoord2fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord2fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord2fVertex3fSUN == (GdkGLProc_glTexCoord2fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord2fVertex3fSUN =
+ (GdkGLProc_glTexCoord2fVertex3fSUN) gdk_gl_get_proc_address ("glTexCoord2fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord2fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord2fVertex3fSUN);
+}
+
+/* glTexCoord2fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord2fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord2fVertex3fvSUN == (GdkGLProc_glTexCoord2fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord2fVertex3fvSUN =
+ (GdkGLProc_glTexCoord2fVertex3fvSUN) gdk_gl_get_proc_address ("glTexCoord2fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord2fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord2fVertex3fvSUN);
+}
+
+/* glTexCoord4fVertex4fSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord4fVertex4fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord4fVertex4fSUN == (GdkGLProc_glTexCoord4fVertex4fSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord4fVertex4fSUN =
+ (GdkGLProc_glTexCoord4fVertex4fSUN) gdk_gl_get_proc_address ("glTexCoord4fVertex4fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord4fVertex4fSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord4fVertex4fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord4fVertex4fSUN);
+}
+
+/* glTexCoord4fVertex4fvSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord4fVertex4fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord4fVertex4fvSUN == (GdkGLProc_glTexCoord4fVertex4fvSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord4fVertex4fvSUN =
+ (GdkGLProc_glTexCoord4fVertex4fvSUN) gdk_gl_get_proc_address ("glTexCoord4fVertex4fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord4fVertex4fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord4fVertex4fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord4fVertex4fvSUN);
+}
+
+/* glTexCoord2fColor4ubVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord2fColor4ubVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord2fColor4ubVertex3fSUN == (GdkGLProc_glTexCoord2fColor4ubVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord2fColor4ubVertex3fSUN =
+ (GdkGLProc_glTexCoord2fColor4ubVertex3fSUN) gdk_gl_get_proc_address ("glTexCoord2fColor4ubVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2fColor4ubVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord2fColor4ubVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord2fColor4ubVertex3fSUN);
+}
+
+/* glTexCoord2fColor4ubVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord2fColor4ubVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord2fColor4ubVertex3fvSUN == (GdkGLProc_glTexCoord2fColor4ubVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord2fColor4ubVertex3fvSUN =
+ (GdkGLProc_glTexCoord2fColor4ubVertex3fvSUN) gdk_gl_get_proc_address ("glTexCoord2fColor4ubVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2fColor4ubVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord2fColor4ubVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord2fColor4ubVertex3fvSUN);
+}
+
+/* glTexCoord2fColor3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord2fColor3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord2fColor3fVertex3fSUN == (GdkGLProc_glTexCoord2fColor3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord2fColor3fVertex3fSUN =
+ (GdkGLProc_glTexCoord2fColor3fVertex3fSUN) gdk_gl_get_proc_address ("glTexCoord2fColor3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2fColor3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord2fColor3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord2fColor3fVertex3fSUN);
+}
+
+/* glTexCoord2fColor3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord2fColor3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord2fColor3fVertex3fvSUN == (GdkGLProc_glTexCoord2fColor3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord2fColor3fVertex3fvSUN =
+ (GdkGLProc_glTexCoord2fColor3fVertex3fvSUN) gdk_gl_get_proc_address ("glTexCoord2fColor3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2fColor3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord2fColor3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord2fColor3fVertex3fvSUN);
+}
+
+/* glTexCoord2fNormal3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord2fNormal3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord2fNormal3fVertex3fSUN == (GdkGLProc_glTexCoord2fNormal3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord2fNormal3fVertex3fSUN =
+ (GdkGLProc_glTexCoord2fNormal3fVertex3fSUN) gdk_gl_get_proc_address ("glTexCoord2fNormal3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2fNormal3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord2fNormal3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord2fNormal3fVertex3fSUN);
+}
+
+/* glTexCoord2fNormal3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord2fNormal3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord2fNormal3fVertex3fvSUN == (GdkGLProc_glTexCoord2fNormal3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord2fNormal3fVertex3fvSUN =
+ (GdkGLProc_glTexCoord2fNormal3fVertex3fvSUN) gdk_gl_get_proc_address ("glTexCoord2fNormal3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2fNormal3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord2fNormal3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord2fNormal3fVertex3fvSUN);
+}
+
+/* glTexCoord2fColor4fNormal3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord2fColor4fNormal3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord2fColor4fNormal3fVertex3fSUN == (GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord2fColor4fNormal3fVertex3fSUN =
+ (GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fSUN) gdk_gl_get_proc_address ("glTexCoord2fColor4fNormal3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2fColor4fNormal3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord2fColor4fNormal3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord2fColor4fNormal3fVertex3fSUN);
+}
+
+/* glTexCoord2fColor4fNormal3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord2fColor4fNormal3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord2fColor4fNormal3fVertex3fvSUN == (GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord2fColor4fNormal3fVertex3fvSUN =
+ (GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fvSUN) gdk_gl_get_proc_address ("glTexCoord2fColor4fNormal3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2fColor4fNormal3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord2fColor4fNormal3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord2fColor4fNormal3fVertex3fvSUN);
+}
+
+/* glTexCoord4fColor4fNormal3fVertex4fSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord4fColor4fNormal3fVertex4fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord4fColor4fNormal3fVertex4fSUN == (GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord4fColor4fNormal3fVertex4fSUN =
+ (GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fSUN) gdk_gl_get_proc_address ("glTexCoord4fColor4fNormal3fVertex4fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord4fColor4fNormal3fVertex4fSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord4fColor4fNormal3fVertex4fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord4fColor4fNormal3fVertex4fSUN);
+}
+
+/* glTexCoord4fColor4fNormal3fVertex4fvSUN */
+GdkGLProc
+gdk_gl_get_glTexCoord4fColor4fNormal3fVertex4fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glTexCoord4fColor4fNormal3fVertex4fvSUN == (GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fvSUN) -1)
+ _procs_GL_SUN_vertex.glTexCoord4fColor4fNormal3fVertex4fvSUN =
+ (GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fvSUN) gdk_gl_get_proc_address ("glTexCoord4fColor4fNormal3fVertex4fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord4fColor4fNormal3fVertex4fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glTexCoord4fColor4fNormal3fVertex4fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glTexCoord4fColor4fNormal3fVertex4fvSUN);
+}
+
+/* glReplacementCodeuiVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiVertex3fSUN == (GdkGLProc_glReplacementCodeuiVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiVertex3fSUN =
+ (GdkGLProc_glReplacementCodeuiVertex3fSUN) gdk_gl_get_proc_address ("glReplacementCodeuiVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiVertex3fSUN);
+}
+
+/* glReplacementCodeuiVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiVertex3fvSUN == (GdkGLProc_glReplacementCodeuiVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiVertex3fvSUN =
+ (GdkGLProc_glReplacementCodeuiVertex3fvSUN) gdk_gl_get_proc_address ("glReplacementCodeuiVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiVertex3fvSUN);
+}
+
+/* glReplacementCodeuiColor4ubVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiColor4ubVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiColor4ubVertex3fSUN == (GdkGLProc_glReplacementCodeuiColor4ubVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiColor4ubVertex3fSUN =
+ (GdkGLProc_glReplacementCodeuiColor4ubVertex3fSUN) gdk_gl_get_proc_address ("glReplacementCodeuiColor4ubVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiColor4ubVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiColor4ubVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiColor4ubVertex3fSUN);
+}
+
+/* glReplacementCodeuiColor4ubVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiColor4ubVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiColor4ubVertex3fvSUN == (GdkGLProc_glReplacementCodeuiColor4ubVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiColor4ubVertex3fvSUN =
+ (GdkGLProc_glReplacementCodeuiColor4ubVertex3fvSUN) gdk_gl_get_proc_address ("glReplacementCodeuiColor4ubVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiColor4ubVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiColor4ubVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiColor4ubVertex3fvSUN);
+}
+
+/* glReplacementCodeuiColor3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiColor3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiColor3fVertex3fSUN == (GdkGLProc_glReplacementCodeuiColor3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiColor3fVertex3fSUN =
+ (GdkGLProc_glReplacementCodeuiColor3fVertex3fSUN) gdk_gl_get_proc_address ("glReplacementCodeuiColor3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiColor3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiColor3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiColor3fVertex3fSUN);
+}
+
+/* glReplacementCodeuiColor3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiColor3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiColor3fVertex3fvSUN == (GdkGLProc_glReplacementCodeuiColor3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiColor3fVertex3fvSUN =
+ (GdkGLProc_glReplacementCodeuiColor3fVertex3fvSUN) gdk_gl_get_proc_address ("glReplacementCodeuiColor3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiColor3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiColor3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiColor3fVertex3fvSUN);
+}
+
+/* glReplacementCodeuiNormal3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiNormal3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiNormal3fVertex3fSUN == (GdkGLProc_glReplacementCodeuiNormal3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiNormal3fVertex3fSUN =
+ (GdkGLProc_glReplacementCodeuiNormal3fVertex3fSUN) gdk_gl_get_proc_address ("glReplacementCodeuiNormal3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiNormal3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiNormal3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiNormal3fVertex3fSUN);
+}
+
+/* glReplacementCodeuiNormal3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiNormal3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiNormal3fVertex3fvSUN == (GdkGLProc_glReplacementCodeuiNormal3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiNormal3fVertex3fvSUN =
+ (GdkGLProc_glReplacementCodeuiNormal3fVertex3fvSUN) gdk_gl_get_proc_address ("glReplacementCodeuiNormal3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiNormal3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiNormal3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiNormal3fVertex3fvSUN);
+}
+
+/* glReplacementCodeuiColor4fNormal3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiColor4fNormal3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiColor4fNormal3fVertex3fSUN == (GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiColor4fNormal3fVertex3fSUN =
+ (GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fSUN) gdk_gl_get_proc_address ("glReplacementCodeuiColor4fNormal3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiColor4fNormal3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiColor4fNormal3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiColor4fNormal3fVertex3fSUN);
+}
+
+/* glReplacementCodeuiColor4fNormal3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiColor4fNormal3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiColor4fNormal3fVertex3fvSUN == (GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiColor4fNormal3fVertex3fvSUN =
+ (GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fvSUN) gdk_gl_get_proc_address ("glReplacementCodeuiColor4fNormal3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiColor4fNormal3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiColor4fNormal3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiColor4fNormal3fVertex3fvSUN);
+}
+
+/* glReplacementCodeuiTexCoord2fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiTexCoord2fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fVertex3fSUN == (GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fVertex3fSUN =
+ (GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fSUN) gdk_gl_get_proc_address ("glReplacementCodeuiTexCoord2fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiTexCoord2fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fVertex3fSUN);
+}
+
+/* glReplacementCodeuiTexCoord2fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiTexCoord2fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fVertex3fvSUN == (GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fVertex3fvSUN =
+ (GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fvSUN) gdk_gl_get_proc_address ("glReplacementCodeuiTexCoord2fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiTexCoord2fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fVertex3fvSUN);
+}
+
+/* glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN == (GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN =
+ (GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) gdk_gl_get_proc_address ("glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN);
+}
+
+/* glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN == (GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN =
+ (GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) gdk_gl_get_proc_address ("glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN);
+}
+
+/* glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN == (GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN =
+ (GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) gdk_gl_get_proc_address ("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN);
+}
+
+/* glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */
+GdkGLProc
+gdk_gl_get_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN == (GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) -1)
+ _procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN =
+ (GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) gdk_gl_get_proc_address ("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN () - %s",
+ (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_vertex.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN);
+}
+
+/* Get GL_SUN_vertex functions */
+GdkGL_GL_SUN_vertex *
+gdk_gl_get_GL_SUN_vertex (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SUN_vertex");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glColor4ubVertex2fSUN () != NULL);
+ supported &= (gdk_gl_get_glColor4ubVertex2fvSUN () != NULL);
+ supported &= (gdk_gl_get_glColor4ubVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glColor4ubVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glColor3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glColor3fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glNormal3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glNormal3fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glColor4fNormal3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glColor4fNormal3fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord4fVertex4fSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord4fVertex4fvSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2fColor4ubVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2fColor4ubVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2fColor3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2fColor3fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2fNormal3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2fNormal3fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2fColor4fNormal3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2fColor4fNormal3fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord4fColor4fNormal3fVertex4fSUN () != NULL);
+ supported &= (gdk_gl_get_glTexCoord4fColor4fNormal3fVertex4fvSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiColor4ubVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiColor4ubVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiColor3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiColor3fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiNormal3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiNormal3fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiColor4fNormal3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiColor4fNormal3fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiTexCoord2fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiTexCoord2fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN () != NULL);
+ supported &= (gdk_gl_get_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SUN_vertex () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SUN_vertex;
+}
+
+/*
+ * GL_EXT_blend_func_separate
+ */
+
+static GdkGL_GL_EXT_blend_func_separate _procs_GL_EXT_blend_func_separate = {
+ (GdkGLProc_glBlendFuncSeparateEXT) -1
+};
+
+/* glBlendFuncSeparateEXT */
+GdkGLProc
+gdk_gl_get_glBlendFuncSeparateEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_blend_func_separate.glBlendFuncSeparateEXT == (GdkGLProc_glBlendFuncSeparateEXT) -1)
+ _procs_GL_EXT_blend_func_separate.glBlendFuncSeparateEXT =
+ (GdkGLProc_glBlendFuncSeparateEXT) gdk_gl_get_proc_address ("glBlendFuncSeparateEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBlendFuncSeparateEXT () - %s",
+ (_procs_GL_EXT_blend_func_separate.glBlendFuncSeparateEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_blend_func_separate.glBlendFuncSeparateEXT);
+}
+
+/* Get GL_EXT_blend_func_separate functions */
+GdkGL_GL_EXT_blend_func_separate *
+gdk_gl_get_GL_EXT_blend_func_separate (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_blend_func_separate");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glBlendFuncSeparateEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_blend_func_separate () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_blend_func_separate;
+}
+
+/*
+ * GL_INGR_blend_func_separate
+ */
+
+static GdkGL_GL_INGR_blend_func_separate _procs_GL_INGR_blend_func_separate = {
+ (GdkGLProc_glBlendFuncSeparateINGR) -1
+};
+
+/* glBlendFuncSeparateINGR */
+GdkGLProc
+gdk_gl_get_glBlendFuncSeparateINGR (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_INGR_blend_func_separate.glBlendFuncSeparateINGR == (GdkGLProc_glBlendFuncSeparateINGR) -1)
+ _procs_GL_INGR_blend_func_separate.glBlendFuncSeparateINGR =
+ (GdkGLProc_glBlendFuncSeparateINGR) gdk_gl_get_proc_address ("glBlendFuncSeparateINGR");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBlendFuncSeparateINGR () - %s",
+ (_procs_GL_INGR_blend_func_separate.glBlendFuncSeparateINGR) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_INGR_blend_func_separate.glBlendFuncSeparateINGR);
+}
+
+/* Get GL_INGR_blend_func_separate functions */
+GdkGL_GL_INGR_blend_func_separate *
+gdk_gl_get_GL_INGR_blend_func_separate (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_INGR_blend_func_separate");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glBlendFuncSeparateINGR () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_INGR_blend_func_separate () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_INGR_blend_func_separate;
+}
+
+/*
+ * GL_EXT_vertex_weighting
+ */
+
+static GdkGL_GL_EXT_vertex_weighting _procs_GL_EXT_vertex_weighting = {
+ (GdkGLProc_glVertexWeightfEXT) -1,
+ (GdkGLProc_glVertexWeightfvEXT) -1,
+ (GdkGLProc_glVertexWeightPointerEXT) -1
+};
+
+/* glVertexWeightfEXT */
+GdkGLProc
+gdk_gl_get_glVertexWeightfEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_weighting.glVertexWeightfEXT == (GdkGLProc_glVertexWeightfEXT) -1)
+ _procs_GL_EXT_vertex_weighting.glVertexWeightfEXT =
+ (GdkGLProc_glVertexWeightfEXT) gdk_gl_get_proc_address ("glVertexWeightfEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexWeightfEXT () - %s",
+ (_procs_GL_EXT_vertex_weighting.glVertexWeightfEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_weighting.glVertexWeightfEXT);
+}
+
+/* glVertexWeightfvEXT */
+GdkGLProc
+gdk_gl_get_glVertexWeightfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_weighting.glVertexWeightfvEXT == (GdkGLProc_glVertexWeightfvEXT) -1)
+ _procs_GL_EXT_vertex_weighting.glVertexWeightfvEXT =
+ (GdkGLProc_glVertexWeightfvEXT) gdk_gl_get_proc_address ("glVertexWeightfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexWeightfvEXT () - %s",
+ (_procs_GL_EXT_vertex_weighting.glVertexWeightfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_weighting.glVertexWeightfvEXT);
+}
+
+/* glVertexWeightPointerEXT */
+GdkGLProc
+gdk_gl_get_glVertexWeightPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_weighting.glVertexWeightPointerEXT == (GdkGLProc_glVertexWeightPointerEXT) -1)
+ _procs_GL_EXT_vertex_weighting.glVertexWeightPointerEXT =
+ (GdkGLProc_glVertexWeightPointerEXT) gdk_gl_get_proc_address ("glVertexWeightPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexWeightPointerEXT () - %s",
+ (_procs_GL_EXT_vertex_weighting.glVertexWeightPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_weighting.glVertexWeightPointerEXT);
+}
+
+/* Get GL_EXT_vertex_weighting functions */
+GdkGL_GL_EXT_vertex_weighting *
+gdk_gl_get_GL_EXT_vertex_weighting (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_vertex_weighting");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glVertexWeightfEXT () != NULL);
+ supported &= (gdk_gl_get_glVertexWeightfvEXT () != NULL);
+ supported &= (gdk_gl_get_glVertexWeightPointerEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_vertex_weighting () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_vertex_weighting;
+}
+
+/*
+ * GL_NV_vertex_array_range
+ */
+
+static GdkGL_GL_NV_vertex_array_range _procs_GL_NV_vertex_array_range = {
+ (GdkGLProc_glFlushVertexArrayRangeNV) -1,
+ (GdkGLProc_glVertexArrayRangeNV) -1
+};
+
+/* glFlushVertexArrayRangeNV */
+GdkGLProc
+gdk_gl_get_glFlushVertexArrayRangeNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_array_range.glFlushVertexArrayRangeNV == (GdkGLProc_glFlushVertexArrayRangeNV) -1)
+ _procs_GL_NV_vertex_array_range.glFlushVertexArrayRangeNV =
+ (GdkGLProc_glFlushVertexArrayRangeNV) gdk_gl_get_proc_address ("glFlushVertexArrayRangeNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFlushVertexArrayRangeNV () - %s",
+ (_procs_GL_NV_vertex_array_range.glFlushVertexArrayRangeNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_array_range.glFlushVertexArrayRangeNV);
+}
+
+/* glVertexArrayRangeNV */
+GdkGLProc
+gdk_gl_get_glVertexArrayRangeNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_array_range.glVertexArrayRangeNV == (GdkGLProc_glVertexArrayRangeNV) -1)
+ _procs_GL_NV_vertex_array_range.glVertexArrayRangeNV =
+ (GdkGLProc_glVertexArrayRangeNV) gdk_gl_get_proc_address ("glVertexArrayRangeNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexArrayRangeNV () - %s",
+ (_procs_GL_NV_vertex_array_range.glVertexArrayRangeNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_array_range.glVertexArrayRangeNV);
+}
+
+/* Get GL_NV_vertex_array_range functions */
+GdkGL_GL_NV_vertex_array_range *
+gdk_gl_get_GL_NV_vertex_array_range (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_vertex_array_range");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glFlushVertexArrayRangeNV () != NULL);
+ supported &= (gdk_gl_get_glVertexArrayRangeNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_vertex_array_range () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_vertex_array_range;
+}
+
+/*
+ * GL_NV_register_combiners
+ */
+
+static GdkGL_GL_NV_register_combiners _procs_GL_NV_register_combiners = {
+ (GdkGLProc_glCombinerParameterfvNV) -1,
+ (GdkGLProc_glCombinerParameterfNV) -1,
+ (GdkGLProc_glCombinerParameterivNV) -1,
+ (GdkGLProc_glCombinerParameteriNV) -1,
+ (GdkGLProc_glCombinerInputNV) -1,
+ (GdkGLProc_glCombinerOutputNV) -1,
+ (GdkGLProc_glFinalCombinerInputNV) -1,
+ (GdkGLProc_glGetCombinerInputParameterfvNV) -1,
+ (GdkGLProc_glGetCombinerInputParameterivNV) -1,
+ (GdkGLProc_glGetCombinerOutputParameterfvNV) -1,
+ (GdkGLProc_glGetCombinerOutputParameterivNV) -1,
+ (GdkGLProc_glGetFinalCombinerInputParameterfvNV) -1,
+ (GdkGLProc_glGetFinalCombinerInputParameterivNV) -1
+};
+
+/* glCombinerParameterfvNV */
+GdkGLProc
+gdk_gl_get_glCombinerParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glCombinerParameterfvNV == (GdkGLProc_glCombinerParameterfvNV) -1)
+ _procs_GL_NV_register_combiners.glCombinerParameterfvNV =
+ (GdkGLProc_glCombinerParameterfvNV) gdk_gl_get_proc_address ("glCombinerParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCombinerParameterfvNV () - %s",
+ (_procs_GL_NV_register_combiners.glCombinerParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glCombinerParameterfvNV);
+}
+
+/* glCombinerParameterfNV */
+GdkGLProc
+gdk_gl_get_glCombinerParameterfNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glCombinerParameterfNV == (GdkGLProc_glCombinerParameterfNV) -1)
+ _procs_GL_NV_register_combiners.glCombinerParameterfNV =
+ (GdkGLProc_glCombinerParameterfNV) gdk_gl_get_proc_address ("glCombinerParameterfNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCombinerParameterfNV () - %s",
+ (_procs_GL_NV_register_combiners.glCombinerParameterfNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glCombinerParameterfNV);
+}
+
+/* glCombinerParameterivNV */
+GdkGLProc
+gdk_gl_get_glCombinerParameterivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glCombinerParameterivNV == (GdkGLProc_glCombinerParameterivNV) -1)
+ _procs_GL_NV_register_combiners.glCombinerParameterivNV =
+ (GdkGLProc_glCombinerParameterivNV) gdk_gl_get_proc_address ("glCombinerParameterivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCombinerParameterivNV () - %s",
+ (_procs_GL_NV_register_combiners.glCombinerParameterivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glCombinerParameterivNV);
+}
+
+/* glCombinerParameteriNV */
+GdkGLProc
+gdk_gl_get_glCombinerParameteriNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glCombinerParameteriNV == (GdkGLProc_glCombinerParameteriNV) -1)
+ _procs_GL_NV_register_combiners.glCombinerParameteriNV =
+ (GdkGLProc_glCombinerParameteriNV) gdk_gl_get_proc_address ("glCombinerParameteriNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCombinerParameteriNV () - %s",
+ (_procs_GL_NV_register_combiners.glCombinerParameteriNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glCombinerParameteriNV);
+}
+
+/* glCombinerInputNV */
+GdkGLProc
+gdk_gl_get_glCombinerInputNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glCombinerInputNV == (GdkGLProc_glCombinerInputNV) -1)
+ _procs_GL_NV_register_combiners.glCombinerInputNV =
+ (GdkGLProc_glCombinerInputNV) gdk_gl_get_proc_address ("glCombinerInputNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCombinerInputNV () - %s",
+ (_procs_GL_NV_register_combiners.glCombinerInputNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glCombinerInputNV);
+}
+
+/* glCombinerOutputNV */
+GdkGLProc
+gdk_gl_get_glCombinerOutputNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glCombinerOutputNV == (GdkGLProc_glCombinerOutputNV) -1)
+ _procs_GL_NV_register_combiners.glCombinerOutputNV =
+ (GdkGLProc_glCombinerOutputNV) gdk_gl_get_proc_address ("glCombinerOutputNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCombinerOutputNV () - %s",
+ (_procs_GL_NV_register_combiners.glCombinerOutputNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glCombinerOutputNV);
+}
+
+/* glFinalCombinerInputNV */
+GdkGLProc
+gdk_gl_get_glFinalCombinerInputNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glFinalCombinerInputNV == (GdkGLProc_glFinalCombinerInputNV) -1)
+ _procs_GL_NV_register_combiners.glFinalCombinerInputNV =
+ (GdkGLProc_glFinalCombinerInputNV) gdk_gl_get_proc_address ("glFinalCombinerInputNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFinalCombinerInputNV () - %s",
+ (_procs_GL_NV_register_combiners.glFinalCombinerInputNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glFinalCombinerInputNV);
+}
+
+/* glGetCombinerInputParameterfvNV */
+GdkGLProc
+gdk_gl_get_glGetCombinerInputParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glGetCombinerInputParameterfvNV == (GdkGLProc_glGetCombinerInputParameterfvNV) -1)
+ _procs_GL_NV_register_combiners.glGetCombinerInputParameterfvNV =
+ (GdkGLProc_glGetCombinerInputParameterfvNV) gdk_gl_get_proc_address ("glGetCombinerInputParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetCombinerInputParameterfvNV () - %s",
+ (_procs_GL_NV_register_combiners.glGetCombinerInputParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glGetCombinerInputParameterfvNV);
+}
+
+/* glGetCombinerInputParameterivNV */
+GdkGLProc
+gdk_gl_get_glGetCombinerInputParameterivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glGetCombinerInputParameterivNV == (GdkGLProc_glGetCombinerInputParameterivNV) -1)
+ _procs_GL_NV_register_combiners.glGetCombinerInputParameterivNV =
+ (GdkGLProc_glGetCombinerInputParameterivNV) gdk_gl_get_proc_address ("glGetCombinerInputParameterivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetCombinerInputParameterivNV () - %s",
+ (_procs_GL_NV_register_combiners.glGetCombinerInputParameterivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glGetCombinerInputParameterivNV);
+}
+
+/* glGetCombinerOutputParameterfvNV */
+GdkGLProc
+gdk_gl_get_glGetCombinerOutputParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glGetCombinerOutputParameterfvNV == (GdkGLProc_glGetCombinerOutputParameterfvNV) -1)
+ _procs_GL_NV_register_combiners.glGetCombinerOutputParameterfvNV =
+ (GdkGLProc_glGetCombinerOutputParameterfvNV) gdk_gl_get_proc_address ("glGetCombinerOutputParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetCombinerOutputParameterfvNV () - %s",
+ (_procs_GL_NV_register_combiners.glGetCombinerOutputParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glGetCombinerOutputParameterfvNV);
+}
+
+/* glGetCombinerOutputParameterivNV */
+GdkGLProc
+gdk_gl_get_glGetCombinerOutputParameterivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glGetCombinerOutputParameterivNV == (GdkGLProc_glGetCombinerOutputParameterivNV) -1)
+ _procs_GL_NV_register_combiners.glGetCombinerOutputParameterivNV =
+ (GdkGLProc_glGetCombinerOutputParameterivNV) gdk_gl_get_proc_address ("glGetCombinerOutputParameterivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetCombinerOutputParameterivNV () - %s",
+ (_procs_GL_NV_register_combiners.glGetCombinerOutputParameterivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glGetCombinerOutputParameterivNV);
+}
+
+/* glGetFinalCombinerInputParameterfvNV */
+GdkGLProc
+gdk_gl_get_glGetFinalCombinerInputParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glGetFinalCombinerInputParameterfvNV == (GdkGLProc_glGetFinalCombinerInputParameterfvNV) -1)
+ _procs_GL_NV_register_combiners.glGetFinalCombinerInputParameterfvNV =
+ (GdkGLProc_glGetFinalCombinerInputParameterfvNV) gdk_gl_get_proc_address ("glGetFinalCombinerInputParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFinalCombinerInputParameterfvNV () - %s",
+ (_procs_GL_NV_register_combiners.glGetFinalCombinerInputParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glGetFinalCombinerInputParameterfvNV);
+}
+
+/* glGetFinalCombinerInputParameterivNV */
+GdkGLProc
+gdk_gl_get_glGetFinalCombinerInputParameterivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners.glGetFinalCombinerInputParameterivNV == (GdkGLProc_glGetFinalCombinerInputParameterivNV) -1)
+ _procs_GL_NV_register_combiners.glGetFinalCombinerInputParameterivNV =
+ (GdkGLProc_glGetFinalCombinerInputParameterivNV) gdk_gl_get_proc_address ("glGetFinalCombinerInputParameterivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFinalCombinerInputParameterivNV () - %s",
+ (_procs_GL_NV_register_combiners.glGetFinalCombinerInputParameterivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners.glGetFinalCombinerInputParameterivNV);
+}
+
+/* Get GL_NV_register_combiners functions */
+GdkGL_GL_NV_register_combiners *
+gdk_gl_get_GL_NV_register_combiners (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_register_combiners");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glCombinerParameterfvNV () != NULL);
+ supported &= (gdk_gl_get_glCombinerParameterfNV () != NULL);
+ supported &= (gdk_gl_get_glCombinerParameterivNV () != NULL);
+ supported &= (gdk_gl_get_glCombinerParameteriNV () != NULL);
+ supported &= (gdk_gl_get_glCombinerInputNV () != NULL);
+ supported &= (gdk_gl_get_glCombinerOutputNV () != NULL);
+ supported &= (gdk_gl_get_glFinalCombinerInputNV () != NULL);
+ supported &= (gdk_gl_get_glGetCombinerInputParameterfvNV () != NULL);
+ supported &= (gdk_gl_get_glGetCombinerInputParameterivNV () != NULL);
+ supported &= (gdk_gl_get_glGetCombinerOutputParameterfvNV () != NULL);
+ supported &= (gdk_gl_get_glGetCombinerOutputParameterivNV () != NULL);
+ supported &= (gdk_gl_get_glGetFinalCombinerInputParameterfvNV () != NULL);
+ supported &= (gdk_gl_get_glGetFinalCombinerInputParameterivNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_register_combiners () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_register_combiners;
+}
+
+/*
+ * GL_MESA_resize_buffers
+ */
+
+static GdkGL_GL_MESA_resize_buffers _procs_GL_MESA_resize_buffers = {
+ (GdkGLProc_glResizeBuffersMESA) -1
+};
+
+/* glResizeBuffersMESA */
+GdkGLProc
+gdk_gl_get_glResizeBuffersMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_resize_buffers.glResizeBuffersMESA == (GdkGLProc_glResizeBuffersMESA) -1)
+ _procs_GL_MESA_resize_buffers.glResizeBuffersMESA =
+ (GdkGLProc_glResizeBuffersMESA) gdk_gl_get_proc_address ("glResizeBuffersMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glResizeBuffersMESA () - %s",
+ (_procs_GL_MESA_resize_buffers.glResizeBuffersMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_resize_buffers.glResizeBuffersMESA);
+}
+
+/* Get GL_MESA_resize_buffers functions */
+GdkGL_GL_MESA_resize_buffers *
+gdk_gl_get_GL_MESA_resize_buffers (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_MESA_resize_buffers");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glResizeBuffersMESA () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_MESA_resize_buffers () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_MESA_resize_buffers;
+}
+
+/*
+ * GL_MESA_window_pos
+ */
+
+static GdkGL_GL_MESA_window_pos _procs_GL_MESA_window_pos = {
+ (GdkGLProc_glWindowPos2dMESA) -1,
+ (GdkGLProc_glWindowPos2dvMESA) -1,
+ (GdkGLProc_glWindowPos2fMESA) -1,
+ (GdkGLProc_glWindowPos2fvMESA) -1,
+ (GdkGLProc_glWindowPos2iMESA) -1,
+ (GdkGLProc_glWindowPos2ivMESA) -1,
+ (GdkGLProc_glWindowPos2sMESA) -1,
+ (GdkGLProc_glWindowPos2svMESA) -1,
+ (GdkGLProc_glWindowPos3dMESA) -1,
+ (GdkGLProc_glWindowPos3dvMESA) -1,
+ (GdkGLProc_glWindowPos3fMESA) -1,
+ (GdkGLProc_glWindowPos3fvMESA) -1,
+ (GdkGLProc_glWindowPos3iMESA) -1,
+ (GdkGLProc_glWindowPos3ivMESA) -1,
+ (GdkGLProc_glWindowPos3sMESA) -1,
+ (GdkGLProc_glWindowPos3svMESA) -1,
+ (GdkGLProc_glWindowPos4dMESA) -1,
+ (GdkGLProc_glWindowPos4dvMESA) -1,
+ (GdkGLProc_glWindowPos4fMESA) -1,
+ (GdkGLProc_glWindowPos4fvMESA) -1,
+ (GdkGLProc_glWindowPos4iMESA) -1,
+ (GdkGLProc_glWindowPos4ivMESA) -1,
+ (GdkGLProc_glWindowPos4sMESA) -1,
+ (GdkGLProc_glWindowPos4svMESA) -1
+};
+
+/* glWindowPos2dMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos2dMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos2dMESA == (GdkGLProc_glWindowPos2dMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos2dMESA =
+ (GdkGLProc_glWindowPos2dMESA) gdk_gl_get_proc_address ("glWindowPos2dMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2dMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos2dMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos2dMESA);
+}
+
+/* glWindowPos2dvMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos2dvMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos2dvMESA == (GdkGLProc_glWindowPos2dvMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos2dvMESA =
+ (GdkGLProc_glWindowPos2dvMESA) gdk_gl_get_proc_address ("glWindowPos2dvMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2dvMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos2dvMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos2dvMESA);
+}
+
+/* glWindowPos2fMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos2fMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos2fMESA == (GdkGLProc_glWindowPos2fMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos2fMESA =
+ (GdkGLProc_glWindowPos2fMESA) gdk_gl_get_proc_address ("glWindowPos2fMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2fMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos2fMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos2fMESA);
+}
+
+/* glWindowPos2fvMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos2fvMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos2fvMESA == (GdkGLProc_glWindowPos2fvMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos2fvMESA =
+ (GdkGLProc_glWindowPos2fvMESA) gdk_gl_get_proc_address ("glWindowPos2fvMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2fvMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos2fvMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos2fvMESA);
+}
+
+/* glWindowPos2iMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos2iMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos2iMESA == (GdkGLProc_glWindowPos2iMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos2iMESA =
+ (GdkGLProc_glWindowPos2iMESA) gdk_gl_get_proc_address ("glWindowPos2iMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2iMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos2iMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos2iMESA);
+}
+
+/* glWindowPos2ivMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos2ivMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos2ivMESA == (GdkGLProc_glWindowPos2ivMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos2ivMESA =
+ (GdkGLProc_glWindowPos2ivMESA) gdk_gl_get_proc_address ("glWindowPos2ivMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2ivMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos2ivMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos2ivMESA);
+}
+
+/* glWindowPos2sMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos2sMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos2sMESA == (GdkGLProc_glWindowPos2sMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos2sMESA =
+ (GdkGLProc_glWindowPos2sMESA) gdk_gl_get_proc_address ("glWindowPos2sMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2sMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos2sMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos2sMESA);
+}
+
+/* glWindowPos2svMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos2svMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos2svMESA == (GdkGLProc_glWindowPos2svMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos2svMESA =
+ (GdkGLProc_glWindowPos2svMESA) gdk_gl_get_proc_address ("glWindowPos2svMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos2svMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos2svMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos2svMESA);
+}
+
+/* glWindowPos3dMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos3dMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos3dMESA == (GdkGLProc_glWindowPos3dMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos3dMESA =
+ (GdkGLProc_glWindowPos3dMESA) gdk_gl_get_proc_address ("glWindowPos3dMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3dMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos3dMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos3dMESA);
+}
+
+/* glWindowPos3dvMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos3dvMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos3dvMESA == (GdkGLProc_glWindowPos3dvMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos3dvMESA =
+ (GdkGLProc_glWindowPos3dvMESA) gdk_gl_get_proc_address ("glWindowPos3dvMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3dvMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos3dvMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos3dvMESA);
+}
+
+/* glWindowPos3fMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos3fMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos3fMESA == (GdkGLProc_glWindowPos3fMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos3fMESA =
+ (GdkGLProc_glWindowPos3fMESA) gdk_gl_get_proc_address ("glWindowPos3fMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3fMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos3fMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos3fMESA);
+}
+
+/* glWindowPos3fvMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos3fvMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos3fvMESA == (GdkGLProc_glWindowPos3fvMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos3fvMESA =
+ (GdkGLProc_glWindowPos3fvMESA) gdk_gl_get_proc_address ("glWindowPos3fvMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3fvMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos3fvMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos3fvMESA);
+}
+
+/* glWindowPos3iMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos3iMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos3iMESA == (GdkGLProc_glWindowPos3iMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos3iMESA =
+ (GdkGLProc_glWindowPos3iMESA) gdk_gl_get_proc_address ("glWindowPos3iMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3iMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos3iMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos3iMESA);
+}
+
+/* glWindowPos3ivMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos3ivMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos3ivMESA == (GdkGLProc_glWindowPos3ivMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos3ivMESA =
+ (GdkGLProc_glWindowPos3ivMESA) gdk_gl_get_proc_address ("glWindowPos3ivMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3ivMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos3ivMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos3ivMESA);
+}
+
+/* glWindowPos3sMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos3sMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos3sMESA == (GdkGLProc_glWindowPos3sMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos3sMESA =
+ (GdkGLProc_glWindowPos3sMESA) gdk_gl_get_proc_address ("glWindowPos3sMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3sMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos3sMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos3sMESA);
+}
+
+/* glWindowPos3svMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos3svMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos3svMESA == (GdkGLProc_glWindowPos3svMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos3svMESA =
+ (GdkGLProc_glWindowPos3svMESA) gdk_gl_get_proc_address ("glWindowPos3svMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos3svMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos3svMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos3svMESA);
+}
+
+/* glWindowPos4dMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos4dMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos4dMESA == (GdkGLProc_glWindowPos4dMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos4dMESA =
+ (GdkGLProc_glWindowPos4dMESA) gdk_gl_get_proc_address ("glWindowPos4dMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos4dMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos4dMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos4dMESA);
+}
+
+/* glWindowPos4dvMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos4dvMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos4dvMESA == (GdkGLProc_glWindowPos4dvMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos4dvMESA =
+ (GdkGLProc_glWindowPos4dvMESA) gdk_gl_get_proc_address ("glWindowPos4dvMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos4dvMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos4dvMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos4dvMESA);
+}
+
+/* glWindowPos4fMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos4fMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos4fMESA == (GdkGLProc_glWindowPos4fMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos4fMESA =
+ (GdkGLProc_glWindowPos4fMESA) gdk_gl_get_proc_address ("glWindowPos4fMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos4fMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos4fMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos4fMESA);
+}
+
+/* glWindowPos4fvMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos4fvMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos4fvMESA == (GdkGLProc_glWindowPos4fvMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos4fvMESA =
+ (GdkGLProc_glWindowPos4fvMESA) gdk_gl_get_proc_address ("glWindowPos4fvMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos4fvMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos4fvMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos4fvMESA);
+}
+
+/* glWindowPos4iMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos4iMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos4iMESA == (GdkGLProc_glWindowPos4iMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos4iMESA =
+ (GdkGLProc_glWindowPos4iMESA) gdk_gl_get_proc_address ("glWindowPos4iMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos4iMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos4iMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos4iMESA);
+}
+
+/* glWindowPos4ivMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos4ivMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos4ivMESA == (GdkGLProc_glWindowPos4ivMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos4ivMESA =
+ (GdkGLProc_glWindowPos4ivMESA) gdk_gl_get_proc_address ("glWindowPos4ivMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos4ivMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos4ivMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos4ivMESA);
+}
+
+/* glWindowPos4sMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos4sMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos4sMESA == (GdkGLProc_glWindowPos4sMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos4sMESA =
+ (GdkGLProc_glWindowPos4sMESA) gdk_gl_get_proc_address ("glWindowPos4sMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos4sMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos4sMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos4sMESA);
+}
+
+/* glWindowPos4svMESA */
+GdkGLProc
+gdk_gl_get_glWindowPos4svMESA (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_MESA_window_pos.glWindowPos4svMESA == (GdkGLProc_glWindowPos4svMESA) -1)
+ _procs_GL_MESA_window_pos.glWindowPos4svMESA =
+ (GdkGLProc_glWindowPos4svMESA) gdk_gl_get_proc_address ("glWindowPos4svMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowPos4svMESA () - %s",
+ (_procs_GL_MESA_window_pos.glWindowPos4svMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_MESA_window_pos.glWindowPos4svMESA);
+}
+
+/* Get GL_MESA_window_pos functions */
+GdkGL_GL_MESA_window_pos *
+gdk_gl_get_GL_MESA_window_pos (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_MESA_window_pos");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glWindowPos2dMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2dvMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2fMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2fvMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2iMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2ivMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2sMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos2svMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3dMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3dvMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3fMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3fvMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3iMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3ivMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3sMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos3svMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos4dMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos4dvMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos4fMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos4fvMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos4iMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos4ivMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos4sMESA () != NULL);
+ supported &= (gdk_gl_get_glWindowPos4svMESA () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_MESA_window_pos () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_MESA_window_pos;
+}
+
+/*
+ * GL_IBM_multimode_draw_arrays
+ */
+
+static GdkGL_GL_IBM_multimode_draw_arrays _procs_GL_IBM_multimode_draw_arrays = {
+ (GdkGLProc_glMultiModeDrawArraysIBM) -1,
+ (GdkGLProc_glMultiModeDrawElementsIBM) -1
+};
+
+/* glMultiModeDrawArraysIBM */
+GdkGLProc
+gdk_gl_get_glMultiModeDrawArraysIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_multimode_draw_arrays.glMultiModeDrawArraysIBM == (GdkGLProc_glMultiModeDrawArraysIBM) -1)
+ _procs_GL_IBM_multimode_draw_arrays.glMultiModeDrawArraysIBM =
+ (GdkGLProc_glMultiModeDrawArraysIBM) gdk_gl_get_proc_address ("glMultiModeDrawArraysIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiModeDrawArraysIBM () - %s",
+ (_procs_GL_IBM_multimode_draw_arrays.glMultiModeDrawArraysIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_multimode_draw_arrays.glMultiModeDrawArraysIBM);
+}
+
+/* glMultiModeDrawElementsIBM */
+GdkGLProc
+gdk_gl_get_glMultiModeDrawElementsIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_multimode_draw_arrays.glMultiModeDrawElementsIBM == (GdkGLProc_glMultiModeDrawElementsIBM) -1)
+ _procs_GL_IBM_multimode_draw_arrays.glMultiModeDrawElementsIBM =
+ (GdkGLProc_glMultiModeDrawElementsIBM) gdk_gl_get_proc_address ("glMultiModeDrawElementsIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiModeDrawElementsIBM () - %s",
+ (_procs_GL_IBM_multimode_draw_arrays.glMultiModeDrawElementsIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_multimode_draw_arrays.glMultiModeDrawElementsIBM);
+}
+
+/* Get GL_IBM_multimode_draw_arrays functions */
+GdkGL_GL_IBM_multimode_draw_arrays *
+gdk_gl_get_GL_IBM_multimode_draw_arrays (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_IBM_multimode_draw_arrays");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glMultiModeDrawArraysIBM () != NULL);
+ supported &= (gdk_gl_get_glMultiModeDrawElementsIBM () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_IBM_multimode_draw_arrays () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_IBM_multimode_draw_arrays;
+}
+
+/*
+ * GL_IBM_vertex_array_lists
+ */
+
+static GdkGL_GL_IBM_vertex_array_lists _procs_GL_IBM_vertex_array_lists = {
+ (GdkGLProc_glColorPointerListIBM) -1,
+ (GdkGLProc_glSecondaryColorPointerListIBM) -1,
+ (GdkGLProc_glEdgeFlagPointerListIBM) -1,
+ (GdkGLProc_glFogCoordPointerListIBM) -1,
+ (GdkGLProc_glIndexPointerListIBM) -1,
+ (GdkGLProc_glNormalPointerListIBM) -1,
+ (GdkGLProc_glTexCoordPointerListIBM) -1,
+ (GdkGLProc_glVertexPointerListIBM) -1
+};
+
+/* glColorPointerListIBM */
+GdkGLProc
+gdk_gl_get_glColorPointerListIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_vertex_array_lists.glColorPointerListIBM == (GdkGLProc_glColorPointerListIBM) -1)
+ _procs_GL_IBM_vertex_array_lists.glColorPointerListIBM =
+ (GdkGLProc_glColorPointerListIBM) gdk_gl_get_proc_address ("glColorPointerListIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorPointerListIBM () - %s",
+ (_procs_GL_IBM_vertex_array_lists.glColorPointerListIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_vertex_array_lists.glColorPointerListIBM);
+}
+
+/* glSecondaryColorPointerListIBM */
+GdkGLProc
+gdk_gl_get_glSecondaryColorPointerListIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_vertex_array_lists.glSecondaryColorPointerListIBM == (GdkGLProc_glSecondaryColorPointerListIBM) -1)
+ _procs_GL_IBM_vertex_array_lists.glSecondaryColorPointerListIBM =
+ (GdkGLProc_glSecondaryColorPointerListIBM) gdk_gl_get_proc_address ("glSecondaryColorPointerListIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColorPointerListIBM () - %s",
+ (_procs_GL_IBM_vertex_array_lists.glSecondaryColorPointerListIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_vertex_array_lists.glSecondaryColorPointerListIBM);
+}
+
+/* glEdgeFlagPointerListIBM */
+GdkGLProc
+gdk_gl_get_glEdgeFlagPointerListIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_vertex_array_lists.glEdgeFlagPointerListIBM == (GdkGLProc_glEdgeFlagPointerListIBM) -1)
+ _procs_GL_IBM_vertex_array_lists.glEdgeFlagPointerListIBM =
+ (GdkGLProc_glEdgeFlagPointerListIBM) gdk_gl_get_proc_address ("glEdgeFlagPointerListIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glEdgeFlagPointerListIBM () - %s",
+ (_procs_GL_IBM_vertex_array_lists.glEdgeFlagPointerListIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_vertex_array_lists.glEdgeFlagPointerListIBM);
+}
+
+/* glFogCoordPointerListIBM */
+GdkGLProc
+gdk_gl_get_glFogCoordPointerListIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_vertex_array_lists.glFogCoordPointerListIBM == (GdkGLProc_glFogCoordPointerListIBM) -1)
+ _procs_GL_IBM_vertex_array_lists.glFogCoordPointerListIBM =
+ (GdkGLProc_glFogCoordPointerListIBM) gdk_gl_get_proc_address ("glFogCoordPointerListIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoordPointerListIBM () - %s",
+ (_procs_GL_IBM_vertex_array_lists.glFogCoordPointerListIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_vertex_array_lists.glFogCoordPointerListIBM);
+}
+
+/* glIndexPointerListIBM */
+GdkGLProc
+gdk_gl_get_glIndexPointerListIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_vertex_array_lists.glIndexPointerListIBM == (GdkGLProc_glIndexPointerListIBM) -1)
+ _procs_GL_IBM_vertex_array_lists.glIndexPointerListIBM =
+ (GdkGLProc_glIndexPointerListIBM) gdk_gl_get_proc_address ("glIndexPointerListIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIndexPointerListIBM () - %s",
+ (_procs_GL_IBM_vertex_array_lists.glIndexPointerListIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_vertex_array_lists.glIndexPointerListIBM);
+}
+
+/* glNormalPointerListIBM */
+GdkGLProc
+gdk_gl_get_glNormalPointerListIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_vertex_array_lists.glNormalPointerListIBM == (GdkGLProc_glNormalPointerListIBM) -1)
+ _procs_GL_IBM_vertex_array_lists.glNormalPointerListIBM =
+ (GdkGLProc_glNormalPointerListIBM) gdk_gl_get_proc_address ("glNormalPointerListIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalPointerListIBM () - %s",
+ (_procs_GL_IBM_vertex_array_lists.glNormalPointerListIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_vertex_array_lists.glNormalPointerListIBM);
+}
+
+/* glTexCoordPointerListIBM */
+GdkGLProc
+gdk_gl_get_glTexCoordPointerListIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_vertex_array_lists.glTexCoordPointerListIBM == (GdkGLProc_glTexCoordPointerListIBM) -1)
+ _procs_GL_IBM_vertex_array_lists.glTexCoordPointerListIBM =
+ (GdkGLProc_glTexCoordPointerListIBM) gdk_gl_get_proc_address ("glTexCoordPointerListIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoordPointerListIBM () - %s",
+ (_procs_GL_IBM_vertex_array_lists.glTexCoordPointerListIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_vertex_array_lists.glTexCoordPointerListIBM);
+}
+
+/* glVertexPointerListIBM */
+GdkGLProc
+gdk_gl_get_glVertexPointerListIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_vertex_array_lists.glVertexPointerListIBM == (GdkGLProc_glVertexPointerListIBM) -1)
+ _procs_GL_IBM_vertex_array_lists.glVertexPointerListIBM =
+ (GdkGLProc_glVertexPointerListIBM) gdk_gl_get_proc_address ("glVertexPointerListIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexPointerListIBM () - %s",
+ (_procs_GL_IBM_vertex_array_lists.glVertexPointerListIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_vertex_array_lists.glVertexPointerListIBM);
+}
+
+/* Get GL_IBM_vertex_array_lists functions */
+GdkGL_GL_IBM_vertex_array_lists *
+gdk_gl_get_GL_IBM_vertex_array_lists (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_IBM_vertex_array_lists");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glColorPointerListIBM () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColorPointerListIBM () != NULL);
+ supported &= (gdk_gl_get_glEdgeFlagPointerListIBM () != NULL);
+ supported &= (gdk_gl_get_glFogCoordPointerListIBM () != NULL);
+ supported &= (gdk_gl_get_glIndexPointerListIBM () != NULL);
+ supported &= (gdk_gl_get_glNormalPointerListIBM () != NULL);
+ supported &= (gdk_gl_get_glTexCoordPointerListIBM () != NULL);
+ supported &= (gdk_gl_get_glVertexPointerListIBM () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_IBM_vertex_array_lists () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_IBM_vertex_array_lists;
+}
+
+/*
+ * GL_3DFX_tbuffer
+ */
+
+static GdkGL_GL_3DFX_tbuffer _procs_GL_3DFX_tbuffer = {
+ (GdkGLProc_glTbufferMask3DFX) -1
+};
+
+/* glTbufferMask3DFX */
+GdkGLProc
+gdk_gl_get_glTbufferMask3DFX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_3DFX_tbuffer.glTbufferMask3DFX == (GdkGLProc_glTbufferMask3DFX) -1)
+ _procs_GL_3DFX_tbuffer.glTbufferMask3DFX =
+ (GdkGLProc_glTbufferMask3DFX) gdk_gl_get_proc_address ("glTbufferMask3DFX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTbufferMask3DFX () - %s",
+ (_procs_GL_3DFX_tbuffer.glTbufferMask3DFX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_3DFX_tbuffer.glTbufferMask3DFX);
+}
+
+/* Get GL_3DFX_tbuffer functions */
+GdkGL_GL_3DFX_tbuffer *
+gdk_gl_get_GL_3DFX_tbuffer (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_3DFX_tbuffer");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTbufferMask3DFX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_3DFX_tbuffer () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_3DFX_tbuffer;
+}
+
+/*
+ * GL_EXT_multisample
+ */
+
+static GdkGL_GL_EXT_multisample _procs_GL_EXT_multisample = {
+ (GdkGLProc_glSampleMaskEXT) -1,
+ (GdkGLProc_glSamplePatternEXT) -1
+};
+
+/* glSampleMaskEXT */
+GdkGLProc
+gdk_gl_get_glSampleMaskEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multisample.glSampleMaskEXT == (GdkGLProc_glSampleMaskEXT) -1)
+ _procs_GL_EXT_multisample.glSampleMaskEXT =
+ (GdkGLProc_glSampleMaskEXT) gdk_gl_get_proc_address ("glSampleMaskEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSampleMaskEXT () - %s",
+ (_procs_GL_EXT_multisample.glSampleMaskEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multisample.glSampleMaskEXT);
+}
+
+/* glSamplePatternEXT */
+GdkGLProc
+gdk_gl_get_glSamplePatternEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multisample.glSamplePatternEXT == (GdkGLProc_glSamplePatternEXT) -1)
+ _procs_GL_EXT_multisample.glSamplePatternEXT =
+ (GdkGLProc_glSamplePatternEXT) gdk_gl_get_proc_address ("glSamplePatternEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSamplePatternEXT () - %s",
+ (_procs_GL_EXT_multisample.glSamplePatternEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multisample.glSamplePatternEXT);
+}
+
+/* Get GL_EXT_multisample functions */
+GdkGL_GL_EXT_multisample *
+gdk_gl_get_GL_EXT_multisample (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_multisample");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glSampleMaskEXT () != NULL);
+ supported &= (gdk_gl_get_glSamplePatternEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_multisample () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_multisample;
+}
+
+/*
+ * GL_SGIS_texture_color_mask
+ */
+
+static GdkGL_GL_SGIS_texture_color_mask _procs_GL_SGIS_texture_color_mask = {
+ (GdkGLProc_glTextureColorMaskSGIS) -1
+};
+
+/* glTextureColorMaskSGIS */
+GdkGLProc
+gdk_gl_get_glTextureColorMaskSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_texture_color_mask.glTextureColorMaskSGIS == (GdkGLProc_glTextureColorMaskSGIS) -1)
+ _procs_GL_SGIS_texture_color_mask.glTextureColorMaskSGIS =
+ (GdkGLProc_glTextureColorMaskSGIS) gdk_gl_get_proc_address ("glTextureColorMaskSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTextureColorMaskSGIS () - %s",
+ (_procs_GL_SGIS_texture_color_mask.glTextureColorMaskSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_texture_color_mask.glTextureColorMaskSGIS);
+}
+
+/* Get GL_SGIS_texture_color_mask functions */
+GdkGL_GL_SGIS_texture_color_mask *
+gdk_gl_get_GL_SGIS_texture_color_mask (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIS_texture_color_mask");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTextureColorMaskSGIS () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIS_texture_color_mask () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIS_texture_color_mask;
+}
+
+/*
+ * GL_SGIX_igloo_interface
+ */
+
+static GdkGL_GL_SGIX_igloo_interface _procs_GL_SGIX_igloo_interface = {
+ (GdkGLProc_glIglooInterfaceSGIX) -1
+};
+
+/* glIglooInterfaceSGIX */
+GdkGLProc
+gdk_gl_get_glIglooInterfaceSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_igloo_interface.glIglooInterfaceSGIX == (GdkGLProc_glIglooInterfaceSGIX) -1)
+ _procs_GL_SGIX_igloo_interface.glIglooInterfaceSGIX =
+ (GdkGLProc_glIglooInterfaceSGIX) gdk_gl_get_proc_address ("glIglooInterfaceSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIglooInterfaceSGIX () - %s",
+ (_procs_GL_SGIX_igloo_interface.glIglooInterfaceSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_igloo_interface.glIglooInterfaceSGIX);
+}
+
+/* Get GL_SGIX_igloo_interface functions */
+GdkGL_GL_SGIX_igloo_interface *
+gdk_gl_get_GL_SGIX_igloo_interface (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_igloo_interface");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glIglooInterfaceSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_igloo_interface () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_igloo_interface;
+}
+
+/*
+ * GL_NV_fence
+ */
+
+static GdkGL_GL_NV_fence _procs_GL_NV_fence = {
+ (GdkGLProc_glDeleteFencesNV) -1,
+ (GdkGLProc_glGenFencesNV) -1,
+ (GdkGLProc_glIsFenceNV) -1,
+ (GdkGLProc_glTestFenceNV) -1,
+ (GdkGLProc_glGetFenceivNV) -1,
+ (GdkGLProc_glFinishFenceNV) -1,
+ (GdkGLProc_glSetFenceNV) -1
+};
+
+/* glDeleteFencesNV */
+GdkGLProc
+gdk_gl_get_glDeleteFencesNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fence.glDeleteFencesNV == (GdkGLProc_glDeleteFencesNV) -1)
+ _procs_GL_NV_fence.glDeleteFencesNV =
+ (GdkGLProc_glDeleteFencesNV) gdk_gl_get_proc_address ("glDeleteFencesNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteFencesNV () - %s",
+ (_procs_GL_NV_fence.glDeleteFencesNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fence.glDeleteFencesNV);
+}
+
+/* glGenFencesNV */
+GdkGLProc
+gdk_gl_get_glGenFencesNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fence.glGenFencesNV == (GdkGLProc_glGenFencesNV) -1)
+ _procs_GL_NV_fence.glGenFencesNV =
+ (GdkGLProc_glGenFencesNV) gdk_gl_get_proc_address ("glGenFencesNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenFencesNV () - %s",
+ (_procs_GL_NV_fence.glGenFencesNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fence.glGenFencesNV);
+}
+
+/* glIsFenceNV */
+GdkGLProc
+gdk_gl_get_glIsFenceNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fence.glIsFenceNV == (GdkGLProc_glIsFenceNV) -1)
+ _procs_GL_NV_fence.glIsFenceNV =
+ (GdkGLProc_glIsFenceNV) gdk_gl_get_proc_address ("glIsFenceNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsFenceNV () - %s",
+ (_procs_GL_NV_fence.glIsFenceNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fence.glIsFenceNV);
+}
+
+/* glTestFenceNV */
+GdkGLProc
+gdk_gl_get_glTestFenceNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fence.glTestFenceNV == (GdkGLProc_glTestFenceNV) -1)
+ _procs_GL_NV_fence.glTestFenceNV =
+ (GdkGLProc_glTestFenceNV) gdk_gl_get_proc_address ("glTestFenceNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTestFenceNV () - %s",
+ (_procs_GL_NV_fence.glTestFenceNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fence.glTestFenceNV);
+}
+
+/* glGetFenceivNV */
+GdkGLProc
+gdk_gl_get_glGetFenceivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fence.glGetFenceivNV == (GdkGLProc_glGetFenceivNV) -1)
+ _procs_GL_NV_fence.glGetFenceivNV =
+ (GdkGLProc_glGetFenceivNV) gdk_gl_get_proc_address ("glGetFenceivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFenceivNV () - %s",
+ (_procs_GL_NV_fence.glGetFenceivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fence.glGetFenceivNV);
+}
+
+/* glFinishFenceNV */
+GdkGLProc
+gdk_gl_get_glFinishFenceNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fence.glFinishFenceNV == (GdkGLProc_glFinishFenceNV) -1)
+ _procs_GL_NV_fence.glFinishFenceNV =
+ (GdkGLProc_glFinishFenceNV) gdk_gl_get_proc_address ("glFinishFenceNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFinishFenceNV () - %s",
+ (_procs_GL_NV_fence.glFinishFenceNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fence.glFinishFenceNV);
+}
+
+/* glSetFenceNV */
+GdkGLProc
+gdk_gl_get_glSetFenceNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fence.glSetFenceNV == (GdkGLProc_glSetFenceNV) -1)
+ _procs_GL_NV_fence.glSetFenceNV =
+ (GdkGLProc_glSetFenceNV) gdk_gl_get_proc_address ("glSetFenceNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSetFenceNV () - %s",
+ (_procs_GL_NV_fence.glSetFenceNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fence.glSetFenceNV);
+}
+
+/* Get GL_NV_fence functions */
+GdkGL_GL_NV_fence *
+gdk_gl_get_GL_NV_fence (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_fence");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glDeleteFencesNV () != NULL);
+ supported &= (gdk_gl_get_glGenFencesNV () != NULL);
+ supported &= (gdk_gl_get_glIsFenceNV () != NULL);
+ supported &= (gdk_gl_get_glTestFenceNV () != NULL);
+ supported &= (gdk_gl_get_glGetFenceivNV () != NULL);
+ supported &= (gdk_gl_get_glFinishFenceNV () != NULL);
+ supported &= (gdk_gl_get_glSetFenceNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_fence () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_fence;
+}
+
+/*
+ * GL_NV_evaluators
+ */
+
+static GdkGL_GL_NV_evaluators _procs_GL_NV_evaluators = {
+ (GdkGLProc_glMapControlPointsNV) -1,
+ (GdkGLProc_glMapParameterivNV) -1,
+ (GdkGLProc_glMapParameterfvNV) -1,
+ (GdkGLProc_glGetMapControlPointsNV) -1,
+ (GdkGLProc_glGetMapParameterivNV) -1,
+ (GdkGLProc_glGetMapParameterfvNV) -1,
+ (GdkGLProc_glGetMapAttribParameterivNV) -1,
+ (GdkGLProc_glGetMapAttribParameterfvNV) -1,
+ (GdkGLProc_glEvalMapsNV) -1
+};
+
+/* glMapControlPointsNV */
+GdkGLProc
+gdk_gl_get_glMapControlPointsNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_evaluators.glMapControlPointsNV == (GdkGLProc_glMapControlPointsNV) -1)
+ _procs_GL_NV_evaluators.glMapControlPointsNV =
+ (GdkGLProc_glMapControlPointsNV) gdk_gl_get_proc_address ("glMapControlPointsNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMapControlPointsNV () - %s",
+ (_procs_GL_NV_evaluators.glMapControlPointsNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_evaluators.glMapControlPointsNV);
+}
+
+/* glMapParameterivNV */
+GdkGLProc
+gdk_gl_get_glMapParameterivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_evaluators.glMapParameterivNV == (GdkGLProc_glMapParameterivNV) -1)
+ _procs_GL_NV_evaluators.glMapParameterivNV =
+ (GdkGLProc_glMapParameterivNV) gdk_gl_get_proc_address ("glMapParameterivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMapParameterivNV () - %s",
+ (_procs_GL_NV_evaluators.glMapParameterivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_evaluators.glMapParameterivNV);
+}
+
+/* glMapParameterfvNV */
+GdkGLProc
+gdk_gl_get_glMapParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_evaluators.glMapParameterfvNV == (GdkGLProc_glMapParameterfvNV) -1)
+ _procs_GL_NV_evaluators.glMapParameterfvNV =
+ (GdkGLProc_glMapParameterfvNV) gdk_gl_get_proc_address ("glMapParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMapParameterfvNV () - %s",
+ (_procs_GL_NV_evaluators.glMapParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_evaluators.glMapParameterfvNV);
+}
+
+/* glGetMapControlPointsNV */
+GdkGLProc
+gdk_gl_get_glGetMapControlPointsNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_evaluators.glGetMapControlPointsNV == (GdkGLProc_glGetMapControlPointsNV) -1)
+ _procs_GL_NV_evaluators.glGetMapControlPointsNV =
+ (GdkGLProc_glGetMapControlPointsNV) gdk_gl_get_proc_address ("glGetMapControlPointsNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMapControlPointsNV () - %s",
+ (_procs_GL_NV_evaluators.glGetMapControlPointsNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_evaluators.glGetMapControlPointsNV);
+}
+
+/* glGetMapParameterivNV */
+GdkGLProc
+gdk_gl_get_glGetMapParameterivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_evaluators.glGetMapParameterivNV == (GdkGLProc_glGetMapParameterivNV) -1)
+ _procs_GL_NV_evaluators.glGetMapParameterivNV =
+ (GdkGLProc_glGetMapParameterivNV) gdk_gl_get_proc_address ("glGetMapParameterivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMapParameterivNV () - %s",
+ (_procs_GL_NV_evaluators.glGetMapParameterivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_evaluators.glGetMapParameterivNV);
+}
+
+/* glGetMapParameterfvNV */
+GdkGLProc
+gdk_gl_get_glGetMapParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_evaluators.glGetMapParameterfvNV == (GdkGLProc_glGetMapParameterfvNV) -1)
+ _procs_GL_NV_evaluators.glGetMapParameterfvNV =
+ (GdkGLProc_glGetMapParameterfvNV) gdk_gl_get_proc_address ("glGetMapParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMapParameterfvNV () - %s",
+ (_procs_GL_NV_evaluators.glGetMapParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_evaluators.glGetMapParameterfvNV);
+}
+
+/* glGetMapAttribParameterivNV */
+GdkGLProc
+gdk_gl_get_glGetMapAttribParameterivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_evaluators.glGetMapAttribParameterivNV == (GdkGLProc_glGetMapAttribParameterivNV) -1)
+ _procs_GL_NV_evaluators.glGetMapAttribParameterivNV =
+ (GdkGLProc_glGetMapAttribParameterivNV) gdk_gl_get_proc_address ("glGetMapAttribParameterivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMapAttribParameterivNV () - %s",
+ (_procs_GL_NV_evaluators.glGetMapAttribParameterivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_evaluators.glGetMapAttribParameterivNV);
+}
+
+/* glGetMapAttribParameterfvNV */
+GdkGLProc
+gdk_gl_get_glGetMapAttribParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_evaluators.glGetMapAttribParameterfvNV == (GdkGLProc_glGetMapAttribParameterfvNV) -1)
+ _procs_GL_NV_evaluators.glGetMapAttribParameterfvNV =
+ (GdkGLProc_glGetMapAttribParameterfvNV) gdk_gl_get_proc_address ("glGetMapAttribParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetMapAttribParameterfvNV () - %s",
+ (_procs_GL_NV_evaluators.glGetMapAttribParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_evaluators.glGetMapAttribParameterfvNV);
+}
+
+/* glEvalMapsNV */
+GdkGLProc
+gdk_gl_get_glEvalMapsNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_evaluators.glEvalMapsNV == (GdkGLProc_glEvalMapsNV) -1)
+ _procs_GL_NV_evaluators.glEvalMapsNV =
+ (GdkGLProc_glEvalMapsNV) gdk_gl_get_proc_address ("glEvalMapsNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glEvalMapsNV () - %s",
+ (_procs_GL_NV_evaluators.glEvalMapsNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_evaluators.glEvalMapsNV);
+}
+
+/* Get GL_NV_evaluators functions */
+GdkGL_GL_NV_evaluators *
+gdk_gl_get_GL_NV_evaluators (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_evaluators");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glMapControlPointsNV () != NULL);
+ supported &= (gdk_gl_get_glMapParameterivNV () != NULL);
+ supported &= (gdk_gl_get_glMapParameterfvNV () != NULL);
+ supported &= (gdk_gl_get_glGetMapControlPointsNV () != NULL);
+ supported &= (gdk_gl_get_glGetMapParameterivNV () != NULL);
+ supported &= (gdk_gl_get_glGetMapParameterfvNV () != NULL);
+ supported &= (gdk_gl_get_glGetMapAttribParameterivNV () != NULL);
+ supported &= (gdk_gl_get_glGetMapAttribParameterfvNV () != NULL);
+ supported &= (gdk_gl_get_glEvalMapsNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_evaluators () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_evaluators;
+}
+
+/*
+ * GL_NV_register_combiners2
+ */
+
+static GdkGL_GL_NV_register_combiners2 _procs_GL_NV_register_combiners2 = {
+ (GdkGLProc_glCombinerStageParameterfvNV) -1,
+ (GdkGLProc_glGetCombinerStageParameterfvNV) -1
+};
+
+/* glCombinerStageParameterfvNV */
+GdkGLProc
+gdk_gl_get_glCombinerStageParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners2.glCombinerStageParameterfvNV == (GdkGLProc_glCombinerStageParameterfvNV) -1)
+ _procs_GL_NV_register_combiners2.glCombinerStageParameterfvNV =
+ (GdkGLProc_glCombinerStageParameterfvNV) gdk_gl_get_proc_address ("glCombinerStageParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glCombinerStageParameterfvNV () - %s",
+ (_procs_GL_NV_register_combiners2.glCombinerStageParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners2.glCombinerStageParameterfvNV);
+}
+
+/* glGetCombinerStageParameterfvNV */
+GdkGLProc
+gdk_gl_get_glGetCombinerStageParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_register_combiners2.glGetCombinerStageParameterfvNV == (GdkGLProc_glGetCombinerStageParameterfvNV) -1)
+ _procs_GL_NV_register_combiners2.glGetCombinerStageParameterfvNV =
+ (GdkGLProc_glGetCombinerStageParameterfvNV) gdk_gl_get_proc_address ("glGetCombinerStageParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetCombinerStageParameterfvNV () - %s",
+ (_procs_GL_NV_register_combiners2.glGetCombinerStageParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_register_combiners2.glGetCombinerStageParameterfvNV);
+}
+
+/* Get GL_NV_register_combiners2 functions */
+GdkGL_GL_NV_register_combiners2 *
+gdk_gl_get_GL_NV_register_combiners2 (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_register_combiners2");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glCombinerStageParameterfvNV () != NULL);
+ supported &= (gdk_gl_get_glGetCombinerStageParameterfvNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_register_combiners2 () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_register_combiners2;
+}
+
+/*
+ * GL_NV_vertex_program
+ */
+
+static GdkGL_GL_NV_vertex_program _procs_GL_NV_vertex_program = {
+ (GdkGLProc_glAreProgramsResidentNV) -1,
+ (GdkGLProc_glBindProgramNV) -1,
+ (GdkGLProc_glDeleteProgramsNV) -1,
+ (GdkGLProc_glExecuteProgramNV) -1,
+ (GdkGLProc_glGenProgramsNV) -1,
+ (GdkGLProc_glGetProgramParameterdvNV) -1,
+ (GdkGLProc_glGetProgramParameterfvNV) -1,
+ (GdkGLProc_glGetProgramivNV) -1,
+ (GdkGLProc_glGetProgramStringNV) -1,
+ (GdkGLProc_glGetTrackMatrixivNV) -1,
+ (GdkGLProc_glGetVertexAttribdvNV) -1,
+ (GdkGLProc_glGetVertexAttribfvNV) -1,
+ (GdkGLProc_glGetVertexAttribivNV) -1,
+ (GdkGLProc_glGetVertexAttribPointervNV) -1,
+ (GdkGLProc_glIsProgramNV) -1,
+ (GdkGLProc_glLoadProgramNV) -1,
+ (GdkGLProc_glProgramParameter4dNV) -1,
+ (GdkGLProc_glProgramParameter4dvNV) -1,
+ (GdkGLProc_glProgramParameter4fNV) -1,
+ (GdkGLProc_glProgramParameter4fvNV) -1,
+ (GdkGLProc_glProgramParameters4dvNV) -1,
+ (GdkGLProc_glProgramParameters4fvNV) -1,
+ (GdkGLProc_glRequestResidentProgramsNV) -1,
+ (GdkGLProc_glTrackMatrixNV) -1,
+ (GdkGLProc_glVertexAttribPointerNV) -1,
+ (GdkGLProc_glVertexAttrib1dNV) -1,
+ (GdkGLProc_glVertexAttrib1dvNV) -1,
+ (GdkGLProc_glVertexAttrib1fNV) -1,
+ (GdkGLProc_glVertexAttrib1fvNV) -1,
+ (GdkGLProc_glVertexAttrib1sNV) -1,
+ (GdkGLProc_glVertexAttrib1svNV) -1,
+ (GdkGLProc_glVertexAttrib2dNV) -1,
+ (GdkGLProc_glVertexAttrib2dvNV) -1,
+ (GdkGLProc_glVertexAttrib2fNV) -1,
+ (GdkGLProc_glVertexAttrib2fvNV) -1,
+ (GdkGLProc_glVertexAttrib2sNV) -1,
+ (GdkGLProc_glVertexAttrib2svNV) -1,
+ (GdkGLProc_glVertexAttrib3dNV) -1,
+ (GdkGLProc_glVertexAttrib3dvNV) -1,
+ (GdkGLProc_glVertexAttrib3fNV) -1,
+ (GdkGLProc_glVertexAttrib3fvNV) -1,
+ (GdkGLProc_glVertexAttrib3sNV) -1,
+ (GdkGLProc_glVertexAttrib3svNV) -1,
+ (GdkGLProc_glVertexAttrib4dNV) -1,
+ (GdkGLProc_glVertexAttrib4dvNV) -1,
+ (GdkGLProc_glVertexAttrib4fNV) -1,
+ (GdkGLProc_glVertexAttrib4fvNV) -1,
+ (GdkGLProc_glVertexAttrib4sNV) -1,
+ (GdkGLProc_glVertexAttrib4svNV) -1,
+ (GdkGLProc_glVertexAttrib4ubNV) -1,
+ (GdkGLProc_glVertexAttrib4ubvNV) -1,
+ (GdkGLProc_glVertexAttribs1dvNV) -1,
+ (GdkGLProc_glVertexAttribs1fvNV) -1,
+ (GdkGLProc_glVertexAttribs1svNV) -1,
+ (GdkGLProc_glVertexAttribs2dvNV) -1,
+ (GdkGLProc_glVertexAttribs2fvNV) -1,
+ (GdkGLProc_glVertexAttribs2svNV) -1,
+ (GdkGLProc_glVertexAttribs3dvNV) -1,
+ (GdkGLProc_glVertexAttribs3fvNV) -1,
+ (GdkGLProc_glVertexAttribs3svNV) -1,
+ (GdkGLProc_glVertexAttribs4dvNV) -1,
+ (GdkGLProc_glVertexAttribs4fvNV) -1,
+ (GdkGLProc_glVertexAttribs4svNV) -1,
+ (GdkGLProc_glVertexAttribs4ubvNV) -1
+};
+
+/* glAreProgramsResidentNV */
+GdkGLProc
+gdk_gl_get_glAreProgramsResidentNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glAreProgramsResidentNV == (GdkGLProc_glAreProgramsResidentNV) -1)
+ _procs_GL_NV_vertex_program.glAreProgramsResidentNV =
+ (GdkGLProc_glAreProgramsResidentNV) gdk_gl_get_proc_address ("glAreProgramsResidentNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glAreProgramsResidentNV () - %s",
+ (_procs_GL_NV_vertex_program.glAreProgramsResidentNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glAreProgramsResidentNV);
+}
+
+/* glBindProgramNV */
+GdkGLProc
+gdk_gl_get_glBindProgramNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glBindProgramNV == (GdkGLProc_glBindProgramNV) -1)
+ _procs_GL_NV_vertex_program.glBindProgramNV =
+ (GdkGLProc_glBindProgramNV) gdk_gl_get_proc_address ("glBindProgramNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindProgramNV () - %s",
+ (_procs_GL_NV_vertex_program.glBindProgramNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glBindProgramNV);
+}
+
+/* glDeleteProgramsNV */
+GdkGLProc
+gdk_gl_get_glDeleteProgramsNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glDeleteProgramsNV == (GdkGLProc_glDeleteProgramsNV) -1)
+ _procs_GL_NV_vertex_program.glDeleteProgramsNV =
+ (GdkGLProc_glDeleteProgramsNV) gdk_gl_get_proc_address ("glDeleteProgramsNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteProgramsNV () - %s",
+ (_procs_GL_NV_vertex_program.glDeleteProgramsNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glDeleteProgramsNV);
+}
+
+/* glExecuteProgramNV */
+GdkGLProc
+gdk_gl_get_glExecuteProgramNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glExecuteProgramNV == (GdkGLProc_glExecuteProgramNV) -1)
+ _procs_GL_NV_vertex_program.glExecuteProgramNV =
+ (GdkGLProc_glExecuteProgramNV) gdk_gl_get_proc_address ("glExecuteProgramNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glExecuteProgramNV () - %s",
+ (_procs_GL_NV_vertex_program.glExecuteProgramNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glExecuteProgramNV);
+}
+
+/* glGenProgramsNV */
+GdkGLProc
+gdk_gl_get_glGenProgramsNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glGenProgramsNV == (GdkGLProc_glGenProgramsNV) -1)
+ _procs_GL_NV_vertex_program.glGenProgramsNV =
+ (GdkGLProc_glGenProgramsNV) gdk_gl_get_proc_address ("glGenProgramsNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenProgramsNV () - %s",
+ (_procs_GL_NV_vertex_program.glGenProgramsNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glGenProgramsNV);
+}
+
+/* glGetProgramParameterdvNV */
+GdkGLProc
+gdk_gl_get_glGetProgramParameterdvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glGetProgramParameterdvNV == (GdkGLProc_glGetProgramParameterdvNV) -1)
+ _procs_GL_NV_vertex_program.glGetProgramParameterdvNV =
+ (GdkGLProc_glGetProgramParameterdvNV) gdk_gl_get_proc_address ("glGetProgramParameterdvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramParameterdvNV () - %s",
+ (_procs_GL_NV_vertex_program.glGetProgramParameterdvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glGetProgramParameterdvNV);
+}
+
+/* glGetProgramParameterfvNV */
+GdkGLProc
+gdk_gl_get_glGetProgramParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glGetProgramParameterfvNV == (GdkGLProc_glGetProgramParameterfvNV) -1)
+ _procs_GL_NV_vertex_program.glGetProgramParameterfvNV =
+ (GdkGLProc_glGetProgramParameterfvNV) gdk_gl_get_proc_address ("glGetProgramParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramParameterfvNV () - %s",
+ (_procs_GL_NV_vertex_program.glGetProgramParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glGetProgramParameterfvNV);
+}
+
+/* glGetProgramivNV */
+GdkGLProc
+gdk_gl_get_glGetProgramivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glGetProgramivNV == (GdkGLProc_glGetProgramivNV) -1)
+ _procs_GL_NV_vertex_program.glGetProgramivNV =
+ (GdkGLProc_glGetProgramivNV) gdk_gl_get_proc_address ("glGetProgramivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramivNV () - %s",
+ (_procs_GL_NV_vertex_program.glGetProgramivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glGetProgramivNV);
+}
+
+/* glGetProgramStringNV */
+GdkGLProc
+gdk_gl_get_glGetProgramStringNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glGetProgramStringNV == (GdkGLProc_glGetProgramStringNV) -1)
+ _procs_GL_NV_vertex_program.glGetProgramStringNV =
+ (GdkGLProc_glGetProgramStringNV) gdk_gl_get_proc_address ("glGetProgramStringNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramStringNV () - %s",
+ (_procs_GL_NV_vertex_program.glGetProgramStringNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glGetProgramStringNV);
+}
+
+/* glGetTrackMatrixivNV */
+GdkGLProc
+gdk_gl_get_glGetTrackMatrixivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glGetTrackMatrixivNV == (GdkGLProc_glGetTrackMatrixivNV) -1)
+ _procs_GL_NV_vertex_program.glGetTrackMatrixivNV =
+ (GdkGLProc_glGetTrackMatrixivNV) gdk_gl_get_proc_address ("glGetTrackMatrixivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetTrackMatrixivNV () - %s",
+ (_procs_GL_NV_vertex_program.glGetTrackMatrixivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glGetTrackMatrixivNV);
+}
+
+/* glGetVertexAttribdvNV */
+GdkGLProc
+gdk_gl_get_glGetVertexAttribdvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glGetVertexAttribdvNV == (GdkGLProc_glGetVertexAttribdvNV) -1)
+ _procs_GL_NV_vertex_program.glGetVertexAttribdvNV =
+ (GdkGLProc_glGetVertexAttribdvNV) gdk_gl_get_proc_address ("glGetVertexAttribdvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVertexAttribdvNV () - %s",
+ (_procs_GL_NV_vertex_program.glGetVertexAttribdvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glGetVertexAttribdvNV);
+}
+
+/* glGetVertexAttribfvNV */
+GdkGLProc
+gdk_gl_get_glGetVertexAttribfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glGetVertexAttribfvNV == (GdkGLProc_glGetVertexAttribfvNV) -1)
+ _procs_GL_NV_vertex_program.glGetVertexAttribfvNV =
+ (GdkGLProc_glGetVertexAttribfvNV) gdk_gl_get_proc_address ("glGetVertexAttribfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVertexAttribfvNV () - %s",
+ (_procs_GL_NV_vertex_program.glGetVertexAttribfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glGetVertexAttribfvNV);
+}
+
+/* glGetVertexAttribivNV */
+GdkGLProc
+gdk_gl_get_glGetVertexAttribivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glGetVertexAttribivNV == (GdkGLProc_glGetVertexAttribivNV) -1)
+ _procs_GL_NV_vertex_program.glGetVertexAttribivNV =
+ (GdkGLProc_glGetVertexAttribivNV) gdk_gl_get_proc_address ("glGetVertexAttribivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVertexAttribivNV () - %s",
+ (_procs_GL_NV_vertex_program.glGetVertexAttribivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glGetVertexAttribivNV);
+}
+
+/* glGetVertexAttribPointervNV */
+GdkGLProc
+gdk_gl_get_glGetVertexAttribPointervNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glGetVertexAttribPointervNV == (GdkGLProc_glGetVertexAttribPointervNV) -1)
+ _procs_GL_NV_vertex_program.glGetVertexAttribPointervNV =
+ (GdkGLProc_glGetVertexAttribPointervNV) gdk_gl_get_proc_address ("glGetVertexAttribPointervNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVertexAttribPointervNV () - %s",
+ (_procs_GL_NV_vertex_program.glGetVertexAttribPointervNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glGetVertexAttribPointervNV);
+}
+
+/* glIsProgramNV */
+GdkGLProc
+gdk_gl_get_glIsProgramNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glIsProgramNV == (GdkGLProc_glIsProgramNV) -1)
+ _procs_GL_NV_vertex_program.glIsProgramNV =
+ (GdkGLProc_glIsProgramNV) gdk_gl_get_proc_address ("glIsProgramNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsProgramNV () - %s",
+ (_procs_GL_NV_vertex_program.glIsProgramNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glIsProgramNV);
+}
+
+/* glLoadProgramNV */
+GdkGLProc
+gdk_gl_get_glLoadProgramNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glLoadProgramNV == (GdkGLProc_glLoadProgramNV) -1)
+ _procs_GL_NV_vertex_program.glLoadProgramNV =
+ (GdkGLProc_glLoadProgramNV) gdk_gl_get_proc_address ("glLoadProgramNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glLoadProgramNV () - %s",
+ (_procs_GL_NV_vertex_program.glLoadProgramNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glLoadProgramNV);
+}
+
+/* glProgramParameter4dNV */
+GdkGLProc
+gdk_gl_get_glProgramParameter4dNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glProgramParameter4dNV == (GdkGLProc_glProgramParameter4dNV) -1)
+ _procs_GL_NV_vertex_program.glProgramParameter4dNV =
+ (GdkGLProc_glProgramParameter4dNV) gdk_gl_get_proc_address ("glProgramParameter4dNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramParameter4dNV () - %s",
+ (_procs_GL_NV_vertex_program.glProgramParameter4dNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glProgramParameter4dNV);
+}
+
+/* glProgramParameter4dvNV */
+GdkGLProc
+gdk_gl_get_glProgramParameter4dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glProgramParameter4dvNV == (GdkGLProc_glProgramParameter4dvNV) -1)
+ _procs_GL_NV_vertex_program.glProgramParameter4dvNV =
+ (GdkGLProc_glProgramParameter4dvNV) gdk_gl_get_proc_address ("glProgramParameter4dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramParameter4dvNV () - %s",
+ (_procs_GL_NV_vertex_program.glProgramParameter4dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glProgramParameter4dvNV);
+}
+
+/* glProgramParameter4fNV */
+GdkGLProc
+gdk_gl_get_glProgramParameter4fNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glProgramParameter4fNV == (GdkGLProc_glProgramParameter4fNV) -1)
+ _procs_GL_NV_vertex_program.glProgramParameter4fNV =
+ (GdkGLProc_glProgramParameter4fNV) gdk_gl_get_proc_address ("glProgramParameter4fNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramParameter4fNV () - %s",
+ (_procs_GL_NV_vertex_program.glProgramParameter4fNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glProgramParameter4fNV);
+}
+
+/* glProgramParameter4fvNV */
+GdkGLProc
+gdk_gl_get_glProgramParameter4fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glProgramParameter4fvNV == (GdkGLProc_glProgramParameter4fvNV) -1)
+ _procs_GL_NV_vertex_program.glProgramParameter4fvNV =
+ (GdkGLProc_glProgramParameter4fvNV) gdk_gl_get_proc_address ("glProgramParameter4fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramParameter4fvNV () - %s",
+ (_procs_GL_NV_vertex_program.glProgramParameter4fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glProgramParameter4fvNV);
+}
+
+/* glProgramParameters4dvNV */
+GdkGLProc
+gdk_gl_get_glProgramParameters4dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glProgramParameters4dvNV == (GdkGLProc_glProgramParameters4dvNV) -1)
+ _procs_GL_NV_vertex_program.glProgramParameters4dvNV =
+ (GdkGLProc_glProgramParameters4dvNV) gdk_gl_get_proc_address ("glProgramParameters4dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramParameters4dvNV () - %s",
+ (_procs_GL_NV_vertex_program.glProgramParameters4dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glProgramParameters4dvNV);
+}
+
+/* glProgramParameters4fvNV */
+GdkGLProc
+gdk_gl_get_glProgramParameters4fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glProgramParameters4fvNV == (GdkGLProc_glProgramParameters4fvNV) -1)
+ _procs_GL_NV_vertex_program.glProgramParameters4fvNV =
+ (GdkGLProc_glProgramParameters4fvNV) gdk_gl_get_proc_address ("glProgramParameters4fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramParameters4fvNV () - %s",
+ (_procs_GL_NV_vertex_program.glProgramParameters4fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glProgramParameters4fvNV);
+}
+
+/* glRequestResidentProgramsNV */
+GdkGLProc
+gdk_gl_get_glRequestResidentProgramsNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glRequestResidentProgramsNV == (GdkGLProc_glRequestResidentProgramsNV) -1)
+ _procs_GL_NV_vertex_program.glRequestResidentProgramsNV =
+ (GdkGLProc_glRequestResidentProgramsNV) gdk_gl_get_proc_address ("glRequestResidentProgramsNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glRequestResidentProgramsNV () - %s",
+ (_procs_GL_NV_vertex_program.glRequestResidentProgramsNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glRequestResidentProgramsNV);
+}
+
+/* glTrackMatrixNV */
+GdkGLProc
+gdk_gl_get_glTrackMatrixNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glTrackMatrixNV == (GdkGLProc_glTrackMatrixNV) -1)
+ _procs_GL_NV_vertex_program.glTrackMatrixNV =
+ (GdkGLProc_glTrackMatrixNV) gdk_gl_get_proc_address ("glTrackMatrixNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTrackMatrixNV () - %s",
+ (_procs_GL_NV_vertex_program.glTrackMatrixNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glTrackMatrixNV);
+}
+
+/* glVertexAttribPointerNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribPointerNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribPointerNV == (GdkGLProc_glVertexAttribPointerNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribPointerNV =
+ (GdkGLProc_glVertexAttribPointerNV) gdk_gl_get_proc_address ("glVertexAttribPointerNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribPointerNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribPointerNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribPointerNV);
+}
+
+/* glVertexAttrib1dNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1dNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib1dNV == (GdkGLProc_glVertexAttrib1dNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib1dNV =
+ (GdkGLProc_glVertexAttrib1dNV) gdk_gl_get_proc_address ("glVertexAttrib1dNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1dNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib1dNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib1dNV);
+}
+
+/* glVertexAttrib1dvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib1dvNV == (GdkGLProc_glVertexAttrib1dvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib1dvNV =
+ (GdkGLProc_glVertexAttrib1dvNV) gdk_gl_get_proc_address ("glVertexAttrib1dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1dvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib1dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib1dvNV);
+}
+
+/* glVertexAttrib1fNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1fNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib1fNV == (GdkGLProc_glVertexAttrib1fNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib1fNV =
+ (GdkGLProc_glVertexAttrib1fNV) gdk_gl_get_proc_address ("glVertexAttrib1fNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1fNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib1fNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib1fNV);
+}
+
+/* glVertexAttrib1fvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib1fvNV == (GdkGLProc_glVertexAttrib1fvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib1fvNV =
+ (GdkGLProc_glVertexAttrib1fvNV) gdk_gl_get_proc_address ("glVertexAttrib1fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1fvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib1fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib1fvNV);
+}
+
+/* glVertexAttrib1sNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1sNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib1sNV == (GdkGLProc_glVertexAttrib1sNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib1sNV =
+ (GdkGLProc_glVertexAttrib1sNV) gdk_gl_get_proc_address ("glVertexAttrib1sNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1sNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib1sNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib1sNV);
+}
+
+/* glVertexAttrib1svNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1svNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib1svNV == (GdkGLProc_glVertexAttrib1svNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib1svNV =
+ (GdkGLProc_glVertexAttrib1svNV) gdk_gl_get_proc_address ("glVertexAttrib1svNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1svNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib1svNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib1svNV);
+}
+
+/* glVertexAttrib2dNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2dNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib2dNV == (GdkGLProc_glVertexAttrib2dNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib2dNV =
+ (GdkGLProc_glVertexAttrib2dNV) gdk_gl_get_proc_address ("glVertexAttrib2dNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2dNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib2dNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib2dNV);
+}
+
+/* glVertexAttrib2dvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib2dvNV == (GdkGLProc_glVertexAttrib2dvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib2dvNV =
+ (GdkGLProc_glVertexAttrib2dvNV) gdk_gl_get_proc_address ("glVertexAttrib2dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2dvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib2dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib2dvNV);
+}
+
+/* glVertexAttrib2fNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2fNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib2fNV == (GdkGLProc_glVertexAttrib2fNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib2fNV =
+ (GdkGLProc_glVertexAttrib2fNV) gdk_gl_get_proc_address ("glVertexAttrib2fNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2fNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib2fNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib2fNV);
+}
+
+/* glVertexAttrib2fvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib2fvNV == (GdkGLProc_glVertexAttrib2fvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib2fvNV =
+ (GdkGLProc_glVertexAttrib2fvNV) gdk_gl_get_proc_address ("glVertexAttrib2fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2fvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib2fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib2fvNV);
+}
+
+/* glVertexAttrib2sNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2sNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib2sNV == (GdkGLProc_glVertexAttrib2sNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib2sNV =
+ (GdkGLProc_glVertexAttrib2sNV) gdk_gl_get_proc_address ("glVertexAttrib2sNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2sNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib2sNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib2sNV);
+}
+
+/* glVertexAttrib2svNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2svNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib2svNV == (GdkGLProc_glVertexAttrib2svNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib2svNV =
+ (GdkGLProc_glVertexAttrib2svNV) gdk_gl_get_proc_address ("glVertexAttrib2svNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2svNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib2svNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib2svNV);
+}
+
+/* glVertexAttrib3dNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3dNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib3dNV == (GdkGLProc_glVertexAttrib3dNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib3dNV =
+ (GdkGLProc_glVertexAttrib3dNV) gdk_gl_get_proc_address ("glVertexAttrib3dNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3dNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib3dNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib3dNV);
+}
+
+/* glVertexAttrib3dvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib3dvNV == (GdkGLProc_glVertexAttrib3dvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib3dvNV =
+ (GdkGLProc_glVertexAttrib3dvNV) gdk_gl_get_proc_address ("glVertexAttrib3dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3dvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib3dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib3dvNV);
+}
+
+/* glVertexAttrib3fNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3fNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib3fNV == (GdkGLProc_glVertexAttrib3fNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib3fNV =
+ (GdkGLProc_glVertexAttrib3fNV) gdk_gl_get_proc_address ("glVertexAttrib3fNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3fNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib3fNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib3fNV);
+}
+
+/* glVertexAttrib3fvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib3fvNV == (GdkGLProc_glVertexAttrib3fvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib3fvNV =
+ (GdkGLProc_glVertexAttrib3fvNV) gdk_gl_get_proc_address ("glVertexAttrib3fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3fvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib3fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib3fvNV);
+}
+
+/* glVertexAttrib3sNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3sNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib3sNV == (GdkGLProc_glVertexAttrib3sNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib3sNV =
+ (GdkGLProc_glVertexAttrib3sNV) gdk_gl_get_proc_address ("glVertexAttrib3sNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3sNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib3sNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib3sNV);
+}
+
+/* glVertexAttrib3svNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3svNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib3svNV == (GdkGLProc_glVertexAttrib3svNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib3svNV =
+ (GdkGLProc_glVertexAttrib3svNV) gdk_gl_get_proc_address ("glVertexAttrib3svNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3svNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib3svNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib3svNV);
+}
+
+/* glVertexAttrib4dNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4dNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib4dNV == (GdkGLProc_glVertexAttrib4dNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib4dNV =
+ (GdkGLProc_glVertexAttrib4dNV) gdk_gl_get_proc_address ("glVertexAttrib4dNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4dNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib4dNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib4dNV);
+}
+
+/* glVertexAttrib4dvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib4dvNV == (GdkGLProc_glVertexAttrib4dvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib4dvNV =
+ (GdkGLProc_glVertexAttrib4dvNV) gdk_gl_get_proc_address ("glVertexAttrib4dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4dvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib4dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib4dvNV);
+}
+
+/* glVertexAttrib4fNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4fNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib4fNV == (GdkGLProc_glVertexAttrib4fNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib4fNV =
+ (GdkGLProc_glVertexAttrib4fNV) gdk_gl_get_proc_address ("glVertexAttrib4fNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4fNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib4fNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib4fNV);
+}
+
+/* glVertexAttrib4fvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib4fvNV == (GdkGLProc_glVertexAttrib4fvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib4fvNV =
+ (GdkGLProc_glVertexAttrib4fvNV) gdk_gl_get_proc_address ("glVertexAttrib4fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4fvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib4fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib4fvNV);
+}
+
+/* glVertexAttrib4sNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4sNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib4sNV == (GdkGLProc_glVertexAttrib4sNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib4sNV =
+ (GdkGLProc_glVertexAttrib4sNV) gdk_gl_get_proc_address ("glVertexAttrib4sNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4sNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib4sNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib4sNV);
+}
+
+/* glVertexAttrib4svNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4svNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib4svNV == (GdkGLProc_glVertexAttrib4svNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib4svNV =
+ (GdkGLProc_glVertexAttrib4svNV) gdk_gl_get_proc_address ("glVertexAttrib4svNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4svNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib4svNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib4svNV);
+}
+
+/* glVertexAttrib4ubNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4ubNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib4ubNV == (GdkGLProc_glVertexAttrib4ubNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib4ubNV =
+ (GdkGLProc_glVertexAttrib4ubNV) gdk_gl_get_proc_address ("glVertexAttrib4ubNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4ubNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib4ubNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib4ubNV);
+}
+
+/* glVertexAttrib4ubvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4ubvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttrib4ubvNV == (GdkGLProc_glVertexAttrib4ubvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttrib4ubvNV =
+ (GdkGLProc_glVertexAttrib4ubvNV) gdk_gl_get_proc_address ("glVertexAttrib4ubvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4ubvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttrib4ubvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttrib4ubvNV);
+}
+
+/* glVertexAttribs1dvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs1dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs1dvNV == (GdkGLProc_glVertexAttribs1dvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs1dvNV =
+ (GdkGLProc_glVertexAttribs1dvNV) gdk_gl_get_proc_address ("glVertexAttribs1dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs1dvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs1dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs1dvNV);
+}
+
+/* glVertexAttribs1fvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs1fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs1fvNV == (GdkGLProc_glVertexAttribs1fvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs1fvNV =
+ (GdkGLProc_glVertexAttribs1fvNV) gdk_gl_get_proc_address ("glVertexAttribs1fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs1fvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs1fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs1fvNV);
+}
+
+/* glVertexAttribs1svNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs1svNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs1svNV == (GdkGLProc_glVertexAttribs1svNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs1svNV =
+ (GdkGLProc_glVertexAttribs1svNV) gdk_gl_get_proc_address ("glVertexAttribs1svNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs1svNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs1svNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs1svNV);
+}
+
+/* glVertexAttribs2dvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs2dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs2dvNV == (GdkGLProc_glVertexAttribs2dvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs2dvNV =
+ (GdkGLProc_glVertexAttribs2dvNV) gdk_gl_get_proc_address ("glVertexAttribs2dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs2dvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs2dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs2dvNV);
+}
+
+/* glVertexAttribs2fvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs2fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs2fvNV == (GdkGLProc_glVertexAttribs2fvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs2fvNV =
+ (GdkGLProc_glVertexAttribs2fvNV) gdk_gl_get_proc_address ("glVertexAttribs2fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs2fvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs2fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs2fvNV);
+}
+
+/* glVertexAttribs2svNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs2svNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs2svNV == (GdkGLProc_glVertexAttribs2svNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs2svNV =
+ (GdkGLProc_glVertexAttribs2svNV) gdk_gl_get_proc_address ("glVertexAttribs2svNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs2svNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs2svNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs2svNV);
+}
+
+/* glVertexAttribs3dvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs3dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs3dvNV == (GdkGLProc_glVertexAttribs3dvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs3dvNV =
+ (GdkGLProc_glVertexAttribs3dvNV) gdk_gl_get_proc_address ("glVertexAttribs3dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs3dvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs3dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs3dvNV);
+}
+
+/* glVertexAttribs3fvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs3fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs3fvNV == (GdkGLProc_glVertexAttribs3fvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs3fvNV =
+ (GdkGLProc_glVertexAttribs3fvNV) gdk_gl_get_proc_address ("glVertexAttribs3fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs3fvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs3fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs3fvNV);
+}
+
+/* glVertexAttribs3svNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs3svNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs3svNV == (GdkGLProc_glVertexAttribs3svNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs3svNV =
+ (GdkGLProc_glVertexAttribs3svNV) gdk_gl_get_proc_address ("glVertexAttribs3svNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs3svNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs3svNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs3svNV);
+}
+
+/* glVertexAttribs4dvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs4dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs4dvNV == (GdkGLProc_glVertexAttribs4dvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs4dvNV =
+ (GdkGLProc_glVertexAttribs4dvNV) gdk_gl_get_proc_address ("glVertexAttribs4dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs4dvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs4dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs4dvNV);
+}
+
+/* glVertexAttribs4fvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs4fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs4fvNV == (GdkGLProc_glVertexAttribs4fvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs4fvNV =
+ (GdkGLProc_glVertexAttribs4fvNV) gdk_gl_get_proc_address ("glVertexAttribs4fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs4fvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs4fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs4fvNV);
+}
+
+/* glVertexAttribs4svNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs4svNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs4svNV == (GdkGLProc_glVertexAttribs4svNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs4svNV =
+ (GdkGLProc_glVertexAttribs4svNV) gdk_gl_get_proc_address ("glVertexAttribs4svNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs4svNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs4svNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs4svNV);
+}
+
+/* glVertexAttribs4ubvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs4ubvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_vertex_program.glVertexAttribs4ubvNV == (GdkGLProc_glVertexAttribs4ubvNV) -1)
+ _procs_GL_NV_vertex_program.glVertexAttribs4ubvNV =
+ (GdkGLProc_glVertexAttribs4ubvNV) gdk_gl_get_proc_address ("glVertexAttribs4ubvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs4ubvNV () - %s",
+ (_procs_GL_NV_vertex_program.glVertexAttribs4ubvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_vertex_program.glVertexAttribs4ubvNV);
+}
+
+/* Get GL_NV_vertex_program functions */
+GdkGL_GL_NV_vertex_program *
+gdk_gl_get_GL_NV_vertex_program (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_vertex_program");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glAreProgramsResidentNV () != NULL);
+ supported &= (gdk_gl_get_glBindProgramNV () != NULL);
+ supported &= (gdk_gl_get_glDeleteProgramsNV () != NULL);
+ supported &= (gdk_gl_get_glExecuteProgramNV () != NULL);
+ supported &= (gdk_gl_get_glGenProgramsNV () != NULL);
+ supported &= (gdk_gl_get_glGetProgramParameterdvNV () != NULL);
+ supported &= (gdk_gl_get_glGetProgramParameterfvNV () != NULL);
+ supported &= (gdk_gl_get_glGetProgramivNV () != NULL);
+ supported &= (gdk_gl_get_glGetProgramStringNV () != NULL);
+ supported &= (gdk_gl_get_glGetTrackMatrixivNV () != NULL);
+ supported &= (gdk_gl_get_glGetVertexAttribdvNV () != NULL);
+ supported &= (gdk_gl_get_glGetVertexAttribfvNV () != NULL);
+ supported &= (gdk_gl_get_glGetVertexAttribivNV () != NULL);
+ supported &= (gdk_gl_get_glGetVertexAttribPointervNV () != NULL);
+ supported &= (gdk_gl_get_glIsProgramNV () != NULL);
+ supported &= (gdk_gl_get_glLoadProgramNV () != NULL);
+ supported &= (gdk_gl_get_glProgramParameter4dNV () != NULL);
+ supported &= (gdk_gl_get_glProgramParameter4dvNV () != NULL);
+ supported &= (gdk_gl_get_glProgramParameter4fNV () != NULL);
+ supported &= (gdk_gl_get_glProgramParameter4fvNV () != NULL);
+ supported &= (gdk_gl_get_glProgramParameters4dvNV () != NULL);
+ supported &= (gdk_gl_get_glProgramParameters4fvNV () != NULL);
+ supported &= (gdk_gl_get_glRequestResidentProgramsNV () != NULL);
+ supported &= (gdk_gl_get_glTrackMatrixNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribPointerNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1dNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1dvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1fNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1fvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1sNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1svNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2dNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2dvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2fNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2fvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2sNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2svNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3dNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3dvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3fNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3fvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3sNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3svNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4dNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4dvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4fNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4fvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4sNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4svNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4ubNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4ubvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs1dvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs1fvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs1svNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs2dvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs2fvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs2svNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs3dvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs3fvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs3svNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs4dvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs4fvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs4svNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs4ubvNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_vertex_program () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_vertex_program;
+}
+
+/*
+ * GL_ATI_envmap_bumpmap
+ */
+
+static GdkGL_GL_ATI_envmap_bumpmap _procs_GL_ATI_envmap_bumpmap = {
+ (GdkGLProc_glTexBumpParameterivATI) -1,
+ (GdkGLProc_glTexBumpParameterfvATI) -1,
+ (GdkGLProc_glGetTexBumpParameterivATI) -1,
+ (GdkGLProc_glGetTexBumpParameterfvATI) -1
+};
+
+/* glTexBumpParameterivATI */
+GdkGLProc
+gdk_gl_get_glTexBumpParameterivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_envmap_bumpmap.glTexBumpParameterivATI == (GdkGLProc_glTexBumpParameterivATI) -1)
+ _procs_GL_ATI_envmap_bumpmap.glTexBumpParameterivATI =
+ (GdkGLProc_glTexBumpParameterivATI) gdk_gl_get_proc_address ("glTexBumpParameterivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexBumpParameterivATI () - %s",
+ (_procs_GL_ATI_envmap_bumpmap.glTexBumpParameterivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_envmap_bumpmap.glTexBumpParameterivATI);
+}
+
+/* glTexBumpParameterfvATI */
+GdkGLProc
+gdk_gl_get_glTexBumpParameterfvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_envmap_bumpmap.glTexBumpParameterfvATI == (GdkGLProc_glTexBumpParameterfvATI) -1)
+ _procs_GL_ATI_envmap_bumpmap.glTexBumpParameterfvATI =
+ (GdkGLProc_glTexBumpParameterfvATI) gdk_gl_get_proc_address ("glTexBumpParameterfvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexBumpParameterfvATI () - %s",
+ (_procs_GL_ATI_envmap_bumpmap.glTexBumpParameterfvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_envmap_bumpmap.glTexBumpParameterfvATI);
+}
+
+/* glGetTexBumpParameterivATI */
+GdkGLProc
+gdk_gl_get_glGetTexBumpParameterivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_envmap_bumpmap.glGetTexBumpParameterivATI == (GdkGLProc_glGetTexBumpParameterivATI) -1)
+ _procs_GL_ATI_envmap_bumpmap.glGetTexBumpParameterivATI =
+ (GdkGLProc_glGetTexBumpParameterivATI) gdk_gl_get_proc_address ("glGetTexBumpParameterivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetTexBumpParameterivATI () - %s",
+ (_procs_GL_ATI_envmap_bumpmap.glGetTexBumpParameterivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_envmap_bumpmap.glGetTexBumpParameterivATI);
+}
+
+/* glGetTexBumpParameterfvATI */
+GdkGLProc
+gdk_gl_get_glGetTexBumpParameterfvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_envmap_bumpmap.glGetTexBumpParameterfvATI == (GdkGLProc_glGetTexBumpParameterfvATI) -1)
+ _procs_GL_ATI_envmap_bumpmap.glGetTexBumpParameterfvATI =
+ (GdkGLProc_glGetTexBumpParameterfvATI) gdk_gl_get_proc_address ("glGetTexBumpParameterfvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetTexBumpParameterfvATI () - %s",
+ (_procs_GL_ATI_envmap_bumpmap.glGetTexBumpParameterfvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_envmap_bumpmap.glGetTexBumpParameterfvATI);
+}
+
+/* Get GL_ATI_envmap_bumpmap functions */
+GdkGL_GL_ATI_envmap_bumpmap *
+gdk_gl_get_GL_ATI_envmap_bumpmap (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_envmap_bumpmap");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTexBumpParameterivATI () != NULL);
+ supported &= (gdk_gl_get_glTexBumpParameterfvATI () != NULL);
+ supported &= (gdk_gl_get_glGetTexBumpParameterivATI () != NULL);
+ supported &= (gdk_gl_get_glGetTexBumpParameterfvATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_envmap_bumpmap () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_envmap_bumpmap;
+}
+
+/*
+ * GL_ATI_fragment_shader
+ */
+
+static GdkGL_GL_ATI_fragment_shader _procs_GL_ATI_fragment_shader = {
+ (GdkGLProc_glGenFragmentShadersATI) -1,
+ (GdkGLProc_glBindFragmentShaderATI) -1,
+ (GdkGLProc_glDeleteFragmentShaderATI) -1,
+ (GdkGLProc_glBeginFragmentShaderATI) -1,
+ (GdkGLProc_glEndFragmentShaderATI) -1,
+ (GdkGLProc_glPassTexCoordATI) -1,
+ (GdkGLProc_glSampleMapATI) -1,
+ (GdkGLProc_glColorFragmentOp1ATI) -1,
+ (GdkGLProc_glColorFragmentOp2ATI) -1,
+ (GdkGLProc_glColorFragmentOp3ATI) -1,
+ (GdkGLProc_glAlphaFragmentOp1ATI) -1,
+ (GdkGLProc_glAlphaFragmentOp2ATI) -1,
+ (GdkGLProc_glAlphaFragmentOp3ATI) -1,
+ (GdkGLProc_glSetFragmentShaderConstantATI) -1
+};
+
+/* glGenFragmentShadersATI */
+GdkGLProc
+gdk_gl_get_glGenFragmentShadersATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glGenFragmentShadersATI == (GdkGLProc_glGenFragmentShadersATI) -1)
+ _procs_GL_ATI_fragment_shader.glGenFragmentShadersATI =
+ (GdkGLProc_glGenFragmentShadersATI) gdk_gl_get_proc_address ("glGenFragmentShadersATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenFragmentShadersATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glGenFragmentShadersATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glGenFragmentShadersATI);
+}
+
+/* glBindFragmentShaderATI */
+GdkGLProc
+gdk_gl_get_glBindFragmentShaderATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glBindFragmentShaderATI == (GdkGLProc_glBindFragmentShaderATI) -1)
+ _procs_GL_ATI_fragment_shader.glBindFragmentShaderATI =
+ (GdkGLProc_glBindFragmentShaderATI) gdk_gl_get_proc_address ("glBindFragmentShaderATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindFragmentShaderATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glBindFragmentShaderATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glBindFragmentShaderATI);
+}
+
+/* glDeleteFragmentShaderATI */
+GdkGLProc
+gdk_gl_get_glDeleteFragmentShaderATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glDeleteFragmentShaderATI == (GdkGLProc_glDeleteFragmentShaderATI) -1)
+ _procs_GL_ATI_fragment_shader.glDeleteFragmentShaderATI =
+ (GdkGLProc_glDeleteFragmentShaderATI) gdk_gl_get_proc_address ("glDeleteFragmentShaderATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteFragmentShaderATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glDeleteFragmentShaderATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glDeleteFragmentShaderATI);
+}
+
+/* glBeginFragmentShaderATI */
+GdkGLProc
+gdk_gl_get_glBeginFragmentShaderATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glBeginFragmentShaderATI == (GdkGLProc_glBeginFragmentShaderATI) -1)
+ _procs_GL_ATI_fragment_shader.glBeginFragmentShaderATI =
+ (GdkGLProc_glBeginFragmentShaderATI) gdk_gl_get_proc_address ("glBeginFragmentShaderATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBeginFragmentShaderATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glBeginFragmentShaderATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glBeginFragmentShaderATI);
+}
+
+/* glEndFragmentShaderATI */
+GdkGLProc
+gdk_gl_get_glEndFragmentShaderATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glEndFragmentShaderATI == (GdkGLProc_glEndFragmentShaderATI) -1)
+ _procs_GL_ATI_fragment_shader.glEndFragmentShaderATI =
+ (GdkGLProc_glEndFragmentShaderATI) gdk_gl_get_proc_address ("glEndFragmentShaderATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glEndFragmentShaderATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glEndFragmentShaderATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glEndFragmentShaderATI);
+}
+
+/* glPassTexCoordATI */
+GdkGLProc
+gdk_gl_get_glPassTexCoordATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glPassTexCoordATI == (GdkGLProc_glPassTexCoordATI) -1)
+ _procs_GL_ATI_fragment_shader.glPassTexCoordATI =
+ (GdkGLProc_glPassTexCoordATI) gdk_gl_get_proc_address ("glPassTexCoordATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPassTexCoordATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glPassTexCoordATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glPassTexCoordATI);
+}
+
+/* glSampleMapATI */
+GdkGLProc
+gdk_gl_get_glSampleMapATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glSampleMapATI == (GdkGLProc_glSampleMapATI) -1)
+ _procs_GL_ATI_fragment_shader.glSampleMapATI =
+ (GdkGLProc_glSampleMapATI) gdk_gl_get_proc_address ("glSampleMapATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSampleMapATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glSampleMapATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glSampleMapATI);
+}
+
+/* glColorFragmentOp1ATI */
+GdkGLProc
+gdk_gl_get_glColorFragmentOp1ATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glColorFragmentOp1ATI == (GdkGLProc_glColorFragmentOp1ATI) -1)
+ _procs_GL_ATI_fragment_shader.glColorFragmentOp1ATI =
+ (GdkGLProc_glColorFragmentOp1ATI) gdk_gl_get_proc_address ("glColorFragmentOp1ATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorFragmentOp1ATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glColorFragmentOp1ATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glColorFragmentOp1ATI);
+}
+
+/* glColorFragmentOp2ATI */
+GdkGLProc
+gdk_gl_get_glColorFragmentOp2ATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glColorFragmentOp2ATI == (GdkGLProc_glColorFragmentOp2ATI) -1)
+ _procs_GL_ATI_fragment_shader.glColorFragmentOp2ATI =
+ (GdkGLProc_glColorFragmentOp2ATI) gdk_gl_get_proc_address ("glColorFragmentOp2ATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorFragmentOp2ATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glColorFragmentOp2ATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glColorFragmentOp2ATI);
+}
+
+/* glColorFragmentOp3ATI */
+GdkGLProc
+gdk_gl_get_glColorFragmentOp3ATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glColorFragmentOp3ATI == (GdkGLProc_glColorFragmentOp3ATI) -1)
+ _procs_GL_ATI_fragment_shader.glColorFragmentOp3ATI =
+ (GdkGLProc_glColorFragmentOp3ATI) gdk_gl_get_proc_address ("glColorFragmentOp3ATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColorFragmentOp3ATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glColorFragmentOp3ATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glColorFragmentOp3ATI);
+}
+
+/* glAlphaFragmentOp1ATI */
+GdkGLProc
+gdk_gl_get_glAlphaFragmentOp1ATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glAlphaFragmentOp1ATI == (GdkGLProc_glAlphaFragmentOp1ATI) -1)
+ _procs_GL_ATI_fragment_shader.glAlphaFragmentOp1ATI =
+ (GdkGLProc_glAlphaFragmentOp1ATI) gdk_gl_get_proc_address ("glAlphaFragmentOp1ATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glAlphaFragmentOp1ATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glAlphaFragmentOp1ATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glAlphaFragmentOp1ATI);
+}
+
+/* glAlphaFragmentOp2ATI */
+GdkGLProc
+gdk_gl_get_glAlphaFragmentOp2ATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glAlphaFragmentOp2ATI == (GdkGLProc_glAlphaFragmentOp2ATI) -1)
+ _procs_GL_ATI_fragment_shader.glAlphaFragmentOp2ATI =
+ (GdkGLProc_glAlphaFragmentOp2ATI) gdk_gl_get_proc_address ("glAlphaFragmentOp2ATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glAlphaFragmentOp2ATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glAlphaFragmentOp2ATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glAlphaFragmentOp2ATI);
+}
+
+/* glAlphaFragmentOp3ATI */
+GdkGLProc
+gdk_gl_get_glAlphaFragmentOp3ATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glAlphaFragmentOp3ATI == (GdkGLProc_glAlphaFragmentOp3ATI) -1)
+ _procs_GL_ATI_fragment_shader.glAlphaFragmentOp3ATI =
+ (GdkGLProc_glAlphaFragmentOp3ATI) gdk_gl_get_proc_address ("glAlphaFragmentOp3ATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glAlphaFragmentOp3ATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glAlphaFragmentOp3ATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glAlphaFragmentOp3ATI);
+}
+
+/* glSetFragmentShaderConstantATI */
+GdkGLProc
+gdk_gl_get_glSetFragmentShaderConstantATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_fragment_shader.glSetFragmentShaderConstantATI == (GdkGLProc_glSetFragmentShaderConstantATI) -1)
+ _procs_GL_ATI_fragment_shader.glSetFragmentShaderConstantATI =
+ (GdkGLProc_glSetFragmentShaderConstantATI) gdk_gl_get_proc_address ("glSetFragmentShaderConstantATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSetFragmentShaderConstantATI () - %s",
+ (_procs_GL_ATI_fragment_shader.glSetFragmentShaderConstantATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_fragment_shader.glSetFragmentShaderConstantATI);
+}
+
+/* Get GL_ATI_fragment_shader functions */
+GdkGL_GL_ATI_fragment_shader *
+gdk_gl_get_GL_ATI_fragment_shader (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_fragment_shader");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glGenFragmentShadersATI () != NULL);
+ supported &= (gdk_gl_get_glBindFragmentShaderATI () != NULL);
+ supported &= (gdk_gl_get_glDeleteFragmentShaderATI () != NULL);
+ supported &= (gdk_gl_get_glBeginFragmentShaderATI () != NULL);
+ supported &= (gdk_gl_get_glEndFragmentShaderATI () != NULL);
+ supported &= (gdk_gl_get_glPassTexCoordATI () != NULL);
+ supported &= (gdk_gl_get_glSampleMapATI () != NULL);
+ supported &= (gdk_gl_get_glColorFragmentOp1ATI () != NULL);
+ supported &= (gdk_gl_get_glColorFragmentOp2ATI () != NULL);
+ supported &= (gdk_gl_get_glColorFragmentOp3ATI () != NULL);
+ supported &= (gdk_gl_get_glAlphaFragmentOp1ATI () != NULL);
+ supported &= (gdk_gl_get_glAlphaFragmentOp2ATI () != NULL);
+ supported &= (gdk_gl_get_glAlphaFragmentOp3ATI () != NULL);
+ supported &= (gdk_gl_get_glSetFragmentShaderConstantATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_fragment_shader () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_fragment_shader;
+}
+
+/*
+ * GL_ATI_pn_triangles
+ */
+
+static GdkGL_GL_ATI_pn_triangles _procs_GL_ATI_pn_triangles = {
+ (GdkGLProc_glPNTrianglesiATI) -1,
+ (GdkGLProc_glPNTrianglesfATI) -1
+};
+
+/* glPNTrianglesiATI */
+GdkGLProc
+gdk_gl_get_glPNTrianglesiATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_pn_triangles.glPNTrianglesiATI == (GdkGLProc_glPNTrianglesiATI) -1)
+ _procs_GL_ATI_pn_triangles.glPNTrianglesiATI =
+ (GdkGLProc_glPNTrianglesiATI) gdk_gl_get_proc_address ("glPNTrianglesiATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPNTrianglesiATI () - %s",
+ (_procs_GL_ATI_pn_triangles.glPNTrianglesiATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_pn_triangles.glPNTrianglesiATI);
+}
+
+/* glPNTrianglesfATI */
+GdkGLProc
+gdk_gl_get_glPNTrianglesfATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_pn_triangles.glPNTrianglesfATI == (GdkGLProc_glPNTrianglesfATI) -1)
+ _procs_GL_ATI_pn_triangles.glPNTrianglesfATI =
+ (GdkGLProc_glPNTrianglesfATI) gdk_gl_get_proc_address ("glPNTrianglesfATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPNTrianglesfATI () - %s",
+ (_procs_GL_ATI_pn_triangles.glPNTrianglesfATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_pn_triangles.glPNTrianglesfATI);
+}
+
+/* Get GL_ATI_pn_triangles functions */
+GdkGL_GL_ATI_pn_triangles *
+gdk_gl_get_GL_ATI_pn_triangles (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_pn_triangles");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPNTrianglesiATI () != NULL);
+ supported &= (gdk_gl_get_glPNTrianglesfATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_pn_triangles () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_pn_triangles;
+}
+
+/*
+ * GL_ATI_vertex_array_object
+ */
+
+static GdkGL_GL_ATI_vertex_array_object _procs_GL_ATI_vertex_array_object = {
+ (GdkGLProc_glNewObjectBufferATI) -1,
+ (GdkGLProc_glIsObjectBufferATI) -1,
+ (GdkGLProc_glUpdateObjectBufferATI) -1,
+ (GdkGLProc_glGetObjectBufferfvATI) -1,
+ (GdkGLProc_glGetObjectBufferivATI) -1,
+ (GdkGLProc_glFreeObjectBufferATI) -1,
+ (GdkGLProc_glArrayObjectATI) -1,
+ (GdkGLProc_glGetArrayObjectfvATI) -1,
+ (GdkGLProc_glGetArrayObjectivATI) -1,
+ (GdkGLProc_glVariantArrayObjectATI) -1,
+ (GdkGLProc_glGetVariantArrayObjectfvATI) -1,
+ (GdkGLProc_glGetVariantArrayObjectivATI) -1
+};
+
+/* glNewObjectBufferATI */
+GdkGLProc
+gdk_gl_get_glNewObjectBufferATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glNewObjectBufferATI == (GdkGLProc_glNewObjectBufferATI) -1)
+ _procs_GL_ATI_vertex_array_object.glNewObjectBufferATI =
+ (GdkGLProc_glNewObjectBufferATI) gdk_gl_get_proc_address ("glNewObjectBufferATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNewObjectBufferATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glNewObjectBufferATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glNewObjectBufferATI);
+}
+
+/* glIsObjectBufferATI */
+GdkGLProc
+gdk_gl_get_glIsObjectBufferATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glIsObjectBufferATI == (GdkGLProc_glIsObjectBufferATI) -1)
+ _procs_GL_ATI_vertex_array_object.glIsObjectBufferATI =
+ (GdkGLProc_glIsObjectBufferATI) gdk_gl_get_proc_address ("glIsObjectBufferATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsObjectBufferATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glIsObjectBufferATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glIsObjectBufferATI);
+}
+
+/* glUpdateObjectBufferATI */
+GdkGLProc
+gdk_gl_get_glUpdateObjectBufferATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glUpdateObjectBufferATI == (GdkGLProc_glUpdateObjectBufferATI) -1)
+ _procs_GL_ATI_vertex_array_object.glUpdateObjectBufferATI =
+ (GdkGLProc_glUpdateObjectBufferATI) gdk_gl_get_proc_address ("glUpdateObjectBufferATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glUpdateObjectBufferATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glUpdateObjectBufferATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glUpdateObjectBufferATI);
+}
+
+/* glGetObjectBufferfvATI */
+GdkGLProc
+gdk_gl_get_glGetObjectBufferfvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glGetObjectBufferfvATI == (GdkGLProc_glGetObjectBufferfvATI) -1)
+ _procs_GL_ATI_vertex_array_object.glGetObjectBufferfvATI =
+ (GdkGLProc_glGetObjectBufferfvATI) gdk_gl_get_proc_address ("glGetObjectBufferfvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetObjectBufferfvATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glGetObjectBufferfvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glGetObjectBufferfvATI);
+}
+
+/* glGetObjectBufferivATI */
+GdkGLProc
+gdk_gl_get_glGetObjectBufferivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glGetObjectBufferivATI == (GdkGLProc_glGetObjectBufferivATI) -1)
+ _procs_GL_ATI_vertex_array_object.glGetObjectBufferivATI =
+ (GdkGLProc_glGetObjectBufferivATI) gdk_gl_get_proc_address ("glGetObjectBufferivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetObjectBufferivATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glGetObjectBufferivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glGetObjectBufferivATI);
+}
+
+/* glFreeObjectBufferATI */
+GdkGLProc
+gdk_gl_get_glFreeObjectBufferATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glFreeObjectBufferATI == (GdkGLProc_glFreeObjectBufferATI) -1)
+ _procs_GL_ATI_vertex_array_object.glFreeObjectBufferATI =
+ (GdkGLProc_glFreeObjectBufferATI) gdk_gl_get_proc_address ("glFreeObjectBufferATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFreeObjectBufferATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glFreeObjectBufferATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glFreeObjectBufferATI);
+}
+
+/* glArrayObjectATI */
+GdkGLProc
+gdk_gl_get_glArrayObjectATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glArrayObjectATI == (GdkGLProc_glArrayObjectATI) -1)
+ _procs_GL_ATI_vertex_array_object.glArrayObjectATI =
+ (GdkGLProc_glArrayObjectATI) gdk_gl_get_proc_address ("glArrayObjectATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glArrayObjectATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glArrayObjectATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glArrayObjectATI);
+}
+
+/* glGetArrayObjectfvATI */
+GdkGLProc
+gdk_gl_get_glGetArrayObjectfvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glGetArrayObjectfvATI == (GdkGLProc_glGetArrayObjectfvATI) -1)
+ _procs_GL_ATI_vertex_array_object.glGetArrayObjectfvATI =
+ (GdkGLProc_glGetArrayObjectfvATI) gdk_gl_get_proc_address ("glGetArrayObjectfvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetArrayObjectfvATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glGetArrayObjectfvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glGetArrayObjectfvATI);
+}
+
+/* glGetArrayObjectivATI */
+GdkGLProc
+gdk_gl_get_glGetArrayObjectivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glGetArrayObjectivATI == (GdkGLProc_glGetArrayObjectivATI) -1)
+ _procs_GL_ATI_vertex_array_object.glGetArrayObjectivATI =
+ (GdkGLProc_glGetArrayObjectivATI) gdk_gl_get_proc_address ("glGetArrayObjectivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetArrayObjectivATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glGetArrayObjectivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glGetArrayObjectivATI);
+}
+
+/* glVariantArrayObjectATI */
+GdkGLProc
+gdk_gl_get_glVariantArrayObjectATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glVariantArrayObjectATI == (GdkGLProc_glVariantArrayObjectATI) -1)
+ _procs_GL_ATI_vertex_array_object.glVariantArrayObjectATI =
+ (GdkGLProc_glVariantArrayObjectATI) gdk_gl_get_proc_address ("glVariantArrayObjectATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVariantArrayObjectATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glVariantArrayObjectATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glVariantArrayObjectATI);
+}
+
+/* glGetVariantArrayObjectfvATI */
+GdkGLProc
+gdk_gl_get_glGetVariantArrayObjectfvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glGetVariantArrayObjectfvATI == (GdkGLProc_glGetVariantArrayObjectfvATI) -1)
+ _procs_GL_ATI_vertex_array_object.glGetVariantArrayObjectfvATI =
+ (GdkGLProc_glGetVariantArrayObjectfvATI) gdk_gl_get_proc_address ("glGetVariantArrayObjectfvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVariantArrayObjectfvATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glGetVariantArrayObjectfvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glGetVariantArrayObjectfvATI);
+}
+
+/* glGetVariantArrayObjectivATI */
+GdkGLProc
+gdk_gl_get_glGetVariantArrayObjectivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_array_object.glGetVariantArrayObjectivATI == (GdkGLProc_glGetVariantArrayObjectivATI) -1)
+ _procs_GL_ATI_vertex_array_object.glGetVariantArrayObjectivATI =
+ (GdkGLProc_glGetVariantArrayObjectivATI) gdk_gl_get_proc_address ("glGetVariantArrayObjectivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVariantArrayObjectivATI () - %s",
+ (_procs_GL_ATI_vertex_array_object.glGetVariantArrayObjectivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_array_object.glGetVariantArrayObjectivATI);
+}
+
+/* Get GL_ATI_vertex_array_object functions */
+GdkGL_GL_ATI_vertex_array_object *
+gdk_gl_get_GL_ATI_vertex_array_object (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_vertex_array_object");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glNewObjectBufferATI () != NULL);
+ supported &= (gdk_gl_get_glIsObjectBufferATI () != NULL);
+ supported &= (gdk_gl_get_glUpdateObjectBufferATI () != NULL);
+ supported &= (gdk_gl_get_glGetObjectBufferfvATI () != NULL);
+ supported &= (gdk_gl_get_glGetObjectBufferivATI () != NULL);
+ supported &= (gdk_gl_get_glFreeObjectBufferATI () != NULL);
+ supported &= (gdk_gl_get_glArrayObjectATI () != NULL);
+ supported &= (gdk_gl_get_glGetArrayObjectfvATI () != NULL);
+ supported &= (gdk_gl_get_glGetArrayObjectivATI () != NULL);
+ supported &= (gdk_gl_get_glVariantArrayObjectATI () != NULL);
+ supported &= (gdk_gl_get_glGetVariantArrayObjectfvATI () != NULL);
+ supported &= (gdk_gl_get_glGetVariantArrayObjectivATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_vertex_array_object () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_vertex_array_object;
+}
+
+/*
+ * GL_EXT_vertex_shader
+ */
+
+static GdkGL_GL_EXT_vertex_shader _procs_GL_EXT_vertex_shader = {
+ (GdkGLProc_glBeginVertexShaderEXT) -1,
+ (GdkGLProc_glEndVertexShaderEXT) -1,
+ (GdkGLProc_glBindVertexShaderEXT) -1,
+ (GdkGLProc_glGenVertexShadersEXT) -1,
+ (GdkGLProc_glDeleteVertexShaderEXT) -1,
+ (GdkGLProc_glShaderOp1EXT) -1,
+ (GdkGLProc_glShaderOp2EXT) -1,
+ (GdkGLProc_glShaderOp3EXT) -1,
+ (GdkGLProc_glSwizzleEXT) -1,
+ (GdkGLProc_glWriteMaskEXT) -1,
+ (GdkGLProc_glInsertComponentEXT) -1,
+ (GdkGLProc_glExtractComponentEXT) -1,
+ (GdkGLProc_glGenSymbolsEXT) -1,
+ (GdkGLProc_glSetInvariantEXT) -1,
+ (GdkGLProc_glSetLocalConstantEXT) -1,
+ (GdkGLProc_glVariantbvEXT) -1,
+ (GdkGLProc_glVariantsvEXT) -1,
+ (GdkGLProc_glVariantivEXT) -1,
+ (GdkGLProc_glVariantfvEXT) -1,
+ (GdkGLProc_glVariantdvEXT) -1,
+ (GdkGLProc_glVariantubvEXT) -1,
+ (GdkGLProc_glVariantusvEXT) -1,
+ (GdkGLProc_glVariantuivEXT) -1,
+ (GdkGLProc_glVariantPointerEXT) -1,
+ (GdkGLProc_glEnableVariantClientStateEXT) -1,
+ (GdkGLProc_glDisableVariantClientStateEXT) -1,
+ (GdkGLProc_glBindLightParameterEXT) -1,
+ (GdkGLProc_glBindMaterialParameterEXT) -1,
+ (GdkGLProc_glBindTexGenParameterEXT) -1,
+ (GdkGLProc_glBindTextureUnitParameterEXT) -1,
+ (GdkGLProc_glBindParameterEXT) -1,
+ (GdkGLProc_glIsVariantEnabledEXT) -1,
+ (GdkGLProc_glGetVariantBooleanvEXT) -1,
+ (GdkGLProc_glGetVariantIntegervEXT) -1,
+ (GdkGLProc_glGetVariantFloatvEXT) -1,
+ (GdkGLProc_glGetVariantPointervEXT) -1,
+ (GdkGLProc_glGetInvariantBooleanvEXT) -1,
+ (GdkGLProc_glGetInvariantIntegervEXT) -1,
+ (GdkGLProc_glGetInvariantFloatvEXT) -1,
+ (GdkGLProc_glGetLocalConstantBooleanvEXT) -1,
+ (GdkGLProc_glGetLocalConstantIntegervEXT) -1,
+ (GdkGLProc_glGetLocalConstantFloatvEXT) -1
+};
+
+/* glBeginVertexShaderEXT */
+GdkGLProc
+gdk_gl_get_glBeginVertexShaderEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glBeginVertexShaderEXT == (GdkGLProc_glBeginVertexShaderEXT) -1)
+ _procs_GL_EXT_vertex_shader.glBeginVertexShaderEXT =
+ (GdkGLProc_glBeginVertexShaderEXT) gdk_gl_get_proc_address ("glBeginVertexShaderEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBeginVertexShaderEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glBeginVertexShaderEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glBeginVertexShaderEXT);
+}
+
+/* glEndVertexShaderEXT */
+GdkGLProc
+gdk_gl_get_glEndVertexShaderEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glEndVertexShaderEXT == (GdkGLProc_glEndVertexShaderEXT) -1)
+ _procs_GL_EXT_vertex_shader.glEndVertexShaderEXT =
+ (GdkGLProc_glEndVertexShaderEXT) gdk_gl_get_proc_address ("glEndVertexShaderEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glEndVertexShaderEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glEndVertexShaderEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glEndVertexShaderEXT);
+}
+
+/* glBindVertexShaderEXT */
+GdkGLProc
+gdk_gl_get_glBindVertexShaderEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glBindVertexShaderEXT == (GdkGLProc_glBindVertexShaderEXT) -1)
+ _procs_GL_EXT_vertex_shader.glBindVertexShaderEXT =
+ (GdkGLProc_glBindVertexShaderEXT) gdk_gl_get_proc_address ("glBindVertexShaderEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindVertexShaderEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glBindVertexShaderEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glBindVertexShaderEXT);
+}
+
+/* glGenVertexShadersEXT */
+GdkGLProc
+gdk_gl_get_glGenVertexShadersEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGenVertexShadersEXT == (GdkGLProc_glGenVertexShadersEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGenVertexShadersEXT =
+ (GdkGLProc_glGenVertexShadersEXT) gdk_gl_get_proc_address ("glGenVertexShadersEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenVertexShadersEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGenVertexShadersEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGenVertexShadersEXT);
+}
+
+/* glDeleteVertexShaderEXT */
+GdkGLProc
+gdk_gl_get_glDeleteVertexShaderEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glDeleteVertexShaderEXT == (GdkGLProc_glDeleteVertexShaderEXT) -1)
+ _procs_GL_EXT_vertex_shader.glDeleteVertexShaderEXT =
+ (GdkGLProc_glDeleteVertexShaderEXT) gdk_gl_get_proc_address ("glDeleteVertexShaderEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteVertexShaderEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glDeleteVertexShaderEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glDeleteVertexShaderEXT);
+}
+
+/* glShaderOp1EXT */
+GdkGLProc
+gdk_gl_get_glShaderOp1EXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glShaderOp1EXT == (GdkGLProc_glShaderOp1EXT) -1)
+ _procs_GL_EXT_vertex_shader.glShaderOp1EXT =
+ (GdkGLProc_glShaderOp1EXT) gdk_gl_get_proc_address ("glShaderOp1EXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glShaderOp1EXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glShaderOp1EXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glShaderOp1EXT);
+}
+
+/* glShaderOp2EXT */
+GdkGLProc
+gdk_gl_get_glShaderOp2EXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glShaderOp2EXT == (GdkGLProc_glShaderOp2EXT) -1)
+ _procs_GL_EXT_vertex_shader.glShaderOp2EXT =
+ (GdkGLProc_glShaderOp2EXT) gdk_gl_get_proc_address ("glShaderOp2EXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glShaderOp2EXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glShaderOp2EXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glShaderOp2EXT);
+}
+
+/* glShaderOp3EXT */
+GdkGLProc
+gdk_gl_get_glShaderOp3EXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glShaderOp3EXT == (GdkGLProc_glShaderOp3EXT) -1)
+ _procs_GL_EXT_vertex_shader.glShaderOp3EXT =
+ (GdkGLProc_glShaderOp3EXT) gdk_gl_get_proc_address ("glShaderOp3EXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glShaderOp3EXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glShaderOp3EXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glShaderOp3EXT);
+}
+
+/* glSwizzleEXT */
+GdkGLProc
+gdk_gl_get_glSwizzleEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glSwizzleEXT == (GdkGLProc_glSwizzleEXT) -1)
+ _procs_GL_EXT_vertex_shader.glSwizzleEXT =
+ (GdkGLProc_glSwizzleEXT) gdk_gl_get_proc_address ("glSwizzleEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSwizzleEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glSwizzleEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glSwizzleEXT);
+}
+
+/* glWriteMaskEXT */
+GdkGLProc
+gdk_gl_get_glWriteMaskEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glWriteMaskEXT == (GdkGLProc_glWriteMaskEXT) -1)
+ _procs_GL_EXT_vertex_shader.glWriteMaskEXT =
+ (GdkGLProc_glWriteMaskEXT) gdk_gl_get_proc_address ("glWriteMaskEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWriteMaskEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glWriteMaskEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glWriteMaskEXT);
+}
+
+/* glInsertComponentEXT */
+GdkGLProc
+gdk_gl_get_glInsertComponentEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glInsertComponentEXT == (GdkGLProc_glInsertComponentEXT) -1)
+ _procs_GL_EXT_vertex_shader.glInsertComponentEXT =
+ (GdkGLProc_glInsertComponentEXT) gdk_gl_get_proc_address ("glInsertComponentEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glInsertComponentEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glInsertComponentEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glInsertComponentEXT);
+}
+
+/* glExtractComponentEXT */
+GdkGLProc
+gdk_gl_get_glExtractComponentEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glExtractComponentEXT == (GdkGLProc_glExtractComponentEXT) -1)
+ _procs_GL_EXT_vertex_shader.glExtractComponentEXT =
+ (GdkGLProc_glExtractComponentEXT) gdk_gl_get_proc_address ("glExtractComponentEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glExtractComponentEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glExtractComponentEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glExtractComponentEXT);
+}
+
+/* glGenSymbolsEXT */
+GdkGLProc
+gdk_gl_get_glGenSymbolsEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGenSymbolsEXT == (GdkGLProc_glGenSymbolsEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGenSymbolsEXT =
+ (GdkGLProc_glGenSymbolsEXT) gdk_gl_get_proc_address ("glGenSymbolsEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenSymbolsEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGenSymbolsEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGenSymbolsEXT);
+}
+
+/* glSetInvariantEXT */
+GdkGLProc
+gdk_gl_get_glSetInvariantEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glSetInvariantEXT == (GdkGLProc_glSetInvariantEXT) -1)
+ _procs_GL_EXT_vertex_shader.glSetInvariantEXT =
+ (GdkGLProc_glSetInvariantEXT) gdk_gl_get_proc_address ("glSetInvariantEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSetInvariantEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glSetInvariantEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glSetInvariantEXT);
+}
+
+/* glSetLocalConstantEXT */
+GdkGLProc
+gdk_gl_get_glSetLocalConstantEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glSetLocalConstantEXT == (GdkGLProc_glSetLocalConstantEXT) -1)
+ _procs_GL_EXT_vertex_shader.glSetLocalConstantEXT =
+ (GdkGLProc_glSetLocalConstantEXT) gdk_gl_get_proc_address ("glSetLocalConstantEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSetLocalConstantEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glSetLocalConstantEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glSetLocalConstantEXT);
+}
+
+/* glVariantbvEXT */
+GdkGLProc
+gdk_gl_get_glVariantbvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glVariantbvEXT == (GdkGLProc_glVariantbvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glVariantbvEXT =
+ (GdkGLProc_glVariantbvEXT) gdk_gl_get_proc_address ("glVariantbvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVariantbvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glVariantbvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glVariantbvEXT);
+}
+
+/* glVariantsvEXT */
+GdkGLProc
+gdk_gl_get_glVariantsvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glVariantsvEXT == (GdkGLProc_glVariantsvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glVariantsvEXT =
+ (GdkGLProc_glVariantsvEXT) gdk_gl_get_proc_address ("glVariantsvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVariantsvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glVariantsvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glVariantsvEXT);
+}
+
+/* glVariantivEXT */
+GdkGLProc
+gdk_gl_get_glVariantivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glVariantivEXT == (GdkGLProc_glVariantivEXT) -1)
+ _procs_GL_EXT_vertex_shader.glVariantivEXT =
+ (GdkGLProc_glVariantivEXT) gdk_gl_get_proc_address ("glVariantivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVariantivEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glVariantivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glVariantivEXT);
+}
+
+/* glVariantfvEXT */
+GdkGLProc
+gdk_gl_get_glVariantfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glVariantfvEXT == (GdkGLProc_glVariantfvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glVariantfvEXT =
+ (GdkGLProc_glVariantfvEXT) gdk_gl_get_proc_address ("glVariantfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVariantfvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glVariantfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glVariantfvEXT);
+}
+
+/* glVariantdvEXT */
+GdkGLProc
+gdk_gl_get_glVariantdvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glVariantdvEXT == (GdkGLProc_glVariantdvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glVariantdvEXT =
+ (GdkGLProc_glVariantdvEXT) gdk_gl_get_proc_address ("glVariantdvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVariantdvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glVariantdvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glVariantdvEXT);
+}
+
+/* glVariantubvEXT */
+GdkGLProc
+gdk_gl_get_glVariantubvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glVariantubvEXT == (GdkGLProc_glVariantubvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glVariantubvEXT =
+ (GdkGLProc_glVariantubvEXT) gdk_gl_get_proc_address ("glVariantubvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVariantubvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glVariantubvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glVariantubvEXT);
+}
+
+/* glVariantusvEXT */
+GdkGLProc
+gdk_gl_get_glVariantusvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glVariantusvEXT == (GdkGLProc_glVariantusvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glVariantusvEXT =
+ (GdkGLProc_glVariantusvEXT) gdk_gl_get_proc_address ("glVariantusvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVariantusvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glVariantusvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glVariantusvEXT);
+}
+
+/* glVariantuivEXT */
+GdkGLProc
+gdk_gl_get_glVariantuivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glVariantuivEXT == (GdkGLProc_glVariantuivEXT) -1)
+ _procs_GL_EXT_vertex_shader.glVariantuivEXT =
+ (GdkGLProc_glVariantuivEXT) gdk_gl_get_proc_address ("glVariantuivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVariantuivEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glVariantuivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glVariantuivEXT);
+}
+
+/* glVariantPointerEXT */
+GdkGLProc
+gdk_gl_get_glVariantPointerEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glVariantPointerEXT == (GdkGLProc_glVariantPointerEXT) -1)
+ _procs_GL_EXT_vertex_shader.glVariantPointerEXT =
+ (GdkGLProc_glVariantPointerEXT) gdk_gl_get_proc_address ("glVariantPointerEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVariantPointerEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glVariantPointerEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glVariantPointerEXT);
+}
+
+/* glEnableVariantClientStateEXT */
+GdkGLProc
+gdk_gl_get_glEnableVariantClientStateEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glEnableVariantClientStateEXT == (GdkGLProc_glEnableVariantClientStateEXT) -1)
+ _procs_GL_EXT_vertex_shader.glEnableVariantClientStateEXT =
+ (GdkGLProc_glEnableVariantClientStateEXT) gdk_gl_get_proc_address ("glEnableVariantClientStateEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glEnableVariantClientStateEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glEnableVariantClientStateEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glEnableVariantClientStateEXT);
+}
+
+/* glDisableVariantClientStateEXT */
+GdkGLProc
+gdk_gl_get_glDisableVariantClientStateEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glDisableVariantClientStateEXT == (GdkGLProc_glDisableVariantClientStateEXT) -1)
+ _procs_GL_EXT_vertex_shader.glDisableVariantClientStateEXT =
+ (GdkGLProc_glDisableVariantClientStateEXT) gdk_gl_get_proc_address ("glDisableVariantClientStateEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDisableVariantClientStateEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glDisableVariantClientStateEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glDisableVariantClientStateEXT);
+}
+
+/* glBindLightParameterEXT */
+GdkGLProc
+gdk_gl_get_glBindLightParameterEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glBindLightParameterEXT == (GdkGLProc_glBindLightParameterEXT) -1)
+ _procs_GL_EXT_vertex_shader.glBindLightParameterEXT =
+ (GdkGLProc_glBindLightParameterEXT) gdk_gl_get_proc_address ("glBindLightParameterEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindLightParameterEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glBindLightParameterEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glBindLightParameterEXT);
+}
+
+/* glBindMaterialParameterEXT */
+GdkGLProc
+gdk_gl_get_glBindMaterialParameterEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glBindMaterialParameterEXT == (GdkGLProc_glBindMaterialParameterEXT) -1)
+ _procs_GL_EXT_vertex_shader.glBindMaterialParameterEXT =
+ (GdkGLProc_glBindMaterialParameterEXT) gdk_gl_get_proc_address ("glBindMaterialParameterEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindMaterialParameterEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glBindMaterialParameterEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glBindMaterialParameterEXT);
+}
+
+/* glBindTexGenParameterEXT */
+GdkGLProc
+gdk_gl_get_glBindTexGenParameterEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glBindTexGenParameterEXT == (GdkGLProc_glBindTexGenParameterEXT) -1)
+ _procs_GL_EXT_vertex_shader.glBindTexGenParameterEXT =
+ (GdkGLProc_glBindTexGenParameterEXT) gdk_gl_get_proc_address ("glBindTexGenParameterEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindTexGenParameterEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glBindTexGenParameterEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glBindTexGenParameterEXT);
+}
+
+/* glBindTextureUnitParameterEXT */
+GdkGLProc
+gdk_gl_get_glBindTextureUnitParameterEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glBindTextureUnitParameterEXT == (GdkGLProc_glBindTextureUnitParameterEXT) -1)
+ _procs_GL_EXT_vertex_shader.glBindTextureUnitParameterEXT =
+ (GdkGLProc_glBindTextureUnitParameterEXT) gdk_gl_get_proc_address ("glBindTextureUnitParameterEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindTextureUnitParameterEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glBindTextureUnitParameterEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glBindTextureUnitParameterEXT);
+}
+
+/* glBindParameterEXT */
+GdkGLProc
+gdk_gl_get_glBindParameterEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glBindParameterEXT == (GdkGLProc_glBindParameterEXT) -1)
+ _procs_GL_EXT_vertex_shader.glBindParameterEXT =
+ (GdkGLProc_glBindParameterEXT) gdk_gl_get_proc_address ("glBindParameterEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindParameterEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glBindParameterEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glBindParameterEXT);
+}
+
+/* glIsVariantEnabledEXT */
+GdkGLProc
+gdk_gl_get_glIsVariantEnabledEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glIsVariantEnabledEXT == (GdkGLProc_glIsVariantEnabledEXT) -1)
+ _procs_GL_EXT_vertex_shader.glIsVariantEnabledEXT =
+ (GdkGLProc_glIsVariantEnabledEXT) gdk_gl_get_proc_address ("glIsVariantEnabledEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsVariantEnabledEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glIsVariantEnabledEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glIsVariantEnabledEXT);
+}
+
+/* glGetVariantBooleanvEXT */
+GdkGLProc
+gdk_gl_get_glGetVariantBooleanvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGetVariantBooleanvEXT == (GdkGLProc_glGetVariantBooleanvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGetVariantBooleanvEXT =
+ (GdkGLProc_glGetVariantBooleanvEXT) gdk_gl_get_proc_address ("glGetVariantBooleanvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVariantBooleanvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGetVariantBooleanvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGetVariantBooleanvEXT);
+}
+
+/* glGetVariantIntegervEXT */
+GdkGLProc
+gdk_gl_get_glGetVariantIntegervEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGetVariantIntegervEXT == (GdkGLProc_glGetVariantIntegervEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGetVariantIntegervEXT =
+ (GdkGLProc_glGetVariantIntegervEXT) gdk_gl_get_proc_address ("glGetVariantIntegervEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVariantIntegervEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGetVariantIntegervEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGetVariantIntegervEXT);
+}
+
+/* glGetVariantFloatvEXT */
+GdkGLProc
+gdk_gl_get_glGetVariantFloatvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGetVariantFloatvEXT == (GdkGLProc_glGetVariantFloatvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGetVariantFloatvEXT =
+ (GdkGLProc_glGetVariantFloatvEXT) gdk_gl_get_proc_address ("glGetVariantFloatvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVariantFloatvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGetVariantFloatvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGetVariantFloatvEXT);
+}
+
+/* glGetVariantPointervEXT */
+GdkGLProc
+gdk_gl_get_glGetVariantPointervEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGetVariantPointervEXT == (GdkGLProc_glGetVariantPointervEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGetVariantPointervEXT =
+ (GdkGLProc_glGetVariantPointervEXT) gdk_gl_get_proc_address ("glGetVariantPointervEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVariantPointervEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGetVariantPointervEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGetVariantPointervEXT);
+}
+
+/* glGetInvariantBooleanvEXT */
+GdkGLProc
+gdk_gl_get_glGetInvariantBooleanvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGetInvariantBooleanvEXT == (GdkGLProc_glGetInvariantBooleanvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGetInvariantBooleanvEXT =
+ (GdkGLProc_glGetInvariantBooleanvEXT) gdk_gl_get_proc_address ("glGetInvariantBooleanvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetInvariantBooleanvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGetInvariantBooleanvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGetInvariantBooleanvEXT);
+}
+
+/* glGetInvariantIntegervEXT */
+GdkGLProc
+gdk_gl_get_glGetInvariantIntegervEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGetInvariantIntegervEXT == (GdkGLProc_glGetInvariantIntegervEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGetInvariantIntegervEXT =
+ (GdkGLProc_glGetInvariantIntegervEXT) gdk_gl_get_proc_address ("glGetInvariantIntegervEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetInvariantIntegervEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGetInvariantIntegervEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGetInvariantIntegervEXT);
+}
+
+/* glGetInvariantFloatvEXT */
+GdkGLProc
+gdk_gl_get_glGetInvariantFloatvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGetInvariantFloatvEXT == (GdkGLProc_glGetInvariantFloatvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGetInvariantFloatvEXT =
+ (GdkGLProc_glGetInvariantFloatvEXT) gdk_gl_get_proc_address ("glGetInvariantFloatvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetInvariantFloatvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGetInvariantFloatvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGetInvariantFloatvEXT);
+}
+
+/* glGetLocalConstantBooleanvEXT */
+GdkGLProc
+gdk_gl_get_glGetLocalConstantBooleanvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGetLocalConstantBooleanvEXT == (GdkGLProc_glGetLocalConstantBooleanvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGetLocalConstantBooleanvEXT =
+ (GdkGLProc_glGetLocalConstantBooleanvEXT) gdk_gl_get_proc_address ("glGetLocalConstantBooleanvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetLocalConstantBooleanvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGetLocalConstantBooleanvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGetLocalConstantBooleanvEXT);
+}
+
+/* glGetLocalConstantIntegervEXT */
+GdkGLProc
+gdk_gl_get_glGetLocalConstantIntegervEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGetLocalConstantIntegervEXT == (GdkGLProc_glGetLocalConstantIntegervEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGetLocalConstantIntegervEXT =
+ (GdkGLProc_glGetLocalConstantIntegervEXT) gdk_gl_get_proc_address ("glGetLocalConstantIntegervEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetLocalConstantIntegervEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGetLocalConstantIntegervEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGetLocalConstantIntegervEXT);
+}
+
+/* glGetLocalConstantFloatvEXT */
+GdkGLProc
+gdk_gl_get_glGetLocalConstantFloatvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_vertex_shader.glGetLocalConstantFloatvEXT == (GdkGLProc_glGetLocalConstantFloatvEXT) -1)
+ _procs_GL_EXT_vertex_shader.glGetLocalConstantFloatvEXT =
+ (GdkGLProc_glGetLocalConstantFloatvEXT) gdk_gl_get_proc_address ("glGetLocalConstantFloatvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetLocalConstantFloatvEXT () - %s",
+ (_procs_GL_EXT_vertex_shader.glGetLocalConstantFloatvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_vertex_shader.glGetLocalConstantFloatvEXT);
+}
+
+/* Get GL_EXT_vertex_shader functions */
+GdkGL_GL_EXT_vertex_shader *
+gdk_gl_get_GL_EXT_vertex_shader (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_vertex_shader");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glBeginVertexShaderEXT () != NULL);
+ supported &= (gdk_gl_get_glEndVertexShaderEXT () != NULL);
+ supported &= (gdk_gl_get_glBindVertexShaderEXT () != NULL);
+ supported &= (gdk_gl_get_glGenVertexShadersEXT () != NULL);
+ supported &= (gdk_gl_get_glDeleteVertexShaderEXT () != NULL);
+ supported &= (gdk_gl_get_glShaderOp1EXT () != NULL);
+ supported &= (gdk_gl_get_glShaderOp2EXT () != NULL);
+ supported &= (gdk_gl_get_glShaderOp3EXT () != NULL);
+ supported &= (gdk_gl_get_glSwizzleEXT () != NULL);
+ supported &= (gdk_gl_get_glWriteMaskEXT () != NULL);
+ supported &= (gdk_gl_get_glInsertComponentEXT () != NULL);
+ supported &= (gdk_gl_get_glExtractComponentEXT () != NULL);
+ supported &= (gdk_gl_get_glGenSymbolsEXT () != NULL);
+ supported &= (gdk_gl_get_glSetInvariantEXT () != NULL);
+ supported &= (gdk_gl_get_glSetLocalConstantEXT () != NULL);
+ supported &= (gdk_gl_get_glVariantbvEXT () != NULL);
+ supported &= (gdk_gl_get_glVariantsvEXT () != NULL);
+ supported &= (gdk_gl_get_glVariantivEXT () != NULL);
+ supported &= (gdk_gl_get_glVariantfvEXT () != NULL);
+ supported &= (gdk_gl_get_glVariantdvEXT () != NULL);
+ supported &= (gdk_gl_get_glVariantubvEXT () != NULL);
+ supported &= (gdk_gl_get_glVariantusvEXT () != NULL);
+ supported &= (gdk_gl_get_glVariantuivEXT () != NULL);
+ supported &= (gdk_gl_get_glVariantPointerEXT () != NULL);
+ supported &= (gdk_gl_get_glEnableVariantClientStateEXT () != NULL);
+ supported &= (gdk_gl_get_glDisableVariantClientStateEXT () != NULL);
+ supported &= (gdk_gl_get_glBindLightParameterEXT () != NULL);
+ supported &= (gdk_gl_get_glBindMaterialParameterEXT () != NULL);
+ supported &= (gdk_gl_get_glBindTexGenParameterEXT () != NULL);
+ supported &= (gdk_gl_get_glBindTextureUnitParameterEXT () != NULL);
+ supported &= (gdk_gl_get_glBindParameterEXT () != NULL);
+ supported &= (gdk_gl_get_glIsVariantEnabledEXT () != NULL);
+ supported &= (gdk_gl_get_glGetVariantBooleanvEXT () != NULL);
+ supported &= (gdk_gl_get_glGetVariantIntegervEXT () != NULL);
+ supported &= (gdk_gl_get_glGetVariantFloatvEXT () != NULL);
+ supported &= (gdk_gl_get_glGetVariantPointervEXT () != NULL);
+ supported &= (gdk_gl_get_glGetInvariantBooleanvEXT () != NULL);
+ supported &= (gdk_gl_get_glGetInvariantIntegervEXT () != NULL);
+ supported &= (gdk_gl_get_glGetInvariantFloatvEXT () != NULL);
+ supported &= (gdk_gl_get_glGetLocalConstantBooleanvEXT () != NULL);
+ supported &= (gdk_gl_get_glGetLocalConstantIntegervEXT () != NULL);
+ supported &= (gdk_gl_get_glGetLocalConstantFloatvEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_vertex_shader () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_vertex_shader;
+}
+
+/*
+ * GL_ATI_vertex_streams
+ */
+
+static GdkGL_GL_ATI_vertex_streams _procs_GL_ATI_vertex_streams = {
+ (GdkGLProc_glVertexStream1sATI) -1,
+ (GdkGLProc_glVertexStream1svATI) -1,
+ (GdkGLProc_glVertexStream1iATI) -1,
+ (GdkGLProc_glVertexStream1ivATI) -1,
+ (GdkGLProc_glVertexStream1fATI) -1,
+ (GdkGLProc_glVertexStream1fvATI) -1,
+ (GdkGLProc_glVertexStream1dATI) -1,
+ (GdkGLProc_glVertexStream1dvATI) -1,
+ (GdkGLProc_glVertexStream2sATI) -1,
+ (GdkGLProc_glVertexStream2svATI) -1,
+ (GdkGLProc_glVertexStream2iATI) -1,
+ (GdkGLProc_glVertexStream2ivATI) -1,
+ (GdkGLProc_glVertexStream2fATI) -1,
+ (GdkGLProc_glVertexStream2fvATI) -1,
+ (GdkGLProc_glVertexStream2dATI) -1,
+ (GdkGLProc_glVertexStream2dvATI) -1,
+ (GdkGLProc_glVertexStream3sATI) -1,
+ (GdkGLProc_glVertexStream3svATI) -1,
+ (GdkGLProc_glVertexStream3iATI) -1,
+ (GdkGLProc_glVertexStream3ivATI) -1,
+ (GdkGLProc_glVertexStream3fATI) -1,
+ (GdkGLProc_glVertexStream3fvATI) -1,
+ (GdkGLProc_glVertexStream3dATI) -1,
+ (GdkGLProc_glVertexStream3dvATI) -1,
+ (GdkGLProc_glVertexStream4sATI) -1,
+ (GdkGLProc_glVertexStream4svATI) -1,
+ (GdkGLProc_glVertexStream4iATI) -1,
+ (GdkGLProc_glVertexStream4ivATI) -1,
+ (GdkGLProc_glVertexStream4fATI) -1,
+ (GdkGLProc_glVertexStream4fvATI) -1,
+ (GdkGLProc_glVertexStream4dATI) -1,
+ (GdkGLProc_glVertexStream4dvATI) -1,
+ (GdkGLProc_glNormalStream3bATI) -1,
+ (GdkGLProc_glNormalStream3bvATI) -1,
+ (GdkGLProc_glNormalStream3sATI) -1,
+ (GdkGLProc_glNormalStream3svATI) -1,
+ (GdkGLProc_glNormalStream3iATI) -1,
+ (GdkGLProc_glNormalStream3ivATI) -1,
+ (GdkGLProc_glNormalStream3fATI) -1,
+ (GdkGLProc_glNormalStream3fvATI) -1,
+ (GdkGLProc_glNormalStream3dATI) -1,
+ (GdkGLProc_glNormalStream3dvATI) -1,
+ (GdkGLProc_glClientActiveVertexStreamATI) -1,
+ (GdkGLProc_glVertexBlendEnviATI) -1,
+ (GdkGLProc_glVertexBlendEnvfATI) -1
+};
+
+/* glVertexStream1sATI */
+GdkGLProc
+gdk_gl_get_glVertexStream1sATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream1sATI == (GdkGLProc_glVertexStream1sATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream1sATI =
+ (GdkGLProc_glVertexStream1sATI) gdk_gl_get_proc_address ("glVertexStream1sATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream1sATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream1sATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream1sATI);
+}
+
+/* glVertexStream1svATI */
+GdkGLProc
+gdk_gl_get_glVertexStream1svATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream1svATI == (GdkGLProc_glVertexStream1svATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream1svATI =
+ (GdkGLProc_glVertexStream1svATI) gdk_gl_get_proc_address ("glVertexStream1svATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream1svATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream1svATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream1svATI);
+}
+
+/* glVertexStream1iATI */
+GdkGLProc
+gdk_gl_get_glVertexStream1iATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream1iATI == (GdkGLProc_glVertexStream1iATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream1iATI =
+ (GdkGLProc_glVertexStream1iATI) gdk_gl_get_proc_address ("glVertexStream1iATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream1iATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream1iATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream1iATI);
+}
+
+/* glVertexStream1ivATI */
+GdkGLProc
+gdk_gl_get_glVertexStream1ivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream1ivATI == (GdkGLProc_glVertexStream1ivATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream1ivATI =
+ (GdkGLProc_glVertexStream1ivATI) gdk_gl_get_proc_address ("glVertexStream1ivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream1ivATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream1ivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream1ivATI);
+}
+
+/* glVertexStream1fATI */
+GdkGLProc
+gdk_gl_get_glVertexStream1fATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream1fATI == (GdkGLProc_glVertexStream1fATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream1fATI =
+ (GdkGLProc_glVertexStream1fATI) gdk_gl_get_proc_address ("glVertexStream1fATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream1fATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream1fATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream1fATI);
+}
+
+/* glVertexStream1fvATI */
+GdkGLProc
+gdk_gl_get_glVertexStream1fvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream1fvATI == (GdkGLProc_glVertexStream1fvATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream1fvATI =
+ (GdkGLProc_glVertexStream1fvATI) gdk_gl_get_proc_address ("glVertexStream1fvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream1fvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream1fvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream1fvATI);
+}
+
+/* glVertexStream1dATI */
+GdkGLProc
+gdk_gl_get_glVertexStream1dATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream1dATI == (GdkGLProc_glVertexStream1dATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream1dATI =
+ (GdkGLProc_glVertexStream1dATI) gdk_gl_get_proc_address ("glVertexStream1dATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream1dATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream1dATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream1dATI);
+}
+
+/* glVertexStream1dvATI */
+GdkGLProc
+gdk_gl_get_glVertexStream1dvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream1dvATI == (GdkGLProc_glVertexStream1dvATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream1dvATI =
+ (GdkGLProc_glVertexStream1dvATI) gdk_gl_get_proc_address ("glVertexStream1dvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream1dvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream1dvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream1dvATI);
+}
+
+/* glVertexStream2sATI */
+GdkGLProc
+gdk_gl_get_glVertexStream2sATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream2sATI == (GdkGLProc_glVertexStream2sATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream2sATI =
+ (GdkGLProc_glVertexStream2sATI) gdk_gl_get_proc_address ("glVertexStream2sATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream2sATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream2sATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream2sATI);
+}
+
+/* glVertexStream2svATI */
+GdkGLProc
+gdk_gl_get_glVertexStream2svATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream2svATI == (GdkGLProc_glVertexStream2svATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream2svATI =
+ (GdkGLProc_glVertexStream2svATI) gdk_gl_get_proc_address ("glVertexStream2svATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream2svATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream2svATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream2svATI);
+}
+
+/* glVertexStream2iATI */
+GdkGLProc
+gdk_gl_get_glVertexStream2iATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream2iATI == (GdkGLProc_glVertexStream2iATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream2iATI =
+ (GdkGLProc_glVertexStream2iATI) gdk_gl_get_proc_address ("glVertexStream2iATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream2iATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream2iATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream2iATI);
+}
+
+/* glVertexStream2ivATI */
+GdkGLProc
+gdk_gl_get_glVertexStream2ivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream2ivATI == (GdkGLProc_glVertexStream2ivATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream2ivATI =
+ (GdkGLProc_glVertexStream2ivATI) gdk_gl_get_proc_address ("glVertexStream2ivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream2ivATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream2ivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream2ivATI);
+}
+
+/* glVertexStream2fATI */
+GdkGLProc
+gdk_gl_get_glVertexStream2fATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream2fATI == (GdkGLProc_glVertexStream2fATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream2fATI =
+ (GdkGLProc_glVertexStream2fATI) gdk_gl_get_proc_address ("glVertexStream2fATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream2fATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream2fATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream2fATI);
+}
+
+/* glVertexStream2fvATI */
+GdkGLProc
+gdk_gl_get_glVertexStream2fvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream2fvATI == (GdkGLProc_glVertexStream2fvATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream2fvATI =
+ (GdkGLProc_glVertexStream2fvATI) gdk_gl_get_proc_address ("glVertexStream2fvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream2fvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream2fvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream2fvATI);
+}
+
+/* glVertexStream2dATI */
+GdkGLProc
+gdk_gl_get_glVertexStream2dATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream2dATI == (GdkGLProc_glVertexStream2dATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream2dATI =
+ (GdkGLProc_glVertexStream2dATI) gdk_gl_get_proc_address ("glVertexStream2dATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream2dATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream2dATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream2dATI);
+}
+
+/* glVertexStream2dvATI */
+GdkGLProc
+gdk_gl_get_glVertexStream2dvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream2dvATI == (GdkGLProc_glVertexStream2dvATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream2dvATI =
+ (GdkGLProc_glVertexStream2dvATI) gdk_gl_get_proc_address ("glVertexStream2dvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream2dvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream2dvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream2dvATI);
+}
+
+/* glVertexStream3sATI */
+GdkGLProc
+gdk_gl_get_glVertexStream3sATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream3sATI == (GdkGLProc_glVertexStream3sATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream3sATI =
+ (GdkGLProc_glVertexStream3sATI) gdk_gl_get_proc_address ("glVertexStream3sATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream3sATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream3sATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream3sATI);
+}
+
+/* glVertexStream3svATI */
+GdkGLProc
+gdk_gl_get_glVertexStream3svATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream3svATI == (GdkGLProc_glVertexStream3svATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream3svATI =
+ (GdkGLProc_glVertexStream3svATI) gdk_gl_get_proc_address ("glVertexStream3svATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream3svATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream3svATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream3svATI);
+}
+
+/* glVertexStream3iATI */
+GdkGLProc
+gdk_gl_get_glVertexStream3iATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream3iATI == (GdkGLProc_glVertexStream3iATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream3iATI =
+ (GdkGLProc_glVertexStream3iATI) gdk_gl_get_proc_address ("glVertexStream3iATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream3iATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream3iATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream3iATI);
+}
+
+/* glVertexStream3ivATI */
+GdkGLProc
+gdk_gl_get_glVertexStream3ivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream3ivATI == (GdkGLProc_glVertexStream3ivATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream3ivATI =
+ (GdkGLProc_glVertexStream3ivATI) gdk_gl_get_proc_address ("glVertexStream3ivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream3ivATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream3ivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream3ivATI);
+}
+
+/* glVertexStream3fATI */
+GdkGLProc
+gdk_gl_get_glVertexStream3fATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream3fATI == (GdkGLProc_glVertexStream3fATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream3fATI =
+ (GdkGLProc_glVertexStream3fATI) gdk_gl_get_proc_address ("glVertexStream3fATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream3fATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream3fATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream3fATI);
+}
+
+/* glVertexStream3fvATI */
+GdkGLProc
+gdk_gl_get_glVertexStream3fvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream3fvATI == (GdkGLProc_glVertexStream3fvATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream3fvATI =
+ (GdkGLProc_glVertexStream3fvATI) gdk_gl_get_proc_address ("glVertexStream3fvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream3fvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream3fvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream3fvATI);
+}
+
+/* glVertexStream3dATI */
+GdkGLProc
+gdk_gl_get_glVertexStream3dATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream3dATI == (GdkGLProc_glVertexStream3dATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream3dATI =
+ (GdkGLProc_glVertexStream3dATI) gdk_gl_get_proc_address ("glVertexStream3dATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream3dATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream3dATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream3dATI);
+}
+
+/* glVertexStream3dvATI */
+GdkGLProc
+gdk_gl_get_glVertexStream3dvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream3dvATI == (GdkGLProc_glVertexStream3dvATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream3dvATI =
+ (GdkGLProc_glVertexStream3dvATI) gdk_gl_get_proc_address ("glVertexStream3dvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream3dvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream3dvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream3dvATI);
+}
+
+/* glVertexStream4sATI */
+GdkGLProc
+gdk_gl_get_glVertexStream4sATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream4sATI == (GdkGLProc_glVertexStream4sATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream4sATI =
+ (GdkGLProc_glVertexStream4sATI) gdk_gl_get_proc_address ("glVertexStream4sATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream4sATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream4sATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream4sATI);
+}
+
+/* glVertexStream4svATI */
+GdkGLProc
+gdk_gl_get_glVertexStream4svATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream4svATI == (GdkGLProc_glVertexStream4svATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream4svATI =
+ (GdkGLProc_glVertexStream4svATI) gdk_gl_get_proc_address ("glVertexStream4svATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream4svATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream4svATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream4svATI);
+}
+
+/* glVertexStream4iATI */
+GdkGLProc
+gdk_gl_get_glVertexStream4iATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream4iATI == (GdkGLProc_glVertexStream4iATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream4iATI =
+ (GdkGLProc_glVertexStream4iATI) gdk_gl_get_proc_address ("glVertexStream4iATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream4iATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream4iATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream4iATI);
+}
+
+/* glVertexStream4ivATI */
+GdkGLProc
+gdk_gl_get_glVertexStream4ivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream4ivATI == (GdkGLProc_glVertexStream4ivATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream4ivATI =
+ (GdkGLProc_glVertexStream4ivATI) gdk_gl_get_proc_address ("glVertexStream4ivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream4ivATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream4ivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream4ivATI);
+}
+
+/* glVertexStream4fATI */
+GdkGLProc
+gdk_gl_get_glVertexStream4fATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream4fATI == (GdkGLProc_glVertexStream4fATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream4fATI =
+ (GdkGLProc_glVertexStream4fATI) gdk_gl_get_proc_address ("glVertexStream4fATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream4fATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream4fATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream4fATI);
+}
+
+/* glVertexStream4fvATI */
+GdkGLProc
+gdk_gl_get_glVertexStream4fvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream4fvATI == (GdkGLProc_glVertexStream4fvATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream4fvATI =
+ (GdkGLProc_glVertexStream4fvATI) gdk_gl_get_proc_address ("glVertexStream4fvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream4fvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream4fvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream4fvATI);
+}
+
+/* glVertexStream4dATI */
+GdkGLProc
+gdk_gl_get_glVertexStream4dATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream4dATI == (GdkGLProc_glVertexStream4dATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream4dATI =
+ (GdkGLProc_glVertexStream4dATI) gdk_gl_get_proc_address ("glVertexStream4dATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream4dATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream4dATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream4dATI);
+}
+
+/* glVertexStream4dvATI */
+GdkGLProc
+gdk_gl_get_glVertexStream4dvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexStream4dvATI == (GdkGLProc_glVertexStream4dvATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexStream4dvATI =
+ (GdkGLProc_glVertexStream4dvATI) gdk_gl_get_proc_address ("glVertexStream4dvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexStream4dvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexStream4dvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexStream4dvATI);
+}
+
+/* glNormalStream3bATI */
+GdkGLProc
+gdk_gl_get_glNormalStream3bATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glNormalStream3bATI == (GdkGLProc_glNormalStream3bATI) -1)
+ _procs_GL_ATI_vertex_streams.glNormalStream3bATI =
+ (GdkGLProc_glNormalStream3bATI) gdk_gl_get_proc_address ("glNormalStream3bATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalStream3bATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glNormalStream3bATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glNormalStream3bATI);
+}
+
+/* glNormalStream3bvATI */
+GdkGLProc
+gdk_gl_get_glNormalStream3bvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glNormalStream3bvATI == (GdkGLProc_glNormalStream3bvATI) -1)
+ _procs_GL_ATI_vertex_streams.glNormalStream3bvATI =
+ (GdkGLProc_glNormalStream3bvATI) gdk_gl_get_proc_address ("glNormalStream3bvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalStream3bvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glNormalStream3bvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glNormalStream3bvATI);
+}
+
+/* glNormalStream3sATI */
+GdkGLProc
+gdk_gl_get_glNormalStream3sATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glNormalStream3sATI == (GdkGLProc_glNormalStream3sATI) -1)
+ _procs_GL_ATI_vertex_streams.glNormalStream3sATI =
+ (GdkGLProc_glNormalStream3sATI) gdk_gl_get_proc_address ("glNormalStream3sATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalStream3sATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glNormalStream3sATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glNormalStream3sATI);
+}
+
+/* glNormalStream3svATI */
+GdkGLProc
+gdk_gl_get_glNormalStream3svATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glNormalStream3svATI == (GdkGLProc_glNormalStream3svATI) -1)
+ _procs_GL_ATI_vertex_streams.glNormalStream3svATI =
+ (GdkGLProc_glNormalStream3svATI) gdk_gl_get_proc_address ("glNormalStream3svATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalStream3svATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glNormalStream3svATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glNormalStream3svATI);
+}
+
+/* glNormalStream3iATI */
+GdkGLProc
+gdk_gl_get_glNormalStream3iATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glNormalStream3iATI == (GdkGLProc_glNormalStream3iATI) -1)
+ _procs_GL_ATI_vertex_streams.glNormalStream3iATI =
+ (GdkGLProc_glNormalStream3iATI) gdk_gl_get_proc_address ("glNormalStream3iATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalStream3iATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glNormalStream3iATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glNormalStream3iATI);
+}
+
+/* glNormalStream3ivATI */
+GdkGLProc
+gdk_gl_get_glNormalStream3ivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glNormalStream3ivATI == (GdkGLProc_glNormalStream3ivATI) -1)
+ _procs_GL_ATI_vertex_streams.glNormalStream3ivATI =
+ (GdkGLProc_glNormalStream3ivATI) gdk_gl_get_proc_address ("glNormalStream3ivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalStream3ivATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glNormalStream3ivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glNormalStream3ivATI);
+}
+
+/* glNormalStream3fATI */
+GdkGLProc
+gdk_gl_get_glNormalStream3fATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glNormalStream3fATI == (GdkGLProc_glNormalStream3fATI) -1)
+ _procs_GL_ATI_vertex_streams.glNormalStream3fATI =
+ (GdkGLProc_glNormalStream3fATI) gdk_gl_get_proc_address ("glNormalStream3fATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalStream3fATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glNormalStream3fATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glNormalStream3fATI);
+}
+
+/* glNormalStream3fvATI */
+GdkGLProc
+gdk_gl_get_glNormalStream3fvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glNormalStream3fvATI == (GdkGLProc_glNormalStream3fvATI) -1)
+ _procs_GL_ATI_vertex_streams.glNormalStream3fvATI =
+ (GdkGLProc_glNormalStream3fvATI) gdk_gl_get_proc_address ("glNormalStream3fvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalStream3fvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glNormalStream3fvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glNormalStream3fvATI);
+}
+
+/* glNormalStream3dATI */
+GdkGLProc
+gdk_gl_get_glNormalStream3dATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glNormalStream3dATI == (GdkGLProc_glNormalStream3dATI) -1)
+ _procs_GL_ATI_vertex_streams.glNormalStream3dATI =
+ (GdkGLProc_glNormalStream3dATI) gdk_gl_get_proc_address ("glNormalStream3dATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalStream3dATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glNormalStream3dATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glNormalStream3dATI);
+}
+
+/* glNormalStream3dvATI */
+GdkGLProc
+gdk_gl_get_glNormalStream3dvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glNormalStream3dvATI == (GdkGLProc_glNormalStream3dvATI) -1)
+ _procs_GL_ATI_vertex_streams.glNormalStream3dvATI =
+ (GdkGLProc_glNormalStream3dvATI) gdk_gl_get_proc_address ("glNormalStream3dvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormalStream3dvATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glNormalStream3dvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glNormalStream3dvATI);
+}
+
+/* glClientActiveVertexStreamATI */
+GdkGLProc
+gdk_gl_get_glClientActiveVertexStreamATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glClientActiveVertexStreamATI == (GdkGLProc_glClientActiveVertexStreamATI) -1)
+ _procs_GL_ATI_vertex_streams.glClientActiveVertexStreamATI =
+ (GdkGLProc_glClientActiveVertexStreamATI) gdk_gl_get_proc_address ("glClientActiveVertexStreamATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glClientActiveVertexStreamATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glClientActiveVertexStreamATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glClientActiveVertexStreamATI);
+}
+
+/* glVertexBlendEnviATI */
+GdkGLProc
+gdk_gl_get_glVertexBlendEnviATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexBlendEnviATI == (GdkGLProc_glVertexBlendEnviATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexBlendEnviATI =
+ (GdkGLProc_glVertexBlendEnviATI) gdk_gl_get_proc_address ("glVertexBlendEnviATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexBlendEnviATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexBlendEnviATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexBlendEnviATI);
+}
+
+/* glVertexBlendEnvfATI */
+GdkGLProc
+gdk_gl_get_glVertexBlendEnvfATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_streams.glVertexBlendEnvfATI == (GdkGLProc_glVertexBlendEnvfATI) -1)
+ _procs_GL_ATI_vertex_streams.glVertexBlendEnvfATI =
+ (GdkGLProc_glVertexBlendEnvfATI) gdk_gl_get_proc_address ("glVertexBlendEnvfATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexBlendEnvfATI () - %s",
+ (_procs_GL_ATI_vertex_streams.glVertexBlendEnvfATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_streams.glVertexBlendEnvfATI);
+}
+
+/* Get GL_ATI_vertex_streams functions */
+GdkGL_GL_ATI_vertex_streams *
+gdk_gl_get_GL_ATI_vertex_streams (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_vertex_streams");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glVertexStream1sATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream1svATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream1iATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream1ivATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream1fATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream1fvATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream1dATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream1dvATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream2sATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream2svATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream2iATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream2ivATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream2fATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream2fvATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream2dATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream2dvATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream3sATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream3svATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream3iATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream3ivATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream3fATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream3fvATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream3dATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream3dvATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream4sATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream4svATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream4iATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream4ivATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream4fATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream4fvATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream4dATI () != NULL);
+ supported &= (gdk_gl_get_glVertexStream4dvATI () != NULL);
+ supported &= (gdk_gl_get_glNormalStream3bATI () != NULL);
+ supported &= (gdk_gl_get_glNormalStream3bvATI () != NULL);
+ supported &= (gdk_gl_get_glNormalStream3sATI () != NULL);
+ supported &= (gdk_gl_get_glNormalStream3svATI () != NULL);
+ supported &= (gdk_gl_get_glNormalStream3iATI () != NULL);
+ supported &= (gdk_gl_get_glNormalStream3ivATI () != NULL);
+ supported &= (gdk_gl_get_glNormalStream3fATI () != NULL);
+ supported &= (gdk_gl_get_glNormalStream3fvATI () != NULL);
+ supported &= (gdk_gl_get_glNormalStream3dATI () != NULL);
+ supported &= (gdk_gl_get_glNormalStream3dvATI () != NULL);
+ supported &= (gdk_gl_get_glClientActiveVertexStreamATI () != NULL);
+ supported &= (gdk_gl_get_glVertexBlendEnviATI () != NULL);
+ supported &= (gdk_gl_get_glVertexBlendEnvfATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_vertex_streams () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_vertex_streams;
+}
+
+/*
+ * GL_ATI_element_array
+ */
+
+static GdkGL_GL_ATI_element_array _procs_GL_ATI_element_array = {
+ (GdkGLProc_glElementPointerATI) -1,
+ (GdkGLProc_glDrawElementArrayATI) -1,
+ (GdkGLProc_glDrawRangeElementArrayATI) -1
+};
+
+/* glElementPointerATI */
+GdkGLProc
+gdk_gl_get_glElementPointerATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_element_array.glElementPointerATI == (GdkGLProc_glElementPointerATI) -1)
+ _procs_GL_ATI_element_array.glElementPointerATI =
+ (GdkGLProc_glElementPointerATI) gdk_gl_get_proc_address ("glElementPointerATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glElementPointerATI () - %s",
+ (_procs_GL_ATI_element_array.glElementPointerATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_element_array.glElementPointerATI);
+}
+
+/* glDrawElementArrayATI */
+GdkGLProc
+gdk_gl_get_glDrawElementArrayATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_element_array.glDrawElementArrayATI == (GdkGLProc_glDrawElementArrayATI) -1)
+ _procs_GL_ATI_element_array.glDrawElementArrayATI =
+ (GdkGLProc_glDrawElementArrayATI) gdk_gl_get_proc_address ("glDrawElementArrayATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawElementArrayATI () - %s",
+ (_procs_GL_ATI_element_array.glDrawElementArrayATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_element_array.glDrawElementArrayATI);
+}
+
+/* glDrawRangeElementArrayATI */
+GdkGLProc
+gdk_gl_get_glDrawRangeElementArrayATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_element_array.glDrawRangeElementArrayATI == (GdkGLProc_glDrawRangeElementArrayATI) -1)
+ _procs_GL_ATI_element_array.glDrawRangeElementArrayATI =
+ (GdkGLProc_glDrawRangeElementArrayATI) gdk_gl_get_proc_address ("glDrawRangeElementArrayATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawRangeElementArrayATI () - %s",
+ (_procs_GL_ATI_element_array.glDrawRangeElementArrayATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_element_array.glDrawRangeElementArrayATI);
+}
+
+/* Get GL_ATI_element_array functions */
+GdkGL_GL_ATI_element_array *
+gdk_gl_get_GL_ATI_element_array (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_element_array");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glElementPointerATI () != NULL);
+ supported &= (gdk_gl_get_glDrawElementArrayATI () != NULL);
+ supported &= (gdk_gl_get_glDrawRangeElementArrayATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_element_array () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_element_array;
+}
+
+/*
+ * GL_SUN_mesh_array
+ */
+
+static GdkGL_GL_SUN_mesh_array _procs_GL_SUN_mesh_array = {
+ (GdkGLProc_glDrawMeshArraysSUN) -1
+};
+
+/* glDrawMeshArraysSUN */
+GdkGLProc
+gdk_gl_get_glDrawMeshArraysSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_mesh_array.glDrawMeshArraysSUN == (GdkGLProc_glDrawMeshArraysSUN) -1)
+ _procs_GL_SUN_mesh_array.glDrawMeshArraysSUN =
+ (GdkGLProc_glDrawMeshArraysSUN) gdk_gl_get_proc_address ("glDrawMeshArraysSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawMeshArraysSUN () - %s",
+ (_procs_GL_SUN_mesh_array.glDrawMeshArraysSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_mesh_array.glDrawMeshArraysSUN);
+}
+
+/* Get GL_SUN_mesh_array functions */
+GdkGL_GL_SUN_mesh_array *
+gdk_gl_get_GL_SUN_mesh_array (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SUN_mesh_array");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glDrawMeshArraysSUN () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SUN_mesh_array () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SUN_mesh_array;
+}
+
+/*
+ * GL_NV_occlusion_query
+ */
+
+static GdkGL_GL_NV_occlusion_query _procs_GL_NV_occlusion_query = {
+ (GdkGLProc_glGenOcclusionQueriesNV) -1,
+ (GdkGLProc_glDeleteOcclusionQueriesNV) -1,
+ (GdkGLProc_glIsOcclusionQueryNV) -1,
+ (GdkGLProc_glBeginOcclusionQueryNV) -1,
+ (GdkGLProc_glEndOcclusionQueryNV) -1,
+ (GdkGLProc_glGetOcclusionQueryivNV) -1,
+ (GdkGLProc_glGetOcclusionQueryuivNV) -1
+};
+
+/* glGenOcclusionQueriesNV */
+GdkGLProc
+gdk_gl_get_glGenOcclusionQueriesNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_occlusion_query.glGenOcclusionQueriesNV == (GdkGLProc_glGenOcclusionQueriesNV) -1)
+ _procs_GL_NV_occlusion_query.glGenOcclusionQueriesNV =
+ (GdkGLProc_glGenOcclusionQueriesNV) gdk_gl_get_proc_address ("glGenOcclusionQueriesNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenOcclusionQueriesNV () - %s",
+ (_procs_GL_NV_occlusion_query.glGenOcclusionQueriesNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_occlusion_query.glGenOcclusionQueriesNV);
+}
+
+/* glDeleteOcclusionQueriesNV */
+GdkGLProc
+gdk_gl_get_glDeleteOcclusionQueriesNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_occlusion_query.glDeleteOcclusionQueriesNV == (GdkGLProc_glDeleteOcclusionQueriesNV) -1)
+ _procs_GL_NV_occlusion_query.glDeleteOcclusionQueriesNV =
+ (GdkGLProc_glDeleteOcclusionQueriesNV) gdk_gl_get_proc_address ("glDeleteOcclusionQueriesNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteOcclusionQueriesNV () - %s",
+ (_procs_GL_NV_occlusion_query.glDeleteOcclusionQueriesNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_occlusion_query.glDeleteOcclusionQueriesNV);
+}
+
+/* glIsOcclusionQueryNV */
+GdkGLProc
+gdk_gl_get_glIsOcclusionQueryNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_occlusion_query.glIsOcclusionQueryNV == (GdkGLProc_glIsOcclusionQueryNV) -1)
+ _procs_GL_NV_occlusion_query.glIsOcclusionQueryNV =
+ (GdkGLProc_glIsOcclusionQueryNV) gdk_gl_get_proc_address ("glIsOcclusionQueryNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsOcclusionQueryNV () - %s",
+ (_procs_GL_NV_occlusion_query.glIsOcclusionQueryNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_occlusion_query.glIsOcclusionQueryNV);
+}
+
+/* glBeginOcclusionQueryNV */
+GdkGLProc
+gdk_gl_get_glBeginOcclusionQueryNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_occlusion_query.glBeginOcclusionQueryNV == (GdkGLProc_glBeginOcclusionQueryNV) -1)
+ _procs_GL_NV_occlusion_query.glBeginOcclusionQueryNV =
+ (GdkGLProc_glBeginOcclusionQueryNV) gdk_gl_get_proc_address ("glBeginOcclusionQueryNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBeginOcclusionQueryNV () - %s",
+ (_procs_GL_NV_occlusion_query.glBeginOcclusionQueryNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_occlusion_query.glBeginOcclusionQueryNV);
+}
+
+/* glEndOcclusionQueryNV */
+GdkGLProc
+gdk_gl_get_glEndOcclusionQueryNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_occlusion_query.glEndOcclusionQueryNV == (GdkGLProc_glEndOcclusionQueryNV) -1)
+ _procs_GL_NV_occlusion_query.glEndOcclusionQueryNV =
+ (GdkGLProc_glEndOcclusionQueryNV) gdk_gl_get_proc_address ("glEndOcclusionQueryNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glEndOcclusionQueryNV () - %s",
+ (_procs_GL_NV_occlusion_query.glEndOcclusionQueryNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_occlusion_query.glEndOcclusionQueryNV);
+}
+
+/* glGetOcclusionQueryivNV */
+GdkGLProc
+gdk_gl_get_glGetOcclusionQueryivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_occlusion_query.glGetOcclusionQueryivNV == (GdkGLProc_glGetOcclusionQueryivNV) -1)
+ _procs_GL_NV_occlusion_query.glGetOcclusionQueryivNV =
+ (GdkGLProc_glGetOcclusionQueryivNV) gdk_gl_get_proc_address ("glGetOcclusionQueryivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetOcclusionQueryivNV () - %s",
+ (_procs_GL_NV_occlusion_query.glGetOcclusionQueryivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_occlusion_query.glGetOcclusionQueryivNV);
+}
+
+/* glGetOcclusionQueryuivNV */
+GdkGLProc
+gdk_gl_get_glGetOcclusionQueryuivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_occlusion_query.glGetOcclusionQueryuivNV == (GdkGLProc_glGetOcclusionQueryuivNV) -1)
+ _procs_GL_NV_occlusion_query.glGetOcclusionQueryuivNV =
+ (GdkGLProc_glGetOcclusionQueryuivNV) gdk_gl_get_proc_address ("glGetOcclusionQueryuivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetOcclusionQueryuivNV () - %s",
+ (_procs_GL_NV_occlusion_query.glGetOcclusionQueryuivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_occlusion_query.glGetOcclusionQueryuivNV);
+}
+
+/* Get GL_NV_occlusion_query functions */
+GdkGL_GL_NV_occlusion_query *
+gdk_gl_get_GL_NV_occlusion_query (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_occlusion_query");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glGenOcclusionQueriesNV () != NULL);
+ supported &= (gdk_gl_get_glDeleteOcclusionQueriesNV () != NULL);
+ supported &= (gdk_gl_get_glIsOcclusionQueryNV () != NULL);
+ supported &= (gdk_gl_get_glBeginOcclusionQueryNV () != NULL);
+ supported &= (gdk_gl_get_glEndOcclusionQueryNV () != NULL);
+ supported &= (gdk_gl_get_glGetOcclusionQueryivNV () != NULL);
+ supported &= (gdk_gl_get_glGetOcclusionQueryuivNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_occlusion_query () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_occlusion_query;
+}
+
+/*
+ * GL_NV_point_sprite
+ */
+
+static GdkGL_GL_NV_point_sprite _procs_GL_NV_point_sprite = {
+ (GdkGLProc_glPointParameteriNV) -1,
+ (GdkGLProc_glPointParameterivNV) -1
+};
+
+/* glPointParameteriNV */
+GdkGLProc
+gdk_gl_get_glPointParameteriNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_point_sprite.glPointParameteriNV == (GdkGLProc_glPointParameteriNV) -1)
+ _procs_GL_NV_point_sprite.glPointParameteriNV =
+ (GdkGLProc_glPointParameteriNV) gdk_gl_get_proc_address ("glPointParameteriNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameteriNV () - %s",
+ (_procs_GL_NV_point_sprite.glPointParameteriNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_point_sprite.glPointParameteriNV);
+}
+
+/* glPointParameterivNV */
+GdkGLProc
+gdk_gl_get_glPointParameterivNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_point_sprite.glPointParameterivNV == (GdkGLProc_glPointParameterivNV) -1)
+ _procs_GL_NV_point_sprite.glPointParameterivNV =
+ (GdkGLProc_glPointParameterivNV) gdk_gl_get_proc_address ("glPointParameterivNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPointParameterivNV () - %s",
+ (_procs_GL_NV_point_sprite.glPointParameterivNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_point_sprite.glPointParameterivNV);
+}
+
+/* Get GL_NV_point_sprite functions */
+GdkGL_GL_NV_point_sprite *
+gdk_gl_get_GL_NV_point_sprite (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_point_sprite");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPointParameteriNV () != NULL);
+ supported &= (gdk_gl_get_glPointParameterivNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_point_sprite () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_point_sprite;
+}
+
+/*
+ * GL_EXT_stencil_two_side
+ */
+
+static GdkGL_GL_EXT_stencil_two_side _procs_GL_EXT_stencil_two_side = {
+ (GdkGLProc_glActiveStencilFaceEXT) -1
+};
+
+/* glActiveStencilFaceEXT */
+GdkGLProc
+gdk_gl_get_glActiveStencilFaceEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_stencil_two_side.glActiveStencilFaceEXT == (GdkGLProc_glActiveStencilFaceEXT) -1)
+ _procs_GL_EXT_stencil_two_side.glActiveStencilFaceEXT =
+ (GdkGLProc_glActiveStencilFaceEXT) gdk_gl_get_proc_address ("glActiveStencilFaceEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glActiveStencilFaceEXT () - %s",
+ (_procs_GL_EXT_stencil_two_side.glActiveStencilFaceEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_stencil_two_side.glActiveStencilFaceEXT);
+}
+
+/* Get GL_EXT_stencil_two_side functions */
+GdkGL_GL_EXT_stencil_two_side *
+gdk_gl_get_GL_EXT_stencil_two_side (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_stencil_two_side");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glActiveStencilFaceEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_stencil_two_side () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_stencil_two_side;
+}
+
+/*
+ * GL_APPLE_element_array
+ */
+
+static GdkGL_GL_APPLE_element_array _procs_GL_APPLE_element_array = {
+ (GdkGLProc_glElementPointerAPPLE) -1,
+ (GdkGLProc_glDrawElementArrayAPPLE) -1,
+ (GdkGLProc_glDrawRangeElementArrayAPPLE) -1,
+ (GdkGLProc_glMultiDrawElementArrayAPPLE) -1,
+ (GdkGLProc_glMultiDrawRangeElementArrayAPPLE) -1
+};
+
+/* glElementPointerAPPLE */
+GdkGLProc
+gdk_gl_get_glElementPointerAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_element_array.glElementPointerAPPLE == (GdkGLProc_glElementPointerAPPLE) -1)
+ _procs_GL_APPLE_element_array.glElementPointerAPPLE =
+ (GdkGLProc_glElementPointerAPPLE) gdk_gl_get_proc_address ("glElementPointerAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glElementPointerAPPLE () - %s",
+ (_procs_GL_APPLE_element_array.glElementPointerAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_element_array.glElementPointerAPPLE);
+}
+
+/* glDrawElementArrayAPPLE */
+GdkGLProc
+gdk_gl_get_glDrawElementArrayAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_element_array.glDrawElementArrayAPPLE == (GdkGLProc_glDrawElementArrayAPPLE) -1)
+ _procs_GL_APPLE_element_array.glDrawElementArrayAPPLE =
+ (GdkGLProc_glDrawElementArrayAPPLE) gdk_gl_get_proc_address ("glDrawElementArrayAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawElementArrayAPPLE () - %s",
+ (_procs_GL_APPLE_element_array.glDrawElementArrayAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_element_array.glDrawElementArrayAPPLE);
+}
+
+/* glDrawRangeElementArrayAPPLE */
+GdkGLProc
+gdk_gl_get_glDrawRangeElementArrayAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_element_array.glDrawRangeElementArrayAPPLE == (GdkGLProc_glDrawRangeElementArrayAPPLE) -1)
+ _procs_GL_APPLE_element_array.glDrawRangeElementArrayAPPLE =
+ (GdkGLProc_glDrawRangeElementArrayAPPLE) gdk_gl_get_proc_address ("glDrawRangeElementArrayAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawRangeElementArrayAPPLE () - %s",
+ (_procs_GL_APPLE_element_array.glDrawRangeElementArrayAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_element_array.glDrawRangeElementArrayAPPLE);
+}
+
+/* glMultiDrawElementArrayAPPLE */
+GdkGLProc
+gdk_gl_get_glMultiDrawElementArrayAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_element_array.glMultiDrawElementArrayAPPLE == (GdkGLProc_glMultiDrawElementArrayAPPLE) -1)
+ _procs_GL_APPLE_element_array.glMultiDrawElementArrayAPPLE =
+ (GdkGLProc_glMultiDrawElementArrayAPPLE) gdk_gl_get_proc_address ("glMultiDrawElementArrayAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiDrawElementArrayAPPLE () - %s",
+ (_procs_GL_APPLE_element_array.glMultiDrawElementArrayAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_element_array.glMultiDrawElementArrayAPPLE);
+}
+
+/* glMultiDrawRangeElementArrayAPPLE */
+GdkGLProc
+gdk_gl_get_glMultiDrawRangeElementArrayAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_element_array.glMultiDrawRangeElementArrayAPPLE == (GdkGLProc_glMultiDrawRangeElementArrayAPPLE) -1)
+ _procs_GL_APPLE_element_array.glMultiDrawRangeElementArrayAPPLE =
+ (GdkGLProc_glMultiDrawRangeElementArrayAPPLE) gdk_gl_get_proc_address ("glMultiDrawRangeElementArrayAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiDrawRangeElementArrayAPPLE () - %s",
+ (_procs_GL_APPLE_element_array.glMultiDrawRangeElementArrayAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_element_array.glMultiDrawRangeElementArrayAPPLE);
+}
+
+/* Get GL_APPLE_element_array functions */
+GdkGL_GL_APPLE_element_array *
+gdk_gl_get_GL_APPLE_element_array (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_APPLE_element_array");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glElementPointerAPPLE () != NULL);
+ supported &= (gdk_gl_get_glDrawElementArrayAPPLE () != NULL);
+ supported &= (gdk_gl_get_glDrawRangeElementArrayAPPLE () != NULL);
+ supported &= (gdk_gl_get_glMultiDrawElementArrayAPPLE () != NULL);
+ supported &= (gdk_gl_get_glMultiDrawRangeElementArrayAPPLE () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_APPLE_element_array () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_APPLE_element_array;
+}
+
+/*
+ * GL_APPLE_fence
+ */
+
+static GdkGL_GL_APPLE_fence _procs_GL_APPLE_fence = {
+ (GdkGLProc_glGenFencesAPPLE) -1,
+ (GdkGLProc_glDeleteFencesAPPLE) -1,
+ (GdkGLProc_glSetFenceAPPLE) -1,
+ (GdkGLProc_glIsFenceAPPLE) -1,
+ (GdkGLProc_glTestFenceAPPLE) -1,
+ (GdkGLProc_glFinishFenceAPPLE) -1,
+ (GdkGLProc_glTestObjectAPPLE) -1,
+ (GdkGLProc_glFinishObjectAPPLE) -1
+};
+
+/* glGenFencesAPPLE */
+GdkGLProc
+gdk_gl_get_glGenFencesAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_fence.glGenFencesAPPLE == (GdkGLProc_glGenFencesAPPLE) -1)
+ _procs_GL_APPLE_fence.glGenFencesAPPLE =
+ (GdkGLProc_glGenFencesAPPLE) gdk_gl_get_proc_address ("glGenFencesAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenFencesAPPLE () - %s",
+ (_procs_GL_APPLE_fence.glGenFencesAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_fence.glGenFencesAPPLE);
+}
+
+/* glDeleteFencesAPPLE */
+GdkGLProc
+gdk_gl_get_glDeleteFencesAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_fence.glDeleteFencesAPPLE == (GdkGLProc_glDeleteFencesAPPLE) -1)
+ _procs_GL_APPLE_fence.glDeleteFencesAPPLE =
+ (GdkGLProc_glDeleteFencesAPPLE) gdk_gl_get_proc_address ("glDeleteFencesAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteFencesAPPLE () - %s",
+ (_procs_GL_APPLE_fence.glDeleteFencesAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_fence.glDeleteFencesAPPLE);
+}
+
+/* glSetFenceAPPLE */
+GdkGLProc
+gdk_gl_get_glSetFenceAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_fence.glSetFenceAPPLE == (GdkGLProc_glSetFenceAPPLE) -1)
+ _procs_GL_APPLE_fence.glSetFenceAPPLE =
+ (GdkGLProc_glSetFenceAPPLE) gdk_gl_get_proc_address ("glSetFenceAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSetFenceAPPLE () - %s",
+ (_procs_GL_APPLE_fence.glSetFenceAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_fence.glSetFenceAPPLE);
+}
+
+/* glIsFenceAPPLE */
+GdkGLProc
+gdk_gl_get_glIsFenceAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_fence.glIsFenceAPPLE == (GdkGLProc_glIsFenceAPPLE) -1)
+ _procs_GL_APPLE_fence.glIsFenceAPPLE =
+ (GdkGLProc_glIsFenceAPPLE) gdk_gl_get_proc_address ("glIsFenceAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsFenceAPPLE () - %s",
+ (_procs_GL_APPLE_fence.glIsFenceAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_fence.glIsFenceAPPLE);
+}
+
+/* glTestFenceAPPLE */
+GdkGLProc
+gdk_gl_get_glTestFenceAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_fence.glTestFenceAPPLE == (GdkGLProc_glTestFenceAPPLE) -1)
+ _procs_GL_APPLE_fence.glTestFenceAPPLE =
+ (GdkGLProc_glTestFenceAPPLE) gdk_gl_get_proc_address ("glTestFenceAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTestFenceAPPLE () - %s",
+ (_procs_GL_APPLE_fence.glTestFenceAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_fence.glTestFenceAPPLE);
+}
+
+/* glFinishFenceAPPLE */
+GdkGLProc
+gdk_gl_get_glFinishFenceAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_fence.glFinishFenceAPPLE == (GdkGLProc_glFinishFenceAPPLE) -1)
+ _procs_GL_APPLE_fence.glFinishFenceAPPLE =
+ (GdkGLProc_glFinishFenceAPPLE) gdk_gl_get_proc_address ("glFinishFenceAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFinishFenceAPPLE () - %s",
+ (_procs_GL_APPLE_fence.glFinishFenceAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_fence.glFinishFenceAPPLE);
+}
+
+/* glTestObjectAPPLE */
+GdkGLProc
+gdk_gl_get_glTestObjectAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_fence.glTestObjectAPPLE == (GdkGLProc_glTestObjectAPPLE) -1)
+ _procs_GL_APPLE_fence.glTestObjectAPPLE =
+ (GdkGLProc_glTestObjectAPPLE) gdk_gl_get_proc_address ("glTestObjectAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTestObjectAPPLE () - %s",
+ (_procs_GL_APPLE_fence.glTestObjectAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_fence.glTestObjectAPPLE);
+}
+
+/* glFinishObjectAPPLE */
+GdkGLProc
+gdk_gl_get_glFinishObjectAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_fence.glFinishObjectAPPLE == (GdkGLProc_glFinishObjectAPPLE) -1)
+ _procs_GL_APPLE_fence.glFinishObjectAPPLE =
+ (GdkGLProc_glFinishObjectAPPLE) gdk_gl_get_proc_address ("glFinishObjectAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFinishObjectAPPLE () - %s",
+ (_procs_GL_APPLE_fence.glFinishObjectAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_fence.glFinishObjectAPPLE);
+}
+
+/* Get GL_APPLE_fence functions */
+GdkGL_GL_APPLE_fence *
+gdk_gl_get_GL_APPLE_fence (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_APPLE_fence");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glGenFencesAPPLE () != NULL);
+ supported &= (gdk_gl_get_glDeleteFencesAPPLE () != NULL);
+ supported &= (gdk_gl_get_glSetFenceAPPLE () != NULL);
+ supported &= (gdk_gl_get_glIsFenceAPPLE () != NULL);
+ supported &= (gdk_gl_get_glTestFenceAPPLE () != NULL);
+ supported &= (gdk_gl_get_glFinishFenceAPPLE () != NULL);
+ supported &= (gdk_gl_get_glTestObjectAPPLE () != NULL);
+ supported &= (gdk_gl_get_glFinishObjectAPPLE () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_APPLE_fence () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_APPLE_fence;
+}
+
+/*
+ * GL_APPLE_vertex_array_object
+ */
+
+static GdkGL_GL_APPLE_vertex_array_object _procs_GL_APPLE_vertex_array_object = {
+ (GdkGLProc_glBindVertexArrayAPPLE) -1,
+ (GdkGLProc_glDeleteVertexArraysAPPLE) -1,
+ (GdkGLProc_glGenVertexArraysAPPLE) -1,
+ (GdkGLProc_glIsVertexArrayAPPLE) -1
+};
+
+/* glBindVertexArrayAPPLE */
+GdkGLProc
+gdk_gl_get_glBindVertexArrayAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_array_object.glBindVertexArrayAPPLE == (GdkGLProc_glBindVertexArrayAPPLE) -1)
+ _procs_GL_APPLE_vertex_array_object.glBindVertexArrayAPPLE =
+ (GdkGLProc_glBindVertexArrayAPPLE) gdk_gl_get_proc_address ("glBindVertexArrayAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBindVertexArrayAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_array_object.glBindVertexArrayAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_array_object.glBindVertexArrayAPPLE);
+}
+
+/* glDeleteVertexArraysAPPLE */
+GdkGLProc
+gdk_gl_get_glDeleteVertexArraysAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_array_object.glDeleteVertexArraysAPPLE == (GdkGLProc_glDeleteVertexArraysAPPLE) -1)
+ _procs_GL_APPLE_vertex_array_object.glDeleteVertexArraysAPPLE =
+ (GdkGLProc_glDeleteVertexArraysAPPLE) gdk_gl_get_proc_address ("glDeleteVertexArraysAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteVertexArraysAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_array_object.glDeleteVertexArraysAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_array_object.glDeleteVertexArraysAPPLE);
+}
+
+/* glGenVertexArraysAPPLE */
+GdkGLProc
+gdk_gl_get_glGenVertexArraysAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_array_object.glGenVertexArraysAPPLE == (GdkGLProc_glGenVertexArraysAPPLE) -1)
+ _procs_GL_APPLE_vertex_array_object.glGenVertexArraysAPPLE =
+ (GdkGLProc_glGenVertexArraysAPPLE) gdk_gl_get_proc_address ("glGenVertexArraysAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGenVertexArraysAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_array_object.glGenVertexArraysAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_array_object.glGenVertexArraysAPPLE);
+}
+
+/* glIsVertexArrayAPPLE */
+GdkGLProc
+gdk_gl_get_glIsVertexArrayAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_array_object.glIsVertexArrayAPPLE == (GdkGLProc_glIsVertexArrayAPPLE) -1)
+ _procs_GL_APPLE_vertex_array_object.glIsVertexArrayAPPLE =
+ (GdkGLProc_glIsVertexArrayAPPLE) gdk_gl_get_proc_address ("glIsVertexArrayAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsVertexArrayAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_array_object.glIsVertexArrayAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_array_object.glIsVertexArrayAPPLE);
+}
+
+/* Get GL_APPLE_vertex_array_object functions */
+GdkGL_GL_APPLE_vertex_array_object *
+gdk_gl_get_GL_APPLE_vertex_array_object (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_APPLE_vertex_array_object");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glBindVertexArrayAPPLE () != NULL);
+ supported &= (gdk_gl_get_glDeleteVertexArraysAPPLE () != NULL);
+ supported &= (gdk_gl_get_glGenVertexArraysAPPLE () != NULL);
+ supported &= (gdk_gl_get_glIsVertexArrayAPPLE () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_APPLE_vertex_array_object () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_APPLE_vertex_array_object;
+}
+
+/*
+ * GL_APPLE_vertex_array_range
+ */
+
+static GdkGL_GL_APPLE_vertex_array_range _procs_GL_APPLE_vertex_array_range = {
+ (GdkGLProc_glVertexArrayRangeAPPLE) -1,
+ (GdkGLProc_glFlushVertexArrayRangeAPPLE) -1,
+ (GdkGLProc_glVertexArrayParameteriAPPLE) -1
+};
+
+/* glVertexArrayRangeAPPLE */
+GdkGLProc
+gdk_gl_get_glVertexArrayRangeAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_array_range.glVertexArrayRangeAPPLE == (GdkGLProc_glVertexArrayRangeAPPLE) -1)
+ _procs_GL_APPLE_vertex_array_range.glVertexArrayRangeAPPLE =
+ (GdkGLProc_glVertexArrayRangeAPPLE) gdk_gl_get_proc_address ("glVertexArrayRangeAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexArrayRangeAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_array_range.glVertexArrayRangeAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_array_range.glVertexArrayRangeAPPLE);
+}
+
+/* glFlushVertexArrayRangeAPPLE */
+GdkGLProc
+gdk_gl_get_glFlushVertexArrayRangeAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_array_range.glFlushVertexArrayRangeAPPLE == (GdkGLProc_glFlushVertexArrayRangeAPPLE) -1)
+ _procs_GL_APPLE_vertex_array_range.glFlushVertexArrayRangeAPPLE =
+ (GdkGLProc_glFlushVertexArrayRangeAPPLE) gdk_gl_get_proc_address ("glFlushVertexArrayRangeAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFlushVertexArrayRangeAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_array_range.glFlushVertexArrayRangeAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_array_range.glFlushVertexArrayRangeAPPLE);
+}
+
+/* glVertexArrayParameteriAPPLE */
+GdkGLProc
+gdk_gl_get_glVertexArrayParameteriAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_array_range.glVertexArrayParameteriAPPLE == (GdkGLProc_glVertexArrayParameteriAPPLE) -1)
+ _procs_GL_APPLE_vertex_array_range.glVertexArrayParameteriAPPLE =
+ (GdkGLProc_glVertexArrayParameteriAPPLE) gdk_gl_get_proc_address ("glVertexArrayParameteriAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexArrayParameteriAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_array_range.glVertexArrayParameteriAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_array_range.glVertexArrayParameteriAPPLE);
+}
+
+/* Get GL_APPLE_vertex_array_range functions */
+GdkGL_GL_APPLE_vertex_array_range *
+gdk_gl_get_GL_APPLE_vertex_array_range (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_APPLE_vertex_array_range");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glVertexArrayRangeAPPLE () != NULL);
+ supported &= (gdk_gl_get_glFlushVertexArrayRangeAPPLE () != NULL);
+ supported &= (gdk_gl_get_glVertexArrayParameteriAPPLE () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_APPLE_vertex_array_range () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_APPLE_vertex_array_range;
+}
+
+/*
+ * GL_ATI_draw_buffers
+ */
+
+static GdkGL_GL_ATI_draw_buffers _procs_GL_ATI_draw_buffers = {
+ (GdkGLProc_glDrawBuffersATI) -1
+};
+
+/* glDrawBuffersATI */
+GdkGLProc
+gdk_gl_get_glDrawBuffersATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_draw_buffers.glDrawBuffersATI == (GdkGLProc_glDrawBuffersATI) -1)
+ _procs_GL_ATI_draw_buffers.glDrawBuffersATI =
+ (GdkGLProc_glDrawBuffersATI) gdk_gl_get_proc_address ("glDrawBuffersATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawBuffersATI () - %s",
+ (_procs_GL_ATI_draw_buffers.glDrawBuffersATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_draw_buffers.glDrawBuffersATI);
+}
+
+/* Get GL_ATI_draw_buffers functions */
+GdkGL_GL_ATI_draw_buffers *
+gdk_gl_get_GL_ATI_draw_buffers (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_draw_buffers");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glDrawBuffersATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_draw_buffers () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_draw_buffers;
+}
+
+/*
+ * GL_NV_fragment_program
+ */
+
+static GdkGL_GL_NV_fragment_program _procs_GL_NV_fragment_program = {
+ (GdkGLProc_glProgramNamedParameter4fNV) -1,
+ (GdkGLProc_glProgramNamedParameter4dNV) -1,
+ (GdkGLProc_glProgramNamedParameter4fvNV) -1,
+ (GdkGLProc_glProgramNamedParameter4dvNV) -1,
+ (GdkGLProc_glGetProgramNamedParameterfvNV) -1,
+ (GdkGLProc_glGetProgramNamedParameterdvNV) -1
+};
+
+/* glProgramNamedParameter4fNV */
+GdkGLProc
+gdk_gl_get_glProgramNamedParameter4fNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fragment_program.glProgramNamedParameter4fNV == (GdkGLProc_glProgramNamedParameter4fNV) -1)
+ _procs_GL_NV_fragment_program.glProgramNamedParameter4fNV =
+ (GdkGLProc_glProgramNamedParameter4fNV) gdk_gl_get_proc_address ("glProgramNamedParameter4fNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramNamedParameter4fNV () - %s",
+ (_procs_GL_NV_fragment_program.glProgramNamedParameter4fNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fragment_program.glProgramNamedParameter4fNV);
+}
+
+/* glProgramNamedParameter4dNV */
+GdkGLProc
+gdk_gl_get_glProgramNamedParameter4dNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fragment_program.glProgramNamedParameter4dNV == (GdkGLProc_glProgramNamedParameter4dNV) -1)
+ _procs_GL_NV_fragment_program.glProgramNamedParameter4dNV =
+ (GdkGLProc_glProgramNamedParameter4dNV) gdk_gl_get_proc_address ("glProgramNamedParameter4dNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramNamedParameter4dNV () - %s",
+ (_procs_GL_NV_fragment_program.glProgramNamedParameter4dNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fragment_program.glProgramNamedParameter4dNV);
+}
+
+/* glProgramNamedParameter4fvNV */
+GdkGLProc
+gdk_gl_get_glProgramNamedParameter4fvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fragment_program.glProgramNamedParameter4fvNV == (GdkGLProc_glProgramNamedParameter4fvNV) -1)
+ _procs_GL_NV_fragment_program.glProgramNamedParameter4fvNV =
+ (GdkGLProc_glProgramNamedParameter4fvNV) gdk_gl_get_proc_address ("glProgramNamedParameter4fvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramNamedParameter4fvNV () - %s",
+ (_procs_GL_NV_fragment_program.glProgramNamedParameter4fvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fragment_program.glProgramNamedParameter4fvNV);
+}
+
+/* glProgramNamedParameter4dvNV */
+GdkGLProc
+gdk_gl_get_glProgramNamedParameter4dvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fragment_program.glProgramNamedParameter4dvNV == (GdkGLProc_glProgramNamedParameter4dvNV) -1)
+ _procs_GL_NV_fragment_program.glProgramNamedParameter4dvNV =
+ (GdkGLProc_glProgramNamedParameter4dvNV) gdk_gl_get_proc_address ("glProgramNamedParameter4dvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glProgramNamedParameter4dvNV () - %s",
+ (_procs_GL_NV_fragment_program.glProgramNamedParameter4dvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fragment_program.glProgramNamedParameter4dvNV);
+}
+
+/* glGetProgramNamedParameterfvNV */
+GdkGLProc
+gdk_gl_get_glGetProgramNamedParameterfvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fragment_program.glGetProgramNamedParameterfvNV == (GdkGLProc_glGetProgramNamedParameterfvNV) -1)
+ _procs_GL_NV_fragment_program.glGetProgramNamedParameterfvNV =
+ (GdkGLProc_glGetProgramNamedParameterfvNV) gdk_gl_get_proc_address ("glGetProgramNamedParameterfvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramNamedParameterfvNV () - %s",
+ (_procs_GL_NV_fragment_program.glGetProgramNamedParameterfvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fragment_program.glGetProgramNamedParameterfvNV);
+}
+
+/* glGetProgramNamedParameterdvNV */
+GdkGLProc
+gdk_gl_get_glGetProgramNamedParameterdvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_fragment_program.glGetProgramNamedParameterdvNV == (GdkGLProc_glGetProgramNamedParameterdvNV) -1)
+ _procs_GL_NV_fragment_program.glGetProgramNamedParameterdvNV =
+ (GdkGLProc_glGetProgramNamedParameterdvNV) gdk_gl_get_proc_address ("glGetProgramNamedParameterdvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetProgramNamedParameterdvNV () - %s",
+ (_procs_GL_NV_fragment_program.glGetProgramNamedParameterdvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_fragment_program.glGetProgramNamedParameterdvNV);
+}
+
+/* Get GL_NV_fragment_program functions */
+GdkGL_GL_NV_fragment_program *
+gdk_gl_get_GL_NV_fragment_program (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_fragment_program");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glProgramNamedParameter4fNV () != NULL);
+ supported &= (gdk_gl_get_glProgramNamedParameter4dNV () != NULL);
+ supported &= (gdk_gl_get_glProgramNamedParameter4fvNV () != NULL);
+ supported &= (gdk_gl_get_glProgramNamedParameter4dvNV () != NULL);
+ supported &= (gdk_gl_get_glGetProgramNamedParameterfvNV () != NULL);
+ supported &= (gdk_gl_get_glGetProgramNamedParameterdvNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_fragment_program () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_fragment_program;
+}
+
+/*
+ * GL_NV_half_float
+ */
+
+static GdkGL_GL_NV_half_float _procs_GL_NV_half_float = {
+ (GdkGLProc_glVertex2hNV) -1,
+ (GdkGLProc_glVertex2hvNV) -1,
+ (GdkGLProc_glVertex3hNV) -1,
+ (GdkGLProc_glVertex3hvNV) -1,
+ (GdkGLProc_glVertex4hNV) -1,
+ (GdkGLProc_glVertex4hvNV) -1,
+ (GdkGLProc_glNormal3hNV) -1,
+ (GdkGLProc_glNormal3hvNV) -1,
+ (GdkGLProc_glColor3hNV) -1,
+ (GdkGLProc_glColor3hvNV) -1,
+ (GdkGLProc_glColor4hNV) -1,
+ (GdkGLProc_glColor4hvNV) -1,
+ (GdkGLProc_glTexCoord1hNV) -1,
+ (GdkGLProc_glTexCoord1hvNV) -1,
+ (GdkGLProc_glTexCoord2hNV) -1,
+ (GdkGLProc_glTexCoord2hvNV) -1,
+ (GdkGLProc_glTexCoord3hNV) -1,
+ (GdkGLProc_glTexCoord3hvNV) -1,
+ (GdkGLProc_glTexCoord4hNV) -1,
+ (GdkGLProc_glTexCoord4hvNV) -1,
+ (GdkGLProc_glMultiTexCoord1hNV) -1,
+ (GdkGLProc_glMultiTexCoord1hvNV) -1,
+ (GdkGLProc_glMultiTexCoord2hNV) -1,
+ (GdkGLProc_glMultiTexCoord2hvNV) -1,
+ (GdkGLProc_glMultiTexCoord3hNV) -1,
+ (GdkGLProc_glMultiTexCoord3hvNV) -1,
+ (GdkGLProc_glMultiTexCoord4hNV) -1,
+ (GdkGLProc_glMultiTexCoord4hvNV) -1,
+ (GdkGLProc_glFogCoordhNV) -1,
+ (GdkGLProc_glFogCoordhvNV) -1,
+ (GdkGLProc_glSecondaryColor3hNV) -1,
+ (GdkGLProc_glSecondaryColor3hvNV) -1,
+ (GdkGLProc_glVertexWeighthNV) -1,
+ (GdkGLProc_glVertexWeighthvNV) -1,
+ (GdkGLProc_glVertexAttrib1hNV) -1,
+ (GdkGLProc_glVertexAttrib1hvNV) -1,
+ (GdkGLProc_glVertexAttrib2hNV) -1,
+ (GdkGLProc_glVertexAttrib2hvNV) -1,
+ (GdkGLProc_glVertexAttrib3hNV) -1,
+ (GdkGLProc_glVertexAttrib3hvNV) -1,
+ (GdkGLProc_glVertexAttrib4hNV) -1,
+ (GdkGLProc_glVertexAttrib4hvNV) -1,
+ (GdkGLProc_glVertexAttribs1hvNV) -1,
+ (GdkGLProc_glVertexAttribs2hvNV) -1,
+ (GdkGLProc_glVertexAttribs3hvNV) -1,
+ (GdkGLProc_glVertexAttribs4hvNV) -1
+};
+
+/* glVertex2hNV */
+GdkGLProc
+gdk_gl_get_glVertex2hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertex2hNV == (GdkGLProc_glVertex2hNV) -1)
+ _procs_GL_NV_half_float.glVertex2hNV =
+ (GdkGLProc_glVertex2hNV) gdk_gl_get_proc_address ("glVertex2hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertex2hNV () - %s",
+ (_procs_GL_NV_half_float.glVertex2hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertex2hNV);
+}
+
+/* glVertex2hvNV */
+GdkGLProc
+gdk_gl_get_glVertex2hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertex2hvNV == (GdkGLProc_glVertex2hvNV) -1)
+ _procs_GL_NV_half_float.glVertex2hvNV =
+ (GdkGLProc_glVertex2hvNV) gdk_gl_get_proc_address ("glVertex2hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertex2hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertex2hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertex2hvNV);
+}
+
+/* glVertex3hNV */
+GdkGLProc
+gdk_gl_get_glVertex3hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertex3hNV == (GdkGLProc_glVertex3hNV) -1)
+ _procs_GL_NV_half_float.glVertex3hNV =
+ (GdkGLProc_glVertex3hNV) gdk_gl_get_proc_address ("glVertex3hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertex3hNV () - %s",
+ (_procs_GL_NV_half_float.glVertex3hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertex3hNV);
+}
+
+/* glVertex3hvNV */
+GdkGLProc
+gdk_gl_get_glVertex3hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertex3hvNV == (GdkGLProc_glVertex3hvNV) -1)
+ _procs_GL_NV_half_float.glVertex3hvNV =
+ (GdkGLProc_glVertex3hvNV) gdk_gl_get_proc_address ("glVertex3hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertex3hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertex3hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertex3hvNV);
+}
+
+/* glVertex4hNV */
+GdkGLProc
+gdk_gl_get_glVertex4hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertex4hNV == (GdkGLProc_glVertex4hNV) -1)
+ _procs_GL_NV_half_float.glVertex4hNV =
+ (GdkGLProc_glVertex4hNV) gdk_gl_get_proc_address ("glVertex4hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertex4hNV () - %s",
+ (_procs_GL_NV_half_float.glVertex4hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertex4hNV);
+}
+
+/* glVertex4hvNV */
+GdkGLProc
+gdk_gl_get_glVertex4hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertex4hvNV == (GdkGLProc_glVertex4hvNV) -1)
+ _procs_GL_NV_half_float.glVertex4hvNV =
+ (GdkGLProc_glVertex4hvNV) gdk_gl_get_proc_address ("glVertex4hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertex4hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertex4hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertex4hvNV);
+}
+
+/* glNormal3hNV */
+GdkGLProc
+gdk_gl_get_glNormal3hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glNormal3hNV == (GdkGLProc_glNormal3hNV) -1)
+ _procs_GL_NV_half_float.glNormal3hNV =
+ (GdkGLProc_glNormal3hNV) gdk_gl_get_proc_address ("glNormal3hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormal3hNV () - %s",
+ (_procs_GL_NV_half_float.glNormal3hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glNormal3hNV);
+}
+
+/* glNormal3hvNV */
+GdkGLProc
+gdk_gl_get_glNormal3hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glNormal3hvNV == (GdkGLProc_glNormal3hvNV) -1)
+ _procs_GL_NV_half_float.glNormal3hvNV =
+ (GdkGLProc_glNormal3hvNV) gdk_gl_get_proc_address ("glNormal3hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNormal3hvNV () - %s",
+ (_procs_GL_NV_half_float.glNormal3hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glNormal3hvNV);
+}
+
+/* glColor3hNV */
+GdkGLProc
+gdk_gl_get_glColor3hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glColor3hNV == (GdkGLProc_glColor3hNV) -1)
+ _procs_GL_NV_half_float.glColor3hNV =
+ (GdkGLProc_glColor3hNV) gdk_gl_get_proc_address ("glColor3hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor3hNV () - %s",
+ (_procs_GL_NV_half_float.glColor3hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glColor3hNV);
+}
+
+/* glColor3hvNV */
+GdkGLProc
+gdk_gl_get_glColor3hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glColor3hvNV == (GdkGLProc_glColor3hvNV) -1)
+ _procs_GL_NV_half_float.glColor3hvNV =
+ (GdkGLProc_glColor3hvNV) gdk_gl_get_proc_address ("glColor3hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor3hvNV () - %s",
+ (_procs_GL_NV_half_float.glColor3hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glColor3hvNV);
+}
+
+/* glColor4hNV */
+GdkGLProc
+gdk_gl_get_glColor4hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glColor4hNV == (GdkGLProc_glColor4hNV) -1)
+ _procs_GL_NV_half_float.glColor4hNV =
+ (GdkGLProc_glColor4hNV) gdk_gl_get_proc_address ("glColor4hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor4hNV () - %s",
+ (_procs_GL_NV_half_float.glColor4hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glColor4hNV);
+}
+
+/* glColor4hvNV */
+GdkGLProc
+gdk_gl_get_glColor4hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glColor4hvNV == (GdkGLProc_glColor4hvNV) -1)
+ _procs_GL_NV_half_float.glColor4hvNV =
+ (GdkGLProc_glColor4hvNV) gdk_gl_get_proc_address ("glColor4hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glColor4hvNV () - %s",
+ (_procs_GL_NV_half_float.glColor4hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glColor4hvNV);
+}
+
+/* glTexCoord1hNV */
+GdkGLProc
+gdk_gl_get_glTexCoord1hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glTexCoord1hNV == (GdkGLProc_glTexCoord1hNV) -1)
+ _procs_GL_NV_half_float.glTexCoord1hNV =
+ (GdkGLProc_glTexCoord1hNV) gdk_gl_get_proc_address ("glTexCoord1hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord1hNV () - %s",
+ (_procs_GL_NV_half_float.glTexCoord1hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glTexCoord1hNV);
+}
+
+/* glTexCoord1hvNV */
+GdkGLProc
+gdk_gl_get_glTexCoord1hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glTexCoord1hvNV == (GdkGLProc_glTexCoord1hvNV) -1)
+ _procs_GL_NV_half_float.glTexCoord1hvNV =
+ (GdkGLProc_glTexCoord1hvNV) gdk_gl_get_proc_address ("glTexCoord1hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord1hvNV () - %s",
+ (_procs_GL_NV_half_float.glTexCoord1hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glTexCoord1hvNV);
+}
+
+/* glTexCoord2hNV */
+GdkGLProc
+gdk_gl_get_glTexCoord2hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glTexCoord2hNV == (GdkGLProc_glTexCoord2hNV) -1)
+ _procs_GL_NV_half_float.glTexCoord2hNV =
+ (GdkGLProc_glTexCoord2hNV) gdk_gl_get_proc_address ("glTexCoord2hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2hNV () - %s",
+ (_procs_GL_NV_half_float.glTexCoord2hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glTexCoord2hNV);
+}
+
+/* glTexCoord2hvNV */
+GdkGLProc
+gdk_gl_get_glTexCoord2hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glTexCoord2hvNV == (GdkGLProc_glTexCoord2hvNV) -1)
+ _procs_GL_NV_half_float.glTexCoord2hvNV =
+ (GdkGLProc_glTexCoord2hvNV) gdk_gl_get_proc_address ("glTexCoord2hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord2hvNV () - %s",
+ (_procs_GL_NV_half_float.glTexCoord2hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glTexCoord2hvNV);
+}
+
+/* glTexCoord3hNV */
+GdkGLProc
+gdk_gl_get_glTexCoord3hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glTexCoord3hNV == (GdkGLProc_glTexCoord3hNV) -1)
+ _procs_GL_NV_half_float.glTexCoord3hNV =
+ (GdkGLProc_glTexCoord3hNV) gdk_gl_get_proc_address ("glTexCoord3hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord3hNV () - %s",
+ (_procs_GL_NV_half_float.glTexCoord3hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glTexCoord3hNV);
+}
+
+/* glTexCoord3hvNV */
+GdkGLProc
+gdk_gl_get_glTexCoord3hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glTexCoord3hvNV == (GdkGLProc_glTexCoord3hvNV) -1)
+ _procs_GL_NV_half_float.glTexCoord3hvNV =
+ (GdkGLProc_glTexCoord3hvNV) gdk_gl_get_proc_address ("glTexCoord3hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord3hvNV () - %s",
+ (_procs_GL_NV_half_float.glTexCoord3hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glTexCoord3hvNV);
+}
+
+/* glTexCoord4hNV */
+GdkGLProc
+gdk_gl_get_glTexCoord4hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glTexCoord4hNV == (GdkGLProc_glTexCoord4hNV) -1)
+ _procs_GL_NV_half_float.glTexCoord4hNV =
+ (GdkGLProc_glTexCoord4hNV) gdk_gl_get_proc_address ("glTexCoord4hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord4hNV () - %s",
+ (_procs_GL_NV_half_float.glTexCoord4hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glTexCoord4hNV);
+}
+
+/* glTexCoord4hvNV */
+GdkGLProc
+gdk_gl_get_glTexCoord4hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glTexCoord4hvNV == (GdkGLProc_glTexCoord4hvNV) -1)
+ _procs_GL_NV_half_float.glTexCoord4hvNV =
+ (GdkGLProc_glTexCoord4hvNV) gdk_gl_get_proc_address ("glTexCoord4hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTexCoord4hvNV () - %s",
+ (_procs_GL_NV_half_float.glTexCoord4hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glTexCoord4hvNV);
+}
+
+/* glMultiTexCoord1hNV */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glMultiTexCoord1hNV == (GdkGLProc_glMultiTexCoord1hNV) -1)
+ _procs_GL_NV_half_float.glMultiTexCoord1hNV =
+ (GdkGLProc_glMultiTexCoord1hNV) gdk_gl_get_proc_address ("glMultiTexCoord1hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1hNV () - %s",
+ (_procs_GL_NV_half_float.glMultiTexCoord1hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glMultiTexCoord1hNV);
+}
+
+/* glMultiTexCoord1hvNV */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glMultiTexCoord1hvNV == (GdkGLProc_glMultiTexCoord1hvNV) -1)
+ _procs_GL_NV_half_float.glMultiTexCoord1hvNV =
+ (GdkGLProc_glMultiTexCoord1hvNV) gdk_gl_get_proc_address ("glMultiTexCoord1hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1hvNV () - %s",
+ (_procs_GL_NV_half_float.glMultiTexCoord1hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glMultiTexCoord1hvNV);
+}
+
+/* glMultiTexCoord2hNV */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glMultiTexCoord2hNV == (GdkGLProc_glMultiTexCoord2hNV) -1)
+ _procs_GL_NV_half_float.glMultiTexCoord2hNV =
+ (GdkGLProc_glMultiTexCoord2hNV) gdk_gl_get_proc_address ("glMultiTexCoord2hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2hNV () - %s",
+ (_procs_GL_NV_half_float.glMultiTexCoord2hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glMultiTexCoord2hNV);
+}
+
+/* glMultiTexCoord2hvNV */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glMultiTexCoord2hvNV == (GdkGLProc_glMultiTexCoord2hvNV) -1)
+ _procs_GL_NV_half_float.glMultiTexCoord2hvNV =
+ (GdkGLProc_glMultiTexCoord2hvNV) gdk_gl_get_proc_address ("glMultiTexCoord2hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2hvNV () - %s",
+ (_procs_GL_NV_half_float.glMultiTexCoord2hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glMultiTexCoord2hvNV);
+}
+
+/* glMultiTexCoord3hNV */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glMultiTexCoord3hNV == (GdkGLProc_glMultiTexCoord3hNV) -1)
+ _procs_GL_NV_half_float.glMultiTexCoord3hNV =
+ (GdkGLProc_glMultiTexCoord3hNV) gdk_gl_get_proc_address ("glMultiTexCoord3hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3hNV () - %s",
+ (_procs_GL_NV_half_float.glMultiTexCoord3hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glMultiTexCoord3hNV);
+}
+
+/* glMultiTexCoord3hvNV */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glMultiTexCoord3hvNV == (GdkGLProc_glMultiTexCoord3hvNV) -1)
+ _procs_GL_NV_half_float.glMultiTexCoord3hvNV =
+ (GdkGLProc_glMultiTexCoord3hvNV) gdk_gl_get_proc_address ("glMultiTexCoord3hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3hvNV () - %s",
+ (_procs_GL_NV_half_float.glMultiTexCoord3hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glMultiTexCoord3hvNV);
+}
+
+/* glMultiTexCoord4hNV */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glMultiTexCoord4hNV == (GdkGLProc_glMultiTexCoord4hNV) -1)
+ _procs_GL_NV_half_float.glMultiTexCoord4hNV =
+ (GdkGLProc_glMultiTexCoord4hNV) gdk_gl_get_proc_address ("glMultiTexCoord4hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4hNV () - %s",
+ (_procs_GL_NV_half_float.glMultiTexCoord4hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glMultiTexCoord4hNV);
+}
+
+/* glMultiTexCoord4hvNV */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glMultiTexCoord4hvNV == (GdkGLProc_glMultiTexCoord4hvNV) -1)
+ _procs_GL_NV_half_float.glMultiTexCoord4hvNV =
+ (GdkGLProc_glMultiTexCoord4hvNV) gdk_gl_get_proc_address ("glMultiTexCoord4hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4hvNV () - %s",
+ (_procs_GL_NV_half_float.glMultiTexCoord4hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glMultiTexCoord4hvNV);
+}
+
+/* glFogCoordhNV */
+GdkGLProc
+gdk_gl_get_glFogCoordhNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glFogCoordhNV == (GdkGLProc_glFogCoordhNV) -1)
+ _procs_GL_NV_half_float.glFogCoordhNV =
+ (GdkGLProc_glFogCoordhNV) gdk_gl_get_proc_address ("glFogCoordhNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoordhNV () - %s",
+ (_procs_GL_NV_half_float.glFogCoordhNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glFogCoordhNV);
+}
+
+/* glFogCoordhvNV */
+GdkGLProc
+gdk_gl_get_glFogCoordhvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glFogCoordhvNV == (GdkGLProc_glFogCoordhvNV) -1)
+ _procs_GL_NV_half_float.glFogCoordhvNV =
+ (GdkGLProc_glFogCoordhvNV) gdk_gl_get_proc_address ("glFogCoordhvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFogCoordhvNV () - %s",
+ (_procs_GL_NV_half_float.glFogCoordhvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glFogCoordhvNV);
+}
+
+/* glSecondaryColor3hNV */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glSecondaryColor3hNV == (GdkGLProc_glSecondaryColor3hNV) -1)
+ _procs_GL_NV_half_float.glSecondaryColor3hNV =
+ (GdkGLProc_glSecondaryColor3hNV) gdk_gl_get_proc_address ("glSecondaryColor3hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3hNV () - %s",
+ (_procs_GL_NV_half_float.glSecondaryColor3hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glSecondaryColor3hNV);
+}
+
+/* glSecondaryColor3hvNV */
+GdkGLProc
+gdk_gl_get_glSecondaryColor3hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glSecondaryColor3hvNV == (GdkGLProc_glSecondaryColor3hvNV) -1)
+ _procs_GL_NV_half_float.glSecondaryColor3hvNV =
+ (GdkGLProc_glSecondaryColor3hvNV) gdk_gl_get_proc_address ("glSecondaryColor3hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSecondaryColor3hvNV () - %s",
+ (_procs_GL_NV_half_float.glSecondaryColor3hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glSecondaryColor3hvNV);
+}
+
+/* glVertexWeighthNV */
+GdkGLProc
+gdk_gl_get_glVertexWeighthNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexWeighthNV == (GdkGLProc_glVertexWeighthNV) -1)
+ _procs_GL_NV_half_float.glVertexWeighthNV =
+ (GdkGLProc_glVertexWeighthNV) gdk_gl_get_proc_address ("glVertexWeighthNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexWeighthNV () - %s",
+ (_procs_GL_NV_half_float.glVertexWeighthNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexWeighthNV);
+}
+
+/* glVertexWeighthvNV */
+GdkGLProc
+gdk_gl_get_glVertexWeighthvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexWeighthvNV == (GdkGLProc_glVertexWeighthvNV) -1)
+ _procs_GL_NV_half_float.glVertexWeighthvNV =
+ (GdkGLProc_glVertexWeighthvNV) gdk_gl_get_proc_address ("glVertexWeighthvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexWeighthvNV () - %s",
+ (_procs_GL_NV_half_float.glVertexWeighthvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexWeighthvNV);
+}
+
+/* glVertexAttrib1hNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttrib1hNV == (GdkGLProc_glVertexAttrib1hNV) -1)
+ _procs_GL_NV_half_float.glVertexAttrib1hNV =
+ (GdkGLProc_glVertexAttrib1hNV) gdk_gl_get_proc_address ("glVertexAttrib1hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1hNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttrib1hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttrib1hNV);
+}
+
+/* glVertexAttrib1hvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib1hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttrib1hvNV == (GdkGLProc_glVertexAttrib1hvNV) -1)
+ _procs_GL_NV_half_float.glVertexAttrib1hvNV =
+ (GdkGLProc_glVertexAttrib1hvNV) gdk_gl_get_proc_address ("glVertexAttrib1hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib1hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttrib1hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttrib1hvNV);
+}
+
+/* glVertexAttrib2hNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttrib2hNV == (GdkGLProc_glVertexAttrib2hNV) -1)
+ _procs_GL_NV_half_float.glVertexAttrib2hNV =
+ (GdkGLProc_glVertexAttrib2hNV) gdk_gl_get_proc_address ("glVertexAttrib2hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2hNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttrib2hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttrib2hNV);
+}
+
+/* glVertexAttrib2hvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib2hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttrib2hvNV == (GdkGLProc_glVertexAttrib2hvNV) -1)
+ _procs_GL_NV_half_float.glVertexAttrib2hvNV =
+ (GdkGLProc_glVertexAttrib2hvNV) gdk_gl_get_proc_address ("glVertexAttrib2hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib2hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttrib2hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttrib2hvNV);
+}
+
+/* glVertexAttrib3hNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttrib3hNV == (GdkGLProc_glVertexAttrib3hNV) -1)
+ _procs_GL_NV_half_float.glVertexAttrib3hNV =
+ (GdkGLProc_glVertexAttrib3hNV) gdk_gl_get_proc_address ("glVertexAttrib3hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3hNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttrib3hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttrib3hNV);
+}
+
+/* glVertexAttrib3hvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib3hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttrib3hvNV == (GdkGLProc_glVertexAttrib3hvNV) -1)
+ _procs_GL_NV_half_float.glVertexAttrib3hvNV =
+ (GdkGLProc_glVertexAttrib3hvNV) gdk_gl_get_proc_address ("glVertexAttrib3hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib3hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttrib3hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttrib3hvNV);
+}
+
+/* glVertexAttrib4hNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4hNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttrib4hNV == (GdkGLProc_glVertexAttrib4hNV) -1)
+ _procs_GL_NV_half_float.glVertexAttrib4hNV =
+ (GdkGLProc_glVertexAttrib4hNV) gdk_gl_get_proc_address ("glVertexAttrib4hNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4hNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttrib4hNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttrib4hNV);
+}
+
+/* glVertexAttrib4hvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttrib4hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttrib4hvNV == (GdkGLProc_glVertexAttrib4hvNV) -1)
+ _procs_GL_NV_half_float.glVertexAttrib4hvNV =
+ (GdkGLProc_glVertexAttrib4hvNV) gdk_gl_get_proc_address ("glVertexAttrib4hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttrib4hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttrib4hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttrib4hvNV);
+}
+
+/* glVertexAttribs1hvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs1hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttribs1hvNV == (GdkGLProc_glVertexAttribs1hvNV) -1)
+ _procs_GL_NV_half_float.glVertexAttribs1hvNV =
+ (GdkGLProc_glVertexAttribs1hvNV) gdk_gl_get_proc_address ("glVertexAttribs1hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs1hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttribs1hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttribs1hvNV);
+}
+
+/* glVertexAttribs2hvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs2hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttribs2hvNV == (GdkGLProc_glVertexAttribs2hvNV) -1)
+ _procs_GL_NV_half_float.glVertexAttribs2hvNV =
+ (GdkGLProc_glVertexAttribs2hvNV) gdk_gl_get_proc_address ("glVertexAttribs2hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs2hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttribs2hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttribs2hvNV);
+}
+
+/* glVertexAttribs3hvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs3hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttribs3hvNV == (GdkGLProc_glVertexAttribs3hvNV) -1)
+ _procs_GL_NV_half_float.glVertexAttribs3hvNV =
+ (GdkGLProc_glVertexAttribs3hvNV) gdk_gl_get_proc_address ("glVertexAttribs3hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs3hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttribs3hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttribs3hvNV);
+}
+
+/* glVertexAttribs4hvNV */
+GdkGLProc
+gdk_gl_get_glVertexAttribs4hvNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_half_float.glVertexAttribs4hvNV == (GdkGLProc_glVertexAttribs4hvNV) -1)
+ _procs_GL_NV_half_float.glVertexAttribs4hvNV =
+ (GdkGLProc_glVertexAttribs4hvNV) gdk_gl_get_proc_address ("glVertexAttribs4hvNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribs4hvNV () - %s",
+ (_procs_GL_NV_half_float.glVertexAttribs4hvNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_half_float.glVertexAttribs4hvNV);
+}
+
+/* Get GL_NV_half_float functions */
+GdkGL_GL_NV_half_float *
+gdk_gl_get_GL_NV_half_float (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_half_float");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glVertex2hNV () != NULL);
+ supported &= (gdk_gl_get_glVertex2hvNV () != NULL);
+ supported &= (gdk_gl_get_glVertex3hNV () != NULL);
+ supported &= (gdk_gl_get_glVertex3hvNV () != NULL);
+ supported &= (gdk_gl_get_glVertex4hNV () != NULL);
+ supported &= (gdk_gl_get_glVertex4hvNV () != NULL);
+ supported &= (gdk_gl_get_glNormal3hNV () != NULL);
+ supported &= (gdk_gl_get_glNormal3hvNV () != NULL);
+ supported &= (gdk_gl_get_glColor3hNV () != NULL);
+ supported &= (gdk_gl_get_glColor3hvNV () != NULL);
+ supported &= (gdk_gl_get_glColor4hNV () != NULL);
+ supported &= (gdk_gl_get_glColor4hvNV () != NULL);
+ supported &= (gdk_gl_get_glTexCoord1hNV () != NULL);
+ supported &= (gdk_gl_get_glTexCoord1hvNV () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2hNV () != NULL);
+ supported &= (gdk_gl_get_glTexCoord2hvNV () != NULL);
+ supported &= (gdk_gl_get_glTexCoord3hNV () != NULL);
+ supported &= (gdk_gl_get_glTexCoord3hvNV () != NULL);
+ supported &= (gdk_gl_get_glTexCoord4hNV () != NULL);
+ supported &= (gdk_gl_get_glTexCoord4hvNV () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1hNV () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1hvNV () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2hNV () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2hvNV () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3hNV () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3hvNV () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4hNV () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4hvNV () != NULL);
+ supported &= (gdk_gl_get_glFogCoordhNV () != NULL);
+ supported &= (gdk_gl_get_glFogCoordhvNV () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3hNV () != NULL);
+ supported &= (gdk_gl_get_glSecondaryColor3hvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexWeighthNV () != NULL);
+ supported &= (gdk_gl_get_glVertexWeighthvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1hNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib1hvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2hNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib2hvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3hNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib3hvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4hNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttrib4hvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs1hvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs2hvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs3hvNV () != NULL);
+ supported &= (gdk_gl_get_glVertexAttribs4hvNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_half_float () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_half_float;
+}
+
+/*
+ * GL_NV_pixel_data_range
+ */
+
+static GdkGL_GL_NV_pixel_data_range _procs_GL_NV_pixel_data_range = {
+ (GdkGLProc_glPixelDataRangeNV) -1,
+ (GdkGLProc_glFlushPixelDataRangeNV) -1
+};
+
+/* glPixelDataRangeNV */
+GdkGLProc
+gdk_gl_get_glPixelDataRangeNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_pixel_data_range.glPixelDataRangeNV == (GdkGLProc_glPixelDataRangeNV) -1)
+ _procs_GL_NV_pixel_data_range.glPixelDataRangeNV =
+ (GdkGLProc_glPixelDataRangeNV) gdk_gl_get_proc_address ("glPixelDataRangeNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPixelDataRangeNV () - %s",
+ (_procs_GL_NV_pixel_data_range.glPixelDataRangeNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_pixel_data_range.glPixelDataRangeNV);
+}
+
+/* glFlushPixelDataRangeNV */
+GdkGLProc
+gdk_gl_get_glFlushPixelDataRangeNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_pixel_data_range.glFlushPixelDataRangeNV == (GdkGLProc_glFlushPixelDataRangeNV) -1)
+ _procs_GL_NV_pixel_data_range.glFlushPixelDataRangeNV =
+ (GdkGLProc_glFlushPixelDataRangeNV) gdk_gl_get_proc_address ("glFlushPixelDataRangeNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFlushPixelDataRangeNV () - %s",
+ (_procs_GL_NV_pixel_data_range.glFlushPixelDataRangeNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_pixel_data_range.glFlushPixelDataRangeNV);
+}
+
+/* Get GL_NV_pixel_data_range functions */
+GdkGL_GL_NV_pixel_data_range *
+gdk_gl_get_GL_NV_pixel_data_range (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_pixel_data_range");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPixelDataRangeNV () != NULL);
+ supported &= (gdk_gl_get_glFlushPixelDataRangeNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_pixel_data_range () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_pixel_data_range;
+}
+
+/*
+ * GL_NV_primitive_restart
+ */
+
+static GdkGL_GL_NV_primitive_restart _procs_GL_NV_primitive_restart = {
+ (GdkGLProc_glPrimitiveRestartNV) -1,
+ (GdkGLProc_glPrimitiveRestartIndexNV) -1
+};
+
+/* glPrimitiveRestartNV */
+GdkGLProc
+gdk_gl_get_glPrimitiveRestartNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_primitive_restart.glPrimitiveRestartNV == (GdkGLProc_glPrimitiveRestartNV) -1)
+ _procs_GL_NV_primitive_restart.glPrimitiveRestartNV =
+ (GdkGLProc_glPrimitiveRestartNV) gdk_gl_get_proc_address ("glPrimitiveRestartNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPrimitiveRestartNV () - %s",
+ (_procs_GL_NV_primitive_restart.glPrimitiveRestartNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_primitive_restart.glPrimitiveRestartNV);
+}
+
+/* glPrimitiveRestartIndexNV */
+GdkGLProc
+gdk_gl_get_glPrimitiveRestartIndexNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_primitive_restart.glPrimitiveRestartIndexNV == (GdkGLProc_glPrimitiveRestartIndexNV) -1)
+ _procs_GL_NV_primitive_restart.glPrimitiveRestartIndexNV =
+ (GdkGLProc_glPrimitiveRestartIndexNV) gdk_gl_get_proc_address ("glPrimitiveRestartIndexNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPrimitiveRestartIndexNV () - %s",
+ (_procs_GL_NV_primitive_restart.glPrimitiveRestartIndexNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_primitive_restart.glPrimitiveRestartIndexNV);
+}
+
+/* Get GL_NV_primitive_restart functions */
+GdkGL_GL_NV_primitive_restart *
+gdk_gl_get_GL_NV_primitive_restart (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_primitive_restart");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPrimitiveRestartNV () != NULL);
+ supported &= (gdk_gl_get_glPrimitiveRestartIndexNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_primitive_restart () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_primitive_restart;
+}
+
+/*
+ * GL_ATI_map_object_buffer
+ */
+
+static GdkGL_GL_ATI_map_object_buffer _procs_GL_ATI_map_object_buffer = {
+ (GdkGLProc_glMapObjectBufferATI) -1,
+ (GdkGLProc_glUnmapObjectBufferATI) -1
+};
+
+/* glMapObjectBufferATI */
+GdkGLProc
+gdk_gl_get_glMapObjectBufferATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_map_object_buffer.glMapObjectBufferATI == (GdkGLProc_glMapObjectBufferATI) -1)
+ _procs_GL_ATI_map_object_buffer.glMapObjectBufferATI =
+ (GdkGLProc_glMapObjectBufferATI) gdk_gl_get_proc_address ("glMapObjectBufferATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMapObjectBufferATI () - %s",
+ (_procs_GL_ATI_map_object_buffer.glMapObjectBufferATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_map_object_buffer.glMapObjectBufferATI);
+}
+
+/* glUnmapObjectBufferATI */
+GdkGLProc
+gdk_gl_get_glUnmapObjectBufferATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_map_object_buffer.glUnmapObjectBufferATI == (GdkGLProc_glUnmapObjectBufferATI) -1)
+ _procs_GL_ATI_map_object_buffer.glUnmapObjectBufferATI =
+ (GdkGLProc_glUnmapObjectBufferATI) gdk_gl_get_proc_address ("glUnmapObjectBufferATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glUnmapObjectBufferATI () - %s",
+ (_procs_GL_ATI_map_object_buffer.glUnmapObjectBufferATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_map_object_buffer.glUnmapObjectBufferATI);
+}
+
+/* Get GL_ATI_map_object_buffer functions */
+GdkGL_GL_ATI_map_object_buffer *
+gdk_gl_get_GL_ATI_map_object_buffer (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_map_object_buffer");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glMapObjectBufferATI () != NULL);
+ supported &= (gdk_gl_get_glUnmapObjectBufferATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_map_object_buffer () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_map_object_buffer;
+}
+
+/*
+ * GL_ATI_separate_stencil
+ */
+
+static GdkGL_GL_ATI_separate_stencil _procs_GL_ATI_separate_stencil = {
+ (GdkGLProc_glStencilOpSeparateATI) -1,
+ (GdkGLProc_glStencilFuncSeparateATI) -1
+};
+
+/* glStencilOpSeparateATI */
+GdkGLProc
+gdk_gl_get_glStencilOpSeparateATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_separate_stencil.glStencilOpSeparateATI == (GdkGLProc_glStencilOpSeparateATI) -1)
+ _procs_GL_ATI_separate_stencil.glStencilOpSeparateATI =
+ (GdkGLProc_glStencilOpSeparateATI) gdk_gl_get_proc_address ("glStencilOpSeparateATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glStencilOpSeparateATI () - %s",
+ (_procs_GL_ATI_separate_stencil.glStencilOpSeparateATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_separate_stencil.glStencilOpSeparateATI);
+}
+
+/* glStencilFuncSeparateATI */
+GdkGLProc
+gdk_gl_get_glStencilFuncSeparateATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_separate_stencil.glStencilFuncSeparateATI == (GdkGLProc_glStencilFuncSeparateATI) -1)
+ _procs_GL_ATI_separate_stencil.glStencilFuncSeparateATI =
+ (GdkGLProc_glStencilFuncSeparateATI) gdk_gl_get_proc_address ("glStencilFuncSeparateATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glStencilFuncSeparateATI () - %s",
+ (_procs_GL_ATI_separate_stencil.glStencilFuncSeparateATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_separate_stencil.glStencilFuncSeparateATI);
+}
+
+/* Get GL_ATI_separate_stencil functions */
+GdkGL_GL_ATI_separate_stencil *
+gdk_gl_get_GL_ATI_separate_stencil (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_separate_stencil");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glStencilOpSeparateATI () != NULL);
+ supported &= (gdk_gl_get_glStencilFuncSeparateATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_separate_stencil () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_separate_stencil;
+}
+
+/*
+ * GL_ATI_vertex_attrib_array_object
+ */
+
+static GdkGL_GL_ATI_vertex_attrib_array_object _procs_GL_ATI_vertex_attrib_array_object = {
+ (GdkGLProc_glVertexAttribArrayObjectATI) -1,
+ (GdkGLProc_glGetVertexAttribArrayObjectfvATI) -1,
+ (GdkGLProc_glGetVertexAttribArrayObjectivATI) -1
+};
+
+/* glVertexAttribArrayObjectATI */
+GdkGLProc
+gdk_gl_get_glVertexAttribArrayObjectATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_attrib_array_object.glVertexAttribArrayObjectATI == (GdkGLProc_glVertexAttribArrayObjectATI) -1)
+ _procs_GL_ATI_vertex_attrib_array_object.glVertexAttribArrayObjectATI =
+ (GdkGLProc_glVertexAttribArrayObjectATI) gdk_gl_get_proc_address ("glVertexAttribArrayObjectATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glVertexAttribArrayObjectATI () - %s",
+ (_procs_GL_ATI_vertex_attrib_array_object.glVertexAttribArrayObjectATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_attrib_array_object.glVertexAttribArrayObjectATI);
+}
+
+/* glGetVertexAttribArrayObjectfvATI */
+GdkGLProc
+gdk_gl_get_glGetVertexAttribArrayObjectfvATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_attrib_array_object.glGetVertexAttribArrayObjectfvATI == (GdkGLProc_glGetVertexAttribArrayObjectfvATI) -1)
+ _procs_GL_ATI_vertex_attrib_array_object.glGetVertexAttribArrayObjectfvATI =
+ (GdkGLProc_glGetVertexAttribArrayObjectfvATI) gdk_gl_get_proc_address ("glGetVertexAttribArrayObjectfvATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVertexAttribArrayObjectfvATI () - %s",
+ (_procs_GL_ATI_vertex_attrib_array_object.glGetVertexAttribArrayObjectfvATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_attrib_array_object.glGetVertexAttribArrayObjectfvATI);
+}
+
+/* glGetVertexAttribArrayObjectivATI */
+GdkGLProc
+gdk_gl_get_glGetVertexAttribArrayObjectivATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_vertex_attrib_array_object.glGetVertexAttribArrayObjectivATI == (GdkGLProc_glGetVertexAttribArrayObjectivATI) -1)
+ _procs_GL_ATI_vertex_attrib_array_object.glGetVertexAttribArrayObjectivATI =
+ (GdkGLProc_glGetVertexAttribArrayObjectivATI) gdk_gl_get_proc_address ("glGetVertexAttribArrayObjectivATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetVertexAttribArrayObjectivATI () - %s",
+ (_procs_GL_ATI_vertex_attrib_array_object.glGetVertexAttribArrayObjectivATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_vertex_attrib_array_object.glGetVertexAttribArrayObjectivATI);
+}
+
+/* Get GL_ATI_vertex_attrib_array_object functions */
+GdkGL_GL_ATI_vertex_attrib_array_object *
+gdk_gl_get_GL_ATI_vertex_attrib_array_object (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_vertex_attrib_array_object");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glVertexAttribArrayObjectATI () != NULL);
+ supported &= (gdk_gl_get_glGetVertexAttribArrayObjectfvATI () != NULL);
+ supported &= (gdk_gl_get_glGetVertexAttribArrayObjectivATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_vertex_attrib_array_object () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_vertex_attrib_array_object;
+}
+
+/*
+ * GL_APPLE_texture_range
+ */
+
+static GdkGL_GL_APPLE_texture_range _procs_GL_APPLE_texture_range = {
+ (GdkGLProc_glTextureRangeAPPLE) -1,
+ (GdkGLProc_glGetTexParameterPointervAPPLE) -1
+};
+
+/* glTextureRangeAPPLE */
+GdkGLProc
+gdk_gl_get_glTextureRangeAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_texture_range.glTextureRangeAPPLE == (GdkGLProc_glTextureRangeAPPLE) -1)
+ _procs_GL_APPLE_texture_range.glTextureRangeAPPLE =
+ (GdkGLProc_glTextureRangeAPPLE) gdk_gl_get_proc_address ("glTextureRangeAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTextureRangeAPPLE () - %s",
+ (_procs_GL_APPLE_texture_range.glTextureRangeAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_texture_range.glTextureRangeAPPLE);
+}
+
+/* glGetTexParameterPointervAPPLE */
+GdkGLProc
+gdk_gl_get_glGetTexParameterPointervAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_texture_range.glGetTexParameterPointervAPPLE == (GdkGLProc_glGetTexParameterPointervAPPLE) -1)
+ _procs_GL_APPLE_texture_range.glGetTexParameterPointervAPPLE =
+ (GdkGLProc_glGetTexParameterPointervAPPLE) gdk_gl_get_proc_address ("glGetTexParameterPointervAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetTexParameterPointervAPPLE () - %s",
+ (_procs_GL_APPLE_texture_range.glGetTexParameterPointervAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_texture_range.glGetTexParameterPointervAPPLE);
+}
+
+/* Get GL_APPLE_texture_range functions */
+GdkGL_GL_APPLE_texture_range *
+gdk_gl_get_GL_APPLE_texture_range (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_APPLE_texture_range");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTextureRangeAPPLE () != NULL);
+ supported &= (gdk_gl_get_glGetTexParameterPointervAPPLE () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_APPLE_texture_range () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_APPLE_texture_range;
+}
+
+/*
+ * GL_APPLE_vertex_program_evaluators
+ */
+
+static GdkGL_GL_APPLE_vertex_program_evaluators _procs_GL_APPLE_vertex_program_evaluators = {
+ (GdkGLProc_glEnableVertexAttribAPPLE) -1,
+ (GdkGLProc_glDisableVertexAttribAPPLE) -1,
+ (GdkGLProc_glIsVertexAttribEnabledAPPLE) -1,
+ (GdkGLProc_glMapVertexAttrib1dAPPLE) -1,
+ (GdkGLProc_glMapVertexAttrib1fAPPLE) -1,
+ (GdkGLProc_glMapVertexAttrib2dAPPLE) -1,
+ (GdkGLProc_glMapVertexAttrib2fAPPLE) -1
+};
+
+/* glEnableVertexAttribAPPLE */
+GdkGLProc
+gdk_gl_get_glEnableVertexAttribAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_program_evaluators.glEnableVertexAttribAPPLE == (GdkGLProc_glEnableVertexAttribAPPLE) -1)
+ _procs_GL_APPLE_vertex_program_evaluators.glEnableVertexAttribAPPLE =
+ (GdkGLProc_glEnableVertexAttribAPPLE) gdk_gl_get_proc_address ("glEnableVertexAttribAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glEnableVertexAttribAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_program_evaluators.glEnableVertexAttribAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_program_evaluators.glEnableVertexAttribAPPLE);
+}
+
+/* glDisableVertexAttribAPPLE */
+GdkGLProc
+gdk_gl_get_glDisableVertexAttribAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_program_evaluators.glDisableVertexAttribAPPLE == (GdkGLProc_glDisableVertexAttribAPPLE) -1)
+ _procs_GL_APPLE_vertex_program_evaluators.glDisableVertexAttribAPPLE =
+ (GdkGLProc_glDisableVertexAttribAPPLE) gdk_gl_get_proc_address ("glDisableVertexAttribAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDisableVertexAttribAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_program_evaluators.glDisableVertexAttribAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_program_evaluators.glDisableVertexAttribAPPLE);
+}
+
+/* glIsVertexAttribEnabledAPPLE */
+GdkGLProc
+gdk_gl_get_glIsVertexAttribEnabledAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_program_evaluators.glIsVertexAttribEnabledAPPLE == (GdkGLProc_glIsVertexAttribEnabledAPPLE) -1)
+ _procs_GL_APPLE_vertex_program_evaluators.glIsVertexAttribEnabledAPPLE =
+ (GdkGLProc_glIsVertexAttribEnabledAPPLE) gdk_gl_get_proc_address ("glIsVertexAttribEnabledAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glIsVertexAttribEnabledAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_program_evaluators.glIsVertexAttribEnabledAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_program_evaluators.glIsVertexAttribEnabledAPPLE);
+}
+
+/* glMapVertexAttrib1dAPPLE */
+GdkGLProc
+gdk_gl_get_glMapVertexAttrib1dAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib1dAPPLE == (GdkGLProc_glMapVertexAttrib1dAPPLE) -1)
+ _procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib1dAPPLE =
+ (GdkGLProc_glMapVertexAttrib1dAPPLE) gdk_gl_get_proc_address ("glMapVertexAttrib1dAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMapVertexAttrib1dAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib1dAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib1dAPPLE);
+}
+
+/* glMapVertexAttrib1fAPPLE */
+GdkGLProc
+gdk_gl_get_glMapVertexAttrib1fAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib1fAPPLE == (GdkGLProc_glMapVertexAttrib1fAPPLE) -1)
+ _procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib1fAPPLE =
+ (GdkGLProc_glMapVertexAttrib1fAPPLE) gdk_gl_get_proc_address ("glMapVertexAttrib1fAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMapVertexAttrib1fAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib1fAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib1fAPPLE);
+}
+
+/* glMapVertexAttrib2dAPPLE */
+GdkGLProc
+gdk_gl_get_glMapVertexAttrib2dAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib2dAPPLE == (GdkGLProc_glMapVertexAttrib2dAPPLE) -1)
+ _procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib2dAPPLE =
+ (GdkGLProc_glMapVertexAttrib2dAPPLE) gdk_gl_get_proc_address ("glMapVertexAttrib2dAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMapVertexAttrib2dAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib2dAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib2dAPPLE);
+}
+
+/* glMapVertexAttrib2fAPPLE */
+GdkGLProc
+gdk_gl_get_glMapVertexAttrib2fAPPLE (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib2fAPPLE == (GdkGLProc_glMapVertexAttrib2fAPPLE) -1)
+ _procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib2fAPPLE =
+ (GdkGLProc_glMapVertexAttrib2fAPPLE) gdk_gl_get_proc_address ("glMapVertexAttrib2fAPPLE");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMapVertexAttrib2fAPPLE () - %s",
+ (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib2fAPPLE) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_APPLE_vertex_program_evaluators.glMapVertexAttrib2fAPPLE);
+}
+
+/* Get GL_APPLE_vertex_program_evaluators functions */
+GdkGL_GL_APPLE_vertex_program_evaluators *
+gdk_gl_get_GL_APPLE_vertex_program_evaluators (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_APPLE_vertex_program_evaluators");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glEnableVertexAttribAPPLE () != NULL);
+ supported &= (gdk_gl_get_glDisableVertexAttribAPPLE () != NULL);
+ supported &= (gdk_gl_get_glIsVertexAttribEnabledAPPLE () != NULL);
+ supported &= (gdk_gl_get_glMapVertexAttrib1dAPPLE () != NULL);
+ supported &= (gdk_gl_get_glMapVertexAttrib1fAPPLE () != NULL);
+ supported &= (gdk_gl_get_glMapVertexAttrib2dAPPLE () != NULL);
+ supported &= (gdk_gl_get_glMapVertexAttrib2fAPPLE () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_APPLE_vertex_program_evaluators () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_APPLE_vertex_program_evaluators;
+}
+
+/*
+ * GL_ATI_blend_equation_separate
+ */
+
+static GdkGL_GL_ATI_blend_equation_separate _procs_GL_ATI_blend_equation_separate = {
+ (GdkGLProc_glBlendEquationSeparateATI) -1
+};
+
+/* glBlendEquationSeparateATI */
+GdkGLProc
+gdk_gl_get_glBlendEquationSeparateATI (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATI_blend_equation_separate.glBlendEquationSeparateATI == (GdkGLProc_glBlendEquationSeparateATI) -1)
+ _procs_GL_ATI_blend_equation_separate.glBlendEquationSeparateATI =
+ (GdkGLProc_glBlendEquationSeparateATI) gdk_gl_get_proc_address ("glBlendEquationSeparateATI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBlendEquationSeparateATI () - %s",
+ (_procs_GL_ATI_blend_equation_separate.glBlendEquationSeparateATI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATI_blend_equation_separate.glBlendEquationSeparateATI);
+}
+
+/* Get GL_ATI_blend_equation_separate functions */
+GdkGL_GL_ATI_blend_equation_separate *
+gdk_gl_get_GL_ATI_blend_equation_separate (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATI_blend_equation_separate");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glBlendEquationSeparateATI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATI_blend_equation_separate () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATI_blend_equation_separate;
+}
+
+/*
+ * GL_ATIX_pn_triangles
+ */
+
+static GdkGL_GL_ATIX_pn_triangles _procs_GL_ATIX_pn_triangles = {
+ (GdkGLProc_glPNTrianglesiATIX) -1,
+ (GdkGLProc_glPNTrianglesfATIX) -1
+};
+
+/* glPNTrianglesiATIX */
+GdkGLProc
+gdk_gl_get_glPNTrianglesiATIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATIX_pn_triangles.glPNTrianglesiATIX == (GdkGLProc_glPNTrianglesiATIX) -1)
+ _procs_GL_ATIX_pn_triangles.glPNTrianglesiATIX =
+ (GdkGLProc_glPNTrianglesiATIX) gdk_gl_get_proc_address ("glPNTrianglesiATIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPNTrianglesiATIX () - %s",
+ (_procs_GL_ATIX_pn_triangles.glPNTrianglesiATIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATIX_pn_triangles.glPNTrianglesiATIX);
+}
+
+/* glPNTrianglesfATIX */
+GdkGLProc
+gdk_gl_get_glPNTrianglesfATIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_ATIX_pn_triangles.glPNTrianglesfATIX == (GdkGLProc_glPNTrianglesfATIX) -1)
+ _procs_GL_ATIX_pn_triangles.glPNTrianglesfATIX =
+ (GdkGLProc_glPNTrianglesfATIX) gdk_gl_get_proc_address ("glPNTrianglesfATIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glPNTrianglesfATIX () - %s",
+ (_procs_GL_ATIX_pn_triangles.glPNTrianglesfATIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_ATIX_pn_triangles.glPNTrianglesfATIX);
+}
+
+/* Get GL_ATIX_pn_triangles functions */
+GdkGL_GL_ATIX_pn_triangles *
+gdk_gl_get_GL_ATIX_pn_triangles (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_ATIX_pn_triangles");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glPNTrianglesiATIX () != NULL);
+ supported &= (gdk_gl_get_glPNTrianglesfATIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_ATIX_pn_triangles () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_ATIX_pn_triangles;
+}
+
+/*
+ * GL_Autodesk_facet_normal
+ */
+
+static GdkGL_GL_Autodesk_facet_normal _procs_GL_Autodesk_facet_normal = {
+ (GdkGLProc_glFacetNormal3b) -1,
+ (GdkGLProc_glFacetNormal3d) -1,
+ (GdkGLProc_glFacetNormal3f) -1,
+ (GdkGLProc_glFacetNormal3i) -1,
+ (GdkGLProc_glFacetNormal3s) -1,
+ (GdkGLProc_glFacetNormal3bv) -1,
+ (GdkGLProc_glFacetNormal3dv) -1,
+ (GdkGLProc_glFacetNormal3fv) -1,
+ (GdkGLProc_glFacetNormal3iv) -1,
+ (GdkGLProc_glFacetNormal3sv) -1
+};
+
+/* glFacetNormal3b */
+GdkGLProc
+gdk_gl_get_glFacetNormal3b (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_facet_normal.glFacetNormal3b == (GdkGLProc_glFacetNormal3b) -1)
+ _procs_GL_Autodesk_facet_normal.glFacetNormal3b =
+ (GdkGLProc_glFacetNormal3b) gdk_gl_get_proc_address ("glFacetNormal3b");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFacetNormal3b () - %s",
+ (_procs_GL_Autodesk_facet_normal.glFacetNormal3b) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_facet_normal.glFacetNormal3b);
+}
+
+/* glFacetNormal3d */
+GdkGLProc
+gdk_gl_get_glFacetNormal3d (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_facet_normal.glFacetNormal3d == (GdkGLProc_glFacetNormal3d) -1)
+ _procs_GL_Autodesk_facet_normal.glFacetNormal3d =
+ (GdkGLProc_glFacetNormal3d) gdk_gl_get_proc_address ("glFacetNormal3d");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFacetNormal3d () - %s",
+ (_procs_GL_Autodesk_facet_normal.glFacetNormal3d) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_facet_normal.glFacetNormal3d);
+}
+
+/* glFacetNormal3f */
+GdkGLProc
+gdk_gl_get_glFacetNormal3f (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_facet_normal.glFacetNormal3f == (GdkGLProc_glFacetNormal3f) -1)
+ _procs_GL_Autodesk_facet_normal.glFacetNormal3f =
+ (GdkGLProc_glFacetNormal3f) gdk_gl_get_proc_address ("glFacetNormal3f");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFacetNormal3f () - %s",
+ (_procs_GL_Autodesk_facet_normal.glFacetNormal3f) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_facet_normal.glFacetNormal3f);
+}
+
+/* glFacetNormal3i */
+GdkGLProc
+gdk_gl_get_glFacetNormal3i (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_facet_normal.glFacetNormal3i == (GdkGLProc_glFacetNormal3i) -1)
+ _procs_GL_Autodesk_facet_normal.glFacetNormal3i =
+ (GdkGLProc_glFacetNormal3i) gdk_gl_get_proc_address ("glFacetNormal3i");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFacetNormal3i () - %s",
+ (_procs_GL_Autodesk_facet_normal.glFacetNormal3i) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_facet_normal.glFacetNormal3i);
+}
+
+/* glFacetNormal3s */
+GdkGLProc
+gdk_gl_get_glFacetNormal3s (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_facet_normal.glFacetNormal3s == (GdkGLProc_glFacetNormal3s) -1)
+ _procs_GL_Autodesk_facet_normal.glFacetNormal3s =
+ (GdkGLProc_glFacetNormal3s) gdk_gl_get_proc_address ("glFacetNormal3s");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFacetNormal3s () - %s",
+ (_procs_GL_Autodesk_facet_normal.glFacetNormal3s) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_facet_normal.glFacetNormal3s);
+}
+
+/* glFacetNormal3bv */
+GdkGLProc
+gdk_gl_get_glFacetNormal3bv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_facet_normal.glFacetNormal3bv == (GdkGLProc_glFacetNormal3bv) -1)
+ _procs_GL_Autodesk_facet_normal.glFacetNormal3bv =
+ (GdkGLProc_glFacetNormal3bv) gdk_gl_get_proc_address ("glFacetNormal3bv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFacetNormal3bv () - %s",
+ (_procs_GL_Autodesk_facet_normal.glFacetNormal3bv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_facet_normal.glFacetNormal3bv);
+}
+
+/* glFacetNormal3dv */
+GdkGLProc
+gdk_gl_get_glFacetNormal3dv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_facet_normal.glFacetNormal3dv == (GdkGLProc_glFacetNormal3dv) -1)
+ _procs_GL_Autodesk_facet_normal.glFacetNormal3dv =
+ (GdkGLProc_glFacetNormal3dv) gdk_gl_get_proc_address ("glFacetNormal3dv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFacetNormal3dv () - %s",
+ (_procs_GL_Autodesk_facet_normal.glFacetNormal3dv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_facet_normal.glFacetNormal3dv);
+}
+
+/* glFacetNormal3fv */
+GdkGLProc
+gdk_gl_get_glFacetNormal3fv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_facet_normal.glFacetNormal3fv == (GdkGLProc_glFacetNormal3fv) -1)
+ _procs_GL_Autodesk_facet_normal.glFacetNormal3fv =
+ (GdkGLProc_glFacetNormal3fv) gdk_gl_get_proc_address ("glFacetNormal3fv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFacetNormal3fv () - %s",
+ (_procs_GL_Autodesk_facet_normal.glFacetNormal3fv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_facet_normal.glFacetNormal3fv);
+}
+
+/* glFacetNormal3iv */
+GdkGLProc
+gdk_gl_get_glFacetNormal3iv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_facet_normal.glFacetNormal3iv == (GdkGLProc_glFacetNormal3iv) -1)
+ _procs_GL_Autodesk_facet_normal.glFacetNormal3iv =
+ (GdkGLProc_glFacetNormal3iv) gdk_gl_get_proc_address ("glFacetNormal3iv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFacetNormal3iv () - %s",
+ (_procs_GL_Autodesk_facet_normal.glFacetNormal3iv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_facet_normal.glFacetNormal3iv);
+}
+
+/* glFacetNormal3sv */
+GdkGLProc
+gdk_gl_get_glFacetNormal3sv (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_facet_normal.glFacetNormal3sv == (GdkGLProc_glFacetNormal3sv) -1)
+ _procs_GL_Autodesk_facet_normal.glFacetNormal3sv =
+ (GdkGLProc_glFacetNormal3sv) gdk_gl_get_proc_address ("glFacetNormal3sv");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFacetNormal3sv () - %s",
+ (_procs_GL_Autodesk_facet_normal.glFacetNormal3sv) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_facet_normal.glFacetNormal3sv);
+}
+
+/* Get GL_Autodesk_facet_normal functions */
+GdkGL_GL_Autodesk_facet_normal *
+gdk_gl_get_GL_Autodesk_facet_normal (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_Autodesk_facet_normal");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glFacetNormal3b () != NULL);
+ supported &= (gdk_gl_get_glFacetNormal3d () != NULL);
+ supported &= (gdk_gl_get_glFacetNormal3f () != NULL);
+ supported &= (gdk_gl_get_glFacetNormal3i () != NULL);
+ supported &= (gdk_gl_get_glFacetNormal3s () != NULL);
+ supported &= (gdk_gl_get_glFacetNormal3bv () != NULL);
+ supported &= (gdk_gl_get_glFacetNormal3dv () != NULL);
+ supported &= (gdk_gl_get_glFacetNormal3fv () != NULL);
+ supported &= (gdk_gl_get_glFacetNormal3iv () != NULL);
+ supported &= (gdk_gl_get_glFacetNormal3sv () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_Autodesk_facet_normal () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_Autodesk_facet_normal;
+}
+
+/*
+ * GL_Autodesk_valid_back_buffer_hint
+ */
+
+static GdkGL_GL_Autodesk_valid_back_buffer_hint _procs_GL_Autodesk_valid_back_buffer_hint = {
+ (GdkGLProc_glWindowBackBufferHint) -1,
+ (GdkGLProc_glValidBackBufferHint) -1
+};
+
+/* glWindowBackBufferHint */
+GdkGLProc
+gdk_gl_get_glWindowBackBufferHint (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_valid_back_buffer_hint.glWindowBackBufferHint == (GdkGLProc_glWindowBackBufferHint) -1)
+ _procs_GL_Autodesk_valid_back_buffer_hint.glWindowBackBufferHint =
+ (GdkGLProc_glWindowBackBufferHint) gdk_gl_get_proc_address ("glWindowBackBufferHint");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glWindowBackBufferHint () - %s",
+ (_procs_GL_Autodesk_valid_back_buffer_hint.glWindowBackBufferHint) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_valid_back_buffer_hint.glWindowBackBufferHint);
+}
+
+/* glValidBackBufferHint */
+GdkGLProc
+gdk_gl_get_glValidBackBufferHint (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_Autodesk_valid_back_buffer_hint.glValidBackBufferHint == (GdkGLProc_glValidBackBufferHint) -1)
+ _procs_GL_Autodesk_valid_back_buffer_hint.glValidBackBufferHint =
+ (GdkGLProc_glValidBackBufferHint) gdk_gl_get_proc_address ("glValidBackBufferHint");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glValidBackBufferHint () - %s",
+ (_procs_GL_Autodesk_valid_back_buffer_hint.glValidBackBufferHint) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_Autodesk_valid_back_buffer_hint.glValidBackBufferHint);
+}
+
+/* Get GL_Autodesk_valid_back_buffer_hint functions */
+GdkGL_GL_Autodesk_valid_back_buffer_hint *
+gdk_gl_get_GL_Autodesk_valid_back_buffer_hint (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_Autodesk_valid_back_buffer_hint");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glWindowBackBufferHint () != NULL);
+ supported &= (gdk_gl_get_glValidBackBufferHint () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_Autodesk_valid_back_buffer_hint () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_Autodesk_valid_back_buffer_hint;
+}
+
+/*
+ * GL_EXT_depth_bounds_test
+ */
+
+static GdkGL_GL_EXT_depth_bounds_test _procs_GL_EXT_depth_bounds_test = {
+ (GdkGLProc_glDepthBoundsEXT) -1
+};
+
+/* glDepthBoundsEXT */
+GdkGLProc
+gdk_gl_get_glDepthBoundsEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_depth_bounds_test.glDepthBoundsEXT == (GdkGLProc_glDepthBoundsEXT) -1)
+ _procs_GL_EXT_depth_bounds_test.glDepthBoundsEXT =
+ (GdkGLProc_glDepthBoundsEXT) gdk_gl_get_proc_address ("glDepthBoundsEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDepthBoundsEXT () - %s",
+ (_procs_GL_EXT_depth_bounds_test.glDepthBoundsEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_depth_bounds_test.glDepthBoundsEXT);
+}
+
+/* Get GL_EXT_depth_bounds_test functions */
+GdkGL_GL_EXT_depth_bounds_test *
+gdk_gl_get_GL_EXT_depth_bounds_test (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_depth_bounds_test");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glDepthBoundsEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_depth_bounds_test () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_depth_bounds_test;
+}
+
+/*
+ * GL_EXT_fragment_lighting
+ */
+
+static GdkGL_GL_EXT_fragment_lighting _procs_GL_EXT_fragment_lighting = {
+ (GdkGLProc_glFragmentLightModelfEXT) -1,
+ (GdkGLProc_glFragmentLightModelfvEXT) -1,
+ (GdkGLProc_glFragmentLightModeliEXT) -1,
+ (GdkGLProc_glFragmentLightModelivEXT) -1,
+ (GdkGLProc_glFragmentLightfEXT) -1,
+ (GdkGLProc_glFragmentLightfvEXT) -1,
+ (GdkGLProc_glFragmentLightiEXT) -1,
+ (GdkGLProc_glFragmentLightivEXT) -1,
+ (GdkGLProc_glGetFragmentLightfvEXT) -1,
+ (GdkGLProc_glGetFragmentLightivEXT) -1,
+ (GdkGLProc_glFragmentMaterialfEXT) -1,
+ (GdkGLProc_glFragmentMaterialfvEXT) -1,
+ (GdkGLProc_glFragmentMaterialiEXT) -1,
+ (GdkGLProc_glFragmentMaterialivEXT) -1,
+ (GdkGLProc_glFragmentColorMaterialEXT) -1,
+ (GdkGLProc_glGetFragmentMaterialfvEXT) -1,
+ (GdkGLProc_glGetFragmentMaterialivEXT) -1,
+ (GdkGLProc_glLightEnviEXT) -1
+};
+
+/* glFragmentLightModelfEXT */
+GdkGLProc
+gdk_gl_get_glFragmentLightModelfEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentLightModelfEXT == (GdkGLProc_glFragmentLightModelfEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentLightModelfEXT =
+ (GdkGLProc_glFragmentLightModelfEXT) gdk_gl_get_proc_address ("glFragmentLightModelfEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightModelfEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentLightModelfEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentLightModelfEXT);
+}
+
+/* glFragmentLightModelfvEXT */
+GdkGLProc
+gdk_gl_get_glFragmentLightModelfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentLightModelfvEXT == (GdkGLProc_glFragmentLightModelfvEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentLightModelfvEXT =
+ (GdkGLProc_glFragmentLightModelfvEXT) gdk_gl_get_proc_address ("glFragmentLightModelfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightModelfvEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentLightModelfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentLightModelfvEXT);
+}
+
+/* glFragmentLightModeliEXT */
+GdkGLProc
+gdk_gl_get_glFragmentLightModeliEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentLightModeliEXT == (GdkGLProc_glFragmentLightModeliEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentLightModeliEXT =
+ (GdkGLProc_glFragmentLightModeliEXT) gdk_gl_get_proc_address ("glFragmentLightModeliEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightModeliEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentLightModeliEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentLightModeliEXT);
+}
+
+/* glFragmentLightModelivEXT */
+GdkGLProc
+gdk_gl_get_glFragmentLightModelivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentLightModelivEXT == (GdkGLProc_glFragmentLightModelivEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentLightModelivEXT =
+ (GdkGLProc_glFragmentLightModelivEXT) gdk_gl_get_proc_address ("glFragmentLightModelivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightModelivEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentLightModelivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentLightModelivEXT);
+}
+
+/* glFragmentLightfEXT */
+GdkGLProc
+gdk_gl_get_glFragmentLightfEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentLightfEXT == (GdkGLProc_glFragmentLightfEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentLightfEXT =
+ (GdkGLProc_glFragmentLightfEXT) gdk_gl_get_proc_address ("glFragmentLightfEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightfEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentLightfEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentLightfEXT);
+}
+
+/* glFragmentLightfvEXT */
+GdkGLProc
+gdk_gl_get_glFragmentLightfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentLightfvEXT == (GdkGLProc_glFragmentLightfvEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentLightfvEXT =
+ (GdkGLProc_glFragmentLightfvEXT) gdk_gl_get_proc_address ("glFragmentLightfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightfvEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentLightfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentLightfvEXT);
+}
+
+/* glFragmentLightiEXT */
+GdkGLProc
+gdk_gl_get_glFragmentLightiEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentLightiEXT == (GdkGLProc_glFragmentLightiEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentLightiEXT =
+ (GdkGLProc_glFragmentLightiEXT) gdk_gl_get_proc_address ("glFragmentLightiEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightiEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentLightiEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentLightiEXT);
+}
+
+/* glFragmentLightivEXT */
+GdkGLProc
+gdk_gl_get_glFragmentLightivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentLightivEXT == (GdkGLProc_glFragmentLightivEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentLightivEXT =
+ (GdkGLProc_glFragmentLightivEXT) gdk_gl_get_proc_address ("glFragmentLightivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentLightivEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentLightivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentLightivEXT);
+}
+
+/* glGetFragmentLightfvEXT */
+GdkGLProc
+gdk_gl_get_glGetFragmentLightfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glGetFragmentLightfvEXT == (GdkGLProc_glGetFragmentLightfvEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glGetFragmentLightfvEXT =
+ (GdkGLProc_glGetFragmentLightfvEXT) gdk_gl_get_proc_address ("glGetFragmentLightfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFragmentLightfvEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glGetFragmentLightfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glGetFragmentLightfvEXT);
+}
+
+/* glGetFragmentLightivEXT */
+GdkGLProc
+gdk_gl_get_glGetFragmentLightivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glGetFragmentLightivEXT == (GdkGLProc_glGetFragmentLightivEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glGetFragmentLightivEXT =
+ (GdkGLProc_glGetFragmentLightivEXT) gdk_gl_get_proc_address ("glGetFragmentLightivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFragmentLightivEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glGetFragmentLightivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glGetFragmentLightivEXT);
+}
+
+/* glFragmentMaterialfEXT */
+GdkGLProc
+gdk_gl_get_glFragmentMaterialfEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentMaterialfEXT == (GdkGLProc_glFragmentMaterialfEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentMaterialfEXT =
+ (GdkGLProc_glFragmentMaterialfEXT) gdk_gl_get_proc_address ("glFragmentMaterialfEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentMaterialfEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentMaterialfEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentMaterialfEXT);
+}
+
+/* glFragmentMaterialfvEXT */
+GdkGLProc
+gdk_gl_get_glFragmentMaterialfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentMaterialfvEXT == (GdkGLProc_glFragmentMaterialfvEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentMaterialfvEXT =
+ (GdkGLProc_glFragmentMaterialfvEXT) gdk_gl_get_proc_address ("glFragmentMaterialfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentMaterialfvEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentMaterialfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentMaterialfvEXT);
+}
+
+/* glFragmentMaterialiEXT */
+GdkGLProc
+gdk_gl_get_glFragmentMaterialiEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentMaterialiEXT == (GdkGLProc_glFragmentMaterialiEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentMaterialiEXT =
+ (GdkGLProc_glFragmentMaterialiEXT) gdk_gl_get_proc_address ("glFragmentMaterialiEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentMaterialiEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentMaterialiEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentMaterialiEXT);
+}
+
+/* glFragmentMaterialivEXT */
+GdkGLProc
+gdk_gl_get_glFragmentMaterialivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentMaterialivEXT == (GdkGLProc_glFragmentMaterialivEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentMaterialivEXT =
+ (GdkGLProc_glFragmentMaterialivEXT) gdk_gl_get_proc_address ("glFragmentMaterialivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentMaterialivEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentMaterialivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentMaterialivEXT);
+}
+
+/* glFragmentColorMaterialEXT */
+GdkGLProc
+gdk_gl_get_glFragmentColorMaterialEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glFragmentColorMaterialEXT == (GdkGLProc_glFragmentColorMaterialEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glFragmentColorMaterialEXT =
+ (GdkGLProc_glFragmentColorMaterialEXT) gdk_gl_get_proc_address ("glFragmentColorMaterialEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFragmentColorMaterialEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glFragmentColorMaterialEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glFragmentColorMaterialEXT);
+}
+
+/* glGetFragmentMaterialfvEXT */
+GdkGLProc
+gdk_gl_get_glGetFragmentMaterialfvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glGetFragmentMaterialfvEXT == (GdkGLProc_glGetFragmentMaterialfvEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glGetFragmentMaterialfvEXT =
+ (GdkGLProc_glGetFragmentMaterialfvEXT) gdk_gl_get_proc_address ("glGetFragmentMaterialfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFragmentMaterialfvEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glGetFragmentMaterialfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glGetFragmentMaterialfvEXT);
+}
+
+/* glGetFragmentMaterialivEXT */
+GdkGLProc
+gdk_gl_get_glGetFragmentMaterialivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glGetFragmentMaterialivEXT == (GdkGLProc_glGetFragmentMaterialivEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glGetFragmentMaterialivEXT =
+ (GdkGLProc_glGetFragmentMaterialivEXT) gdk_gl_get_proc_address ("glGetFragmentMaterialivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glGetFragmentMaterialivEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glGetFragmentMaterialivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glGetFragmentMaterialivEXT);
+}
+
+/* glLightEnviEXT */
+GdkGLProc
+gdk_gl_get_glLightEnviEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_fragment_lighting.glLightEnviEXT == (GdkGLProc_glLightEnviEXT) -1)
+ _procs_GL_EXT_fragment_lighting.glLightEnviEXT =
+ (GdkGLProc_glLightEnviEXT) gdk_gl_get_proc_address ("glLightEnviEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glLightEnviEXT () - %s",
+ (_procs_GL_EXT_fragment_lighting.glLightEnviEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_fragment_lighting.glLightEnviEXT);
+}
+
+/* Get GL_EXT_fragment_lighting functions */
+GdkGL_GL_EXT_fragment_lighting *
+gdk_gl_get_GL_EXT_fragment_lighting (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_fragment_lighting");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glFragmentLightModelfEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightModelfvEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightModeliEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightModelivEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightfEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightfvEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightiEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentLightivEXT () != NULL);
+ supported &= (gdk_gl_get_glGetFragmentLightfvEXT () != NULL);
+ supported &= (gdk_gl_get_glGetFragmentLightivEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentMaterialfEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentMaterialfvEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentMaterialiEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentMaterialivEXT () != NULL);
+ supported &= (gdk_gl_get_glFragmentColorMaterialEXT () != NULL);
+ supported &= (gdk_gl_get_glGetFragmentMaterialfvEXT () != NULL);
+ supported &= (gdk_gl_get_glGetFragmentMaterialivEXT () != NULL);
+ supported &= (gdk_gl_get_glLightEnviEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_fragment_lighting () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_fragment_lighting;
+}
+
+/*
+ * GL_EXT_multitexture
+ */
+
+static GdkGL_GL_EXT_multitexture _procs_GL_EXT_multitexture = {
+ (GdkGLProc_glMultiTexCoord1dEXT) -1,
+ (GdkGLProc_glMultiTexCoord1dvEXT) -1,
+ (GdkGLProc_glMultiTexCoord1fEXT) -1,
+ (GdkGLProc_glMultiTexCoord1fvEXT) -1,
+ (GdkGLProc_glMultiTexCoord1iEXT) -1,
+ (GdkGLProc_glMultiTexCoord1ivEXT) -1,
+ (GdkGLProc_glMultiTexCoord1sEXT) -1,
+ (GdkGLProc_glMultiTexCoord1svEXT) -1,
+ (GdkGLProc_glMultiTexCoord2dEXT) -1,
+ (GdkGLProc_glMultiTexCoord2dvEXT) -1,
+ (GdkGLProc_glMultiTexCoord2fEXT) -1,
+ (GdkGLProc_glMultiTexCoord2fvEXT) -1,
+ (GdkGLProc_glMultiTexCoord2iEXT) -1,
+ (GdkGLProc_glMultiTexCoord2ivEXT) -1,
+ (GdkGLProc_glMultiTexCoord2sEXT) -1,
+ (GdkGLProc_glMultiTexCoord2svEXT) -1,
+ (GdkGLProc_glMultiTexCoord3dEXT) -1,
+ (GdkGLProc_glMultiTexCoord3dvEXT) -1,
+ (GdkGLProc_glMultiTexCoord3fEXT) -1,
+ (GdkGLProc_glMultiTexCoord3fvEXT) -1,
+ (GdkGLProc_glMultiTexCoord3iEXT) -1,
+ (GdkGLProc_glMultiTexCoord3ivEXT) -1,
+ (GdkGLProc_glMultiTexCoord3sEXT) -1,
+ (GdkGLProc_glMultiTexCoord3svEXT) -1,
+ (GdkGLProc_glMultiTexCoord4dEXT) -1,
+ (GdkGLProc_glMultiTexCoord4dvEXT) -1,
+ (GdkGLProc_glMultiTexCoord4fEXT) -1,
+ (GdkGLProc_glMultiTexCoord4fvEXT) -1,
+ (GdkGLProc_glMultiTexCoord4iEXT) -1,
+ (GdkGLProc_glMultiTexCoord4ivEXT) -1,
+ (GdkGLProc_glMultiTexCoord4sEXT) -1,
+ (GdkGLProc_glMultiTexCoord4svEXT) -1,
+ (GdkGLProc_glInterleavedTextureCoordSetsEXT) -1,
+ (GdkGLProc_glSelectTextureEXT) -1,
+ (GdkGLProc_glSelectTextureCoordSetEXT) -1,
+ (GdkGLProc_glSelectTextureTransformEXT) -1
+};
+
+/* glMultiTexCoord1dEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1dEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord1dEXT == (GdkGLProc_glMultiTexCoord1dEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord1dEXT =
+ (GdkGLProc_glMultiTexCoord1dEXT) gdk_gl_get_proc_address ("glMultiTexCoord1dEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1dEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord1dEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord1dEXT);
+}
+
+/* glMultiTexCoord1dvEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1dvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord1dvEXT == (GdkGLProc_glMultiTexCoord1dvEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord1dvEXT =
+ (GdkGLProc_glMultiTexCoord1dvEXT) gdk_gl_get_proc_address ("glMultiTexCoord1dvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1dvEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord1dvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord1dvEXT);
+}
+
+/* glMultiTexCoord1fEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1fEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord1fEXT == (GdkGLProc_glMultiTexCoord1fEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord1fEXT =
+ (GdkGLProc_glMultiTexCoord1fEXT) gdk_gl_get_proc_address ("glMultiTexCoord1fEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1fEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord1fEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord1fEXT);
+}
+
+/* glMultiTexCoord1fvEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1fvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord1fvEXT == (GdkGLProc_glMultiTexCoord1fvEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord1fvEXT =
+ (GdkGLProc_glMultiTexCoord1fvEXT) gdk_gl_get_proc_address ("glMultiTexCoord1fvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1fvEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord1fvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord1fvEXT);
+}
+
+/* glMultiTexCoord1iEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1iEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord1iEXT == (GdkGLProc_glMultiTexCoord1iEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord1iEXT =
+ (GdkGLProc_glMultiTexCoord1iEXT) gdk_gl_get_proc_address ("glMultiTexCoord1iEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1iEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord1iEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord1iEXT);
+}
+
+/* glMultiTexCoord1ivEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1ivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord1ivEXT == (GdkGLProc_glMultiTexCoord1ivEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord1ivEXT =
+ (GdkGLProc_glMultiTexCoord1ivEXT) gdk_gl_get_proc_address ("glMultiTexCoord1ivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1ivEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord1ivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord1ivEXT);
+}
+
+/* glMultiTexCoord1sEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1sEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord1sEXT == (GdkGLProc_glMultiTexCoord1sEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord1sEXT =
+ (GdkGLProc_glMultiTexCoord1sEXT) gdk_gl_get_proc_address ("glMultiTexCoord1sEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1sEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord1sEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord1sEXT);
+}
+
+/* glMultiTexCoord1svEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1svEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord1svEXT == (GdkGLProc_glMultiTexCoord1svEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord1svEXT =
+ (GdkGLProc_glMultiTexCoord1svEXT) gdk_gl_get_proc_address ("glMultiTexCoord1svEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1svEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord1svEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord1svEXT);
+}
+
+/* glMultiTexCoord2dEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2dEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord2dEXT == (GdkGLProc_glMultiTexCoord2dEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord2dEXT =
+ (GdkGLProc_glMultiTexCoord2dEXT) gdk_gl_get_proc_address ("glMultiTexCoord2dEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2dEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord2dEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord2dEXT);
+}
+
+/* glMultiTexCoord2dvEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2dvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord2dvEXT == (GdkGLProc_glMultiTexCoord2dvEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord2dvEXT =
+ (GdkGLProc_glMultiTexCoord2dvEXT) gdk_gl_get_proc_address ("glMultiTexCoord2dvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2dvEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord2dvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord2dvEXT);
+}
+
+/* glMultiTexCoord2fEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2fEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord2fEXT == (GdkGLProc_glMultiTexCoord2fEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord2fEXT =
+ (GdkGLProc_glMultiTexCoord2fEXT) gdk_gl_get_proc_address ("glMultiTexCoord2fEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2fEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord2fEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord2fEXT);
+}
+
+/* glMultiTexCoord2fvEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2fvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord2fvEXT == (GdkGLProc_glMultiTexCoord2fvEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord2fvEXT =
+ (GdkGLProc_glMultiTexCoord2fvEXT) gdk_gl_get_proc_address ("glMultiTexCoord2fvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2fvEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord2fvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord2fvEXT);
+}
+
+/* glMultiTexCoord2iEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2iEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord2iEXT == (GdkGLProc_glMultiTexCoord2iEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord2iEXT =
+ (GdkGLProc_glMultiTexCoord2iEXT) gdk_gl_get_proc_address ("glMultiTexCoord2iEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2iEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord2iEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord2iEXT);
+}
+
+/* glMultiTexCoord2ivEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2ivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord2ivEXT == (GdkGLProc_glMultiTexCoord2ivEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord2ivEXT =
+ (GdkGLProc_glMultiTexCoord2ivEXT) gdk_gl_get_proc_address ("glMultiTexCoord2ivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2ivEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord2ivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord2ivEXT);
+}
+
+/* glMultiTexCoord2sEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2sEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord2sEXT == (GdkGLProc_glMultiTexCoord2sEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord2sEXT =
+ (GdkGLProc_glMultiTexCoord2sEXT) gdk_gl_get_proc_address ("glMultiTexCoord2sEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2sEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord2sEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord2sEXT);
+}
+
+/* glMultiTexCoord2svEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2svEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord2svEXT == (GdkGLProc_glMultiTexCoord2svEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord2svEXT =
+ (GdkGLProc_glMultiTexCoord2svEXT) gdk_gl_get_proc_address ("glMultiTexCoord2svEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2svEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord2svEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord2svEXT);
+}
+
+/* glMultiTexCoord3dEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3dEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord3dEXT == (GdkGLProc_glMultiTexCoord3dEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord3dEXT =
+ (GdkGLProc_glMultiTexCoord3dEXT) gdk_gl_get_proc_address ("glMultiTexCoord3dEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3dEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord3dEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord3dEXT);
+}
+
+/* glMultiTexCoord3dvEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3dvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord3dvEXT == (GdkGLProc_glMultiTexCoord3dvEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord3dvEXT =
+ (GdkGLProc_glMultiTexCoord3dvEXT) gdk_gl_get_proc_address ("glMultiTexCoord3dvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3dvEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord3dvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord3dvEXT);
+}
+
+/* glMultiTexCoord3fEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3fEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord3fEXT == (GdkGLProc_glMultiTexCoord3fEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord3fEXT =
+ (GdkGLProc_glMultiTexCoord3fEXT) gdk_gl_get_proc_address ("glMultiTexCoord3fEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3fEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord3fEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord3fEXT);
+}
+
+/* glMultiTexCoord3fvEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3fvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord3fvEXT == (GdkGLProc_glMultiTexCoord3fvEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord3fvEXT =
+ (GdkGLProc_glMultiTexCoord3fvEXT) gdk_gl_get_proc_address ("glMultiTexCoord3fvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3fvEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord3fvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord3fvEXT);
+}
+
+/* glMultiTexCoord3iEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3iEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord3iEXT == (GdkGLProc_glMultiTexCoord3iEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord3iEXT =
+ (GdkGLProc_glMultiTexCoord3iEXT) gdk_gl_get_proc_address ("glMultiTexCoord3iEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3iEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord3iEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord3iEXT);
+}
+
+/* glMultiTexCoord3ivEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3ivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord3ivEXT == (GdkGLProc_glMultiTexCoord3ivEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord3ivEXT =
+ (GdkGLProc_glMultiTexCoord3ivEXT) gdk_gl_get_proc_address ("glMultiTexCoord3ivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3ivEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord3ivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord3ivEXT);
+}
+
+/* glMultiTexCoord3sEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3sEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord3sEXT == (GdkGLProc_glMultiTexCoord3sEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord3sEXT =
+ (GdkGLProc_glMultiTexCoord3sEXT) gdk_gl_get_proc_address ("glMultiTexCoord3sEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3sEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord3sEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord3sEXT);
+}
+
+/* glMultiTexCoord3svEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3svEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord3svEXT == (GdkGLProc_glMultiTexCoord3svEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord3svEXT =
+ (GdkGLProc_glMultiTexCoord3svEXT) gdk_gl_get_proc_address ("glMultiTexCoord3svEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3svEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord3svEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord3svEXT);
+}
+
+/* glMultiTexCoord4dEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4dEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord4dEXT == (GdkGLProc_glMultiTexCoord4dEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord4dEXT =
+ (GdkGLProc_glMultiTexCoord4dEXT) gdk_gl_get_proc_address ("glMultiTexCoord4dEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4dEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord4dEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord4dEXT);
+}
+
+/* glMultiTexCoord4dvEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4dvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord4dvEXT == (GdkGLProc_glMultiTexCoord4dvEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord4dvEXT =
+ (GdkGLProc_glMultiTexCoord4dvEXT) gdk_gl_get_proc_address ("glMultiTexCoord4dvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4dvEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord4dvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord4dvEXT);
+}
+
+/* glMultiTexCoord4fEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4fEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord4fEXT == (GdkGLProc_glMultiTexCoord4fEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord4fEXT =
+ (GdkGLProc_glMultiTexCoord4fEXT) gdk_gl_get_proc_address ("glMultiTexCoord4fEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4fEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord4fEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord4fEXT);
+}
+
+/* glMultiTexCoord4fvEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4fvEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord4fvEXT == (GdkGLProc_glMultiTexCoord4fvEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord4fvEXT =
+ (GdkGLProc_glMultiTexCoord4fvEXT) gdk_gl_get_proc_address ("glMultiTexCoord4fvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4fvEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord4fvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord4fvEXT);
+}
+
+/* glMultiTexCoord4iEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4iEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord4iEXT == (GdkGLProc_glMultiTexCoord4iEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord4iEXT =
+ (GdkGLProc_glMultiTexCoord4iEXT) gdk_gl_get_proc_address ("glMultiTexCoord4iEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4iEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord4iEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord4iEXT);
+}
+
+/* glMultiTexCoord4ivEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4ivEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord4ivEXT == (GdkGLProc_glMultiTexCoord4ivEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord4ivEXT =
+ (GdkGLProc_glMultiTexCoord4ivEXT) gdk_gl_get_proc_address ("glMultiTexCoord4ivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4ivEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord4ivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord4ivEXT);
+}
+
+/* glMultiTexCoord4sEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4sEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord4sEXT == (GdkGLProc_glMultiTexCoord4sEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord4sEXT =
+ (GdkGLProc_glMultiTexCoord4sEXT) gdk_gl_get_proc_address ("glMultiTexCoord4sEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4sEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord4sEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord4sEXT);
+}
+
+/* glMultiTexCoord4svEXT */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4svEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glMultiTexCoord4svEXT == (GdkGLProc_glMultiTexCoord4svEXT) -1)
+ _procs_GL_EXT_multitexture.glMultiTexCoord4svEXT =
+ (GdkGLProc_glMultiTexCoord4svEXT) gdk_gl_get_proc_address ("glMultiTexCoord4svEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4svEXT () - %s",
+ (_procs_GL_EXT_multitexture.glMultiTexCoord4svEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glMultiTexCoord4svEXT);
+}
+
+/* glInterleavedTextureCoordSetsEXT */
+GdkGLProc
+gdk_gl_get_glInterleavedTextureCoordSetsEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glInterleavedTextureCoordSetsEXT == (GdkGLProc_glInterleavedTextureCoordSetsEXT) -1)
+ _procs_GL_EXT_multitexture.glInterleavedTextureCoordSetsEXT =
+ (GdkGLProc_glInterleavedTextureCoordSetsEXT) gdk_gl_get_proc_address ("glInterleavedTextureCoordSetsEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glInterleavedTextureCoordSetsEXT () - %s",
+ (_procs_GL_EXT_multitexture.glInterleavedTextureCoordSetsEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glInterleavedTextureCoordSetsEXT);
+}
+
+/* glSelectTextureEXT */
+GdkGLProc
+gdk_gl_get_glSelectTextureEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glSelectTextureEXT == (GdkGLProc_glSelectTextureEXT) -1)
+ _procs_GL_EXT_multitexture.glSelectTextureEXT =
+ (GdkGLProc_glSelectTextureEXT) gdk_gl_get_proc_address ("glSelectTextureEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSelectTextureEXT () - %s",
+ (_procs_GL_EXT_multitexture.glSelectTextureEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glSelectTextureEXT);
+}
+
+/* glSelectTextureCoordSetEXT */
+GdkGLProc
+gdk_gl_get_glSelectTextureCoordSetEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glSelectTextureCoordSetEXT == (GdkGLProc_glSelectTextureCoordSetEXT) -1)
+ _procs_GL_EXT_multitexture.glSelectTextureCoordSetEXT =
+ (GdkGLProc_glSelectTextureCoordSetEXT) gdk_gl_get_proc_address ("glSelectTextureCoordSetEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSelectTextureCoordSetEXT () - %s",
+ (_procs_GL_EXT_multitexture.glSelectTextureCoordSetEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glSelectTextureCoordSetEXT);
+}
+
+/* glSelectTextureTransformEXT */
+GdkGLProc
+gdk_gl_get_glSelectTextureTransformEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_multitexture.glSelectTextureTransformEXT == (GdkGLProc_glSelectTextureTransformEXT) -1)
+ _procs_GL_EXT_multitexture.glSelectTextureTransformEXT =
+ (GdkGLProc_glSelectTextureTransformEXT) gdk_gl_get_proc_address ("glSelectTextureTransformEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSelectTextureTransformEXT () - %s",
+ (_procs_GL_EXT_multitexture.glSelectTextureTransformEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_multitexture.glSelectTextureTransformEXT);
+}
+
+/* Get GL_EXT_multitexture functions */
+GdkGL_GL_EXT_multitexture *
+gdk_gl_get_GL_EXT_multitexture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_multitexture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glMultiTexCoord1dEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1dvEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1fEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1fvEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1iEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1ivEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1sEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1svEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2dEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2dvEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2fEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2fvEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2iEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2ivEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2sEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2svEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3dEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3dvEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3fEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3fvEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3iEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3ivEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3sEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3svEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4dEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4dvEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4fEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4fvEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4iEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4ivEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4sEXT () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4svEXT () != NULL);
+ supported &= (gdk_gl_get_glInterleavedTextureCoordSetsEXT () != NULL);
+ supported &= (gdk_gl_get_glSelectTextureEXT () != NULL);
+ supported &= (gdk_gl_get_glSelectTextureCoordSetEXT () != NULL);
+ supported &= (gdk_gl_get_glSelectTextureTransformEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_multitexture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_multitexture;
+}
+
+/*
+ * GL_EXT_scene_marker
+ */
+
+static GdkGL_GL_EXT_scene_marker _procs_GL_EXT_scene_marker = {
+ (GdkGLProc_glBeginSceneEXT) -1,
+ (GdkGLProc_glEndSceneEXT) -1
+};
+
+/* glBeginSceneEXT */
+GdkGLProc
+gdk_gl_get_glBeginSceneEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_scene_marker.glBeginSceneEXT == (GdkGLProc_glBeginSceneEXT) -1)
+ _procs_GL_EXT_scene_marker.glBeginSceneEXT =
+ (GdkGLProc_glBeginSceneEXT) gdk_gl_get_proc_address ("glBeginSceneEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBeginSceneEXT () - %s",
+ (_procs_GL_EXT_scene_marker.glBeginSceneEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_scene_marker.glBeginSceneEXT);
+}
+
+/* glEndSceneEXT */
+GdkGLProc
+gdk_gl_get_glEndSceneEXT (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_EXT_scene_marker.glEndSceneEXT == (GdkGLProc_glEndSceneEXT) -1)
+ _procs_GL_EXT_scene_marker.glEndSceneEXT =
+ (GdkGLProc_glEndSceneEXT) gdk_gl_get_proc_address ("glEndSceneEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glEndSceneEXT () - %s",
+ (_procs_GL_EXT_scene_marker.glEndSceneEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_EXT_scene_marker.glEndSceneEXT);
+}
+
+/* Get GL_EXT_scene_marker functions */
+GdkGL_GL_EXT_scene_marker *
+gdk_gl_get_GL_EXT_scene_marker (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_EXT_scene_marker");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glBeginSceneEXT () != NULL);
+ supported &= (gdk_gl_get_glEndSceneEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_EXT_scene_marker () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_EXT_scene_marker;
+}
+
+/*
+ * GL_IBM_static_data
+ */
+
+static GdkGL_GL_IBM_static_data _procs_GL_IBM_static_data = {
+ (GdkGLProc_glFlushStaticDataIBM) -1
+};
+
+/* glFlushStaticDataIBM */
+GdkGLProc
+gdk_gl_get_glFlushStaticDataIBM (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_IBM_static_data.glFlushStaticDataIBM == (GdkGLProc_glFlushStaticDataIBM) -1)
+ _procs_GL_IBM_static_data.glFlushStaticDataIBM =
+ (GdkGLProc_glFlushStaticDataIBM) gdk_gl_get_proc_address ("glFlushStaticDataIBM");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glFlushStaticDataIBM () - %s",
+ (_procs_GL_IBM_static_data.glFlushStaticDataIBM) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_IBM_static_data.glFlushStaticDataIBM);
+}
+
+/* Get GL_IBM_static_data functions */
+GdkGL_GL_IBM_static_data *
+gdk_gl_get_GL_IBM_static_data (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_IBM_static_data");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glFlushStaticDataIBM () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_IBM_static_data () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_IBM_static_data;
+}
+
+/*
+ * GL_KTX_buffer_region
+ */
+
+static GdkGL_GL_KTX_buffer_region _procs_GL_KTX_buffer_region = {
+ (GdkGLProc_glBufferRegionEnabled) -1,
+ (GdkGLProc_glNewBufferRegion) -1,
+ (GdkGLProc_glDeleteBufferRegion) -1,
+ (GdkGLProc_glReadBufferRegion) -1,
+ (GdkGLProc_glDrawBufferRegion) -1
+};
+
+/* glBufferRegionEnabled */
+GdkGLProc
+gdk_gl_get_glBufferRegionEnabled (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_KTX_buffer_region.glBufferRegionEnabled == (GdkGLProc_glBufferRegionEnabled) -1)
+ _procs_GL_KTX_buffer_region.glBufferRegionEnabled =
+ (GdkGLProc_glBufferRegionEnabled) gdk_gl_get_proc_address ("glBufferRegionEnabled");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glBufferRegionEnabled () - %s",
+ (_procs_GL_KTX_buffer_region.glBufferRegionEnabled) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_KTX_buffer_region.glBufferRegionEnabled);
+}
+
+/* glNewBufferRegion */
+GdkGLProc
+gdk_gl_get_glNewBufferRegion (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_KTX_buffer_region.glNewBufferRegion == (GdkGLProc_glNewBufferRegion) -1)
+ _procs_GL_KTX_buffer_region.glNewBufferRegion =
+ (GdkGLProc_glNewBufferRegion) gdk_gl_get_proc_address ("glNewBufferRegion");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glNewBufferRegion () - %s",
+ (_procs_GL_KTX_buffer_region.glNewBufferRegion) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_KTX_buffer_region.glNewBufferRegion);
+}
+
+/* glDeleteBufferRegion */
+GdkGLProc
+gdk_gl_get_glDeleteBufferRegion (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_KTX_buffer_region.glDeleteBufferRegion == (GdkGLProc_glDeleteBufferRegion) -1)
+ _procs_GL_KTX_buffer_region.glDeleteBufferRegion =
+ (GdkGLProc_glDeleteBufferRegion) gdk_gl_get_proc_address ("glDeleteBufferRegion");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDeleteBufferRegion () - %s",
+ (_procs_GL_KTX_buffer_region.glDeleteBufferRegion) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_KTX_buffer_region.glDeleteBufferRegion);
+}
+
+/* glReadBufferRegion */
+GdkGLProc
+gdk_gl_get_glReadBufferRegion (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_KTX_buffer_region.glReadBufferRegion == (GdkGLProc_glReadBufferRegion) -1)
+ _procs_GL_KTX_buffer_region.glReadBufferRegion =
+ (GdkGLProc_glReadBufferRegion) gdk_gl_get_proc_address ("glReadBufferRegion");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glReadBufferRegion () - %s",
+ (_procs_GL_KTX_buffer_region.glReadBufferRegion) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_KTX_buffer_region.glReadBufferRegion);
+}
+
+/* glDrawBufferRegion */
+GdkGLProc
+gdk_gl_get_glDrawBufferRegion (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_KTX_buffer_region.glDrawBufferRegion == (GdkGLProc_glDrawBufferRegion) -1)
+ _procs_GL_KTX_buffer_region.glDrawBufferRegion =
+ (GdkGLProc_glDrawBufferRegion) gdk_gl_get_proc_address ("glDrawBufferRegion");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawBufferRegion () - %s",
+ (_procs_GL_KTX_buffer_region.glDrawBufferRegion) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_KTX_buffer_region.glDrawBufferRegion);
+}
+
+/* Get GL_KTX_buffer_region functions */
+GdkGL_GL_KTX_buffer_region *
+gdk_gl_get_GL_KTX_buffer_region (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_KTX_buffer_region");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glBufferRegionEnabled () != NULL);
+ supported &= (gdk_gl_get_glNewBufferRegion () != NULL);
+ supported &= (gdk_gl_get_glDeleteBufferRegion () != NULL);
+ supported &= (gdk_gl_get_glReadBufferRegion () != NULL);
+ supported &= (gdk_gl_get_glDrawBufferRegion () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_KTX_buffer_region () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_KTX_buffer_region;
+}
+
+/*
+ * GL_NV_element_array
+ */
+
+static GdkGL_GL_NV_element_array _procs_GL_NV_element_array = {
+ (GdkGLProc_glElementPointerNV) -1,
+ (GdkGLProc_glDrawElementArrayNV) -1,
+ (GdkGLProc_glDrawRangeElementArrayNV) -1,
+ (GdkGLProc_glMultiDrawElementArrayNV) -1,
+ (GdkGLProc_glMultiDrawRangeElementArrayNV) -1
+};
+
+/* glElementPointerNV */
+GdkGLProc
+gdk_gl_get_glElementPointerNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_element_array.glElementPointerNV == (GdkGLProc_glElementPointerNV) -1)
+ _procs_GL_NV_element_array.glElementPointerNV =
+ (GdkGLProc_glElementPointerNV) gdk_gl_get_proc_address ("glElementPointerNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glElementPointerNV () - %s",
+ (_procs_GL_NV_element_array.glElementPointerNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_element_array.glElementPointerNV);
+}
+
+/* glDrawElementArrayNV */
+GdkGLProc
+gdk_gl_get_glDrawElementArrayNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_element_array.glDrawElementArrayNV == (GdkGLProc_glDrawElementArrayNV) -1)
+ _procs_GL_NV_element_array.glDrawElementArrayNV =
+ (GdkGLProc_glDrawElementArrayNV) gdk_gl_get_proc_address ("glDrawElementArrayNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawElementArrayNV () - %s",
+ (_procs_GL_NV_element_array.glDrawElementArrayNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_element_array.glDrawElementArrayNV);
+}
+
+/* glDrawRangeElementArrayNV */
+GdkGLProc
+gdk_gl_get_glDrawRangeElementArrayNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_element_array.glDrawRangeElementArrayNV == (GdkGLProc_glDrawRangeElementArrayNV) -1)
+ _procs_GL_NV_element_array.glDrawRangeElementArrayNV =
+ (GdkGLProc_glDrawRangeElementArrayNV) gdk_gl_get_proc_address ("glDrawRangeElementArrayNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glDrawRangeElementArrayNV () - %s",
+ (_procs_GL_NV_element_array.glDrawRangeElementArrayNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_element_array.glDrawRangeElementArrayNV);
+}
+
+/* glMultiDrawElementArrayNV */
+GdkGLProc
+gdk_gl_get_glMultiDrawElementArrayNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_element_array.glMultiDrawElementArrayNV == (GdkGLProc_glMultiDrawElementArrayNV) -1)
+ _procs_GL_NV_element_array.glMultiDrawElementArrayNV =
+ (GdkGLProc_glMultiDrawElementArrayNV) gdk_gl_get_proc_address ("glMultiDrawElementArrayNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiDrawElementArrayNV () - %s",
+ (_procs_GL_NV_element_array.glMultiDrawElementArrayNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_element_array.glMultiDrawElementArrayNV);
+}
+
+/* glMultiDrawRangeElementArrayNV */
+GdkGLProc
+gdk_gl_get_glMultiDrawRangeElementArrayNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_element_array.glMultiDrawRangeElementArrayNV == (GdkGLProc_glMultiDrawRangeElementArrayNV) -1)
+ _procs_GL_NV_element_array.glMultiDrawRangeElementArrayNV =
+ (GdkGLProc_glMultiDrawRangeElementArrayNV) gdk_gl_get_proc_address ("glMultiDrawRangeElementArrayNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiDrawRangeElementArrayNV () - %s",
+ (_procs_GL_NV_element_array.glMultiDrawRangeElementArrayNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_element_array.glMultiDrawRangeElementArrayNV);
+}
+
+/* Get GL_NV_element_array functions */
+GdkGL_GL_NV_element_array *
+gdk_gl_get_GL_NV_element_array (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_element_array");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glElementPointerNV () != NULL);
+ supported &= (gdk_gl_get_glDrawElementArrayNV () != NULL);
+ supported &= (gdk_gl_get_glDrawRangeElementArrayNV () != NULL);
+ supported &= (gdk_gl_get_glMultiDrawElementArrayNV () != NULL);
+ supported &= (gdk_gl_get_glMultiDrawRangeElementArrayNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_element_array () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_element_array;
+}
+
+/*
+ * GL_NV_stencil_two_side
+ */
+
+static GdkGL_GL_NV_stencil_two_side _procs_GL_NV_stencil_two_side = {
+ (GdkGLProc_glActiveStencilFaceNV) -1
+};
+
+/* glActiveStencilFaceNV */
+GdkGLProc
+gdk_gl_get_glActiveStencilFaceNV (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_NV_stencil_two_side.glActiveStencilFaceNV == (GdkGLProc_glActiveStencilFaceNV) -1)
+ _procs_GL_NV_stencil_two_side.glActiveStencilFaceNV =
+ (GdkGLProc_glActiveStencilFaceNV) gdk_gl_get_proc_address ("glActiveStencilFaceNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glActiveStencilFaceNV () - %s",
+ (_procs_GL_NV_stencil_two_side.glActiveStencilFaceNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_NV_stencil_two_side.glActiveStencilFaceNV);
+}
+
+/* Get GL_NV_stencil_two_side functions */
+GdkGL_GL_NV_stencil_two_side *
+gdk_gl_get_GL_NV_stencil_two_side (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_NV_stencil_two_side");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glActiveStencilFaceNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_NV_stencil_two_side () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_NV_stencil_two_side;
+}
+
+/*
+ * GL_SGIS_multitexture
+ */
+
+static GdkGL_GL_SGIS_multitexture _procs_GL_SGIS_multitexture = {
+ (GdkGLProc_glMultiTexCoord1dSGIS) -1,
+ (GdkGLProc_glMultiTexCoord1dvSGIS) -1,
+ (GdkGLProc_glMultiTexCoord1fSGIS) -1,
+ (GdkGLProc_glMultiTexCoord1fvSGIS) -1,
+ (GdkGLProc_glMultiTexCoord1iSGIS) -1,
+ (GdkGLProc_glMultiTexCoord1ivSGIS) -1,
+ (GdkGLProc_glMultiTexCoord1sSGIS) -1,
+ (GdkGLProc_glMultiTexCoord1svSGIS) -1,
+ (GdkGLProc_glMultiTexCoord2dSGIS) -1,
+ (GdkGLProc_glMultiTexCoord2dvSGIS) -1,
+ (GdkGLProc_glMultiTexCoord2fSGIS) -1,
+ (GdkGLProc_glMultiTexCoord2fvSGIS) -1,
+ (GdkGLProc_glMultiTexCoord2iSGIS) -1,
+ (GdkGLProc_glMultiTexCoord2ivSGIS) -1,
+ (GdkGLProc_glMultiTexCoord2sSGIS) -1,
+ (GdkGLProc_glMultiTexCoord2svSGIS) -1,
+ (GdkGLProc_glMultiTexCoord3dSGIS) -1,
+ (GdkGLProc_glMultiTexCoord3dvSGIS) -1,
+ (GdkGLProc_glMultiTexCoord3fSGIS) -1,
+ (GdkGLProc_glMultiTexCoord3fvSGIS) -1,
+ (GdkGLProc_glMultiTexCoord3iSGIS) -1,
+ (GdkGLProc_glMultiTexCoord3ivSGIS) -1,
+ (GdkGLProc_glMultiTexCoord3sSGIS) -1,
+ (GdkGLProc_glMultiTexCoord3svSGIS) -1,
+ (GdkGLProc_glMultiTexCoord4dSGIS) -1,
+ (GdkGLProc_glMultiTexCoord4dvSGIS) -1,
+ (GdkGLProc_glMultiTexCoord4fSGIS) -1,
+ (GdkGLProc_glMultiTexCoord4fvSGIS) -1,
+ (GdkGLProc_glMultiTexCoord4iSGIS) -1,
+ (GdkGLProc_glMultiTexCoord4ivSGIS) -1,
+ (GdkGLProc_glMultiTexCoord4sSGIS) -1,
+ (GdkGLProc_glMultiTexCoord4svSGIS) -1,
+ (GdkGLProc_glMultiTexCoordPointerSGIS) -1,
+ (GdkGLProc_glSelectTextureSGIS) -1,
+ (GdkGLProc_glSelectTextureCoordSetSGIS) -1
+};
+
+/* glMultiTexCoord1dSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1dSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord1dSGIS == (GdkGLProc_glMultiTexCoord1dSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord1dSGIS =
+ (GdkGLProc_glMultiTexCoord1dSGIS) gdk_gl_get_proc_address ("glMultiTexCoord1dSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1dSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord1dSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord1dSGIS);
+}
+
+/* glMultiTexCoord1dvSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1dvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord1dvSGIS == (GdkGLProc_glMultiTexCoord1dvSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord1dvSGIS =
+ (GdkGLProc_glMultiTexCoord1dvSGIS) gdk_gl_get_proc_address ("glMultiTexCoord1dvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1dvSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord1dvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord1dvSGIS);
+}
+
+/* glMultiTexCoord1fSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1fSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord1fSGIS == (GdkGLProc_glMultiTexCoord1fSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord1fSGIS =
+ (GdkGLProc_glMultiTexCoord1fSGIS) gdk_gl_get_proc_address ("glMultiTexCoord1fSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1fSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord1fSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord1fSGIS);
+}
+
+/* glMultiTexCoord1fvSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1fvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord1fvSGIS == (GdkGLProc_glMultiTexCoord1fvSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord1fvSGIS =
+ (GdkGLProc_glMultiTexCoord1fvSGIS) gdk_gl_get_proc_address ("glMultiTexCoord1fvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1fvSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord1fvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord1fvSGIS);
+}
+
+/* glMultiTexCoord1iSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1iSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord1iSGIS == (GdkGLProc_glMultiTexCoord1iSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord1iSGIS =
+ (GdkGLProc_glMultiTexCoord1iSGIS) gdk_gl_get_proc_address ("glMultiTexCoord1iSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1iSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord1iSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord1iSGIS);
+}
+
+/* glMultiTexCoord1ivSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1ivSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord1ivSGIS == (GdkGLProc_glMultiTexCoord1ivSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord1ivSGIS =
+ (GdkGLProc_glMultiTexCoord1ivSGIS) gdk_gl_get_proc_address ("glMultiTexCoord1ivSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1ivSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord1ivSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord1ivSGIS);
+}
+
+/* glMultiTexCoord1sSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1sSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord1sSGIS == (GdkGLProc_glMultiTexCoord1sSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord1sSGIS =
+ (GdkGLProc_glMultiTexCoord1sSGIS) gdk_gl_get_proc_address ("glMultiTexCoord1sSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1sSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord1sSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord1sSGIS);
+}
+
+/* glMultiTexCoord1svSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord1svSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord1svSGIS == (GdkGLProc_glMultiTexCoord1svSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord1svSGIS =
+ (GdkGLProc_glMultiTexCoord1svSGIS) gdk_gl_get_proc_address ("glMultiTexCoord1svSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord1svSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord1svSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord1svSGIS);
+}
+
+/* glMultiTexCoord2dSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2dSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord2dSGIS == (GdkGLProc_glMultiTexCoord2dSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord2dSGIS =
+ (GdkGLProc_glMultiTexCoord2dSGIS) gdk_gl_get_proc_address ("glMultiTexCoord2dSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2dSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord2dSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord2dSGIS);
+}
+
+/* glMultiTexCoord2dvSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2dvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord2dvSGIS == (GdkGLProc_glMultiTexCoord2dvSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord2dvSGIS =
+ (GdkGLProc_glMultiTexCoord2dvSGIS) gdk_gl_get_proc_address ("glMultiTexCoord2dvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2dvSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord2dvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord2dvSGIS);
+}
+
+/* glMultiTexCoord2fSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2fSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord2fSGIS == (GdkGLProc_glMultiTexCoord2fSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord2fSGIS =
+ (GdkGLProc_glMultiTexCoord2fSGIS) gdk_gl_get_proc_address ("glMultiTexCoord2fSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2fSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord2fSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord2fSGIS);
+}
+
+/* glMultiTexCoord2fvSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2fvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord2fvSGIS == (GdkGLProc_glMultiTexCoord2fvSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord2fvSGIS =
+ (GdkGLProc_glMultiTexCoord2fvSGIS) gdk_gl_get_proc_address ("glMultiTexCoord2fvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2fvSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord2fvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord2fvSGIS);
+}
+
+/* glMultiTexCoord2iSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2iSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord2iSGIS == (GdkGLProc_glMultiTexCoord2iSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord2iSGIS =
+ (GdkGLProc_glMultiTexCoord2iSGIS) gdk_gl_get_proc_address ("glMultiTexCoord2iSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2iSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord2iSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord2iSGIS);
+}
+
+/* glMultiTexCoord2ivSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2ivSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord2ivSGIS == (GdkGLProc_glMultiTexCoord2ivSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord2ivSGIS =
+ (GdkGLProc_glMultiTexCoord2ivSGIS) gdk_gl_get_proc_address ("glMultiTexCoord2ivSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2ivSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord2ivSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord2ivSGIS);
+}
+
+/* glMultiTexCoord2sSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2sSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord2sSGIS == (GdkGLProc_glMultiTexCoord2sSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord2sSGIS =
+ (GdkGLProc_glMultiTexCoord2sSGIS) gdk_gl_get_proc_address ("glMultiTexCoord2sSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2sSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord2sSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord2sSGIS);
+}
+
+/* glMultiTexCoord2svSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord2svSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord2svSGIS == (GdkGLProc_glMultiTexCoord2svSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord2svSGIS =
+ (GdkGLProc_glMultiTexCoord2svSGIS) gdk_gl_get_proc_address ("glMultiTexCoord2svSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord2svSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord2svSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord2svSGIS);
+}
+
+/* glMultiTexCoord3dSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3dSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord3dSGIS == (GdkGLProc_glMultiTexCoord3dSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord3dSGIS =
+ (GdkGLProc_glMultiTexCoord3dSGIS) gdk_gl_get_proc_address ("glMultiTexCoord3dSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3dSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord3dSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord3dSGIS);
+}
+
+/* glMultiTexCoord3dvSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3dvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord3dvSGIS == (GdkGLProc_glMultiTexCoord3dvSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord3dvSGIS =
+ (GdkGLProc_glMultiTexCoord3dvSGIS) gdk_gl_get_proc_address ("glMultiTexCoord3dvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3dvSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord3dvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord3dvSGIS);
+}
+
+/* glMultiTexCoord3fSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3fSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord3fSGIS == (GdkGLProc_glMultiTexCoord3fSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord3fSGIS =
+ (GdkGLProc_glMultiTexCoord3fSGIS) gdk_gl_get_proc_address ("glMultiTexCoord3fSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3fSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord3fSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord3fSGIS);
+}
+
+/* glMultiTexCoord3fvSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3fvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord3fvSGIS == (GdkGLProc_glMultiTexCoord3fvSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord3fvSGIS =
+ (GdkGLProc_glMultiTexCoord3fvSGIS) gdk_gl_get_proc_address ("glMultiTexCoord3fvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3fvSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord3fvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord3fvSGIS);
+}
+
+/* glMultiTexCoord3iSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3iSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord3iSGIS == (GdkGLProc_glMultiTexCoord3iSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord3iSGIS =
+ (GdkGLProc_glMultiTexCoord3iSGIS) gdk_gl_get_proc_address ("glMultiTexCoord3iSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3iSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord3iSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord3iSGIS);
+}
+
+/* glMultiTexCoord3ivSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3ivSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord3ivSGIS == (GdkGLProc_glMultiTexCoord3ivSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord3ivSGIS =
+ (GdkGLProc_glMultiTexCoord3ivSGIS) gdk_gl_get_proc_address ("glMultiTexCoord3ivSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3ivSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord3ivSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord3ivSGIS);
+}
+
+/* glMultiTexCoord3sSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3sSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord3sSGIS == (GdkGLProc_glMultiTexCoord3sSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord3sSGIS =
+ (GdkGLProc_glMultiTexCoord3sSGIS) gdk_gl_get_proc_address ("glMultiTexCoord3sSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3sSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord3sSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord3sSGIS);
+}
+
+/* glMultiTexCoord3svSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord3svSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord3svSGIS == (GdkGLProc_glMultiTexCoord3svSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord3svSGIS =
+ (GdkGLProc_glMultiTexCoord3svSGIS) gdk_gl_get_proc_address ("glMultiTexCoord3svSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord3svSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord3svSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord3svSGIS);
+}
+
+/* glMultiTexCoord4dSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4dSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord4dSGIS == (GdkGLProc_glMultiTexCoord4dSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord4dSGIS =
+ (GdkGLProc_glMultiTexCoord4dSGIS) gdk_gl_get_proc_address ("glMultiTexCoord4dSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4dSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord4dSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord4dSGIS);
+}
+
+/* glMultiTexCoord4dvSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4dvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord4dvSGIS == (GdkGLProc_glMultiTexCoord4dvSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord4dvSGIS =
+ (GdkGLProc_glMultiTexCoord4dvSGIS) gdk_gl_get_proc_address ("glMultiTexCoord4dvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4dvSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord4dvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord4dvSGIS);
+}
+
+/* glMultiTexCoord4fSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4fSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord4fSGIS == (GdkGLProc_glMultiTexCoord4fSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord4fSGIS =
+ (GdkGLProc_glMultiTexCoord4fSGIS) gdk_gl_get_proc_address ("glMultiTexCoord4fSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4fSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord4fSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord4fSGIS);
+}
+
+/* glMultiTexCoord4fvSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4fvSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord4fvSGIS == (GdkGLProc_glMultiTexCoord4fvSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord4fvSGIS =
+ (GdkGLProc_glMultiTexCoord4fvSGIS) gdk_gl_get_proc_address ("glMultiTexCoord4fvSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4fvSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord4fvSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord4fvSGIS);
+}
+
+/* glMultiTexCoord4iSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4iSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord4iSGIS == (GdkGLProc_glMultiTexCoord4iSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord4iSGIS =
+ (GdkGLProc_glMultiTexCoord4iSGIS) gdk_gl_get_proc_address ("glMultiTexCoord4iSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4iSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord4iSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord4iSGIS);
+}
+
+/* glMultiTexCoord4ivSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4ivSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord4ivSGIS == (GdkGLProc_glMultiTexCoord4ivSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord4ivSGIS =
+ (GdkGLProc_glMultiTexCoord4ivSGIS) gdk_gl_get_proc_address ("glMultiTexCoord4ivSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4ivSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord4ivSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord4ivSGIS);
+}
+
+/* glMultiTexCoord4sSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4sSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord4sSGIS == (GdkGLProc_glMultiTexCoord4sSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord4sSGIS =
+ (GdkGLProc_glMultiTexCoord4sSGIS) gdk_gl_get_proc_address ("glMultiTexCoord4sSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4sSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord4sSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord4sSGIS);
+}
+
+/* glMultiTexCoord4svSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoord4svSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoord4svSGIS == (GdkGLProc_glMultiTexCoord4svSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoord4svSGIS =
+ (GdkGLProc_glMultiTexCoord4svSGIS) gdk_gl_get_proc_address ("glMultiTexCoord4svSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoord4svSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoord4svSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoord4svSGIS);
+}
+
+/* glMultiTexCoordPointerSGIS */
+GdkGLProc
+gdk_gl_get_glMultiTexCoordPointerSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glMultiTexCoordPointerSGIS == (GdkGLProc_glMultiTexCoordPointerSGIS) -1)
+ _procs_GL_SGIS_multitexture.glMultiTexCoordPointerSGIS =
+ (GdkGLProc_glMultiTexCoordPointerSGIS) gdk_gl_get_proc_address ("glMultiTexCoordPointerSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiTexCoordPointerSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glMultiTexCoordPointerSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glMultiTexCoordPointerSGIS);
+}
+
+/* glSelectTextureSGIS */
+GdkGLProc
+gdk_gl_get_glSelectTextureSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glSelectTextureSGIS == (GdkGLProc_glSelectTextureSGIS) -1)
+ _procs_GL_SGIS_multitexture.glSelectTextureSGIS =
+ (GdkGLProc_glSelectTextureSGIS) gdk_gl_get_proc_address ("glSelectTextureSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSelectTextureSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glSelectTextureSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glSelectTextureSGIS);
+}
+
+/* glSelectTextureCoordSetSGIS */
+GdkGLProc
+gdk_gl_get_glSelectTextureCoordSetSGIS (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIS_multitexture.glSelectTextureCoordSetSGIS == (GdkGLProc_glSelectTextureCoordSetSGIS) -1)
+ _procs_GL_SGIS_multitexture.glSelectTextureCoordSetSGIS =
+ (GdkGLProc_glSelectTextureCoordSetSGIS) gdk_gl_get_proc_address ("glSelectTextureCoordSetSGIS");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glSelectTextureCoordSetSGIS () - %s",
+ (_procs_GL_SGIS_multitexture.glSelectTextureCoordSetSGIS) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIS_multitexture.glSelectTextureCoordSetSGIS);
+}
+
+/* Get GL_SGIS_multitexture functions */
+GdkGL_GL_SGIS_multitexture *
+gdk_gl_get_GL_SGIS_multitexture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIS_multitexture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glMultiTexCoord1dSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1dvSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1fSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1fvSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1iSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1ivSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1sSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord1svSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2dSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2dvSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2fSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2fvSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2iSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2ivSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2sSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord2svSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3dSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3dvSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3fSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3fvSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3iSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3ivSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3sSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord3svSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4dSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4dvSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4fSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4fvSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4iSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4ivSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4sSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoord4svSGIS () != NULL);
+ supported &= (gdk_gl_get_glMultiTexCoordPointerSGIS () != NULL);
+ supported &= (gdk_gl_get_glSelectTextureSGIS () != NULL);
+ supported &= (gdk_gl_get_glSelectTextureCoordSetSGIS () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIS_multitexture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIS_multitexture;
+}
+
+/*
+ * GL_SGIX_fog_texture
+ */
+
+static GdkGL_GL_SGIX_fog_texture _procs_GL_SGIX_fog_texture = {
+ (GdkGLProc_glTextureFogSGIX) -1
+};
+
+/* glTextureFogSGIX */
+GdkGLProc
+gdk_gl_get_glTextureFogSGIX (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SGIX_fog_texture.glTextureFogSGIX == (GdkGLProc_glTextureFogSGIX) -1)
+ _procs_GL_SGIX_fog_texture.glTextureFogSGIX =
+ (GdkGLProc_glTextureFogSGIX) gdk_gl_get_proc_address ("glTextureFogSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glTextureFogSGIX () - %s",
+ (_procs_GL_SGIX_fog_texture.glTextureFogSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SGIX_fog_texture.glTextureFogSGIX);
+}
+
+/* Get GL_SGIX_fog_texture functions */
+GdkGL_GL_SGIX_fog_texture *
+gdk_gl_get_GL_SGIX_fog_texture (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SGIX_fog_texture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glTextureFogSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SGIX_fog_texture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SGIX_fog_texture;
+}
+
+/*
+ * GL_SUN_multi_draw_arrays
+ */
+
+static GdkGL_GL_SUN_multi_draw_arrays _procs_GL_SUN_multi_draw_arrays = {
+ (GdkGLProc_glMultiDrawArraysSUN) -1,
+ (GdkGLProc_glMultiDrawElementsSUN) -1
+};
+
+/* glMultiDrawArraysSUN */
+GdkGLProc
+gdk_gl_get_glMultiDrawArraysSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_multi_draw_arrays.glMultiDrawArraysSUN == (GdkGLProc_glMultiDrawArraysSUN) -1)
+ _procs_GL_SUN_multi_draw_arrays.glMultiDrawArraysSUN =
+ (GdkGLProc_glMultiDrawArraysSUN) gdk_gl_get_proc_address ("glMultiDrawArraysSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiDrawArraysSUN () - %s",
+ (_procs_GL_SUN_multi_draw_arrays.glMultiDrawArraysSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_multi_draw_arrays.glMultiDrawArraysSUN);
+}
+
+/* glMultiDrawElementsSUN */
+GdkGLProc
+gdk_gl_get_glMultiDrawElementsSUN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_SUN_multi_draw_arrays.glMultiDrawElementsSUN == (GdkGLProc_glMultiDrawElementsSUN) -1)
+ _procs_GL_SUN_multi_draw_arrays.glMultiDrawElementsSUN =
+ (GdkGLProc_glMultiDrawElementsSUN) gdk_gl_get_proc_address ("glMultiDrawElementsSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glMultiDrawElementsSUN () - %s",
+ (_procs_GL_SUN_multi_draw_arrays.glMultiDrawElementsSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_SUN_multi_draw_arrays.glMultiDrawElementsSUN);
+}
+
+/* Get GL_SUN_multi_draw_arrays functions */
+GdkGL_GL_SUN_multi_draw_arrays *
+gdk_gl_get_GL_SUN_multi_draw_arrays (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_SUN_multi_draw_arrays");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glMultiDrawArraysSUN () != NULL);
+ supported &= (gdk_gl_get_glMultiDrawElementsSUN () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_SUN_multi_draw_arrays () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_SUN_multi_draw_arrays;
+}
+
+/*
+ * GL_WIN_swap_hint
+ */
+
+static GdkGL_GL_WIN_swap_hint _procs_GL_WIN_swap_hint = {
+ (GdkGLProc_glAddSwapHintRectWIN) -1
+};
+
+/* glAddSwapHintRectWIN */
+GdkGLProc
+gdk_gl_get_glAddSwapHintRectWIN (void)
+{
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (_procs_GL_WIN_swap_hint.glAddSwapHintRectWIN == (GdkGLProc_glAddSwapHintRectWIN) -1)
+ _procs_GL_WIN_swap_hint.glAddSwapHintRectWIN =
+ (GdkGLProc_glAddSwapHintRectWIN) gdk_gl_get_proc_address ("glAddSwapHintRectWIN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glAddSwapHintRectWIN () - %s",
+ (_procs_GL_WIN_swap_hint.glAddSwapHintRectWIN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GL_WIN_swap_hint.glAddSwapHintRectWIN);
+}
+
+/* Get GL_WIN_swap_hint functions */
+GdkGL_GL_WIN_swap_hint *
+gdk_gl_get_GL_WIN_swap_hint (void)
+{
+ static gint supported = -1;
+
+ if (gdk_gl_context_get_current () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_gl_query_gl_extension ("GL_WIN_swap_hint");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glAddSwapHintRectWIN () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GL_WIN_swap_hint () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GL_WIN_swap_hint;
+}
+
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.h
new file mode 100644
index 00000000..de569e60
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.h
@@ -0,0 +1,9018 @@
+/* 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-gdkglglext-h.pl".
+ */
+
+#ifndef __GDK_GL_GLEXT_H__
+#define __GDK_GL_GLEXT_H__
+
+#include <glib.h>
+
+#ifdef G_OS_WIN32
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#include <GL/gl.h>
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkglquery.h>
+
+G_BEGIN_DECLS
+
+#ifndef HAVE_GLHALFNV
+#if defined(GL_NV_half_float) && defined(GDKGLEXT_NEED_GLHALFNV_TYPEDEF)
+typedef unsigned short GLhalfNV;
+#endif
+#endif
+
+/* Avoid old glext.h bug. */
+#if !defined(GL_SGIS_point_parameters) && defined(GL_POINT_SIZE_MIN_SGIS)
+#define GL_SGIS_point_parameters 1
+#endif
+
+#undef __glext_h_
+#undef GL_GLEXT_VERSION
+#include <gdk/glext/glext.h>
+#include <gdk/glext/glext-extra.h>
+
+/*
+ * GL_VERSION_1_2
+ */
+
+/* glBlendColor */
+typedef void (APIENTRY * GdkGLProc_glBlendColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+GdkGLProc gdk_gl_get_glBlendColor (void);
+#define gdk_gl_glBlendColor(proc, red, green, blue, alpha) \
+ ( ((GdkGLProc_glBlendColor) (proc)) (red, green, blue, alpha) )
+
+/* glBlendEquation */
+typedef void (APIENTRY * GdkGLProc_glBlendEquation) (GLenum mode);
+GdkGLProc gdk_gl_get_glBlendEquation (void);
+#define gdk_gl_glBlendEquation(proc, mode) \
+ ( ((GdkGLProc_glBlendEquation) (proc)) (mode) )
+
+/* glDrawRangeElements */
+typedef void (APIENTRY * GdkGLProc_glDrawRangeElements) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
+GdkGLProc gdk_gl_get_glDrawRangeElements (void);
+#define gdk_gl_glDrawRangeElements(proc, mode, start, end, count, type, indices) \
+ ( ((GdkGLProc_glDrawRangeElements) (proc)) (mode, start, end, count, type, indices) )
+
+/* glColorTable */
+typedef void (APIENTRY * GdkGLProc_glColorTable) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+GdkGLProc gdk_gl_get_glColorTable (void);
+#define gdk_gl_glColorTable(proc, target, internalformat, width, format, type, table) \
+ ( ((GdkGLProc_glColorTable) (proc)) (target, internalformat, width, format, type, table) )
+
+/* glColorTableParameterfv */
+typedef void (APIENTRY * GdkGLProc_glColorTableParameterfv) (GLenum target, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glColorTableParameterfv (void);
+#define gdk_gl_glColorTableParameterfv(proc, target, pname, params) \
+ ( ((GdkGLProc_glColorTableParameterfv) (proc)) (target, pname, params) )
+
+/* glColorTableParameteriv */
+typedef void (APIENTRY * GdkGLProc_glColorTableParameteriv) (GLenum target, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glColorTableParameteriv (void);
+#define gdk_gl_glColorTableParameteriv(proc, target, pname, params) \
+ ( ((GdkGLProc_glColorTableParameteriv) (proc)) (target, pname, params) )
+
+/* glCopyColorTable */
+typedef void (APIENTRY * GdkGLProc_glCopyColorTable) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+GdkGLProc gdk_gl_get_glCopyColorTable (void);
+#define gdk_gl_glCopyColorTable(proc, target, internalformat, x, y, width) \
+ ( ((GdkGLProc_glCopyColorTable) (proc)) (target, internalformat, x, y, width) )
+
+/* glGetColorTable */
+typedef void (APIENTRY * GdkGLProc_glGetColorTable) (GLenum target, GLenum format, GLenum type, GLvoid *table);
+GdkGLProc gdk_gl_get_glGetColorTable (void);
+#define gdk_gl_glGetColorTable(proc, target, format, type, table) \
+ ( ((GdkGLProc_glGetColorTable) (proc)) (target, format, type, table) )
+
+/* glGetColorTableParameterfv */
+typedef void (APIENTRY * GdkGLProc_glGetColorTableParameterfv) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetColorTableParameterfv (void);
+#define gdk_gl_glGetColorTableParameterfv(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetColorTableParameterfv) (proc)) (target, pname, params) )
+
+/* glGetColorTableParameteriv */
+typedef void (APIENTRY * GdkGLProc_glGetColorTableParameteriv) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetColorTableParameteriv (void);
+#define gdk_gl_glGetColorTableParameteriv(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetColorTableParameteriv) (proc)) (target, pname, params) )
+
+/* glColorSubTable */
+typedef void (APIENTRY * GdkGLProc_glColorSubTable) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
+GdkGLProc gdk_gl_get_glColorSubTable (void);
+#define gdk_gl_glColorSubTable(proc, target, start, count, format, type, data) \
+ ( ((GdkGLProc_glColorSubTable) (proc)) (target, start, count, format, type, data) )
+
+/* glCopyColorSubTable */
+typedef void (APIENTRY * GdkGLProc_glCopyColorSubTable) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+GdkGLProc gdk_gl_get_glCopyColorSubTable (void);
+#define gdk_gl_glCopyColorSubTable(proc, target, start, x, y, width) \
+ ( ((GdkGLProc_glCopyColorSubTable) (proc)) (target, start, x, y, width) )
+
+/* glConvolutionFilter1D */
+typedef void (APIENTRY * GdkGLProc_glConvolutionFilter1D) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
+GdkGLProc gdk_gl_get_glConvolutionFilter1D (void);
+#define gdk_gl_glConvolutionFilter1D(proc, target, internalformat, width, format, type, image) \
+ ( ((GdkGLProc_glConvolutionFilter1D) (proc)) (target, internalformat, width, format, type, image) )
+
+/* glConvolutionFilter2D */
+typedef void (APIENTRY * GdkGLProc_glConvolutionFilter2D) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
+GdkGLProc gdk_gl_get_glConvolutionFilter2D (void);
+#define gdk_gl_glConvolutionFilter2D(proc, target, internalformat, width, height, format, type, image) \
+ ( ((GdkGLProc_glConvolutionFilter2D) (proc)) (target, internalformat, width, height, format, type, image) )
+
+/* glConvolutionParameterf */
+typedef void (APIENTRY * GdkGLProc_glConvolutionParameterf) (GLenum target, GLenum pname, GLfloat params);
+GdkGLProc gdk_gl_get_glConvolutionParameterf (void);
+#define gdk_gl_glConvolutionParameterf(proc, target, pname, params) \
+ ( ((GdkGLProc_glConvolutionParameterf) (proc)) (target, pname, params) )
+
+/* glConvolutionParameterfv */
+typedef void (APIENTRY * GdkGLProc_glConvolutionParameterfv) (GLenum target, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glConvolutionParameterfv (void);
+#define gdk_gl_glConvolutionParameterfv(proc, target, pname, params) \
+ ( ((GdkGLProc_glConvolutionParameterfv) (proc)) (target, pname, params) )
+
+/* glConvolutionParameteri */
+typedef void (APIENTRY * GdkGLProc_glConvolutionParameteri) (GLenum target, GLenum pname, GLint params);
+GdkGLProc gdk_gl_get_glConvolutionParameteri (void);
+#define gdk_gl_glConvolutionParameteri(proc, target, pname, params) \
+ ( ((GdkGLProc_glConvolutionParameteri) (proc)) (target, pname, params) )
+
+/* glConvolutionParameteriv */
+typedef void (APIENTRY * GdkGLProc_glConvolutionParameteriv) (GLenum target, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glConvolutionParameteriv (void);
+#define gdk_gl_glConvolutionParameteriv(proc, target, pname, params) \
+ ( ((GdkGLProc_glConvolutionParameteriv) (proc)) (target, pname, params) )
+
+/* glCopyConvolutionFilter1D */
+typedef void (APIENTRY * GdkGLProc_glCopyConvolutionFilter1D) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+GdkGLProc gdk_gl_get_glCopyConvolutionFilter1D (void);
+#define gdk_gl_glCopyConvolutionFilter1D(proc, target, internalformat, x, y, width) \
+ ( ((GdkGLProc_glCopyConvolutionFilter1D) (proc)) (target, internalformat, x, y, width) )
+
+/* glCopyConvolutionFilter2D */
+typedef void (APIENTRY * GdkGLProc_glCopyConvolutionFilter2D) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+GdkGLProc gdk_gl_get_glCopyConvolutionFilter2D (void);
+#define gdk_gl_glCopyConvolutionFilter2D(proc, target, internalformat, x, y, width, height) \
+ ( ((GdkGLProc_glCopyConvolutionFilter2D) (proc)) (target, internalformat, x, y, width, height) )
+
+/* glGetConvolutionFilter */
+typedef void (APIENTRY * GdkGLProc_glGetConvolutionFilter) (GLenum target, GLenum format, GLenum type, GLvoid *image);
+GdkGLProc gdk_gl_get_glGetConvolutionFilter (void);
+#define gdk_gl_glGetConvolutionFilter(proc, target, format, type, image) \
+ ( ((GdkGLProc_glGetConvolutionFilter) (proc)) (target, format, type, image) )
+
+/* glGetConvolutionParameterfv */
+typedef void (APIENTRY * GdkGLProc_glGetConvolutionParameterfv) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetConvolutionParameterfv (void);
+#define gdk_gl_glGetConvolutionParameterfv(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetConvolutionParameterfv) (proc)) (target, pname, params) )
+
+/* glGetConvolutionParameteriv */
+typedef void (APIENTRY * GdkGLProc_glGetConvolutionParameteriv) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetConvolutionParameteriv (void);
+#define gdk_gl_glGetConvolutionParameteriv(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetConvolutionParameteriv) (proc)) (target, pname, params) )
+
+/* glGetSeparableFilter */
+typedef void (APIENTRY * GdkGLProc_glGetSeparableFilter) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
+GdkGLProc gdk_gl_get_glGetSeparableFilter (void);
+#define gdk_gl_glGetSeparableFilter(proc, target, format, type, row, column, span) \
+ ( ((GdkGLProc_glGetSeparableFilter) (proc)) (target, format, type, row, column, span) )
+
+/* glSeparableFilter2D */
+typedef void (APIENTRY * GdkGLProc_glSeparableFilter2D) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
+GdkGLProc gdk_gl_get_glSeparableFilter2D (void);
+#define gdk_gl_glSeparableFilter2D(proc, target, internalformat, width, height, format, type, row, column) \
+ ( ((GdkGLProc_glSeparableFilter2D) (proc)) (target, internalformat, width, height, format, type, row, column) )
+
+/* glGetHistogram */
+typedef void (APIENTRY * GdkGLProc_glGetHistogram) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+GdkGLProc gdk_gl_get_glGetHistogram (void);
+#define gdk_gl_glGetHistogram(proc, target, reset, format, type, values) \
+ ( ((GdkGLProc_glGetHistogram) (proc)) (target, reset, format, type, values) )
+
+/* glGetHistogramParameterfv */
+typedef void (APIENTRY * GdkGLProc_glGetHistogramParameterfv) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetHistogramParameterfv (void);
+#define gdk_gl_glGetHistogramParameterfv(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetHistogramParameterfv) (proc)) (target, pname, params) )
+
+/* glGetHistogramParameteriv */
+typedef void (APIENTRY * GdkGLProc_glGetHistogramParameteriv) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetHistogramParameteriv (void);
+#define gdk_gl_glGetHistogramParameteriv(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetHistogramParameteriv) (proc)) (target, pname, params) )
+
+/* glGetMinmax */
+typedef void (APIENTRY * GdkGLProc_glGetMinmax) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+GdkGLProc gdk_gl_get_glGetMinmax (void);
+#define gdk_gl_glGetMinmax(proc, target, reset, format, type, values) \
+ ( ((GdkGLProc_glGetMinmax) (proc)) (target, reset, format, type, values) )
+
+/* glGetMinmaxParameterfv */
+typedef void (APIENTRY * GdkGLProc_glGetMinmaxParameterfv) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetMinmaxParameterfv (void);
+#define gdk_gl_glGetMinmaxParameterfv(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetMinmaxParameterfv) (proc)) (target, pname, params) )
+
+/* glGetMinmaxParameteriv */
+typedef void (APIENTRY * GdkGLProc_glGetMinmaxParameteriv) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetMinmaxParameteriv (void);
+#define gdk_gl_glGetMinmaxParameteriv(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetMinmaxParameteriv) (proc)) (target, pname, params) )
+
+/* glHistogram */
+typedef void (APIENTRY * GdkGLProc_glHistogram) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+GdkGLProc gdk_gl_get_glHistogram (void);
+#define gdk_gl_glHistogram(proc, target, width, internalformat, sink) \
+ ( ((GdkGLProc_glHistogram) (proc)) (target, width, internalformat, sink) )
+
+/* glMinmax */
+typedef void (APIENTRY * GdkGLProc_glMinmax) (GLenum target, GLenum internalformat, GLboolean sink);
+GdkGLProc gdk_gl_get_glMinmax (void);
+#define gdk_gl_glMinmax(proc, target, internalformat, sink) \
+ ( ((GdkGLProc_glMinmax) (proc)) (target, internalformat, sink) )
+
+/* glResetHistogram */
+typedef void (APIENTRY * GdkGLProc_glResetHistogram) (GLenum target);
+GdkGLProc gdk_gl_get_glResetHistogram (void);
+#define gdk_gl_glResetHistogram(proc, target) \
+ ( ((GdkGLProc_glResetHistogram) (proc)) (target) )
+
+/* glResetMinmax */
+typedef void (APIENTRY * GdkGLProc_glResetMinmax) (GLenum target);
+GdkGLProc gdk_gl_get_glResetMinmax (void);
+#define gdk_gl_glResetMinmax(proc, target) \
+ ( ((GdkGLProc_glResetMinmax) (proc)) (target) )
+
+/* glTexImage3D */
+typedef void (APIENTRY * GdkGLProc_glTexImage3D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+GdkGLProc gdk_gl_get_glTexImage3D (void);
+#define gdk_gl_glTexImage3D(proc, target, level, internalformat, width, height, depth, border, format, type, pixels) \
+ ( ((GdkGLProc_glTexImage3D) (proc)) (target, level, internalformat, width, height, depth, border, format, type, pixels) )
+
+/* glTexSubImage3D */
+typedef void (APIENTRY * GdkGLProc_glTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+GdkGLProc gdk_gl_get_glTexSubImage3D (void);
+#define gdk_gl_glTexSubImage3D(proc, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) \
+ ( ((GdkGLProc_glTexSubImage3D) (proc)) (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) )
+
+/* glCopyTexSubImage3D */
+typedef void (APIENTRY * GdkGLProc_glCopyTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+GdkGLProc gdk_gl_get_glCopyTexSubImage3D (void);
+#define gdk_gl_glCopyTexSubImage3D(proc, target, level, xoffset, yoffset, zoffset, x, y, width, height) \
+ ( ((GdkGLProc_glCopyTexSubImage3D) (proc)) (target, level, xoffset, yoffset, zoffset, x, y, width, height) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_VERSION_1_2 GdkGL_GL_VERSION_1_2;
+
+struct _GdkGL_GL_VERSION_1_2
+{
+ GdkGLProc_glBlendColor glBlendColor;
+ GdkGLProc_glBlendEquation glBlendEquation;
+ GdkGLProc_glDrawRangeElements glDrawRangeElements;
+ GdkGLProc_glColorTable glColorTable;
+ GdkGLProc_glColorTableParameterfv glColorTableParameterfv;
+ GdkGLProc_glColorTableParameteriv glColorTableParameteriv;
+ GdkGLProc_glCopyColorTable glCopyColorTable;
+ GdkGLProc_glGetColorTable glGetColorTable;
+ GdkGLProc_glGetColorTableParameterfv glGetColorTableParameterfv;
+ GdkGLProc_glGetColorTableParameteriv glGetColorTableParameteriv;
+ GdkGLProc_glColorSubTable glColorSubTable;
+ GdkGLProc_glCopyColorSubTable glCopyColorSubTable;
+ GdkGLProc_glConvolutionFilter1D glConvolutionFilter1D;
+ GdkGLProc_glConvolutionFilter2D glConvolutionFilter2D;
+ GdkGLProc_glConvolutionParameterf glConvolutionParameterf;
+ GdkGLProc_glConvolutionParameterfv glConvolutionParameterfv;
+ GdkGLProc_glConvolutionParameteri glConvolutionParameteri;
+ GdkGLProc_glConvolutionParameteriv glConvolutionParameteriv;
+ GdkGLProc_glCopyConvolutionFilter1D glCopyConvolutionFilter1D;
+ GdkGLProc_glCopyConvolutionFilter2D glCopyConvolutionFilter2D;
+ GdkGLProc_glGetConvolutionFilter glGetConvolutionFilter;
+ GdkGLProc_glGetConvolutionParameterfv glGetConvolutionParameterfv;
+ GdkGLProc_glGetConvolutionParameteriv glGetConvolutionParameteriv;
+ GdkGLProc_glGetSeparableFilter glGetSeparableFilter;
+ GdkGLProc_glSeparableFilter2D glSeparableFilter2D;
+ GdkGLProc_glGetHistogram glGetHistogram;
+ GdkGLProc_glGetHistogramParameterfv glGetHistogramParameterfv;
+ GdkGLProc_glGetHistogramParameteriv glGetHistogramParameteriv;
+ GdkGLProc_glGetMinmax glGetMinmax;
+ GdkGLProc_glGetMinmaxParameterfv glGetMinmaxParameterfv;
+ GdkGLProc_glGetMinmaxParameteriv glGetMinmaxParameteriv;
+ GdkGLProc_glHistogram glHistogram;
+ GdkGLProc_glMinmax glMinmax;
+ GdkGLProc_glResetHistogram glResetHistogram;
+ GdkGLProc_glResetMinmax glResetMinmax;
+ GdkGLProc_glTexImage3D glTexImage3D;
+ GdkGLProc_glTexSubImage3D glTexSubImage3D;
+ GdkGLProc_glCopyTexSubImage3D glCopyTexSubImage3D;
+};
+
+GdkGL_GL_VERSION_1_2 *gdk_gl_get_GL_VERSION_1_2 (void);
+
+/*
+ * GL_VERSION_1_3
+ */
+
+/* glActiveTexture */
+typedef void (APIENTRY * GdkGLProc_glActiveTexture) (GLenum texture);
+GdkGLProc gdk_gl_get_glActiveTexture (void);
+#define gdk_gl_glActiveTexture(proc, texture) \
+ ( ((GdkGLProc_glActiveTexture) (proc)) (texture) )
+
+/* glClientActiveTexture */
+typedef void (APIENTRY * GdkGLProc_glClientActiveTexture) (GLenum texture);
+GdkGLProc gdk_gl_get_glClientActiveTexture (void);
+#define gdk_gl_glClientActiveTexture(proc, texture) \
+ ( ((GdkGLProc_glClientActiveTexture) (proc)) (texture) )
+
+/* glMultiTexCoord1d */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1d) (GLenum target, GLdouble s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1d (void);
+#define gdk_gl_glMultiTexCoord1d(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1d) (proc)) (target, s) )
+
+/* glMultiTexCoord1dv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1dv) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1dv (void);
+#define gdk_gl_glMultiTexCoord1dv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1dv) (proc)) (target, v) )
+
+/* glMultiTexCoord1f */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1f) (GLenum target, GLfloat s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1f (void);
+#define gdk_gl_glMultiTexCoord1f(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1f) (proc)) (target, s) )
+
+/* glMultiTexCoord1fv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1fv) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1fv (void);
+#define gdk_gl_glMultiTexCoord1fv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1fv) (proc)) (target, v) )
+
+/* glMultiTexCoord1i */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1i) (GLenum target, GLint s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1i (void);
+#define gdk_gl_glMultiTexCoord1i(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1i) (proc)) (target, s) )
+
+/* glMultiTexCoord1iv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1iv) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1iv (void);
+#define gdk_gl_glMultiTexCoord1iv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1iv) (proc)) (target, v) )
+
+/* glMultiTexCoord1s */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1s) (GLenum target, GLshort s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1s (void);
+#define gdk_gl_glMultiTexCoord1s(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1s) (proc)) (target, s) )
+
+/* glMultiTexCoord1sv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1sv) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1sv (void);
+#define gdk_gl_glMultiTexCoord1sv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1sv) (proc)) (target, v) )
+
+/* glMultiTexCoord2d */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2d) (GLenum target, GLdouble s, GLdouble t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2d (void);
+#define gdk_gl_glMultiTexCoord2d(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2d) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2dv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2dv) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2dv (void);
+#define gdk_gl_glMultiTexCoord2dv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2dv) (proc)) (target, v) )
+
+/* glMultiTexCoord2f */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2f) (GLenum target, GLfloat s, GLfloat t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2f (void);
+#define gdk_gl_glMultiTexCoord2f(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2f) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2fv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2fv) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2fv (void);
+#define gdk_gl_glMultiTexCoord2fv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2fv) (proc)) (target, v) )
+
+/* glMultiTexCoord2i */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2i) (GLenum target, GLint s, GLint t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2i (void);
+#define gdk_gl_glMultiTexCoord2i(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2i) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2iv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2iv) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2iv (void);
+#define gdk_gl_glMultiTexCoord2iv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2iv) (proc)) (target, v) )
+
+/* glMultiTexCoord2s */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2s) (GLenum target, GLshort s, GLshort t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2s (void);
+#define gdk_gl_glMultiTexCoord2s(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2s) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2sv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2sv) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2sv (void);
+#define gdk_gl_glMultiTexCoord2sv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2sv) (proc)) (target, v) )
+
+/* glMultiTexCoord3d */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3d) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3d (void);
+#define gdk_gl_glMultiTexCoord3d(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3d) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3dv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3dv) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3dv (void);
+#define gdk_gl_glMultiTexCoord3dv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3dv) (proc)) (target, v) )
+
+/* glMultiTexCoord3f */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3f) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3f (void);
+#define gdk_gl_glMultiTexCoord3f(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3f) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3fv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3fv) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3fv (void);
+#define gdk_gl_glMultiTexCoord3fv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3fv) (proc)) (target, v) )
+
+/* glMultiTexCoord3i */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3i) (GLenum target, GLint s, GLint t, GLint r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3i (void);
+#define gdk_gl_glMultiTexCoord3i(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3i) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3iv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3iv) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3iv (void);
+#define gdk_gl_glMultiTexCoord3iv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3iv) (proc)) (target, v) )
+
+/* glMultiTexCoord3s */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3s) (GLenum target, GLshort s, GLshort t, GLshort r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3s (void);
+#define gdk_gl_glMultiTexCoord3s(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3s) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3sv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3sv) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3sv (void);
+#define gdk_gl_glMultiTexCoord3sv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3sv) (proc)) (target, v) )
+
+/* glMultiTexCoord4d */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4d) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4d (void);
+#define gdk_gl_glMultiTexCoord4d(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4d) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4dv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4dv) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4dv (void);
+#define gdk_gl_glMultiTexCoord4dv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4dv) (proc)) (target, v) )
+
+/* glMultiTexCoord4f */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4f) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4f (void);
+#define gdk_gl_glMultiTexCoord4f(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4f) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4fv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4fv) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4fv (void);
+#define gdk_gl_glMultiTexCoord4fv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4fv) (proc)) (target, v) )
+
+/* glMultiTexCoord4i */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4i) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4i (void);
+#define gdk_gl_glMultiTexCoord4i(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4i) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4iv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4iv) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4iv (void);
+#define gdk_gl_glMultiTexCoord4iv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4iv) (proc)) (target, v) )
+
+/* glMultiTexCoord4s */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4s) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4s (void);
+#define gdk_gl_glMultiTexCoord4s(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4s) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4sv */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4sv) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4sv (void);
+#define gdk_gl_glMultiTexCoord4sv(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4sv) (proc)) (target, v) )
+
+/* glLoadTransposeMatrixf */
+typedef void (APIENTRY * GdkGLProc_glLoadTransposeMatrixf) (const GLfloat *m);
+GdkGLProc gdk_gl_get_glLoadTransposeMatrixf (void);
+#define gdk_gl_glLoadTransposeMatrixf(proc, m) \
+ ( ((GdkGLProc_glLoadTransposeMatrixf) (proc)) (m) )
+
+/* glLoadTransposeMatrixd */
+typedef void (APIENTRY * GdkGLProc_glLoadTransposeMatrixd) (const GLdouble *m);
+GdkGLProc gdk_gl_get_glLoadTransposeMatrixd (void);
+#define gdk_gl_glLoadTransposeMatrixd(proc, m) \
+ ( ((GdkGLProc_glLoadTransposeMatrixd) (proc)) (m) )
+
+/* glMultTransposeMatrixf */
+typedef void (APIENTRY * GdkGLProc_glMultTransposeMatrixf) (const GLfloat *m);
+GdkGLProc gdk_gl_get_glMultTransposeMatrixf (void);
+#define gdk_gl_glMultTransposeMatrixf(proc, m) \
+ ( ((GdkGLProc_glMultTransposeMatrixf) (proc)) (m) )
+
+/* glMultTransposeMatrixd */
+typedef void (APIENTRY * GdkGLProc_glMultTransposeMatrixd) (const GLdouble *m);
+GdkGLProc gdk_gl_get_glMultTransposeMatrixd (void);
+#define gdk_gl_glMultTransposeMatrixd(proc, m) \
+ ( ((GdkGLProc_glMultTransposeMatrixd) (proc)) (m) )
+
+/* glSampleCoverage */
+typedef void (APIENTRY * GdkGLProc_glSampleCoverage) (GLclampf value, GLboolean invert);
+GdkGLProc gdk_gl_get_glSampleCoverage (void);
+#define gdk_gl_glSampleCoverage(proc, value, invert) \
+ ( ((GdkGLProc_glSampleCoverage) (proc)) (value, invert) )
+
+/* glCompressedTexImage3D */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexImage3D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexImage3D (void);
+#define gdk_gl_glCompressedTexImage3D(proc, target, level, internalformat, width, height, depth, border, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexImage3D) (proc)) (target, level, internalformat, width, height, depth, border, imageSize, data) )
+
+/* glCompressedTexImage2D */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexImage2D (void);
+#define gdk_gl_glCompressedTexImage2D(proc, target, level, internalformat, width, height, border, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexImage2D) (proc)) (target, level, internalformat, width, height, border, imageSize, data) )
+
+/* glCompressedTexImage1D */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexImage1D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexImage1D (void);
+#define gdk_gl_glCompressedTexImage1D(proc, target, level, internalformat, width, border, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexImage1D) (proc)) (target, level, internalformat, width, border, imageSize, data) )
+
+/* glCompressedTexSubImage3D */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexSubImage3D (void);
+#define gdk_gl_glCompressedTexSubImage3D(proc, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexSubImage3D) (proc)) (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) )
+
+/* glCompressedTexSubImage2D */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexSubImage2D (void);
+#define gdk_gl_glCompressedTexSubImage2D(proc, target, level, xoffset, yoffset, width, height, format, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexSubImage2D) (proc)) (target, level, xoffset, yoffset, width, height, format, imageSize, data) )
+
+/* glCompressedTexSubImage1D */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexSubImage1D) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexSubImage1D (void);
+#define gdk_gl_glCompressedTexSubImage1D(proc, target, level, xoffset, width, format, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexSubImage1D) (proc)) (target, level, xoffset, width, format, imageSize, data) )
+
+/* glGetCompressedTexImage */
+typedef void (APIENTRY * GdkGLProc_glGetCompressedTexImage) (GLenum target, GLint level, GLvoid *img);
+GdkGLProc gdk_gl_get_glGetCompressedTexImage (void);
+#define gdk_gl_glGetCompressedTexImage(proc, target, level, img) \
+ ( ((GdkGLProc_glGetCompressedTexImage) (proc)) (target, level, img) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_VERSION_1_3 GdkGL_GL_VERSION_1_3;
+
+struct _GdkGL_GL_VERSION_1_3
+{
+ GdkGLProc_glActiveTexture glActiveTexture;
+ GdkGLProc_glClientActiveTexture glClientActiveTexture;
+ GdkGLProc_glMultiTexCoord1d glMultiTexCoord1d;
+ GdkGLProc_glMultiTexCoord1dv glMultiTexCoord1dv;
+ GdkGLProc_glMultiTexCoord1f glMultiTexCoord1f;
+ GdkGLProc_glMultiTexCoord1fv glMultiTexCoord1fv;
+ GdkGLProc_glMultiTexCoord1i glMultiTexCoord1i;
+ GdkGLProc_glMultiTexCoord1iv glMultiTexCoord1iv;
+ GdkGLProc_glMultiTexCoord1s glMultiTexCoord1s;
+ GdkGLProc_glMultiTexCoord1sv glMultiTexCoord1sv;
+ GdkGLProc_glMultiTexCoord2d glMultiTexCoord2d;
+ GdkGLProc_glMultiTexCoord2dv glMultiTexCoord2dv;
+ GdkGLProc_glMultiTexCoord2f glMultiTexCoord2f;
+ GdkGLProc_glMultiTexCoord2fv glMultiTexCoord2fv;
+ GdkGLProc_glMultiTexCoord2i glMultiTexCoord2i;
+ GdkGLProc_glMultiTexCoord2iv glMultiTexCoord2iv;
+ GdkGLProc_glMultiTexCoord2s glMultiTexCoord2s;
+ GdkGLProc_glMultiTexCoord2sv glMultiTexCoord2sv;
+ GdkGLProc_glMultiTexCoord3d glMultiTexCoord3d;
+ GdkGLProc_glMultiTexCoord3dv glMultiTexCoord3dv;
+ GdkGLProc_glMultiTexCoord3f glMultiTexCoord3f;
+ GdkGLProc_glMultiTexCoord3fv glMultiTexCoord3fv;
+ GdkGLProc_glMultiTexCoord3i glMultiTexCoord3i;
+ GdkGLProc_glMultiTexCoord3iv glMultiTexCoord3iv;
+ GdkGLProc_glMultiTexCoord3s glMultiTexCoord3s;
+ GdkGLProc_glMultiTexCoord3sv glMultiTexCoord3sv;
+ GdkGLProc_glMultiTexCoord4d glMultiTexCoord4d;
+ GdkGLProc_glMultiTexCoord4dv glMultiTexCoord4dv;
+ GdkGLProc_glMultiTexCoord4f glMultiTexCoord4f;
+ GdkGLProc_glMultiTexCoord4fv glMultiTexCoord4fv;
+ GdkGLProc_glMultiTexCoord4i glMultiTexCoord4i;
+ GdkGLProc_glMultiTexCoord4iv glMultiTexCoord4iv;
+ GdkGLProc_glMultiTexCoord4s glMultiTexCoord4s;
+ GdkGLProc_glMultiTexCoord4sv glMultiTexCoord4sv;
+ GdkGLProc_glLoadTransposeMatrixf glLoadTransposeMatrixf;
+ GdkGLProc_glLoadTransposeMatrixd glLoadTransposeMatrixd;
+ GdkGLProc_glMultTransposeMatrixf glMultTransposeMatrixf;
+ GdkGLProc_glMultTransposeMatrixd glMultTransposeMatrixd;
+ GdkGLProc_glSampleCoverage glSampleCoverage;
+ GdkGLProc_glCompressedTexImage3D glCompressedTexImage3D;
+ GdkGLProc_glCompressedTexImage2D glCompressedTexImage2D;
+ GdkGLProc_glCompressedTexImage1D glCompressedTexImage1D;
+ GdkGLProc_glCompressedTexSubImage3D glCompressedTexSubImage3D;
+ GdkGLProc_glCompressedTexSubImage2D glCompressedTexSubImage2D;
+ GdkGLProc_glCompressedTexSubImage1D glCompressedTexSubImage1D;
+ GdkGLProc_glGetCompressedTexImage glGetCompressedTexImage;
+};
+
+GdkGL_GL_VERSION_1_3 *gdk_gl_get_GL_VERSION_1_3 (void);
+
+/*
+ * GL_VERSION_1_4
+ */
+
+/* glBlendFuncSeparate */
+typedef void (APIENTRY * GdkGLProc_glBlendFuncSeparate) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+GdkGLProc gdk_gl_get_glBlendFuncSeparate (void);
+#define gdk_gl_glBlendFuncSeparate(proc, sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) \
+ ( ((GdkGLProc_glBlendFuncSeparate) (proc)) (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) )
+
+/* glFogCoordf */
+typedef void (APIENTRY * GdkGLProc_glFogCoordf) (GLfloat coord);
+GdkGLProc gdk_gl_get_glFogCoordf (void);
+#define gdk_gl_glFogCoordf(proc, coord) \
+ ( ((GdkGLProc_glFogCoordf) (proc)) (coord) )
+
+/* glFogCoordfv */
+typedef void (APIENTRY * GdkGLProc_glFogCoordfv) (const GLfloat *coord);
+GdkGLProc gdk_gl_get_glFogCoordfv (void);
+#define gdk_gl_glFogCoordfv(proc, coord) \
+ ( ((GdkGLProc_glFogCoordfv) (proc)) (coord) )
+
+/* glFogCoordd */
+typedef void (APIENTRY * GdkGLProc_glFogCoordd) (GLdouble coord);
+GdkGLProc gdk_gl_get_glFogCoordd (void);
+#define gdk_gl_glFogCoordd(proc, coord) \
+ ( ((GdkGLProc_glFogCoordd) (proc)) (coord) )
+
+/* glFogCoorddv */
+typedef void (APIENTRY * GdkGLProc_glFogCoorddv) (const GLdouble *coord);
+GdkGLProc gdk_gl_get_glFogCoorddv (void);
+#define gdk_gl_glFogCoorddv(proc, coord) \
+ ( ((GdkGLProc_glFogCoorddv) (proc)) (coord) )
+
+/* glFogCoordPointer */
+typedef void (APIENTRY * GdkGLProc_glFogCoordPointer) (GLenum type, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glFogCoordPointer (void);
+#define gdk_gl_glFogCoordPointer(proc, type, stride, pointer) \
+ ( ((GdkGLProc_glFogCoordPointer) (proc)) (type, stride, pointer) )
+
+/* glMultiDrawArrays */
+typedef void (APIENTRY * GdkGLProc_glMultiDrawArrays) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+GdkGLProc gdk_gl_get_glMultiDrawArrays (void);
+#define gdk_gl_glMultiDrawArrays(proc, mode, first, count, primcount) \
+ ( ((GdkGLProc_glMultiDrawArrays) (proc)) (mode, first, count, primcount) )
+
+/* glMultiDrawElements */
+typedef void (APIENTRY * GdkGLProc_glMultiDrawElements) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
+GdkGLProc gdk_gl_get_glMultiDrawElements (void);
+#define gdk_gl_glMultiDrawElements(proc, mode, count, type, indices, primcount) \
+ ( ((GdkGLProc_glMultiDrawElements) (proc)) (mode, count, type, indices, primcount) )
+
+/* glPointParameterf */
+typedef void (APIENTRY * GdkGLProc_glPointParameterf) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glPointParameterf (void);
+#define gdk_gl_glPointParameterf(proc, pname, param) \
+ ( ((GdkGLProc_glPointParameterf) (proc)) (pname, param) )
+
+/* glPointParameterfv */
+typedef void (APIENTRY * GdkGLProc_glPointParameterfv) (GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glPointParameterfv (void);
+#define gdk_gl_glPointParameterfv(proc, pname, params) \
+ ( ((GdkGLProc_glPointParameterfv) (proc)) (pname, params) )
+
+/* glPointParameteri */
+typedef void (APIENTRY * GdkGLProc_glPointParameteri) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glPointParameteri (void);
+#define gdk_gl_glPointParameteri(proc, pname, param) \
+ ( ((GdkGLProc_glPointParameteri) (proc)) (pname, param) )
+
+/* glPointParameteriv */
+typedef void (APIENTRY * GdkGLProc_glPointParameteriv) (GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glPointParameteriv (void);
+#define gdk_gl_glPointParameteriv(proc, pname, params) \
+ ( ((GdkGLProc_glPointParameteriv) (proc)) (pname, params) )
+
+/* glSecondaryColor3b */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3b) (GLbyte red, GLbyte green, GLbyte blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3b (void);
+#define gdk_gl_glSecondaryColor3b(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3b) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3bv */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3bv) (const GLbyte *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3bv (void);
+#define gdk_gl_glSecondaryColor3bv(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3bv) (proc)) (v) )
+
+/* glSecondaryColor3d */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3d) (GLdouble red, GLdouble green, GLdouble blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3d (void);
+#define gdk_gl_glSecondaryColor3d(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3d) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3dv */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3dv) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3dv (void);
+#define gdk_gl_glSecondaryColor3dv(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3dv) (proc)) (v) )
+
+/* glSecondaryColor3f */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3f) (GLfloat red, GLfloat green, GLfloat blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3f (void);
+#define gdk_gl_glSecondaryColor3f(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3f) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3fv */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3fv) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3fv (void);
+#define gdk_gl_glSecondaryColor3fv(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3fv) (proc)) (v) )
+
+/* glSecondaryColor3i */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3i) (GLint red, GLint green, GLint blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3i (void);
+#define gdk_gl_glSecondaryColor3i(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3i) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3iv */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3iv) (const GLint *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3iv (void);
+#define gdk_gl_glSecondaryColor3iv(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3iv) (proc)) (v) )
+
+/* glSecondaryColor3s */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3s) (GLshort red, GLshort green, GLshort blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3s (void);
+#define gdk_gl_glSecondaryColor3s(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3s) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3sv */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3sv) (const GLshort *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3sv (void);
+#define gdk_gl_glSecondaryColor3sv(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3sv) (proc)) (v) )
+
+/* glSecondaryColor3ub */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3ub) (GLubyte red, GLubyte green, GLubyte blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3ub (void);
+#define gdk_gl_glSecondaryColor3ub(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3ub) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3ubv */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3ubv) (const GLubyte *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3ubv (void);
+#define gdk_gl_glSecondaryColor3ubv(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3ubv) (proc)) (v) )
+
+/* glSecondaryColor3ui */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3ui) (GLuint red, GLuint green, GLuint blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3ui (void);
+#define gdk_gl_glSecondaryColor3ui(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3ui) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3uiv */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3uiv) (const GLuint *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3uiv (void);
+#define gdk_gl_glSecondaryColor3uiv(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3uiv) (proc)) (v) )
+
+/* glSecondaryColor3us */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3us) (GLushort red, GLushort green, GLushort blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3us (void);
+#define gdk_gl_glSecondaryColor3us(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3us) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3usv */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3usv) (const GLushort *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3usv (void);
+#define gdk_gl_glSecondaryColor3usv(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3usv) (proc)) (v) )
+
+/* glSecondaryColorPointer */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColorPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glSecondaryColorPointer (void);
+#define gdk_gl_glSecondaryColorPointer(proc, size, type, stride, pointer) \
+ ( ((GdkGLProc_glSecondaryColorPointer) (proc)) (size, type, stride, pointer) )
+
+/* glWindowPos2d */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2d) (GLdouble x, GLdouble y);
+GdkGLProc gdk_gl_get_glWindowPos2d (void);
+#define gdk_gl_glWindowPos2d(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2d) (proc)) (x, y) )
+
+/* glWindowPos2dv */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2dv) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glWindowPos2dv (void);
+#define gdk_gl_glWindowPos2dv(proc, v) \
+ ( ((GdkGLProc_glWindowPos2dv) (proc)) (v) )
+
+/* glWindowPos2f */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2f) (GLfloat x, GLfloat y);
+GdkGLProc gdk_gl_get_glWindowPos2f (void);
+#define gdk_gl_glWindowPos2f(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2f) (proc)) (x, y) )
+
+/* glWindowPos2fv */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2fv) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glWindowPos2fv (void);
+#define gdk_gl_glWindowPos2fv(proc, v) \
+ ( ((GdkGLProc_glWindowPos2fv) (proc)) (v) )
+
+/* glWindowPos2i */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2i) (GLint x, GLint y);
+GdkGLProc gdk_gl_get_glWindowPos2i (void);
+#define gdk_gl_glWindowPos2i(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2i) (proc)) (x, y) )
+
+/* glWindowPos2iv */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2iv) (const GLint *v);
+GdkGLProc gdk_gl_get_glWindowPos2iv (void);
+#define gdk_gl_glWindowPos2iv(proc, v) \
+ ( ((GdkGLProc_glWindowPos2iv) (proc)) (v) )
+
+/* glWindowPos2s */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2s) (GLshort x, GLshort y);
+GdkGLProc gdk_gl_get_glWindowPos2s (void);
+#define gdk_gl_glWindowPos2s(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2s) (proc)) (x, y) )
+
+/* glWindowPos2sv */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2sv) (const GLshort *v);
+GdkGLProc gdk_gl_get_glWindowPos2sv (void);
+#define gdk_gl_glWindowPos2sv(proc, v) \
+ ( ((GdkGLProc_glWindowPos2sv) (proc)) (v) )
+
+/* glWindowPos3d */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3d) (GLdouble x, GLdouble y, GLdouble z);
+GdkGLProc gdk_gl_get_glWindowPos3d (void);
+#define gdk_gl_glWindowPos3d(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3d) (proc)) (x, y, z) )
+
+/* glWindowPos3dv */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3dv) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glWindowPos3dv (void);
+#define gdk_gl_glWindowPos3dv(proc, v) \
+ ( ((GdkGLProc_glWindowPos3dv) (proc)) (v) )
+
+/* glWindowPos3f */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3f) (GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glWindowPos3f (void);
+#define gdk_gl_glWindowPos3f(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3f) (proc)) (x, y, z) )
+
+/* glWindowPos3fv */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3fv) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glWindowPos3fv (void);
+#define gdk_gl_glWindowPos3fv(proc, v) \
+ ( ((GdkGLProc_glWindowPos3fv) (proc)) (v) )
+
+/* glWindowPos3i */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3i) (GLint x, GLint y, GLint z);
+GdkGLProc gdk_gl_get_glWindowPos3i (void);
+#define gdk_gl_glWindowPos3i(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3i) (proc)) (x, y, z) )
+
+/* glWindowPos3iv */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3iv) (const GLint *v);
+GdkGLProc gdk_gl_get_glWindowPos3iv (void);
+#define gdk_gl_glWindowPos3iv(proc, v) \
+ ( ((GdkGLProc_glWindowPos3iv) (proc)) (v) )
+
+/* glWindowPos3s */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3s) (GLshort x, GLshort y, GLshort z);
+GdkGLProc gdk_gl_get_glWindowPos3s (void);
+#define gdk_gl_glWindowPos3s(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3s) (proc)) (x, y, z) )
+
+/* glWindowPos3sv */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3sv) (const GLshort *v);
+GdkGLProc gdk_gl_get_glWindowPos3sv (void);
+#define gdk_gl_glWindowPos3sv(proc, v) \
+ ( ((GdkGLProc_glWindowPos3sv) (proc)) (v) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_VERSION_1_4 GdkGL_GL_VERSION_1_4;
+
+struct _GdkGL_GL_VERSION_1_4
+{
+ GdkGLProc_glBlendFuncSeparate glBlendFuncSeparate;
+ GdkGLProc_glFogCoordf glFogCoordf;
+ GdkGLProc_glFogCoordfv glFogCoordfv;
+ GdkGLProc_glFogCoordd glFogCoordd;
+ GdkGLProc_glFogCoorddv glFogCoorddv;
+ GdkGLProc_glFogCoordPointer glFogCoordPointer;
+ GdkGLProc_glMultiDrawArrays glMultiDrawArrays;
+ GdkGLProc_glMultiDrawElements glMultiDrawElements;
+ GdkGLProc_glPointParameterf glPointParameterf;
+ GdkGLProc_glPointParameterfv glPointParameterfv;
+ GdkGLProc_glPointParameteri glPointParameteri;
+ GdkGLProc_glPointParameteriv glPointParameteriv;
+ GdkGLProc_glSecondaryColor3b glSecondaryColor3b;
+ GdkGLProc_glSecondaryColor3bv glSecondaryColor3bv;
+ GdkGLProc_glSecondaryColor3d glSecondaryColor3d;
+ GdkGLProc_glSecondaryColor3dv glSecondaryColor3dv;
+ GdkGLProc_glSecondaryColor3f glSecondaryColor3f;
+ GdkGLProc_glSecondaryColor3fv glSecondaryColor3fv;
+ GdkGLProc_glSecondaryColor3i glSecondaryColor3i;
+ GdkGLProc_glSecondaryColor3iv glSecondaryColor3iv;
+ GdkGLProc_glSecondaryColor3s glSecondaryColor3s;
+ GdkGLProc_glSecondaryColor3sv glSecondaryColor3sv;
+ GdkGLProc_glSecondaryColor3ub glSecondaryColor3ub;
+ GdkGLProc_glSecondaryColor3ubv glSecondaryColor3ubv;
+ GdkGLProc_glSecondaryColor3ui glSecondaryColor3ui;
+ GdkGLProc_glSecondaryColor3uiv glSecondaryColor3uiv;
+ GdkGLProc_glSecondaryColor3us glSecondaryColor3us;
+ GdkGLProc_glSecondaryColor3usv glSecondaryColor3usv;
+ GdkGLProc_glSecondaryColorPointer glSecondaryColorPointer;
+ GdkGLProc_glWindowPos2d glWindowPos2d;
+ GdkGLProc_glWindowPos2dv glWindowPos2dv;
+ GdkGLProc_glWindowPos2f glWindowPos2f;
+ GdkGLProc_glWindowPos2fv glWindowPos2fv;
+ GdkGLProc_glWindowPos2i glWindowPos2i;
+ GdkGLProc_glWindowPos2iv glWindowPos2iv;
+ GdkGLProc_glWindowPos2s glWindowPos2s;
+ GdkGLProc_glWindowPos2sv glWindowPos2sv;
+ GdkGLProc_glWindowPos3d glWindowPos3d;
+ GdkGLProc_glWindowPos3dv glWindowPos3dv;
+ GdkGLProc_glWindowPos3f glWindowPos3f;
+ GdkGLProc_glWindowPos3fv glWindowPos3fv;
+ GdkGLProc_glWindowPos3i glWindowPos3i;
+ GdkGLProc_glWindowPos3iv glWindowPos3iv;
+ GdkGLProc_glWindowPos3s glWindowPos3s;
+ GdkGLProc_glWindowPos3sv glWindowPos3sv;
+};
+
+GdkGL_GL_VERSION_1_4 *gdk_gl_get_GL_VERSION_1_4 (void);
+
+/*
+ * GL_ARB_multitexture
+ */
+
+/* glActiveTextureARB */
+typedef void (APIENTRY * GdkGLProc_glActiveTextureARB) (GLenum texture);
+GdkGLProc gdk_gl_get_glActiveTextureARB (void);
+#define gdk_gl_glActiveTextureARB(proc, texture) \
+ ( ((GdkGLProc_glActiveTextureARB) (proc)) (texture) )
+
+/* glClientActiveTextureARB */
+typedef void (APIENTRY * GdkGLProc_glClientActiveTextureARB) (GLenum texture);
+GdkGLProc gdk_gl_get_glClientActiveTextureARB (void);
+#define gdk_gl_glClientActiveTextureARB(proc, texture) \
+ ( ((GdkGLProc_glClientActiveTextureARB) (proc)) (texture) )
+
+/* glMultiTexCoord1dARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1dARB) (GLenum target, GLdouble s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1dARB (void);
+#define gdk_gl_glMultiTexCoord1dARB(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1dARB) (proc)) (target, s) )
+
+/* glMultiTexCoord1dvARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1dvARB) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1dvARB (void);
+#define gdk_gl_glMultiTexCoord1dvARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1dvARB) (proc)) (target, v) )
+
+/* glMultiTexCoord1fARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1fARB) (GLenum target, GLfloat s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1fARB (void);
+#define gdk_gl_glMultiTexCoord1fARB(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1fARB) (proc)) (target, s) )
+
+/* glMultiTexCoord1fvARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1fvARB) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1fvARB (void);
+#define gdk_gl_glMultiTexCoord1fvARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1fvARB) (proc)) (target, v) )
+
+/* glMultiTexCoord1iARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1iARB) (GLenum target, GLint s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1iARB (void);
+#define gdk_gl_glMultiTexCoord1iARB(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1iARB) (proc)) (target, s) )
+
+/* glMultiTexCoord1ivARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1ivARB) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1ivARB (void);
+#define gdk_gl_glMultiTexCoord1ivARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1ivARB) (proc)) (target, v) )
+
+/* glMultiTexCoord1sARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1sARB) (GLenum target, GLshort s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1sARB (void);
+#define gdk_gl_glMultiTexCoord1sARB(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1sARB) (proc)) (target, s) )
+
+/* glMultiTexCoord1svARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1svARB) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1svARB (void);
+#define gdk_gl_glMultiTexCoord1svARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1svARB) (proc)) (target, v) )
+
+/* glMultiTexCoord2dARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2dARB) (GLenum target, GLdouble s, GLdouble t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2dARB (void);
+#define gdk_gl_glMultiTexCoord2dARB(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2dARB) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2dvARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2dvARB) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2dvARB (void);
+#define gdk_gl_glMultiTexCoord2dvARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2dvARB) (proc)) (target, v) )
+
+/* glMultiTexCoord2fARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2fARB) (GLenum target, GLfloat s, GLfloat t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2fARB (void);
+#define gdk_gl_glMultiTexCoord2fARB(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2fARB) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2fvARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2fvARB) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2fvARB (void);
+#define gdk_gl_glMultiTexCoord2fvARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2fvARB) (proc)) (target, v) )
+
+/* glMultiTexCoord2iARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2iARB) (GLenum target, GLint s, GLint t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2iARB (void);
+#define gdk_gl_glMultiTexCoord2iARB(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2iARB) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2ivARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2ivARB) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2ivARB (void);
+#define gdk_gl_glMultiTexCoord2ivARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2ivARB) (proc)) (target, v) )
+
+/* glMultiTexCoord2sARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2sARB) (GLenum target, GLshort s, GLshort t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2sARB (void);
+#define gdk_gl_glMultiTexCoord2sARB(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2sARB) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2svARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2svARB) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2svARB (void);
+#define gdk_gl_glMultiTexCoord2svARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2svARB) (proc)) (target, v) )
+
+/* glMultiTexCoord3dARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3dARB) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3dARB (void);
+#define gdk_gl_glMultiTexCoord3dARB(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3dARB) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3dvARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3dvARB) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3dvARB (void);
+#define gdk_gl_glMultiTexCoord3dvARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3dvARB) (proc)) (target, v) )
+
+/* glMultiTexCoord3fARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3fARB) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3fARB (void);
+#define gdk_gl_glMultiTexCoord3fARB(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3fARB) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3fvARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3fvARB) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3fvARB (void);
+#define gdk_gl_glMultiTexCoord3fvARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3fvARB) (proc)) (target, v) )
+
+/* glMultiTexCoord3iARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3iARB) (GLenum target, GLint s, GLint t, GLint r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3iARB (void);
+#define gdk_gl_glMultiTexCoord3iARB(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3iARB) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3ivARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3ivARB) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3ivARB (void);
+#define gdk_gl_glMultiTexCoord3ivARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3ivARB) (proc)) (target, v) )
+
+/* glMultiTexCoord3sARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3sARB) (GLenum target, GLshort s, GLshort t, GLshort r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3sARB (void);
+#define gdk_gl_glMultiTexCoord3sARB(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3sARB) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3svARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3svARB) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3svARB (void);
+#define gdk_gl_glMultiTexCoord3svARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3svARB) (proc)) (target, v) )
+
+/* glMultiTexCoord4dARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4dARB) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4dARB (void);
+#define gdk_gl_glMultiTexCoord4dARB(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4dARB) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4dvARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4dvARB) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4dvARB (void);
+#define gdk_gl_glMultiTexCoord4dvARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4dvARB) (proc)) (target, v) )
+
+/* glMultiTexCoord4fARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4fARB) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4fARB (void);
+#define gdk_gl_glMultiTexCoord4fARB(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4fARB) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4fvARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4fvARB) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4fvARB (void);
+#define gdk_gl_glMultiTexCoord4fvARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4fvARB) (proc)) (target, v) )
+
+/* glMultiTexCoord4iARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4iARB) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4iARB (void);
+#define gdk_gl_glMultiTexCoord4iARB(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4iARB) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4ivARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4ivARB) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4ivARB (void);
+#define gdk_gl_glMultiTexCoord4ivARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4ivARB) (proc)) (target, v) )
+
+/* glMultiTexCoord4sARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4sARB) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4sARB (void);
+#define gdk_gl_glMultiTexCoord4sARB(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4sARB) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4svARB */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4svARB) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4svARB (void);
+#define gdk_gl_glMultiTexCoord4svARB(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4svARB) (proc)) (target, v) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ARB_multitexture GdkGL_GL_ARB_multitexture;
+
+struct _GdkGL_GL_ARB_multitexture
+{
+ GdkGLProc_glActiveTextureARB glActiveTextureARB;
+ GdkGLProc_glClientActiveTextureARB glClientActiveTextureARB;
+ GdkGLProc_glMultiTexCoord1dARB glMultiTexCoord1dARB;
+ GdkGLProc_glMultiTexCoord1dvARB glMultiTexCoord1dvARB;
+ GdkGLProc_glMultiTexCoord1fARB glMultiTexCoord1fARB;
+ GdkGLProc_glMultiTexCoord1fvARB glMultiTexCoord1fvARB;
+ GdkGLProc_glMultiTexCoord1iARB glMultiTexCoord1iARB;
+ GdkGLProc_glMultiTexCoord1ivARB glMultiTexCoord1ivARB;
+ GdkGLProc_glMultiTexCoord1sARB glMultiTexCoord1sARB;
+ GdkGLProc_glMultiTexCoord1svARB glMultiTexCoord1svARB;
+ GdkGLProc_glMultiTexCoord2dARB glMultiTexCoord2dARB;
+ GdkGLProc_glMultiTexCoord2dvARB glMultiTexCoord2dvARB;
+ GdkGLProc_glMultiTexCoord2fARB glMultiTexCoord2fARB;
+ GdkGLProc_glMultiTexCoord2fvARB glMultiTexCoord2fvARB;
+ GdkGLProc_glMultiTexCoord2iARB glMultiTexCoord2iARB;
+ GdkGLProc_glMultiTexCoord2ivARB glMultiTexCoord2ivARB;
+ GdkGLProc_glMultiTexCoord2sARB glMultiTexCoord2sARB;
+ GdkGLProc_glMultiTexCoord2svARB glMultiTexCoord2svARB;
+ GdkGLProc_glMultiTexCoord3dARB glMultiTexCoord3dARB;
+ GdkGLProc_glMultiTexCoord3dvARB glMultiTexCoord3dvARB;
+ GdkGLProc_glMultiTexCoord3fARB glMultiTexCoord3fARB;
+ GdkGLProc_glMultiTexCoord3fvARB glMultiTexCoord3fvARB;
+ GdkGLProc_glMultiTexCoord3iARB glMultiTexCoord3iARB;
+ GdkGLProc_glMultiTexCoord3ivARB glMultiTexCoord3ivARB;
+ GdkGLProc_glMultiTexCoord3sARB glMultiTexCoord3sARB;
+ GdkGLProc_glMultiTexCoord3svARB glMultiTexCoord3svARB;
+ GdkGLProc_glMultiTexCoord4dARB glMultiTexCoord4dARB;
+ GdkGLProc_glMultiTexCoord4dvARB glMultiTexCoord4dvARB;
+ GdkGLProc_glMultiTexCoord4fARB glMultiTexCoord4fARB;
+ GdkGLProc_glMultiTexCoord4fvARB glMultiTexCoord4fvARB;
+ GdkGLProc_glMultiTexCoord4iARB glMultiTexCoord4iARB;
+ GdkGLProc_glMultiTexCoord4ivARB glMultiTexCoord4ivARB;
+ GdkGLProc_glMultiTexCoord4sARB glMultiTexCoord4sARB;
+ GdkGLProc_glMultiTexCoord4svARB glMultiTexCoord4svARB;
+};
+
+GdkGL_GL_ARB_multitexture *gdk_gl_get_GL_ARB_multitexture (void);
+
+/*
+ * GL_ARB_transpose_matrix
+ */
+
+/* glLoadTransposeMatrixfARB */
+typedef void (APIENTRY * GdkGLProc_glLoadTransposeMatrixfARB) (const GLfloat *m);
+GdkGLProc gdk_gl_get_glLoadTransposeMatrixfARB (void);
+#define gdk_gl_glLoadTransposeMatrixfARB(proc, m) \
+ ( ((GdkGLProc_glLoadTransposeMatrixfARB) (proc)) (m) )
+
+/* glLoadTransposeMatrixdARB */
+typedef void (APIENTRY * GdkGLProc_glLoadTransposeMatrixdARB) (const GLdouble *m);
+GdkGLProc gdk_gl_get_glLoadTransposeMatrixdARB (void);
+#define gdk_gl_glLoadTransposeMatrixdARB(proc, m) \
+ ( ((GdkGLProc_glLoadTransposeMatrixdARB) (proc)) (m) )
+
+/* glMultTransposeMatrixfARB */
+typedef void (APIENTRY * GdkGLProc_glMultTransposeMatrixfARB) (const GLfloat *m);
+GdkGLProc gdk_gl_get_glMultTransposeMatrixfARB (void);
+#define gdk_gl_glMultTransposeMatrixfARB(proc, m) \
+ ( ((GdkGLProc_glMultTransposeMatrixfARB) (proc)) (m) )
+
+/* glMultTransposeMatrixdARB */
+typedef void (APIENTRY * GdkGLProc_glMultTransposeMatrixdARB) (const GLdouble *m);
+GdkGLProc gdk_gl_get_glMultTransposeMatrixdARB (void);
+#define gdk_gl_glMultTransposeMatrixdARB(proc, m) \
+ ( ((GdkGLProc_glMultTransposeMatrixdARB) (proc)) (m) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ARB_transpose_matrix GdkGL_GL_ARB_transpose_matrix;
+
+struct _GdkGL_GL_ARB_transpose_matrix
+{
+ GdkGLProc_glLoadTransposeMatrixfARB glLoadTransposeMatrixfARB;
+ GdkGLProc_glLoadTransposeMatrixdARB glLoadTransposeMatrixdARB;
+ GdkGLProc_glMultTransposeMatrixfARB glMultTransposeMatrixfARB;
+ GdkGLProc_glMultTransposeMatrixdARB glMultTransposeMatrixdARB;
+};
+
+GdkGL_GL_ARB_transpose_matrix *gdk_gl_get_GL_ARB_transpose_matrix (void);
+
+/*
+ * GL_ARB_multisample
+ */
+
+/* glSampleCoverageARB */
+typedef void (APIENTRY * GdkGLProc_glSampleCoverageARB) (GLclampf value, GLboolean invert);
+GdkGLProc gdk_gl_get_glSampleCoverageARB (void);
+#define gdk_gl_glSampleCoverageARB(proc, value, invert) \
+ ( ((GdkGLProc_glSampleCoverageARB) (proc)) (value, invert) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ARB_multisample GdkGL_GL_ARB_multisample;
+
+struct _GdkGL_GL_ARB_multisample
+{
+ GdkGLProc_glSampleCoverageARB glSampleCoverageARB;
+};
+
+GdkGL_GL_ARB_multisample *gdk_gl_get_GL_ARB_multisample (void);
+
+/*
+ * GL_ARB_texture_compression
+ */
+
+/* glCompressedTexImage3DARB */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexImage3DARB) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexImage3DARB (void);
+#define gdk_gl_glCompressedTexImage3DARB(proc, target, level, internalformat, width, height, depth, border, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexImage3DARB) (proc)) (target, level, internalformat, width, height, depth, border, imageSize, data) )
+
+/* glCompressedTexImage2DARB */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexImage2DARB) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexImage2DARB (void);
+#define gdk_gl_glCompressedTexImage2DARB(proc, target, level, internalformat, width, height, border, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexImage2DARB) (proc)) (target, level, internalformat, width, height, border, imageSize, data) )
+
+/* glCompressedTexImage1DARB */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexImage1DARB) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexImage1DARB (void);
+#define gdk_gl_glCompressedTexImage1DARB(proc, target, level, internalformat, width, border, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexImage1DARB) (proc)) (target, level, internalformat, width, border, imageSize, data) )
+
+/* glCompressedTexSubImage3DARB */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexSubImage3DARB) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexSubImage3DARB (void);
+#define gdk_gl_glCompressedTexSubImage3DARB(proc, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexSubImage3DARB) (proc)) (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) )
+
+/* glCompressedTexSubImage2DARB */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexSubImage2DARB) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexSubImage2DARB (void);
+#define gdk_gl_glCompressedTexSubImage2DARB(proc, target, level, xoffset, yoffset, width, height, format, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexSubImage2DARB) (proc)) (target, level, xoffset, yoffset, width, height, format, imageSize, data) )
+
+/* glCompressedTexSubImage1DARB */
+typedef void (APIENTRY * GdkGLProc_glCompressedTexSubImage1DARB) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
+GdkGLProc gdk_gl_get_glCompressedTexSubImage1DARB (void);
+#define gdk_gl_glCompressedTexSubImage1DARB(proc, target, level, xoffset, width, format, imageSize, data) \
+ ( ((GdkGLProc_glCompressedTexSubImage1DARB) (proc)) (target, level, xoffset, width, format, imageSize, data) )
+
+/* glGetCompressedTexImageARB */
+typedef void (APIENTRY * GdkGLProc_glGetCompressedTexImageARB) (GLenum target, GLint level, GLvoid *img);
+GdkGLProc gdk_gl_get_glGetCompressedTexImageARB (void);
+#define gdk_gl_glGetCompressedTexImageARB(proc, target, level, img) \
+ ( ((GdkGLProc_glGetCompressedTexImageARB) (proc)) (target, level, img) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ARB_texture_compression GdkGL_GL_ARB_texture_compression;
+
+struct _GdkGL_GL_ARB_texture_compression
+{
+ GdkGLProc_glCompressedTexImage3DARB glCompressedTexImage3DARB;
+ GdkGLProc_glCompressedTexImage2DARB glCompressedTexImage2DARB;
+ GdkGLProc_glCompressedTexImage1DARB glCompressedTexImage1DARB;
+ GdkGLProc_glCompressedTexSubImage3DARB glCompressedTexSubImage3DARB;
+ GdkGLProc_glCompressedTexSubImage2DARB glCompressedTexSubImage2DARB;
+ GdkGLProc_glCompressedTexSubImage1DARB glCompressedTexSubImage1DARB;
+ GdkGLProc_glGetCompressedTexImageARB glGetCompressedTexImageARB;
+};
+
+GdkGL_GL_ARB_texture_compression *gdk_gl_get_GL_ARB_texture_compression (void);
+
+/*
+ * GL_ARB_point_parameters
+ */
+
+/* glPointParameterfARB */
+typedef void (APIENTRY * GdkGLProc_glPointParameterfARB) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glPointParameterfARB (void);
+#define gdk_gl_glPointParameterfARB(proc, pname, param) \
+ ( ((GdkGLProc_glPointParameterfARB) (proc)) (pname, param) )
+
+/* glPointParameterfvARB */
+typedef void (APIENTRY * GdkGLProc_glPointParameterfvARB) (GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glPointParameterfvARB (void);
+#define gdk_gl_glPointParameterfvARB(proc, pname, params) \
+ ( ((GdkGLProc_glPointParameterfvARB) (proc)) (pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ARB_point_parameters GdkGL_GL_ARB_point_parameters;
+
+struct _GdkGL_GL_ARB_point_parameters
+{
+ GdkGLProc_glPointParameterfARB glPointParameterfARB;
+ GdkGLProc_glPointParameterfvARB glPointParameterfvARB;
+};
+
+GdkGL_GL_ARB_point_parameters *gdk_gl_get_GL_ARB_point_parameters (void);
+
+/*
+ * GL_ARB_vertex_blend
+ */
+
+/* glWeightbvARB */
+typedef void (APIENTRY * GdkGLProc_glWeightbvARB) (GLint size, const GLbyte *weights);
+GdkGLProc gdk_gl_get_glWeightbvARB (void);
+#define gdk_gl_glWeightbvARB(proc, size, weights) \
+ ( ((GdkGLProc_glWeightbvARB) (proc)) (size, weights) )
+
+/* glWeightsvARB */
+typedef void (APIENTRY * GdkGLProc_glWeightsvARB) (GLint size, const GLshort *weights);
+GdkGLProc gdk_gl_get_glWeightsvARB (void);
+#define gdk_gl_glWeightsvARB(proc, size, weights) \
+ ( ((GdkGLProc_glWeightsvARB) (proc)) (size, weights) )
+
+/* glWeightivARB */
+typedef void (APIENTRY * GdkGLProc_glWeightivARB) (GLint size, const GLint *weights);
+GdkGLProc gdk_gl_get_glWeightivARB (void);
+#define gdk_gl_glWeightivARB(proc, size, weights) \
+ ( ((GdkGLProc_glWeightivARB) (proc)) (size, weights) )
+
+/* glWeightfvARB */
+typedef void (APIENTRY * GdkGLProc_glWeightfvARB) (GLint size, const GLfloat *weights);
+GdkGLProc gdk_gl_get_glWeightfvARB (void);
+#define gdk_gl_glWeightfvARB(proc, size, weights) \
+ ( ((GdkGLProc_glWeightfvARB) (proc)) (size, weights) )
+
+/* glWeightdvARB */
+typedef void (APIENTRY * GdkGLProc_glWeightdvARB) (GLint size, const GLdouble *weights);
+GdkGLProc gdk_gl_get_glWeightdvARB (void);
+#define gdk_gl_glWeightdvARB(proc, size, weights) \
+ ( ((GdkGLProc_glWeightdvARB) (proc)) (size, weights) )
+
+/* glWeightubvARB */
+typedef void (APIENTRY * GdkGLProc_glWeightubvARB) (GLint size, const GLubyte *weights);
+GdkGLProc gdk_gl_get_glWeightubvARB (void);
+#define gdk_gl_glWeightubvARB(proc, size, weights) \
+ ( ((GdkGLProc_glWeightubvARB) (proc)) (size, weights) )
+
+/* glWeightusvARB */
+typedef void (APIENTRY * GdkGLProc_glWeightusvARB) (GLint size, const GLushort *weights);
+GdkGLProc gdk_gl_get_glWeightusvARB (void);
+#define gdk_gl_glWeightusvARB(proc, size, weights) \
+ ( ((GdkGLProc_glWeightusvARB) (proc)) (size, weights) )
+
+/* glWeightuivARB */
+typedef void (APIENTRY * GdkGLProc_glWeightuivARB) (GLint size, const GLuint *weights);
+GdkGLProc gdk_gl_get_glWeightuivARB (void);
+#define gdk_gl_glWeightuivARB(proc, size, weights) \
+ ( ((GdkGLProc_glWeightuivARB) (proc)) (size, weights) )
+
+/* glWeightPointerARB */
+typedef void (APIENTRY * GdkGLProc_glWeightPointerARB) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glWeightPointerARB (void);
+#define gdk_gl_glWeightPointerARB(proc, size, type, stride, pointer) \
+ ( ((GdkGLProc_glWeightPointerARB) (proc)) (size, type, stride, pointer) )
+
+/* glVertexBlendARB */
+typedef void (APIENTRY * GdkGLProc_glVertexBlendARB) (GLint count);
+GdkGLProc gdk_gl_get_glVertexBlendARB (void);
+#define gdk_gl_glVertexBlendARB(proc, count) \
+ ( ((GdkGLProc_glVertexBlendARB) (proc)) (count) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ARB_vertex_blend GdkGL_GL_ARB_vertex_blend;
+
+struct _GdkGL_GL_ARB_vertex_blend
+{
+ GdkGLProc_glWeightbvARB glWeightbvARB;
+ GdkGLProc_glWeightsvARB glWeightsvARB;
+ GdkGLProc_glWeightivARB glWeightivARB;
+ GdkGLProc_glWeightfvARB glWeightfvARB;
+ GdkGLProc_glWeightdvARB glWeightdvARB;
+ GdkGLProc_glWeightubvARB glWeightubvARB;
+ GdkGLProc_glWeightusvARB glWeightusvARB;
+ GdkGLProc_glWeightuivARB glWeightuivARB;
+ GdkGLProc_glWeightPointerARB glWeightPointerARB;
+ GdkGLProc_glVertexBlendARB glVertexBlendARB;
+};
+
+GdkGL_GL_ARB_vertex_blend *gdk_gl_get_GL_ARB_vertex_blend (void);
+
+/*
+ * GL_ARB_matrix_palette
+ */
+
+/* glCurrentPaletteMatrixARB */
+typedef void (APIENTRY * GdkGLProc_glCurrentPaletteMatrixARB) (GLint index);
+GdkGLProc gdk_gl_get_glCurrentPaletteMatrixARB (void);
+#define gdk_gl_glCurrentPaletteMatrixARB(proc, index) \
+ ( ((GdkGLProc_glCurrentPaletteMatrixARB) (proc)) (index) )
+
+/* glMatrixIndexubvARB */
+typedef void (APIENTRY * GdkGLProc_glMatrixIndexubvARB) (GLint size, const GLubyte *indices);
+GdkGLProc gdk_gl_get_glMatrixIndexubvARB (void);
+#define gdk_gl_glMatrixIndexubvARB(proc, size, indices) \
+ ( ((GdkGLProc_glMatrixIndexubvARB) (proc)) (size, indices) )
+
+/* glMatrixIndexusvARB */
+typedef void (APIENTRY * GdkGLProc_glMatrixIndexusvARB) (GLint size, const GLushort *indices);
+GdkGLProc gdk_gl_get_glMatrixIndexusvARB (void);
+#define gdk_gl_glMatrixIndexusvARB(proc, size, indices) \
+ ( ((GdkGLProc_glMatrixIndexusvARB) (proc)) (size, indices) )
+
+/* glMatrixIndexuivARB */
+typedef void (APIENTRY * GdkGLProc_glMatrixIndexuivARB) (GLint size, const GLuint *indices);
+GdkGLProc gdk_gl_get_glMatrixIndexuivARB (void);
+#define gdk_gl_glMatrixIndexuivARB(proc, size, indices) \
+ ( ((GdkGLProc_glMatrixIndexuivARB) (proc)) (size, indices) )
+
+/* glMatrixIndexPointerARB */
+typedef void (APIENTRY * GdkGLProc_glMatrixIndexPointerARB) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glMatrixIndexPointerARB (void);
+#define gdk_gl_glMatrixIndexPointerARB(proc, size, type, stride, pointer) \
+ ( ((GdkGLProc_glMatrixIndexPointerARB) (proc)) (size, type, stride, pointer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ARB_matrix_palette GdkGL_GL_ARB_matrix_palette;
+
+struct _GdkGL_GL_ARB_matrix_palette
+{
+ GdkGLProc_glCurrentPaletteMatrixARB glCurrentPaletteMatrixARB;
+ GdkGLProc_glMatrixIndexubvARB glMatrixIndexubvARB;
+ GdkGLProc_glMatrixIndexusvARB glMatrixIndexusvARB;
+ GdkGLProc_glMatrixIndexuivARB glMatrixIndexuivARB;
+ GdkGLProc_glMatrixIndexPointerARB glMatrixIndexPointerARB;
+};
+
+GdkGL_GL_ARB_matrix_palette *gdk_gl_get_GL_ARB_matrix_palette (void);
+
+/*
+ * GL_ARB_window_pos
+ */
+
+/* glWindowPos2dARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2dARB) (GLdouble x, GLdouble y);
+GdkGLProc gdk_gl_get_glWindowPos2dARB (void);
+#define gdk_gl_glWindowPos2dARB(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2dARB) (proc)) (x, y) )
+
+/* glWindowPos2dvARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2dvARB) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glWindowPos2dvARB (void);
+#define gdk_gl_glWindowPos2dvARB(proc, v) \
+ ( ((GdkGLProc_glWindowPos2dvARB) (proc)) (v) )
+
+/* glWindowPos2fARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2fARB) (GLfloat x, GLfloat y);
+GdkGLProc gdk_gl_get_glWindowPos2fARB (void);
+#define gdk_gl_glWindowPos2fARB(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2fARB) (proc)) (x, y) )
+
+/* glWindowPos2fvARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2fvARB) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glWindowPos2fvARB (void);
+#define gdk_gl_glWindowPos2fvARB(proc, v) \
+ ( ((GdkGLProc_glWindowPos2fvARB) (proc)) (v) )
+
+/* glWindowPos2iARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2iARB) (GLint x, GLint y);
+GdkGLProc gdk_gl_get_glWindowPos2iARB (void);
+#define gdk_gl_glWindowPos2iARB(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2iARB) (proc)) (x, y) )
+
+/* glWindowPos2ivARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2ivARB) (const GLint *v);
+GdkGLProc gdk_gl_get_glWindowPos2ivARB (void);
+#define gdk_gl_glWindowPos2ivARB(proc, v) \
+ ( ((GdkGLProc_glWindowPos2ivARB) (proc)) (v) )
+
+/* glWindowPos2sARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2sARB) (GLshort x, GLshort y);
+GdkGLProc gdk_gl_get_glWindowPos2sARB (void);
+#define gdk_gl_glWindowPos2sARB(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2sARB) (proc)) (x, y) )
+
+/* glWindowPos2svARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2svARB) (const GLshort *v);
+GdkGLProc gdk_gl_get_glWindowPos2svARB (void);
+#define gdk_gl_glWindowPos2svARB(proc, v) \
+ ( ((GdkGLProc_glWindowPos2svARB) (proc)) (v) )
+
+/* glWindowPos3dARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3dARB) (GLdouble x, GLdouble y, GLdouble z);
+GdkGLProc gdk_gl_get_glWindowPos3dARB (void);
+#define gdk_gl_glWindowPos3dARB(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3dARB) (proc)) (x, y, z) )
+
+/* glWindowPos3dvARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3dvARB) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glWindowPos3dvARB (void);
+#define gdk_gl_glWindowPos3dvARB(proc, v) \
+ ( ((GdkGLProc_glWindowPos3dvARB) (proc)) (v) )
+
+/* glWindowPos3fARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3fARB) (GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glWindowPos3fARB (void);
+#define gdk_gl_glWindowPos3fARB(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3fARB) (proc)) (x, y, z) )
+
+/* glWindowPos3fvARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3fvARB) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glWindowPos3fvARB (void);
+#define gdk_gl_glWindowPos3fvARB(proc, v) \
+ ( ((GdkGLProc_glWindowPos3fvARB) (proc)) (v) )
+
+/* glWindowPos3iARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3iARB) (GLint x, GLint y, GLint z);
+GdkGLProc gdk_gl_get_glWindowPos3iARB (void);
+#define gdk_gl_glWindowPos3iARB(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3iARB) (proc)) (x, y, z) )
+
+/* glWindowPos3ivARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3ivARB) (const GLint *v);
+GdkGLProc gdk_gl_get_glWindowPos3ivARB (void);
+#define gdk_gl_glWindowPos3ivARB(proc, v) \
+ ( ((GdkGLProc_glWindowPos3ivARB) (proc)) (v) )
+
+/* glWindowPos3sARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3sARB) (GLshort x, GLshort y, GLshort z);
+GdkGLProc gdk_gl_get_glWindowPos3sARB (void);
+#define gdk_gl_glWindowPos3sARB(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3sARB) (proc)) (x, y, z) )
+
+/* glWindowPos3svARB */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3svARB) (const GLshort *v);
+GdkGLProc gdk_gl_get_glWindowPos3svARB (void);
+#define gdk_gl_glWindowPos3svARB(proc, v) \
+ ( ((GdkGLProc_glWindowPos3svARB) (proc)) (v) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ARB_window_pos GdkGL_GL_ARB_window_pos;
+
+struct _GdkGL_GL_ARB_window_pos
+{
+ GdkGLProc_glWindowPos2dARB glWindowPos2dARB;
+ GdkGLProc_glWindowPos2dvARB glWindowPos2dvARB;
+ GdkGLProc_glWindowPos2fARB glWindowPos2fARB;
+ GdkGLProc_glWindowPos2fvARB glWindowPos2fvARB;
+ GdkGLProc_glWindowPos2iARB glWindowPos2iARB;
+ GdkGLProc_glWindowPos2ivARB glWindowPos2ivARB;
+ GdkGLProc_glWindowPos2sARB glWindowPos2sARB;
+ GdkGLProc_glWindowPos2svARB glWindowPos2svARB;
+ GdkGLProc_glWindowPos3dARB glWindowPos3dARB;
+ GdkGLProc_glWindowPos3dvARB glWindowPos3dvARB;
+ GdkGLProc_glWindowPos3fARB glWindowPos3fARB;
+ GdkGLProc_glWindowPos3fvARB glWindowPos3fvARB;
+ GdkGLProc_glWindowPos3iARB glWindowPos3iARB;
+ GdkGLProc_glWindowPos3ivARB glWindowPos3ivARB;
+ GdkGLProc_glWindowPos3sARB glWindowPos3sARB;
+ GdkGLProc_glWindowPos3svARB glWindowPos3svARB;
+};
+
+GdkGL_GL_ARB_window_pos *gdk_gl_get_GL_ARB_window_pos (void);
+
+/*
+ * GL_ARB_vertex_program
+ */
+
+/* glVertexAttrib1dARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1dARB) (GLuint index, GLdouble x);
+GdkGLProc gdk_gl_get_glVertexAttrib1dARB (void);
+#define gdk_gl_glVertexAttrib1dARB(proc, index, x) \
+ ( ((GdkGLProc_glVertexAttrib1dARB) (proc)) (index, x) )
+
+/* glVertexAttrib1dvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1dvARB) (GLuint index, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttrib1dvARB (void);
+#define gdk_gl_glVertexAttrib1dvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib1dvARB) (proc)) (index, v) )
+
+/* glVertexAttrib1fARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1fARB) (GLuint index, GLfloat x);
+GdkGLProc gdk_gl_get_glVertexAttrib1fARB (void);
+#define gdk_gl_glVertexAttrib1fARB(proc, index, x) \
+ ( ((GdkGLProc_glVertexAttrib1fARB) (proc)) (index, x) )
+
+/* glVertexAttrib1fvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1fvARB) (GLuint index, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttrib1fvARB (void);
+#define gdk_gl_glVertexAttrib1fvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib1fvARB) (proc)) (index, v) )
+
+/* glVertexAttrib1sARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1sARB) (GLuint index, GLshort x);
+GdkGLProc gdk_gl_get_glVertexAttrib1sARB (void);
+#define gdk_gl_glVertexAttrib1sARB(proc, index, x) \
+ ( ((GdkGLProc_glVertexAttrib1sARB) (proc)) (index, x) )
+
+/* glVertexAttrib1svARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1svARB) (GLuint index, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib1svARB (void);
+#define gdk_gl_glVertexAttrib1svARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib1svARB) (proc)) (index, v) )
+
+/* glVertexAttrib2dARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2dARB) (GLuint index, GLdouble x, GLdouble y);
+GdkGLProc gdk_gl_get_glVertexAttrib2dARB (void);
+#define gdk_gl_glVertexAttrib2dARB(proc, index, x, y) \
+ ( ((GdkGLProc_glVertexAttrib2dARB) (proc)) (index, x, y) )
+
+/* glVertexAttrib2dvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2dvARB) (GLuint index, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttrib2dvARB (void);
+#define gdk_gl_glVertexAttrib2dvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib2dvARB) (proc)) (index, v) )
+
+/* glVertexAttrib2fARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2fARB) (GLuint index, GLfloat x, GLfloat y);
+GdkGLProc gdk_gl_get_glVertexAttrib2fARB (void);
+#define gdk_gl_glVertexAttrib2fARB(proc, index, x, y) \
+ ( ((GdkGLProc_glVertexAttrib2fARB) (proc)) (index, x, y) )
+
+/* glVertexAttrib2fvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2fvARB) (GLuint index, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttrib2fvARB (void);
+#define gdk_gl_glVertexAttrib2fvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib2fvARB) (proc)) (index, v) )
+
+/* glVertexAttrib2sARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2sARB) (GLuint index, GLshort x, GLshort y);
+GdkGLProc gdk_gl_get_glVertexAttrib2sARB (void);
+#define gdk_gl_glVertexAttrib2sARB(proc, index, x, y) \
+ ( ((GdkGLProc_glVertexAttrib2sARB) (proc)) (index, x, y) )
+
+/* glVertexAttrib2svARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2svARB) (GLuint index, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib2svARB (void);
+#define gdk_gl_glVertexAttrib2svARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib2svARB) (proc)) (index, v) )
+
+/* glVertexAttrib3dARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3dARB) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+GdkGLProc gdk_gl_get_glVertexAttrib3dARB (void);
+#define gdk_gl_glVertexAttrib3dARB(proc, index, x, y, z) \
+ ( ((GdkGLProc_glVertexAttrib3dARB) (proc)) (index, x, y, z) )
+
+/* glVertexAttrib3dvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3dvARB) (GLuint index, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttrib3dvARB (void);
+#define gdk_gl_glVertexAttrib3dvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib3dvARB) (proc)) (index, v) )
+
+/* glVertexAttrib3fARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3fARB) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glVertexAttrib3fARB (void);
+#define gdk_gl_glVertexAttrib3fARB(proc, index, x, y, z) \
+ ( ((GdkGLProc_glVertexAttrib3fARB) (proc)) (index, x, y, z) )
+
+/* glVertexAttrib3fvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3fvARB) (GLuint index, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttrib3fvARB (void);
+#define gdk_gl_glVertexAttrib3fvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib3fvARB) (proc)) (index, v) )
+
+/* glVertexAttrib3sARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3sARB) (GLuint index, GLshort x, GLshort y, GLshort z);
+GdkGLProc gdk_gl_get_glVertexAttrib3sARB (void);
+#define gdk_gl_glVertexAttrib3sARB(proc, index, x, y, z) \
+ ( ((GdkGLProc_glVertexAttrib3sARB) (proc)) (index, x, y, z) )
+
+/* glVertexAttrib3svARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3svARB) (GLuint index, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib3svARB (void);
+#define gdk_gl_glVertexAttrib3svARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib3svARB) (proc)) (index, v) )
+
+/* glVertexAttrib4NbvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4NbvARB) (GLuint index, const GLbyte *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4NbvARB (void);
+#define gdk_gl_glVertexAttrib4NbvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4NbvARB) (proc)) (index, v) )
+
+/* glVertexAttrib4NivARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4NivARB) (GLuint index, const GLint *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4NivARB (void);
+#define gdk_gl_glVertexAttrib4NivARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4NivARB) (proc)) (index, v) )
+
+/* glVertexAttrib4NsvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4NsvARB) (GLuint index, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4NsvARB (void);
+#define gdk_gl_glVertexAttrib4NsvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4NsvARB) (proc)) (index, v) )
+
+/* glVertexAttrib4NubARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4NubARB) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+GdkGLProc gdk_gl_get_glVertexAttrib4NubARB (void);
+#define gdk_gl_glVertexAttrib4NubARB(proc, index, x, y, z, w) \
+ ( ((GdkGLProc_glVertexAttrib4NubARB) (proc)) (index, x, y, z, w) )
+
+/* glVertexAttrib4NubvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4NubvARB) (GLuint index, const GLubyte *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4NubvARB (void);
+#define gdk_gl_glVertexAttrib4NubvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4NubvARB) (proc)) (index, v) )
+
+/* glVertexAttrib4NuivARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4NuivARB) (GLuint index, const GLuint *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4NuivARB (void);
+#define gdk_gl_glVertexAttrib4NuivARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4NuivARB) (proc)) (index, v) )
+
+/* glVertexAttrib4NusvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4NusvARB) (GLuint index, const GLushort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4NusvARB (void);
+#define gdk_gl_glVertexAttrib4NusvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4NusvARB) (proc)) (index, v) )
+
+/* glVertexAttrib4bvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4bvARB) (GLuint index, const GLbyte *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4bvARB (void);
+#define gdk_gl_glVertexAttrib4bvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4bvARB) (proc)) (index, v) )
+
+/* glVertexAttrib4dARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4dARB) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GdkGLProc gdk_gl_get_glVertexAttrib4dARB (void);
+#define gdk_gl_glVertexAttrib4dARB(proc, index, x, y, z, w) \
+ ( ((GdkGLProc_glVertexAttrib4dARB) (proc)) (index, x, y, z, w) )
+
+/* glVertexAttrib4dvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4dvARB) (GLuint index, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4dvARB (void);
+#define gdk_gl_glVertexAttrib4dvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4dvARB) (proc)) (index, v) )
+
+/* glVertexAttrib4fARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4fARB) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GdkGLProc gdk_gl_get_glVertexAttrib4fARB (void);
+#define gdk_gl_glVertexAttrib4fARB(proc, index, x, y, z, w) \
+ ( ((GdkGLProc_glVertexAttrib4fARB) (proc)) (index, x, y, z, w) )
+
+/* glVertexAttrib4fvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4fvARB) (GLuint index, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4fvARB (void);
+#define gdk_gl_glVertexAttrib4fvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4fvARB) (proc)) (index, v) )
+
+/* glVertexAttrib4ivARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4ivARB) (GLuint index, const GLint *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4ivARB (void);
+#define gdk_gl_glVertexAttrib4ivARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4ivARB) (proc)) (index, v) )
+
+/* glVertexAttrib4sARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4sARB) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+GdkGLProc gdk_gl_get_glVertexAttrib4sARB (void);
+#define gdk_gl_glVertexAttrib4sARB(proc, index, x, y, z, w) \
+ ( ((GdkGLProc_glVertexAttrib4sARB) (proc)) (index, x, y, z, w) )
+
+/* glVertexAttrib4svARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4svARB) (GLuint index, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4svARB (void);
+#define gdk_gl_glVertexAttrib4svARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4svARB) (proc)) (index, v) )
+
+/* glVertexAttrib4ubvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4ubvARB) (GLuint index, const GLubyte *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4ubvARB (void);
+#define gdk_gl_glVertexAttrib4ubvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4ubvARB) (proc)) (index, v) )
+
+/* glVertexAttrib4uivARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4uivARB) (GLuint index, const GLuint *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4uivARB (void);
+#define gdk_gl_glVertexAttrib4uivARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4uivARB) (proc)) (index, v) )
+
+/* glVertexAttrib4usvARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4usvARB) (GLuint index, const GLushort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4usvARB (void);
+#define gdk_gl_glVertexAttrib4usvARB(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4usvARB) (proc)) (index, v) )
+
+/* glVertexAttribPointerARB */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribPointerARB) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glVertexAttribPointerARB (void);
+#define gdk_gl_glVertexAttribPointerARB(proc, index, size, type, normalized, stride, pointer) \
+ ( ((GdkGLProc_glVertexAttribPointerARB) (proc)) (index, size, type, normalized, stride, pointer) )
+
+/* glEnableVertexAttribArrayARB */
+typedef void (APIENTRY * GdkGLProc_glEnableVertexAttribArrayARB) (GLuint index);
+GdkGLProc gdk_gl_get_glEnableVertexAttribArrayARB (void);
+#define gdk_gl_glEnableVertexAttribArrayARB(proc, index) \
+ ( ((GdkGLProc_glEnableVertexAttribArrayARB) (proc)) (index) )
+
+/* glDisableVertexAttribArrayARB */
+typedef void (APIENTRY * GdkGLProc_glDisableVertexAttribArrayARB) (GLuint index);
+GdkGLProc gdk_gl_get_glDisableVertexAttribArrayARB (void);
+#define gdk_gl_glDisableVertexAttribArrayARB(proc, index) \
+ ( ((GdkGLProc_glDisableVertexAttribArrayARB) (proc)) (index) )
+
+/* glProgramStringARB */
+typedef void (APIENTRY * GdkGLProc_glProgramStringARB) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
+GdkGLProc gdk_gl_get_glProgramStringARB (void);
+#define gdk_gl_glProgramStringARB(proc, target, format, len, string) \
+ ( ((GdkGLProc_glProgramStringARB) (proc)) (target, format, len, string) )
+
+/* glBindProgramARB */
+typedef void (APIENTRY * GdkGLProc_glBindProgramARB) (GLenum target, GLuint program);
+GdkGLProc gdk_gl_get_glBindProgramARB (void);
+#define gdk_gl_glBindProgramARB(proc, target, program) \
+ ( ((GdkGLProc_glBindProgramARB) (proc)) (target, program) )
+
+/* glDeleteProgramsARB */
+typedef void (APIENTRY * GdkGLProc_glDeleteProgramsARB) (GLsizei n, const GLuint *programs);
+GdkGLProc gdk_gl_get_glDeleteProgramsARB (void);
+#define gdk_gl_glDeleteProgramsARB(proc, n, programs) \
+ ( ((GdkGLProc_glDeleteProgramsARB) (proc)) (n, programs) )
+
+/* glGenProgramsARB */
+typedef void (APIENTRY * GdkGLProc_glGenProgramsARB) (GLsizei n, GLuint *programs);
+GdkGLProc gdk_gl_get_glGenProgramsARB (void);
+#define gdk_gl_glGenProgramsARB(proc, n, programs) \
+ ( ((GdkGLProc_glGenProgramsARB) (proc)) (n, programs) )
+
+/* glProgramEnvParameter4dARB */
+typedef void (APIENTRY * GdkGLProc_glProgramEnvParameter4dARB) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GdkGLProc gdk_gl_get_glProgramEnvParameter4dARB (void);
+#define gdk_gl_glProgramEnvParameter4dARB(proc, target, index, x, y, z, w) \
+ ( ((GdkGLProc_glProgramEnvParameter4dARB) (proc)) (target, index, x, y, z, w) )
+
+/* glProgramEnvParameter4dvARB */
+typedef void (APIENTRY * GdkGLProc_glProgramEnvParameter4dvARB) (GLenum target, GLuint index, const GLdouble *params);
+GdkGLProc gdk_gl_get_glProgramEnvParameter4dvARB (void);
+#define gdk_gl_glProgramEnvParameter4dvARB(proc, target, index, params) \
+ ( ((GdkGLProc_glProgramEnvParameter4dvARB) (proc)) (target, index, params) )
+
+/* glProgramEnvParameter4fARB */
+typedef void (APIENTRY * GdkGLProc_glProgramEnvParameter4fARB) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GdkGLProc gdk_gl_get_glProgramEnvParameter4fARB (void);
+#define gdk_gl_glProgramEnvParameter4fARB(proc, target, index, x, y, z, w) \
+ ( ((GdkGLProc_glProgramEnvParameter4fARB) (proc)) (target, index, x, y, z, w) )
+
+/* glProgramEnvParameter4fvARB */
+typedef void (APIENTRY * GdkGLProc_glProgramEnvParameter4fvARB) (GLenum target, GLuint index, const GLfloat *params);
+GdkGLProc gdk_gl_get_glProgramEnvParameter4fvARB (void);
+#define gdk_gl_glProgramEnvParameter4fvARB(proc, target, index, params) \
+ ( ((GdkGLProc_glProgramEnvParameter4fvARB) (proc)) (target, index, params) )
+
+/* glProgramLocalParameter4dARB */
+typedef void (APIENTRY * GdkGLProc_glProgramLocalParameter4dARB) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GdkGLProc gdk_gl_get_glProgramLocalParameter4dARB (void);
+#define gdk_gl_glProgramLocalParameter4dARB(proc, target, index, x, y, z, w) \
+ ( ((GdkGLProc_glProgramLocalParameter4dARB) (proc)) (target, index, x, y, z, w) )
+
+/* glProgramLocalParameter4dvARB */
+typedef void (APIENTRY * GdkGLProc_glProgramLocalParameter4dvARB) (GLenum target, GLuint index, const GLdouble *params);
+GdkGLProc gdk_gl_get_glProgramLocalParameter4dvARB (void);
+#define gdk_gl_glProgramLocalParameter4dvARB(proc, target, index, params) \
+ ( ((GdkGLProc_glProgramLocalParameter4dvARB) (proc)) (target, index, params) )
+
+/* glProgramLocalParameter4fARB */
+typedef void (APIENTRY * GdkGLProc_glProgramLocalParameter4fARB) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GdkGLProc gdk_gl_get_glProgramLocalParameter4fARB (void);
+#define gdk_gl_glProgramLocalParameter4fARB(proc, target, index, x, y, z, w) \
+ ( ((GdkGLProc_glProgramLocalParameter4fARB) (proc)) (target, index, x, y, z, w) )
+
+/* glProgramLocalParameter4fvARB */
+typedef void (APIENTRY * GdkGLProc_glProgramLocalParameter4fvARB) (GLenum target, GLuint index, const GLfloat *params);
+GdkGLProc gdk_gl_get_glProgramLocalParameter4fvARB (void);
+#define gdk_gl_glProgramLocalParameter4fvARB(proc, target, index, params) \
+ ( ((GdkGLProc_glProgramLocalParameter4fvARB) (proc)) (target, index, params) )
+
+/* glGetProgramEnvParameterdvARB */
+typedef void (APIENTRY * GdkGLProc_glGetProgramEnvParameterdvARB) (GLenum target, GLuint index, GLdouble *params);
+GdkGLProc gdk_gl_get_glGetProgramEnvParameterdvARB (void);
+#define gdk_gl_glGetProgramEnvParameterdvARB(proc, target, index, params) \
+ ( ((GdkGLProc_glGetProgramEnvParameterdvARB) (proc)) (target, index, params) )
+
+/* glGetProgramEnvParameterfvARB */
+typedef void (APIENTRY * GdkGLProc_glGetProgramEnvParameterfvARB) (GLenum target, GLuint index, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetProgramEnvParameterfvARB (void);
+#define gdk_gl_glGetProgramEnvParameterfvARB(proc, target, index, params) \
+ ( ((GdkGLProc_glGetProgramEnvParameterfvARB) (proc)) (target, index, params) )
+
+/* glGetProgramLocalParameterdvARB */
+typedef void (APIENTRY * GdkGLProc_glGetProgramLocalParameterdvARB) (GLenum target, GLuint index, GLdouble *params);
+GdkGLProc gdk_gl_get_glGetProgramLocalParameterdvARB (void);
+#define gdk_gl_glGetProgramLocalParameterdvARB(proc, target, index, params) \
+ ( ((GdkGLProc_glGetProgramLocalParameterdvARB) (proc)) (target, index, params) )
+
+/* glGetProgramLocalParameterfvARB */
+typedef void (APIENTRY * GdkGLProc_glGetProgramLocalParameterfvARB) (GLenum target, GLuint index, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetProgramLocalParameterfvARB (void);
+#define gdk_gl_glGetProgramLocalParameterfvARB(proc, target, index, params) \
+ ( ((GdkGLProc_glGetProgramLocalParameterfvARB) (proc)) (target, index, params) )
+
+/* glGetProgramivARB */
+typedef void (APIENTRY * GdkGLProc_glGetProgramivARB) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetProgramivARB (void);
+#define gdk_gl_glGetProgramivARB(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetProgramivARB) (proc)) (target, pname, params) )
+
+/* glGetProgramStringARB */
+typedef void (APIENTRY * GdkGLProc_glGetProgramStringARB) (GLenum target, GLenum pname, GLvoid *string);
+GdkGLProc gdk_gl_get_glGetProgramStringARB (void);
+#define gdk_gl_glGetProgramStringARB(proc, target, pname, string) \
+ ( ((GdkGLProc_glGetProgramStringARB) (proc)) (target, pname, string) )
+
+/* glGetVertexAttribdvARB */
+typedef void (APIENTRY * GdkGLProc_glGetVertexAttribdvARB) (GLuint index, GLenum pname, GLdouble *params);
+GdkGLProc gdk_gl_get_glGetVertexAttribdvARB (void);
+#define gdk_gl_glGetVertexAttribdvARB(proc, index, pname, params) \
+ ( ((GdkGLProc_glGetVertexAttribdvARB) (proc)) (index, pname, params) )
+
+/* glGetVertexAttribfvARB */
+typedef void (APIENTRY * GdkGLProc_glGetVertexAttribfvARB) (GLuint index, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetVertexAttribfvARB (void);
+#define gdk_gl_glGetVertexAttribfvARB(proc, index, pname, params) \
+ ( ((GdkGLProc_glGetVertexAttribfvARB) (proc)) (index, pname, params) )
+
+/* glGetVertexAttribivARB */
+typedef void (APIENTRY * GdkGLProc_glGetVertexAttribivARB) (GLuint index, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetVertexAttribivARB (void);
+#define gdk_gl_glGetVertexAttribivARB(proc, index, pname, params) \
+ ( ((GdkGLProc_glGetVertexAttribivARB) (proc)) (index, pname, params) )
+
+/* glGetVertexAttribPointervARB */
+typedef void (APIENTRY * GdkGLProc_glGetVertexAttribPointervARB) (GLuint index, GLenum pname, GLvoid* *pointer);
+GdkGLProc gdk_gl_get_glGetVertexAttribPointervARB (void);
+#define gdk_gl_glGetVertexAttribPointervARB(proc, index, pname, pointer) \
+ ( ((GdkGLProc_glGetVertexAttribPointervARB) (proc)) (index, pname, pointer) )
+
+/* glIsProgramARB */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsProgramARB) (GLuint program);
+GdkGLProc gdk_gl_get_glIsProgramARB (void);
+#define gdk_gl_glIsProgramARB(proc, program) \
+ ( ((GdkGLProc_glIsProgramARB) (proc)) (program) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ARB_vertex_program GdkGL_GL_ARB_vertex_program;
+
+struct _GdkGL_GL_ARB_vertex_program
+{
+ GdkGLProc_glVertexAttrib1dARB glVertexAttrib1dARB;
+ GdkGLProc_glVertexAttrib1dvARB glVertexAttrib1dvARB;
+ GdkGLProc_glVertexAttrib1fARB glVertexAttrib1fARB;
+ GdkGLProc_glVertexAttrib1fvARB glVertexAttrib1fvARB;
+ GdkGLProc_glVertexAttrib1sARB glVertexAttrib1sARB;
+ GdkGLProc_glVertexAttrib1svARB glVertexAttrib1svARB;
+ GdkGLProc_glVertexAttrib2dARB glVertexAttrib2dARB;
+ GdkGLProc_glVertexAttrib2dvARB glVertexAttrib2dvARB;
+ GdkGLProc_glVertexAttrib2fARB glVertexAttrib2fARB;
+ GdkGLProc_glVertexAttrib2fvARB glVertexAttrib2fvARB;
+ GdkGLProc_glVertexAttrib2sARB glVertexAttrib2sARB;
+ GdkGLProc_glVertexAttrib2svARB glVertexAttrib2svARB;
+ GdkGLProc_glVertexAttrib3dARB glVertexAttrib3dARB;
+ GdkGLProc_glVertexAttrib3dvARB glVertexAttrib3dvARB;
+ GdkGLProc_glVertexAttrib3fARB glVertexAttrib3fARB;
+ GdkGLProc_glVertexAttrib3fvARB glVertexAttrib3fvARB;
+ GdkGLProc_glVertexAttrib3sARB glVertexAttrib3sARB;
+ GdkGLProc_glVertexAttrib3svARB glVertexAttrib3svARB;
+ GdkGLProc_glVertexAttrib4NbvARB glVertexAttrib4NbvARB;
+ GdkGLProc_glVertexAttrib4NivARB glVertexAttrib4NivARB;
+ GdkGLProc_glVertexAttrib4NsvARB glVertexAttrib4NsvARB;
+ GdkGLProc_glVertexAttrib4NubARB glVertexAttrib4NubARB;
+ GdkGLProc_glVertexAttrib4NubvARB glVertexAttrib4NubvARB;
+ GdkGLProc_glVertexAttrib4NuivARB glVertexAttrib4NuivARB;
+ GdkGLProc_glVertexAttrib4NusvARB glVertexAttrib4NusvARB;
+ GdkGLProc_glVertexAttrib4bvARB glVertexAttrib4bvARB;
+ GdkGLProc_glVertexAttrib4dARB glVertexAttrib4dARB;
+ GdkGLProc_glVertexAttrib4dvARB glVertexAttrib4dvARB;
+ GdkGLProc_glVertexAttrib4fARB glVertexAttrib4fARB;
+ GdkGLProc_glVertexAttrib4fvARB glVertexAttrib4fvARB;
+ GdkGLProc_glVertexAttrib4ivARB glVertexAttrib4ivARB;
+ GdkGLProc_glVertexAttrib4sARB glVertexAttrib4sARB;
+ GdkGLProc_glVertexAttrib4svARB glVertexAttrib4svARB;
+ GdkGLProc_glVertexAttrib4ubvARB glVertexAttrib4ubvARB;
+ GdkGLProc_glVertexAttrib4uivARB glVertexAttrib4uivARB;
+ GdkGLProc_glVertexAttrib4usvARB glVertexAttrib4usvARB;
+ GdkGLProc_glVertexAttribPointerARB glVertexAttribPointerARB;
+ GdkGLProc_glEnableVertexAttribArrayARB glEnableVertexAttribArrayARB;
+ GdkGLProc_glDisableVertexAttribArrayARB glDisableVertexAttribArrayARB;
+ GdkGLProc_glProgramStringARB glProgramStringARB;
+ GdkGLProc_glBindProgramARB glBindProgramARB;
+ GdkGLProc_glDeleteProgramsARB glDeleteProgramsARB;
+ GdkGLProc_glGenProgramsARB glGenProgramsARB;
+ GdkGLProc_glProgramEnvParameter4dARB glProgramEnvParameter4dARB;
+ GdkGLProc_glProgramEnvParameter4dvARB glProgramEnvParameter4dvARB;
+ GdkGLProc_glProgramEnvParameter4fARB glProgramEnvParameter4fARB;
+ GdkGLProc_glProgramEnvParameter4fvARB glProgramEnvParameter4fvARB;
+ GdkGLProc_glProgramLocalParameter4dARB glProgramLocalParameter4dARB;
+ GdkGLProc_glProgramLocalParameter4dvARB glProgramLocalParameter4dvARB;
+ GdkGLProc_glProgramLocalParameter4fARB glProgramLocalParameter4fARB;
+ GdkGLProc_glProgramLocalParameter4fvARB glProgramLocalParameter4fvARB;
+ GdkGLProc_glGetProgramEnvParameterdvARB glGetProgramEnvParameterdvARB;
+ GdkGLProc_glGetProgramEnvParameterfvARB glGetProgramEnvParameterfvARB;
+ GdkGLProc_glGetProgramLocalParameterdvARB glGetProgramLocalParameterdvARB;
+ GdkGLProc_glGetProgramLocalParameterfvARB glGetProgramLocalParameterfvARB;
+ GdkGLProc_glGetProgramivARB glGetProgramivARB;
+ GdkGLProc_glGetProgramStringARB glGetProgramStringARB;
+ GdkGLProc_glGetVertexAttribdvARB glGetVertexAttribdvARB;
+ GdkGLProc_glGetVertexAttribfvARB glGetVertexAttribfvARB;
+ GdkGLProc_glGetVertexAttribivARB glGetVertexAttribivARB;
+ GdkGLProc_glGetVertexAttribPointervARB glGetVertexAttribPointervARB;
+ GdkGLProc_glIsProgramARB glIsProgramARB;
+};
+
+GdkGL_GL_ARB_vertex_program *gdk_gl_get_GL_ARB_vertex_program (void);
+
+/*
+ * GL_ARB_vertex_buffer_object
+ */
+
+/* glBindBufferARB */
+typedef void (APIENTRY * GdkGLProc_glBindBufferARB) (GLenum target, GLuint buffer);
+GdkGLProc gdk_gl_get_glBindBufferARB (void);
+#define gdk_gl_glBindBufferARB(proc, target, buffer) \
+ ( ((GdkGLProc_glBindBufferARB) (proc)) (target, buffer) )
+
+/* glDeleteBuffersARB */
+typedef void (APIENTRY * GdkGLProc_glDeleteBuffersARB) (GLsizei n, const GLuint *buffers);
+GdkGLProc gdk_gl_get_glDeleteBuffersARB (void);
+#define gdk_gl_glDeleteBuffersARB(proc, n, buffers) \
+ ( ((GdkGLProc_glDeleteBuffersARB) (proc)) (n, buffers) )
+
+/* glGenBuffersARB */
+typedef void (APIENTRY * GdkGLProc_glGenBuffersARB) (GLsizei n, GLuint *buffers);
+GdkGLProc gdk_gl_get_glGenBuffersARB (void);
+#define gdk_gl_glGenBuffersARB(proc, n, buffers) \
+ ( ((GdkGLProc_glGenBuffersARB) (proc)) (n, buffers) )
+
+/* glIsBufferARB */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsBufferARB) (GLuint buffer);
+GdkGLProc gdk_gl_get_glIsBufferARB (void);
+#define gdk_gl_glIsBufferARB(proc, buffer) \
+ ( ((GdkGLProc_glIsBufferARB) (proc)) (buffer) )
+
+/* glBufferDataARB */
+typedef void (APIENTRY * GdkGLProc_glBufferDataARB) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
+GdkGLProc gdk_gl_get_glBufferDataARB (void);
+#define gdk_gl_glBufferDataARB(proc, target, size, data, usage) \
+ ( ((GdkGLProc_glBufferDataARB) (proc)) (target, size, data, usage) )
+
+/* glBufferSubDataARB */
+typedef void (APIENTRY * GdkGLProc_glBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
+GdkGLProc gdk_gl_get_glBufferSubDataARB (void);
+#define gdk_gl_glBufferSubDataARB(proc, target, offset, size, data) \
+ ( ((GdkGLProc_glBufferSubDataARB) (proc)) (target, offset, size, data) )
+
+/* glGetBufferSubDataARB */
+typedef void (APIENTRY * GdkGLProc_glGetBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
+GdkGLProc gdk_gl_get_glGetBufferSubDataARB (void);
+#define gdk_gl_glGetBufferSubDataARB(proc, target, offset, size, data) \
+ ( ((GdkGLProc_glGetBufferSubDataARB) (proc)) (target, offset, size, data) )
+
+/* glMapBufferARB */
+typedef GLvoid* (APIENTRY * GdkGLProc_glMapBufferARB) (GLenum target, GLenum access);
+GdkGLProc gdk_gl_get_glMapBufferARB (void);
+#define gdk_gl_glMapBufferARB(proc, target, access) \
+ ( ((GdkGLProc_glMapBufferARB) (proc)) (target, access) )
+
+/* glUnmapBufferARB */
+typedef GLboolean (APIENTRY * GdkGLProc_glUnmapBufferARB) (GLenum target);
+GdkGLProc gdk_gl_get_glUnmapBufferARB (void);
+#define gdk_gl_glUnmapBufferARB(proc, target) \
+ ( ((GdkGLProc_glUnmapBufferARB) (proc)) (target) )
+
+/* glGetBufferParameterivARB */
+typedef void (APIENTRY * GdkGLProc_glGetBufferParameterivARB) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetBufferParameterivARB (void);
+#define gdk_gl_glGetBufferParameterivARB(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetBufferParameterivARB) (proc)) (target, pname, params) )
+
+/* glGetBufferPointervARB */
+typedef void (APIENTRY * GdkGLProc_glGetBufferPointervARB) (GLenum target, GLenum pname, GLvoid* *params);
+GdkGLProc gdk_gl_get_glGetBufferPointervARB (void);
+#define gdk_gl_glGetBufferPointervARB(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetBufferPointervARB) (proc)) (target, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ARB_vertex_buffer_object GdkGL_GL_ARB_vertex_buffer_object;
+
+struct _GdkGL_GL_ARB_vertex_buffer_object
+{
+ GdkGLProc_glBindBufferARB glBindBufferARB;
+ GdkGLProc_glDeleteBuffersARB glDeleteBuffersARB;
+ GdkGLProc_glGenBuffersARB glGenBuffersARB;
+ GdkGLProc_glIsBufferARB glIsBufferARB;
+ GdkGLProc_glBufferDataARB glBufferDataARB;
+ GdkGLProc_glBufferSubDataARB glBufferSubDataARB;
+ GdkGLProc_glGetBufferSubDataARB glGetBufferSubDataARB;
+ GdkGLProc_glMapBufferARB glMapBufferARB;
+ GdkGLProc_glUnmapBufferARB glUnmapBufferARB;
+ GdkGLProc_glGetBufferParameterivARB glGetBufferParameterivARB;
+ GdkGLProc_glGetBufferPointervARB glGetBufferPointervARB;
+};
+
+GdkGL_GL_ARB_vertex_buffer_object *gdk_gl_get_GL_ARB_vertex_buffer_object (void);
+
+/*
+ * GL_EXT_blend_color
+ */
+
+/* glBlendColorEXT */
+typedef void (APIENTRY * GdkGLProc_glBlendColorEXT) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+GdkGLProc gdk_gl_get_glBlendColorEXT (void);
+#define gdk_gl_glBlendColorEXT(proc, red, green, blue, alpha) \
+ ( ((GdkGLProc_glBlendColorEXT) (proc)) (red, green, blue, alpha) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_blend_color GdkGL_GL_EXT_blend_color;
+
+struct _GdkGL_GL_EXT_blend_color
+{
+ GdkGLProc_glBlendColorEXT glBlendColorEXT;
+};
+
+GdkGL_GL_EXT_blend_color *gdk_gl_get_GL_EXT_blend_color (void);
+
+/*
+ * GL_EXT_polygon_offset
+ */
+
+/* glPolygonOffsetEXT */
+typedef void (APIENTRY * GdkGLProc_glPolygonOffsetEXT) (GLfloat factor, GLfloat bias);
+GdkGLProc gdk_gl_get_glPolygonOffsetEXT (void);
+#define gdk_gl_glPolygonOffsetEXT(proc, factor, bias) \
+ ( ((GdkGLProc_glPolygonOffsetEXT) (proc)) (factor, bias) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_polygon_offset GdkGL_GL_EXT_polygon_offset;
+
+struct _GdkGL_GL_EXT_polygon_offset
+{
+ GdkGLProc_glPolygonOffsetEXT glPolygonOffsetEXT;
+};
+
+GdkGL_GL_EXT_polygon_offset *gdk_gl_get_GL_EXT_polygon_offset (void);
+
+/*
+ * GL_EXT_texture3D
+ */
+
+/* glTexImage3DEXT */
+typedef void (APIENTRY * GdkGLProc_glTexImage3DEXT) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+GdkGLProc gdk_gl_get_glTexImage3DEXT (void);
+#define gdk_gl_glTexImage3DEXT(proc, target, level, internalformat, width, height, depth, border, format, type, pixels) \
+ ( ((GdkGLProc_glTexImage3DEXT) (proc)) (target, level, internalformat, width, height, depth, border, format, type, pixels) )
+
+/* glTexSubImage3DEXT */
+typedef void (APIENTRY * GdkGLProc_glTexSubImage3DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+GdkGLProc gdk_gl_get_glTexSubImage3DEXT (void);
+#define gdk_gl_glTexSubImage3DEXT(proc, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) \
+ ( ((GdkGLProc_glTexSubImage3DEXT) (proc)) (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_texture3D GdkGL_GL_EXT_texture3D;
+
+struct _GdkGL_GL_EXT_texture3D
+{
+ GdkGLProc_glTexImage3DEXT glTexImage3DEXT;
+ GdkGLProc_glTexSubImage3DEXT glTexSubImage3DEXT;
+};
+
+GdkGL_GL_EXT_texture3D *gdk_gl_get_GL_EXT_texture3D (void);
+
+/*
+ * GL_SGIS_texture_filter4
+ */
+
+/* glGetTexFilterFuncSGIS */
+typedef void (APIENTRY * GdkGLProc_glGetTexFilterFuncSGIS) (GLenum target, GLenum filter, GLfloat *weights);
+GdkGLProc gdk_gl_get_glGetTexFilterFuncSGIS (void);
+#define gdk_gl_glGetTexFilterFuncSGIS(proc, target, filter, weights) \
+ ( ((GdkGLProc_glGetTexFilterFuncSGIS) (proc)) (target, filter, weights) )
+
+/* glTexFilterFuncSGIS */
+typedef void (APIENTRY * GdkGLProc_glTexFilterFuncSGIS) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
+GdkGLProc gdk_gl_get_glTexFilterFuncSGIS (void);
+#define gdk_gl_glTexFilterFuncSGIS(proc, target, filter, n, weights) \
+ ( ((GdkGLProc_glTexFilterFuncSGIS) (proc)) (target, filter, n, weights) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIS_texture_filter4 GdkGL_GL_SGIS_texture_filter4;
+
+struct _GdkGL_GL_SGIS_texture_filter4
+{
+ GdkGLProc_glGetTexFilterFuncSGIS glGetTexFilterFuncSGIS;
+ GdkGLProc_glTexFilterFuncSGIS glTexFilterFuncSGIS;
+};
+
+GdkGL_GL_SGIS_texture_filter4 *gdk_gl_get_GL_SGIS_texture_filter4 (void);
+
+/*
+ * GL_EXT_subtexture
+ */
+
+/* glTexSubImage1DEXT */
+typedef void (APIENTRY * GdkGLProc_glTexSubImage1DEXT) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+GdkGLProc gdk_gl_get_glTexSubImage1DEXT (void);
+#define gdk_gl_glTexSubImage1DEXT(proc, target, level, xoffset, width, format, type, pixels) \
+ ( ((GdkGLProc_glTexSubImage1DEXT) (proc)) (target, level, xoffset, width, format, type, pixels) )
+
+/* glTexSubImage2DEXT */
+typedef void (APIENTRY * GdkGLProc_glTexSubImage2DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+GdkGLProc gdk_gl_get_glTexSubImage2DEXT (void);
+#define gdk_gl_glTexSubImage2DEXT(proc, target, level, xoffset, yoffset, width, height, format, type, pixels) \
+ ( ((GdkGLProc_glTexSubImage2DEXT) (proc)) (target, level, xoffset, yoffset, width, height, format, type, pixels) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_subtexture GdkGL_GL_EXT_subtexture;
+
+struct _GdkGL_GL_EXT_subtexture
+{
+ GdkGLProc_glTexSubImage1DEXT glTexSubImage1DEXT;
+ GdkGLProc_glTexSubImage2DEXT glTexSubImage2DEXT;
+};
+
+GdkGL_GL_EXT_subtexture *gdk_gl_get_GL_EXT_subtexture (void);
+
+/*
+ * GL_EXT_copy_texture
+ */
+
+/* glCopyTexImage1DEXT */
+typedef void (APIENTRY * GdkGLProc_glCopyTexImage1DEXT) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+GdkGLProc gdk_gl_get_glCopyTexImage1DEXT (void);
+#define gdk_gl_glCopyTexImage1DEXT(proc, target, level, internalformat, x, y, width, border) \
+ ( ((GdkGLProc_glCopyTexImage1DEXT) (proc)) (target, level, internalformat, x, y, width, border) )
+
+/* glCopyTexImage2DEXT */
+typedef void (APIENTRY * GdkGLProc_glCopyTexImage2DEXT) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+GdkGLProc gdk_gl_get_glCopyTexImage2DEXT (void);
+#define gdk_gl_glCopyTexImage2DEXT(proc, target, level, internalformat, x, y, width, height, border) \
+ ( ((GdkGLProc_glCopyTexImage2DEXT) (proc)) (target, level, internalformat, x, y, width, height, border) )
+
+/* glCopyTexSubImage1DEXT */
+typedef void (APIENTRY * GdkGLProc_glCopyTexSubImage1DEXT) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+GdkGLProc gdk_gl_get_glCopyTexSubImage1DEXT (void);
+#define gdk_gl_glCopyTexSubImage1DEXT(proc, target, level, xoffset, x, y, width) \
+ ( ((GdkGLProc_glCopyTexSubImage1DEXT) (proc)) (target, level, xoffset, x, y, width) )
+
+/* glCopyTexSubImage2DEXT */
+typedef void (APIENTRY * GdkGLProc_glCopyTexSubImage2DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+GdkGLProc gdk_gl_get_glCopyTexSubImage2DEXT (void);
+#define gdk_gl_glCopyTexSubImage2DEXT(proc, target, level, xoffset, yoffset, x, y, width, height) \
+ ( ((GdkGLProc_glCopyTexSubImage2DEXT) (proc)) (target, level, xoffset, yoffset, x, y, width, height) )
+
+/* glCopyTexSubImage3DEXT */
+typedef void (APIENTRY * GdkGLProc_glCopyTexSubImage3DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+GdkGLProc gdk_gl_get_glCopyTexSubImage3DEXT (void);
+#define gdk_gl_glCopyTexSubImage3DEXT(proc, target, level, xoffset, yoffset, zoffset, x, y, width, height) \
+ ( ((GdkGLProc_glCopyTexSubImage3DEXT) (proc)) (target, level, xoffset, yoffset, zoffset, x, y, width, height) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_copy_texture GdkGL_GL_EXT_copy_texture;
+
+struct _GdkGL_GL_EXT_copy_texture
+{
+ GdkGLProc_glCopyTexImage1DEXT glCopyTexImage1DEXT;
+ GdkGLProc_glCopyTexImage2DEXT glCopyTexImage2DEXT;
+ GdkGLProc_glCopyTexSubImage1DEXT glCopyTexSubImage1DEXT;
+ GdkGLProc_glCopyTexSubImage2DEXT glCopyTexSubImage2DEXT;
+ GdkGLProc_glCopyTexSubImage3DEXT glCopyTexSubImage3DEXT;
+};
+
+GdkGL_GL_EXT_copy_texture *gdk_gl_get_GL_EXT_copy_texture (void);
+
+/*
+ * GL_EXT_histogram
+ */
+
+/* glGetHistogramEXT */
+typedef void (APIENTRY * GdkGLProc_glGetHistogramEXT) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+GdkGLProc gdk_gl_get_glGetHistogramEXT (void);
+#define gdk_gl_glGetHistogramEXT(proc, target, reset, format, type, values) \
+ ( ((GdkGLProc_glGetHistogramEXT) (proc)) (target, reset, format, type, values) )
+
+/* glGetHistogramParameterfvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetHistogramParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetHistogramParameterfvEXT (void);
+#define gdk_gl_glGetHistogramParameterfvEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetHistogramParameterfvEXT) (proc)) (target, pname, params) )
+
+/* glGetHistogramParameterivEXT */
+typedef void (APIENTRY * GdkGLProc_glGetHistogramParameterivEXT) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetHistogramParameterivEXT (void);
+#define gdk_gl_glGetHistogramParameterivEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetHistogramParameterivEXT) (proc)) (target, pname, params) )
+
+/* glGetMinmaxEXT */
+typedef void (APIENTRY * GdkGLProc_glGetMinmaxEXT) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+GdkGLProc gdk_gl_get_glGetMinmaxEXT (void);
+#define gdk_gl_glGetMinmaxEXT(proc, target, reset, format, type, values) \
+ ( ((GdkGLProc_glGetMinmaxEXT) (proc)) (target, reset, format, type, values) )
+
+/* glGetMinmaxParameterfvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetMinmaxParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetMinmaxParameterfvEXT (void);
+#define gdk_gl_glGetMinmaxParameterfvEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetMinmaxParameterfvEXT) (proc)) (target, pname, params) )
+
+/* glGetMinmaxParameterivEXT */
+typedef void (APIENTRY * GdkGLProc_glGetMinmaxParameterivEXT) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetMinmaxParameterivEXT (void);
+#define gdk_gl_glGetMinmaxParameterivEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetMinmaxParameterivEXT) (proc)) (target, pname, params) )
+
+/* glHistogramEXT */
+typedef void (APIENTRY * GdkGLProc_glHistogramEXT) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+GdkGLProc gdk_gl_get_glHistogramEXT (void);
+#define gdk_gl_glHistogramEXT(proc, target, width, internalformat, sink) \
+ ( ((GdkGLProc_glHistogramEXT) (proc)) (target, width, internalformat, sink) )
+
+/* glMinmaxEXT */
+typedef void (APIENTRY * GdkGLProc_glMinmaxEXT) (GLenum target, GLenum internalformat, GLboolean sink);
+GdkGLProc gdk_gl_get_glMinmaxEXT (void);
+#define gdk_gl_glMinmaxEXT(proc, target, internalformat, sink) \
+ ( ((GdkGLProc_glMinmaxEXT) (proc)) (target, internalformat, sink) )
+
+/* glResetHistogramEXT */
+typedef void (APIENTRY * GdkGLProc_glResetHistogramEXT) (GLenum target);
+GdkGLProc gdk_gl_get_glResetHistogramEXT (void);
+#define gdk_gl_glResetHistogramEXT(proc, target) \
+ ( ((GdkGLProc_glResetHistogramEXT) (proc)) (target) )
+
+/* glResetMinmaxEXT */
+typedef void (APIENTRY * GdkGLProc_glResetMinmaxEXT) (GLenum target);
+GdkGLProc gdk_gl_get_glResetMinmaxEXT (void);
+#define gdk_gl_glResetMinmaxEXT(proc, target) \
+ ( ((GdkGLProc_glResetMinmaxEXT) (proc)) (target) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_histogram GdkGL_GL_EXT_histogram;
+
+struct _GdkGL_GL_EXT_histogram
+{
+ GdkGLProc_glGetHistogramEXT glGetHistogramEXT;
+ GdkGLProc_glGetHistogramParameterfvEXT glGetHistogramParameterfvEXT;
+ GdkGLProc_glGetHistogramParameterivEXT glGetHistogramParameterivEXT;
+ GdkGLProc_glGetMinmaxEXT glGetMinmaxEXT;
+ GdkGLProc_glGetMinmaxParameterfvEXT glGetMinmaxParameterfvEXT;
+ GdkGLProc_glGetMinmaxParameterivEXT glGetMinmaxParameterivEXT;
+ GdkGLProc_glHistogramEXT glHistogramEXT;
+ GdkGLProc_glMinmaxEXT glMinmaxEXT;
+ GdkGLProc_glResetHistogramEXT glResetHistogramEXT;
+ GdkGLProc_glResetMinmaxEXT glResetMinmaxEXT;
+};
+
+GdkGL_GL_EXT_histogram *gdk_gl_get_GL_EXT_histogram (void);
+
+/*
+ * GL_EXT_convolution
+ */
+
+/* glConvolutionFilter1DEXT */
+typedef void (APIENTRY * GdkGLProc_glConvolutionFilter1DEXT) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
+GdkGLProc gdk_gl_get_glConvolutionFilter1DEXT (void);
+#define gdk_gl_glConvolutionFilter1DEXT(proc, target, internalformat, width, format, type, image) \
+ ( ((GdkGLProc_glConvolutionFilter1DEXT) (proc)) (target, internalformat, width, format, type, image) )
+
+/* glConvolutionFilter2DEXT */
+typedef void (APIENTRY * GdkGLProc_glConvolutionFilter2DEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
+GdkGLProc gdk_gl_get_glConvolutionFilter2DEXT (void);
+#define gdk_gl_glConvolutionFilter2DEXT(proc, target, internalformat, width, height, format, type, image) \
+ ( ((GdkGLProc_glConvolutionFilter2DEXT) (proc)) (target, internalformat, width, height, format, type, image) )
+
+/* glConvolutionParameterfEXT */
+typedef void (APIENTRY * GdkGLProc_glConvolutionParameterfEXT) (GLenum target, GLenum pname, GLfloat params);
+GdkGLProc gdk_gl_get_glConvolutionParameterfEXT (void);
+#define gdk_gl_glConvolutionParameterfEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glConvolutionParameterfEXT) (proc)) (target, pname, params) )
+
+/* glConvolutionParameterfvEXT */
+typedef void (APIENTRY * GdkGLProc_glConvolutionParameterfvEXT) (GLenum target, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glConvolutionParameterfvEXT (void);
+#define gdk_gl_glConvolutionParameterfvEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glConvolutionParameterfvEXT) (proc)) (target, pname, params) )
+
+/* glConvolutionParameteriEXT */
+typedef void (APIENTRY * GdkGLProc_glConvolutionParameteriEXT) (GLenum target, GLenum pname, GLint params);
+GdkGLProc gdk_gl_get_glConvolutionParameteriEXT (void);
+#define gdk_gl_glConvolutionParameteriEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glConvolutionParameteriEXT) (proc)) (target, pname, params) )
+
+/* glConvolutionParameterivEXT */
+typedef void (APIENTRY * GdkGLProc_glConvolutionParameterivEXT) (GLenum target, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glConvolutionParameterivEXT (void);
+#define gdk_gl_glConvolutionParameterivEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glConvolutionParameterivEXT) (proc)) (target, pname, params) )
+
+/* glCopyConvolutionFilter1DEXT */
+typedef void (APIENTRY * GdkGLProc_glCopyConvolutionFilter1DEXT) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+GdkGLProc gdk_gl_get_glCopyConvolutionFilter1DEXT (void);
+#define gdk_gl_glCopyConvolutionFilter1DEXT(proc, target, internalformat, x, y, width) \
+ ( ((GdkGLProc_glCopyConvolutionFilter1DEXT) (proc)) (target, internalformat, x, y, width) )
+
+/* glCopyConvolutionFilter2DEXT */
+typedef void (APIENTRY * GdkGLProc_glCopyConvolutionFilter2DEXT) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+GdkGLProc gdk_gl_get_glCopyConvolutionFilter2DEXT (void);
+#define gdk_gl_glCopyConvolutionFilter2DEXT(proc, target, internalformat, x, y, width, height) \
+ ( ((GdkGLProc_glCopyConvolutionFilter2DEXT) (proc)) (target, internalformat, x, y, width, height) )
+
+/* glGetConvolutionFilterEXT */
+typedef void (APIENTRY * GdkGLProc_glGetConvolutionFilterEXT) (GLenum target, GLenum format, GLenum type, GLvoid *image);
+GdkGLProc gdk_gl_get_glGetConvolutionFilterEXT (void);
+#define gdk_gl_glGetConvolutionFilterEXT(proc, target, format, type, image) \
+ ( ((GdkGLProc_glGetConvolutionFilterEXT) (proc)) (target, format, type, image) )
+
+/* glGetConvolutionParameterfvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetConvolutionParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetConvolutionParameterfvEXT (void);
+#define gdk_gl_glGetConvolutionParameterfvEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetConvolutionParameterfvEXT) (proc)) (target, pname, params) )
+
+/* glGetConvolutionParameterivEXT */
+typedef void (APIENTRY * GdkGLProc_glGetConvolutionParameterivEXT) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetConvolutionParameterivEXT (void);
+#define gdk_gl_glGetConvolutionParameterivEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetConvolutionParameterivEXT) (proc)) (target, pname, params) )
+
+/* glGetSeparableFilterEXT */
+typedef void (APIENTRY * GdkGLProc_glGetSeparableFilterEXT) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
+GdkGLProc gdk_gl_get_glGetSeparableFilterEXT (void);
+#define gdk_gl_glGetSeparableFilterEXT(proc, target, format, type, row, column, span) \
+ ( ((GdkGLProc_glGetSeparableFilterEXT) (proc)) (target, format, type, row, column, span) )
+
+/* glSeparableFilter2DEXT */
+typedef void (APIENTRY * GdkGLProc_glSeparableFilter2DEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
+GdkGLProc gdk_gl_get_glSeparableFilter2DEXT (void);
+#define gdk_gl_glSeparableFilter2DEXT(proc, target, internalformat, width, height, format, type, row, column) \
+ ( ((GdkGLProc_glSeparableFilter2DEXT) (proc)) (target, internalformat, width, height, format, type, row, column) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_convolution GdkGL_GL_EXT_convolution;
+
+struct _GdkGL_GL_EXT_convolution
+{
+ GdkGLProc_glConvolutionFilter1DEXT glConvolutionFilter1DEXT;
+ GdkGLProc_glConvolutionFilter2DEXT glConvolutionFilter2DEXT;
+ GdkGLProc_glConvolutionParameterfEXT glConvolutionParameterfEXT;
+ GdkGLProc_glConvolutionParameterfvEXT glConvolutionParameterfvEXT;
+ GdkGLProc_glConvolutionParameteriEXT glConvolutionParameteriEXT;
+ GdkGLProc_glConvolutionParameterivEXT glConvolutionParameterivEXT;
+ GdkGLProc_glCopyConvolutionFilter1DEXT glCopyConvolutionFilter1DEXT;
+ GdkGLProc_glCopyConvolutionFilter2DEXT glCopyConvolutionFilter2DEXT;
+ GdkGLProc_glGetConvolutionFilterEXT glGetConvolutionFilterEXT;
+ GdkGLProc_glGetConvolutionParameterfvEXT glGetConvolutionParameterfvEXT;
+ GdkGLProc_glGetConvolutionParameterivEXT glGetConvolutionParameterivEXT;
+ GdkGLProc_glGetSeparableFilterEXT glGetSeparableFilterEXT;
+ GdkGLProc_glSeparableFilter2DEXT glSeparableFilter2DEXT;
+};
+
+GdkGL_GL_EXT_convolution *gdk_gl_get_GL_EXT_convolution (void);
+
+/*
+ * GL_SGI_color_table
+ */
+
+/* glColorTableSGI */
+typedef void (APIENTRY * GdkGLProc_glColorTableSGI) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+GdkGLProc gdk_gl_get_glColorTableSGI (void);
+#define gdk_gl_glColorTableSGI(proc, target, internalformat, width, format, type, table) \
+ ( ((GdkGLProc_glColorTableSGI) (proc)) (target, internalformat, width, format, type, table) )
+
+/* glColorTableParameterfvSGI */
+typedef void (APIENTRY * GdkGLProc_glColorTableParameterfvSGI) (GLenum target, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glColorTableParameterfvSGI (void);
+#define gdk_gl_glColorTableParameterfvSGI(proc, target, pname, params) \
+ ( ((GdkGLProc_glColorTableParameterfvSGI) (proc)) (target, pname, params) )
+
+/* glColorTableParameterivSGI */
+typedef void (APIENTRY * GdkGLProc_glColorTableParameterivSGI) (GLenum target, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glColorTableParameterivSGI (void);
+#define gdk_gl_glColorTableParameterivSGI(proc, target, pname, params) \
+ ( ((GdkGLProc_glColorTableParameterivSGI) (proc)) (target, pname, params) )
+
+/* glCopyColorTableSGI */
+typedef void (APIENTRY * GdkGLProc_glCopyColorTableSGI) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+GdkGLProc gdk_gl_get_glCopyColorTableSGI (void);
+#define gdk_gl_glCopyColorTableSGI(proc, target, internalformat, x, y, width) \
+ ( ((GdkGLProc_glCopyColorTableSGI) (proc)) (target, internalformat, x, y, width) )
+
+/* glGetColorTableSGI */
+typedef void (APIENTRY * GdkGLProc_glGetColorTableSGI) (GLenum target, GLenum format, GLenum type, GLvoid *table);
+GdkGLProc gdk_gl_get_glGetColorTableSGI (void);
+#define gdk_gl_glGetColorTableSGI(proc, target, format, type, table) \
+ ( ((GdkGLProc_glGetColorTableSGI) (proc)) (target, format, type, table) )
+
+/* glGetColorTableParameterfvSGI */
+typedef void (APIENTRY * GdkGLProc_glGetColorTableParameterfvSGI) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetColorTableParameterfvSGI (void);
+#define gdk_gl_glGetColorTableParameterfvSGI(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetColorTableParameterfvSGI) (proc)) (target, pname, params) )
+
+/* glGetColorTableParameterivSGI */
+typedef void (APIENTRY * GdkGLProc_glGetColorTableParameterivSGI) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetColorTableParameterivSGI (void);
+#define gdk_gl_glGetColorTableParameterivSGI(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetColorTableParameterivSGI) (proc)) (target, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGI_color_table GdkGL_GL_SGI_color_table;
+
+struct _GdkGL_GL_SGI_color_table
+{
+ GdkGLProc_glColorTableSGI glColorTableSGI;
+ GdkGLProc_glColorTableParameterfvSGI glColorTableParameterfvSGI;
+ GdkGLProc_glColorTableParameterivSGI glColorTableParameterivSGI;
+ GdkGLProc_glCopyColorTableSGI glCopyColorTableSGI;
+ GdkGLProc_glGetColorTableSGI glGetColorTableSGI;
+ GdkGLProc_glGetColorTableParameterfvSGI glGetColorTableParameterfvSGI;
+ GdkGLProc_glGetColorTableParameterivSGI glGetColorTableParameterivSGI;
+};
+
+GdkGL_GL_SGI_color_table *gdk_gl_get_GL_SGI_color_table (void);
+
+/*
+ * GL_SGIX_pixel_texture
+ */
+
+/* glPixelTexGenSGIX */
+typedef void (APIENTRY * GdkGLProc_glPixelTexGenSGIX) (GLenum mode);
+GdkGLProc gdk_gl_get_glPixelTexGenSGIX (void);
+#define gdk_gl_glPixelTexGenSGIX(proc, mode) \
+ ( ((GdkGLProc_glPixelTexGenSGIX) (proc)) (mode) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_pixel_texture GdkGL_GL_SGIX_pixel_texture;
+
+struct _GdkGL_GL_SGIX_pixel_texture
+{
+ GdkGLProc_glPixelTexGenSGIX glPixelTexGenSGIX;
+};
+
+GdkGL_GL_SGIX_pixel_texture *gdk_gl_get_GL_SGIX_pixel_texture (void);
+
+/*
+ * GL_SGIS_pixel_texture
+ */
+
+/* glPixelTexGenParameteriSGIS */
+typedef void (APIENTRY * GdkGLProc_glPixelTexGenParameteriSGIS) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glPixelTexGenParameteriSGIS (void);
+#define gdk_gl_glPixelTexGenParameteriSGIS(proc, pname, param) \
+ ( ((GdkGLProc_glPixelTexGenParameteriSGIS) (proc)) (pname, param) )
+
+/* glPixelTexGenParameterivSGIS */
+typedef void (APIENTRY * GdkGLProc_glPixelTexGenParameterivSGIS) (GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glPixelTexGenParameterivSGIS (void);
+#define gdk_gl_glPixelTexGenParameterivSGIS(proc, pname, params) \
+ ( ((GdkGLProc_glPixelTexGenParameterivSGIS) (proc)) (pname, params) )
+
+/* glPixelTexGenParameterfSGIS */
+typedef void (APIENTRY * GdkGLProc_glPixelTexGenParameterfSGIS) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glPixelTexGenParameterfSGIS (void);
+#define gdk_gl_glPixelTexGenParameterfSGIS(proc, pname, param) \
+ ( ((GdkGLProc_glPixelTexGenParameterfSGIS) (proc)) (pname, param) )
+
+/* glPixelTexGenParameterfvSGIS */
+typedef void (APIENTRY * GdkGLProc_glPixelTexGenParameterfvSGIS) (GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glPixelTexGenParameterfvSGIS (void);
+#define gdk_gl_glPixelTexGenParameterfvSGIS(proc, pname, params) \
+ ( ((GdkGLProc_glPixelTexGenParameterfvSGIS) (proc)) (pname, params) )
+
+/* glGetPixelTexGenParameterivSGIS */
+typedef void (APIENTRY * GdkGLProc_glGetPixelTexGenParameterivSGIS) (GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetPixelTexGenParameterivSGIS (void);
+#define gdk_gl_glGetPixelTexGenParameterivSGIS(proc, pname, params) \
+ ( ((GdkGLProc_glGetPixelTexGenParameterivSGIS) (proc)) (pname, params) )
+
+/* glGetPixelTexGenParameterfvSGIS */
+typedef void (APIENTRY * GdkGLProc_glGetPixelTexGenParameterfvSGIS) (GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetPixelTexGenParameterfvSGIS (void);
+#define gdk_gl_glGetPixelTexGenParameterfvSGIS(proc, pname, params) \
+ ( ((GdkGLProc_glGetPixelTexGenParameterfvSGIS) (proc)) (pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIS_pixel_texture GdkGL_GL_SGIS_pixel_texture;
+
+struct _GdkGL_GL_SGIS_pixel_texture
+{
+ GdkGLProc_glPixelTexGenParameteriSGIS glPixelTexGenParameteriSGIS;
+ GdkGLProc_glPixelTexGenParameterivSGIS glPixelTexGenParameterivSGIS;
+ GdkGLProc_glPixelTexGenParameterfSGIS glPixelTexGenParameterfSGIS;
+ GdkGLProc_glPixelTexGenParameterfvSGIS glPixelTexGenParameterfvSGIS;
+ GdkGLProc_glGetPixelTexGenParameterivSGIS glGetPixelTexGenParameterivSGIS;
+ GdkGLProc_glGetPixelTexGenParameterfvSGIS glGetPixelTexGenParameterfvSGIS;
+};
+
+GdkGL_GL_SGIS_pixel_texture *gdk_gl_get_GL_SGIS_pixel_texture (void);
+
+/*
+ * GL_SGIS_texture4D
+ */
+
+/* glTexImage4DSGIS */
+typedef void (APIENTRY * GdkGLProc_glTexImage4DSGIS) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+GdkGLProc gdk_gl_get_glTexImage4DSGIS (void);
+#define gdk_gl_glTexImage4DSGIS(proc, target, level, internalformat, width, height, depth, size4d, border, format, type, pixels) \
+ ( ((GdkGLProc_glTexImage4DSGIS) (proc)) (target, level, internalformat, width, height, depth, size4d, border, format, type, pixels) )
+
+/* glTexSubImage4DSGIS */
+typedef void (APIENTRY * GdkGLProc_glTexSubImage4DSGIS) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels);
+GdkGLProc gdk_gl_get_glTexSubImage4DSGIS (void);
+#define gdk_gl_glTexSubImage4DSGIS(proc, target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pixels) \
+ ( ((GdkGLProc_glTexSubImage4DSGIS) (proc)) (target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pixels) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIS_texture4D GdkGL_GL_SGIS_texture4D;
+
+struct _GdkGL_GL_SGIS_texture4D
+{
+ GdkGLProc_glTexImage4DSGIS glTexImage4DSGIS;
+ GdkGLProc_glTexSubImage4DSGIS glTexSubImage4DSGIS;
+};
+
+GdkGL_GL_SGIS_texture4D *gdk_gl_get_GL_SGIS_texture4D (void);
+
+/*
+ * GL_EXT_texture_object
+ */
+
+/* glAreTexturesResidentEXT */
+typedef GLboolean (APIENTRY * GdkGLProc_glAreTexturesResidentEXT) (GLsizei n, const GLuint *textures, GLboolean *residences);
+GdkGLProc gdk_gl_get_glAreTexturesResidentEXT (void);
+#define gdk_gl_glAreTexturesResidentEXT(proc, n, textures, residences) \
+ ( ((GdkGLProc_glAreTexturesResidentEXT) (proc)) (n, textures, residences) )
+
+/* glBindTextureEXT */
+typedef void (APIENTRY * GdkGLProc_glBindTextureEXT) (GLenum target, GLuint texture);
+GdkGLProc gdk_gl_get_glBindTextureEXT (void);
+#define gdk_gl_glBindTextureEXT(proc, target, texture) \
+ ( ((GdkGLProc_glBindTextureEXT) (proc)) (target, texture) )
+
+/* glDeleteTexturesEXT */
+typedef void (APIENTRY * GdkGLProc_glDeleteTexturesEXT) (GLsizei n, const GLuint *textures);
+GdkGLProc gdk_gl_get_glDeleteTexturesEXT (void);
+#define gdk_gl_glDeleteTexturesEXT(proc, n, textures) \
+ ( ((GdkGLProc_glDeleteTexturesEXT) (proc)) (n, textures) )
+
+/* glGenTexturesEXT */
+typedef void (APIENTRY * GdkGLProc_glGenTexturesEXT) (GLsizei n, GLuint *textures);
+GdkGLProc gdk_gl_get_glGenTexturesEXT (void);
+#define gdk_gl_glGenTexturesEXT(proc, n, textures) \
+ ( ((GdkGLProc_glGenTexturesEXT) (proc)) (n, textures) )
+
+/* glIsTextureEXT */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsTextureEXT) (GLuint texture);
+GdkGLProc gdk_gl_get_glIsTextureEXT (void);
+#define gdk_gl_glIsTextureEXT(proc, texture) \
+ ( ((GdkGLProc_glIsTextureEXT) (proc)) (texture) )
+
+/* glPrioritizeTexturesEXT */
+typedef void (APIENTRY * GdkGLProc_glPrioritizeTexturesEXT) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
+GdkGLProc gdk_gl_get_glPrioritizeTexturesEXT (void);
+#define gdk_gl_glPrioritizeTexturesEXT(proc, n, textures, priorities) \
+ ( ((GdkGLProc_glPrioritizeTexturesEXT) (proc)) (n, textures, priorities) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_texture_object GdkGL_GL_EXT_texture_object;
+
+struct _GdkGL_GL_EXT_texture_object
+{
+ GdkGLProc_glAreTexturesResidentEXT glAreTexturesResidentEXT;
+ GdkGLProc_glBindTextureEXT glBindTextureEXT;
+ GdkGLProc_glDeleteTexturesEXT glDeleteTexturesEXT;
+ GdkGLProc_glGenTexturesEXT glGenTexturesEXT;
+ GdkGLProc_glIsTextureEXT glIsTextureEXT;
+ GdkGLProc_glPrioritizeTexturesEXT glPrioritizeTexturesEXT;
+};
+
+GdkGL_GL_EXT_texture_object *gdk_gl_get_GL_EXT_texture_object (void);
+
+/*
+ * GL_SGIS_detail_texture
+ */
+
+/* glDetailTexFuncSGIS */
+typedef void (APIENTRY * GdkGLProc_glDetailTexFuncSGIS) (GLenum target, GLsizei n, const GLfloat *points);
+GdkGLProc gdk_gl_get_glDetailTexFuncSGIS (void);
+#define gdk_gl_glDetailTexFuncSGIS(proc, target, n, points) \
+ ( ((GdkGLProc_glDetailTexFuncSGIS) (proc)) (target, n, points) )
+
+/* glGetDetailTexFuncSGIS */
+typedef void (APIENTRY * GdkGLProc_glGetDetailTexFuncSGIS) (GLenum target, GLfloat *points);
+GdkGLProc gdk_gl_get_glGetDetailTexFuncSGIS (void);
+#define gdk_gl_glGetDetailTexFuncSGIS(proc, target, points) \
+ ( ((GdkGLProc_glGetDetailTexFuncSGIS) (proc)) (target, points) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIS_detail_texture GdkGL_GL_SGIS_detail_texture;
+
+struct _GdkGL_GL_SGIS_detail_texture
+{
+ GdkGLProc_glDetailTexFuncSGIS glDetailTexFuncSGIS;
+ GdkGLProc_glGetDetailTexFuncSGIS glGetDetailTexFuncSGIS;
+};
+
+GdkGL_GL_SGIS_detail_texture *gdk_gl_get_GL_SGIS_detail_texture (void);
+
+/*
+ * GL_SGIS_sharpen_texture
+ */
+
+/* glSharpenTexFuncSGIS */
+typedef void (APIENTRY * GdkGLProc_glSharpenTexFuncSGIS) (GLenum target, GLsizei n, const GLfloat *points);
+GdkGLProc gdk_gl_get_glSharpenTexFuncSGIS (void);
+#define gdk_gl_glSharpenTexFuncSGIS(proc, target, n, points) \
+ ( ((GdkGLProc_glSharpenTexFuncSGIS) (proc)) (target, n, points) )
+
+/* glGetSharpenTexFuncSGIS */
+typedef void (APIENTRY * GdkGLProc_glGetSharpenTexFuncSGIS) (GLenum target, GLfloat *points);
+GdkGLProc gdk_gl_get_glGetSharpenTexFuncSGIS (void);
+#define gdk_gl_glGetSharpenTexFuncSGIS(proc, target, points) \
+ ( ((GdkGLProc_glGetSharpenTexFuncSGIS) (proc)) (target, points) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIS_sharpen_texture GdkGL_GL_SGIS_sharpen_texture;
+
+struct _GdkGL_GL_SGIS_sharpen_texture
+{
+ GdkGLProc_glSharpenTexFuncSGIS glSharpenTexFuncSGIS;
+ GdkGLProc_glGetSharpenTexFuncSGIS glGetSharpenTexFuncSGIS;
+};
+
+GdkGL_GL_SGIS_sharpen_texture *gdk_gl_get_GL_SGIS_sharpen_texture (void);
+
+/*
+ * GL_SGIS_multisample
+ */
+
+/* glSampleMaskSGIS */
+typedef void (APIENTRY * GdkGLProc_glSampleMaskSGIS) (GLclampf value, GLboolean invert);
+GdkGLProc gdk_gl_get_glSampleMaskSGIS (void);
+#define gdk_gl_glSampleMaskSGIS(proc, value, invert) \
+ ( ((GdkGLProc_glSampleMaskSGIS) (proc)) (value, invert) )
+
+/* glSamplePatternSGIS */
+typedef void (APIENTRY * GdkGLProc_glSamplePatternSGIS) (GLenum pattern);
+GdkGLProc gdk_gl_get_glSamplePatternSGIS (void);
+#define gdk_gl_glSamplePatternSGIS(proc, pattern) \
+ ( ((GdkGLProc_glSamplePatternSGIS) (proc)) (pattern) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIS_multisample GdkGL_GL_SGIS_multisample;
+
+struct _GdkGL_GL_SGIS_multisample
+{
+ GdkGLProc_glSampleMaskSGIS glSampleMaskSGIS;
+ GdkGLProc_glSamplePatternSGIS glSamplePatternSGIS;
+};
+
+GdkGL_GL_SGIS_multisample *gdk_gl_get_GL_SGIS_multisample (void);
+
+/*
+ * GL_EXT_vertex_array
+ */
+
+/* glArrayElementEXT */
+typedef void (APIENTRY * GdkGLProc_glArrayElementEXT) (GLint i);
+GdkGLProc gdk_gl_get_glArrayElementEXT (void);
+#define gdk_gl_glArrayElementEXT(proc, i) \
+ ( ((GdkGLProc_glArrayElementEXT) (proc)) (i) )
+
+/* glColorPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glColorPointerEXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glColorPointerEXT (void);
+#define gdk_gl_glColorPointerEXT(proc, size, type, stride, count, pointer) \
+ ( ((GdkGLProc_glColorPointerEXT) (proc)) (size, type, stride, count, pointer) )
+
+/* glDrawArraysEXT */
+typedef void (APIENTRY * GdkGLProc_glDrawArraysEXT) (GLenum mode, GLint first, GLsizei count);
+GdkGLProc gdk_gl_get_glDrawArraysEXT (void);
+#define gdk_gl_glDrawArraysEXT(proc, mode, first, count) \
+ ( ((GdkGLProc_glDrawArraysEXT) (proc)) (mode, first, count) )
+
+/* glEdgeFlagPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glEdgeFlagPointerEXT) (GLsizei stride, GLsizei count, const GLboolean *pointer);
+GdkGLProc gdk_gl_get_glEdgeFlagPointerEXT (void);
+#define gdk_gl_glEdgeFlagPointerEXT(proc, stride, count, pointer) \
+ ( ((GdkGLProc_glEdgeFlagPointerEXT) (proc)) (stride, count, pointer) )
+
+/* glGetPointervEXT */
+typedef void (APIENTRY * GdkGLProc_glGetPointervEXT) (GLenum pname, GLvoid* *params);
+GdkGLProc gdk_gl_get_glGetPointervEXT (void);
+#define gdk_gl_glGetPointervEXT(proc, pname, params) \
+ ( ((GdkGLProc_glGetPointervEXT) (proc)) (pname, params) )
+
+/* glIndexPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glIndexPointerEXT) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glIndexPointerEXT (void);
+#define gdk_gl_glIndexPointerEXT(proc, type, stride, count, pointer) \
+ ( ((GdkGLProc_glIndexPointerEXT) (proc)) (type, stride, count, pointer) )
+
+/* glNormalPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glNormalPointerEXT) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glNormalPointerEXT (void);
+#define gdk_gl_glNormalPointerEXT(proc, type, stride, count, pointer) \
+ ( ((GdkGLProc_glNormalPointerEXT) (proc)) (type, stride, count, pointer) )
+
+/* glTexCoordPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glTexCoordPointerEXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glTexCoordPointerEXT (void);
+#define gdk_gl_glTexCoordPointerEXT(proc, size, type, stride, count, pointer) \
+ ( ((GdkGLProc_glTexCoordPointerEXT) (proc)) (size, type, stride, count, pointer) )
+
+/* glVertexPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glVertexPointerEXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glVertexPointerEXT (void);
+#define gdk_gl_glVertexPointerEXT(proc, size, type, stride, count, pointer) \
+ ( ((GdkGLProc_glVertexPointerEXT) (proc)) (size, type, stride, count, pointer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_vertex_array GdkGL_GL_EXT_vertex_array;
+
+struct _GdkGL_GL_EXT_vertex_array
+{
+ GdkGLProc_glArrayElementEXT glArrayElementEXT;
+ GdkGLProc_glColorPointerEXT glColorPointerEXT;
+ GdkGLProc_glDrawArraysEXT glDrawArraysEXT;
+ GdkGLProc_glEdgeFlagPointerEXT glEdgeFlagPointerEXT;
+ GdkGLProc_glGetPointervEXT glGetPointervEXT;
+ GdkGLProc_glIndexPointerEXT glIndexPointerEXT;
+ GdkGLProc_glNormalPointerEXT glNormalPointerEXT;
+ GdkGLProc_glTexCoordPointerEXT glTexCoordPointerEXT;
+ GdkGLProc_glVertexPointerEXT glVertexPointerEXT;
+};
+
+GdkGL_GL_EXT_vertex_array *gdk_gl_get_GL_EXT_vertex_array (void);
+
+/*
+ * GL_EXT_blend_minmax
+ */
+
+/* glBlendEquationEXT */
+typedef void (APIENTRY * GdkGLProc_glBlendEquationEXT) (GLenum mode);
+GdkGLProc gdk_gl_get_glBlendEquationEXT (void);
+#define gdk_gl_glBlendEquationEXT(proc, mode) \
+ ( ((GdkGLProc_glBlendEquationEXT) (proc)) (mode) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_blend_minmax GdkGL_GL_EXT_blend_minmax;
+
+struct _GdkGL_GL_EXT_blend_minmax
+{
+ GdkGLProc_glBlendEquationEXT glBlendEquationEXT;
+};
+
+GdkGL_GL_EXT_blend_minmax *gdk_gl_get_GL_EXT_blend_minmax (void);
+
+/*
+ * GL_SGIX_sprite
+ */
+
+/* glSpriteParameterfSGIX */
+typedef void (APIENTRY * GdkGLProc_glSpriteParameterfSGIX) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glSpriteParameterfSGIX (void);
+#define gdk_gl_glSpriteParameterfSGIX(proc, pname, param) \
+ ( ((GdkGLProc_glSpriteParameterfSGIX) (proc)) (pname, param) )
+
+/* glSpriteParameterfvSGIX */
+typedef void (APIENTRY * GdkGLProc_glSpriteParameterfvSGIX) (GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glSpriteParameterfvSGIX (void);
+#define gdk_gl_glSpriteParameterfvSGIX(proc, pname, params) \
+ ( ((GdkGLProc_glSpriteParameterfvSGIX) (proc)) (pname, params) )
+
+/* glSpriteParameteriSGIX */
+typedef void (APIENTRY * GdkGLProc_glSpriteParameteriSGIX) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glSpriteParameteriSGIX (void);
+#define gdk_gl_glSpriteParameteriSGIX(proc, pname, param) \
+ ( ((GdkGLProc_glSpriteParameteriSGIX) (proc)) (pname, param) )
+
+/* glSpriteParameterivSGIX */
+typedef void (APIENTRY * GdkGLProc_glSpriteParameterivSGIX) (GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glSpriteParameterivSGIX (void);
+#define gdk_gl_glSpriteParameterivSGIX(proc, pname, params) \
+ ( ((GdkGLProc_glSpriteParameterivSGIX) (proc)) (pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_sprite GdkGL_GL_SGIX_sprite;
+
+struct _GdkGL_GL_SGIX_sprite
+{
+ GdkGLProc_glSpriteParameterfSGIX glSpriteParameterfSGIX;
+ GdkGLProc_glSpriteParameterfvSGIX glSpriteParameterfvSGIX;
+ GdkGLProc_glSpriteParameteriSGIX glSpriteParameteriSGIX;
+ GdkGLProc_glSpriteParameterivSGIX glSpriteParameterivSGIX;
+};
+
+GdkGL_GL_SGIX_sprite *gdk_gl_get_GL_SGIX_sprite (void);
+
+/*
+ * GL_EXT_point_parameters
+ */
+
+/* glPointParameterfEXT */
+typedef void (APIENTRY * GdkGLProc_glPointParameterfEXT) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glPointParameterfEXT (void);
+#define gdk_gl_glPointParameterfEXT(proc, pname, param) \
+ ( ((GdkGLProc_glPointParameterfEXT) (proc)) (pname, param) )
+
+/* glPointParameterfvEXT */
+typedef void (APIENTRY * GdkGLProc_glPointParameterfvEXT) (GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glPointParameterfvEXT (void);
+#define gdk_gl_glPointParameterfvEXT(proc, pname, params) \
+ ( ((GdkGLProc_glPointParameterfvEXT) (proc)) (pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_point_parameters GdkGL_GL_EXT_point_parameters;
+
+struct _GdkGL_GL_EXT_point_parameters
+{
+ GdkGLProc_glPointParameterfEXT glPointParameterfEXT;
+ GdkGLProc_glPointParameterfvEXT glPointParameterfvEXT;
+};
+
+GdkGL_GL_EXT_point_parameters *gdk_gl_get_GL_EXT_point_parameters (void);
+
+/*
+ * GL_SGIS_point_parameters
+ */
+
+/* glPointParameterfSGIS */
+typedef void (APIENTRY * GdkGLProc_glPointParameterfSGIS) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glPointParameterfSGIS (void);
+#define gdk_gl_glPointParameterfSGIS(proc, pname, param) \
+ ( ((GdkGLProc_glPointParameterfSGIS) (proc)) (pname, param) )
+
+/* glPointParameterfvSGIS */
+typedef void (APIENTRY * GdkGLProc_glPointParameterfvSGIS) (GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glPointParameterfvSGIS (void);
+#define gdk_gl_glPointParameterfvSGIS(proc, pname, params) \
+ ( ((GdkGLProc_glPointParameterfvSGIS) (proc)) (pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIS_point_parameters GdkGL_GL_SGIS_point_parameters;
+
+struct _GdkGL_GL_SGIS_point_parameters
+{
+ GdkGLProc_glPointParameterfSGIS glPointParameterfSGIS;
+ GdkGLProc_glPointParameterfvSGIS glPointParameterfvSGIS;
+};
+
+GdkGL_GL_SGIS_point_parameters *gdk_gl_get_GL_SGIS_point_parameters (void);
+
+/*
+ * GL_SGIX_instruments
+ */
+
+/* glGetInstrumentsSGIX */
+typedef GLint (APIENTRY * GdkGLProc_glGetInstrumentsSGIX) (void);
+GdkGLProc gdk_gl_get_glGetInstrumentsSGIX (void);
+#define gdk_gl_glGetInstrumentsSGIX(proc) \
+ ( ((GdkGLProc_glGetInstrumentsSGIX) (proc)) () )
+
+/* glInstrumentsBufferSGIX */
+typedef void (APIENTRY * GdkGLProc_glInstrumentsBufferSGIX) (GLsizei size, GLint *buffer);
+GdkGLProc gdk_gl_get_glInstrumentsBufferSGIX (void);
+#define gdk_gl_glInstrumentsBufferSGIX(proc, size, buffer) \
+ ( ((GdkGLProc_glInstrumentsBufferSGIX) (proc)) (size, buffer) )
+
+/* glPollInstrumentsSGIX */
+typedef GLint (APIENTRY * GdkGLProc_glPollInstrumentsSGIX) (GLint *marker_p);
+GdkGLProc gdk_gl_get_glPollInstrumentsSGIX (void);
+#define gdk_gl_glPollInstrumentsSGIX(proc, marker_p) \
+ ( ((GdkGLProc_glPollInstrumentsSGIX) (proc)) (marker_p) )
+
+/* glReadInstrumentsSGIX */
+typedef void (APIENTRY * GdkGLProc_glReadInstrumentsSGIX) (GLint marker);
+GdkGLProc gdk_gl_get_glReadInstrumentsSGIX (void);
+#define gdk_gl_glReadInstrumentsSGIX(proc, marker) \
+ ( ((GdkGLProc_glReadInstrumentsSGIX) (proc)) (marker) )
+
+/* glStartInstrumentsSGIX */
+typedef void (APIENTRY * GdkGLProc_glStartInstrumentsSGIX) (void);
+GdkGLProc gdk_gl_get_glStartInstrumentsSGIX (void);
+#define gdk_gl_glStartInstrumentsSGIX(proc) \
+ ( ((GdkGLProc_glStartInstrumentsSGIX) (proc)) () )
+
+/* glStopInstrumentsSGIX */
+typedef void (APIENTRY * GdkGLProc_glStopInstrumentsSGIX) (GLint marker);
+GdkGLProc gdk_gl_get_glStopInstrumentsSGIX (void);
+#define gdk_gl_glStopInstrumentsSGIX(proc, marker) \
+ ( ((GdkGLProc_glStopInstrumentsSGIX) (proc)) (marker) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_instruments GdkGL_GL_SGIX_instruments;
+
+struct _GdkGL_GL_SGIX_instruments
+{
+ GdkGLProc_glGetInstrumentsSGIX glGetInstrumentsSGIX;
+ GdkGLProc_glInstrumentsBufferSGIX glInstrumentsBufferSGIX;
+ GdkGLProc_glPollInstrumentsSGIX glPollInstrumentsSGIX;
+ GdkGLProc_glReadInstrumentsSGIX glReadInstrumentsSGIX;
+ GdkGLProc_glStartInstrumentsSGIX glStartInstrumentsSGIX;
+ GdkGLProc_glStopInstrumentsSGIX glStopInstrumentsSGIX;
+};
+
+GdkGL_GL_SGIX_instruments *gdk_gl_get_GL_SGIX_instruments (void);
+
+/*
+ * GL_SGIX_framezoom
+ */
+
+/* glFrameZoomSGIX */
+typedef void (APIENTRY * GdkGLProc_glFrameZoomSGIX) (GLint factor);
+GdkGLProc gdk_gl_get_glFrameZoomSGIX (void);
+#define gdk_gl_glFrameZoomSGIX(proc, factor) \
+ ( ((GdkGLProc_glFrameZoomSGIX) (proc)) (factor) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_framezoom GdkGL_GL_SGIX_framezoom;
+
+struct _GdkGL_GL_SGIX_framezoom
+{
+ GdkGLProc_glFrameZoomSGIX glFrameZoomSGIX;
+};
+
+GdkGL_GL_SGIX_framezoom *gdk_gl_get_GL_SGIX_framezoom (void);
+
+/*
+ * GL_SGIX_tag_sample_buffer
+ */
+
+/* glTagSampleBufferSGIX */
+typedef void (APIENTRY * GdkGLProc_glTagSampleBufferSGIX) (void);
+GdkGLProc gdk_gl_get_glTagSampleBufferSGIX (void);
+#define gdk_gl_glTagSampleBufferSGIX(proc) \
+ ( ((GdkGLProc_glTagSampleBufferSGIX) (proc)) () )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_tag_sample_buffer GdkGL_GL_SGIX_tag_sample_buffer;
+
+struct _GdkGL_GL_SGIX_tag_sample_buffer
+{
+ GdkGLProc_glTagSampleBufferSGIX glTagSampleBufferSGIX;
+};
+
+GdkGL_GL_SGIX_tag_sample_buffer *gdk_gl_get_GL_SGIX_tag_sample_buffer (void);
+
+/*
+ * GL_SGIX_polynomial_ffd
+ */
+
+/* glDeformationMap3dSGIX */
+typedef void (APIENTRY * GdkGLProc_glDeformationMap3dSGIX) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
+GdkGLProc gdk_gl_get_glDeformationMap3dSGIX (void);
+#define gdk_gl_glDeformationMap3dSGIX(proc, target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points) \
+ ( ((GdkGLProc_glDeformationMap3dSGIX) (proc)) (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points) )
+
+/* glDeformationMap3fSGIX */
+typedef void (APIENTRY * GdkGLProc_glDeformationMap3fSGIX) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
+GdkGLProc gdk_gl_get_glDeformationMap3fSGIX (void);
+#define gdk_gl_glDeformationMap3fSGIX(proc, target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points) \
+ ( ((GdkGLProc_glDeformationMap3fSGIX) (proc)) (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points) )
+
+/* glDeformSGIX */
+typedef void (APIENTRY * GdkGLProc_glDeformSGIX) (GLbitfield mask);
+GdkGLProc gdk_gl_get_glDeformSGIX (void);
+#define gdk_gl_glDeformSGIX(proc, mask) \
+ ( ((GdkGLProc_glDeformSGIX) (proc)) (mask) )
+
+/* glLoadIdentityDeformationMapSGIX */
+typedef void (APIENTRY * GdkGLProc_glLoadIdentityDeformationMapSGIX) (GLbitfield mask);
+GdkGLProc gdk_gl_get_glLoadIdentityDeformationMapSGIX (void);
+#define gdk_gl_glLoadIdentityDeformationMapSGIX(proc, mask) \
+ ( ((GdkGLProc_glLoadIdentityDeformationMapSGIX) (proc)) (mask) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_polynomial_ffd GdkGL_GL_SGIX_polynomial_ffd;
+
+struct _GdkGL_GL_SGIX_polynomial_ffd
+{
+ GdkGLProc_glDeformationMap3dSGIX glDeformationMap3dSGIX;
+ GdkGLProc_glDeformationMap3fSGIX glDeformationMap3fSGIX;
+ GdkGLProc_glDeformSGIX glDeformSGIX;
+ GdkGLProc_glLoadIdentityDeformationMapSGIX glLoadIdentityDeformationMapSGIX;
+};
+
+GdkGL_GL_SGIX_polynomial_ffd *gdk_gl_get_GL_SGIX_polynomial_ffd (void);
+
+/*
+ * GL_SGIX_reference_plane
+ */
+
+/* glReferencePlaneSGIX */
+typedef void (APIENTRY * GdkGLProc_glReferencePlaneSGIX) (const GLdouble *equation);
+GdkGLProc gdk_gl_get_glReferencePlaneSGIX (void);
+#define gdk_gl_glReferencePlaneSGIX(proc, equation) \
+ ( ((GdkGLProc_glReferencePlaneSGIX) (proc)) (equation) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_reference_plane GdkGL_GL_SGIX_reference_plane;
+
+struct _GdkGL_GL_SGIX_reference_plane
+{
+ GdkGLProc_glReferencePlaneSGIX glReferencePlaneSGIX;
+};
+
+GdkGL_GL_SGIX_reference_plane *gdk_gl_get_GL_SGIX_reference_plane (void);
+
+/*
+ * GL_SGIX_flush_raster
+ */
+
+/* glFlushRasterSGIX */
+typedef void (APIENTRY * GdkGLProc_glFlushRasterSGIX) (void);
+GdkGLProc gdk_gl_get_glFlushRasterSGIX (void);
+#define gdk_gl_glFlushRasterSGIX(proc) \
+ ( ((GdkGLProc_glFlushRasterSGIX) (proc)) () )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_flush_raster GdkGL_GL_SGIX_flush_raster;
+
+struct _GdkGL_GL_SGIX_flush_raster
+{
+ GdkGLProc_glFlushRasterSGIX glFlushRasterSGIX;
+};
+
+GdkGL_GL_SGIX_flush_raster *gdk_gl_get_GL_SGIX_flush_raster (void);
+
+/*
+ * GL_SGIS_fog_function
+ */
+
+/* glFogFuncSGIS */
+typedef void (APIENTRY * GdkGLProc_glFogFuncSGIS) (GLsizei n, const GLfloat *points);
+GdkGLProc gdk_gl_get_glFogFuncSGIS (void);
+#define gdk_gl_glFogFuncSGIS(proc, n, points) \
+ ( ((GdkGLProc_glFogFuncSGIS) (proc)) (n, points) )
+
+/* glGetFogFuncSGIS */
+typedef void (APIENTRY * GdkGLProc_glGetFogFuncSGIS) (GLfloat *points);
+GdkGLProc gdk_gl_get_glGetFogFuncSGIS (void);
+#define gdk_gl_glGetFogFuncSGIS(proc, points) \
+ ( ((GdkGLProc_glGetFogFuncSGIS) (proc)) (points) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIS_fog_function GdkGL_GL_SGIS_fog_function;
+
+struct _GdkGL_GL_SGIS_fog_function
+{
+ GdkGLProc_glFogFuncSGIS glFogFuncSGIS;
+ GdkGLProc_glGetFogFuncSGIS glGetFogFuncSGIS;
+};
+
+GdkGL_GL_SGIS_fog_function *gdk_gl_get_GL_SGIS_fog_function (void);
+
+/*
+ * GL_HP_image_transform
+ */
+
+/* glImageTransformParameteriHP */
+typedef void (APIENTRY * GdkGLProc_glImageTransformParameteriHP) (GLenum target, GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glImageTransformParameteriHP (void);
+#define gdk_gl_glImageTransformParameteriHP(proc, target, pname, param) \
+ ( ((GdkGLProc_glImageTransformParameteriHP) (proc)) (target, pname, param) )
+
+/* glImageTransformParameterfHP */
+typedef void (APIENTRY * GdkGLProc_glImageTransformParameterfHP) (GLenum target, GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glImageTransformParameterfHP (void);
+#define gdk_gl_glImageTransformParameterfHP(proc, target, pname, param) \
+ ( ((GdkGLProc_glImageTransformParameterfHP) (proc)) (target, pname, param) )
+
+/* glImageTransformParameterivHP */
+typedef void (APIENTRY * GdkGLProc_glImageTransformParameterivHP) (GLenum target, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glImageTransformParameterivHP (void);
+#define gdk_gl_glImageTransformParameterivHP(proc, target, pname, params) \
+ ( ((GdkGLProc_glImageTransformParameterivHP) (proc)) (target, pname, params) )
+
+/* glImageTransformParameterfvHP */
+typedef void (APIENTRY * GdkGLProc_glImageTransformParameterfvHP) (GLenum target, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glImageTransformParameterfvHP (void);
+#define gdk_gl_glImageTransformParameterfvHP(proc, target, pname, params) \
+ ( ((GdkGLProc_glImageTransformParameterfvHP) (proc)) (target, pname, params) )
+
+/* glGetImageTransformParameterivHP */
+typedef void (APIENTRY * GdkGLProc_glGetImageTransformParameterivHP) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetImageTransformParameterivHP (void);
+#define gdk_gl_glGetImageTransformParameterivHP(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetImageTransformParameterivHP) (proc)) (target, pname, params) )
+
+/* glGetImageTransformParameterfvHP */
+typedef void (APIENTRY * GdkGLProc_glGetImageTransformParameterfvHP) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetImageTransformParameterfvHP (void);
+#define gdk_gl_glGetImageTransformParameterfvHP(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetImageTransformParameterfvHP) (proc)) (target, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_HP_image_transform GdkGL_GL_HP_image_transform;
+
+struct _GdkGL_GL_HP_image_transform
+{
+ GdkGLProc_glImageTransformParameteriHP glImageTransformParameteriHP;
+ GdkGLProc_glImageTransformParameterfHP glImageTransformParameterfHP;
+ GdkGLProc_glImageTransformParameterivHP glImageTransformParameterivHP;
+ GdkGLProc_glImageTransformParameterfvHP glImageTransformParameterfvHP;
+ GdkGLProc_glGetImageTransformParameterivHP glGetImageTransformParameterivHP;
+ GdkGLProc_glGetImageTransformParameterfvHP glGetImageTransformParameterfvHP;
+};
+
+GdkGL_GL_HP_image_transform *gdk_gl_get_GL_HP_image_transform (void);
+
+/*
+ * GL_EXT_color_subtable
+ */
+
+/* glColorSubTableEXT */
+typedef void (APIENTRY * GdkGLProc_glColorSubTableEXT) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
+GdkGLProc gdk_gl_get_glColorSubTableEXT (void);
+#define gdk_gl_glColorSubTableEXT(proc, target, start, count, format, type, data) \
+ ( ((GdkGLProc_glColorSubTableEXT) (proc)) (target, start, count, format, type, data) )
+
+/* glCopyColorSubTableEXT */
+typedef void (APIENTRY * GdkGLProc_glCopyColorSubTableEXT) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+GdkGLProc gdk_gl_get_glCopyColorSubTableEXT (void);
+#define gdk_gl_glCopyColorSubTableEXT(proc, target, start, x, y, width) \
+ ( ((GdkGLProc_glCopyColorSubTableEXT) (proc)) (target, start, x, y, width) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_color_subtable GdkGL_GL_EXT_color_subtable;
+
+struct _GdkGL_GL_EXT_color_subtable
+{
+ GdkGLProc_glColorSubTableEXT glColorSubTableEXT;
+ GdkGLProc_glCopyColorSubTableEXT glCopyColorSubTableEXT;
+};
+
+GdkGL_GL_EXT_color_subtable *gdk_gl_get_GL_EXT_color_subtable (void);
+
+/*
+ * GL_PGI_misc_hints
+ */
+
+/* glHintPGI */
+typedef void (APIENTRY * GdkGLProc_glHintPGI) (GLenum target, GLint mode);
+GdkGLProc gdk_gl_get_glHintPGI (void);
+#define gdk_gl_glHintPGI(proc, target, mode) \
+ ( ((GdkGLProc_glHintPGI) (proc)) (target, mode) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_PGI_misc_hints GdkGL_GL_PGI_misc_hints;
+
+struct _GdkGL_GL_PGI_misc_hints
+{
+ GdkGLProc_glHintPGI glHintPGI;
+};
+
+GdkGL_GL_PGI_misc_hints *gdk_gl_get_GL_PGI_misc_hints (void);
+
+/*
+ * GL_EXT_paletted_texture
+ */
+
+/* glColorTableEXT */
+typedef void (APIENTRY * GdkGLProc_glColorTableEXT) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+GdkGLProc gdk_gl_get_glColorTableEXT (void);
+#define gdk_gl_glColorTableEXT(proc, target, internalFormat, width, format, type, table) \
+ ( ((GdkGLProc_glColorTableEXT) (proc)) (target, internalFormat, width, format, type, table) )
+
+/* glGetColorTableEXT */
+typedef void (APIENTRY * GdkGLProc_glGetColorTableEXT) (GLenum target, GLenum format, GLenum type, GLvoid *data);
+GdkGLProc gdk_gl_get_glGetColorTableEXT (void);
+#define gdk_gl_glGetColorTableEXT(proc, target, format, type, data) \
+ ( ((GdkGLProc_glGetColorTableEXT) (proc)) (target, format, type, data) )
+
+/* glGetColorTableParameterivEXT */
+typedef void (APIENTRY * GdkGLProc_glGetColorTableParameterivEXT) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetColorTableParameterivEXT (void);
+#define gdk_gl_glGetColorTableParameterivEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetColorTableParameterivEXT) (proc)) (target, pname, params) )
+
+/* glGetColorTableParameterfvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetColorTableParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetColorTableParameterfvEXT (void);
+#define gdk_gl_glGetColorTableParameterfvEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetColorTableParameterfvEXT) (proc)) (target, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_paletted_texture GdkGL_GL_EXT_paletted_texture;
+
+struct _GdkGL_GL_EXT_paletted_texture
+{
+ GdkGLProc_glColorTableEXT glColorTableEXT;
+ GdkGLProc_glGetColorTableEXT glGetColorTableEXT;
+ GdkGLProc_glGetColorTableParameterivEXT glGetColorTableParameterivEXT;
+ GdkGLProc_glGetColorTableParameterfvEXT glGetColorTableParameterfvEXT;
+};
+
+GdkGL_GL_EXT_paletted_texture *gdk_gl_get_GL_EXT_paletted_texture (void);
+
+/*
+ * GL_SGIX_list_priority
+ */
+
+/* glGetListParameterfvSGIX */
+typedef void (APIENTRY * GdkGLProc_glGetListParameterfvSGIX) (GLuint list, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetListParameterfvSGIX (void);
+#define gdk_gl_glGetListParameterfvSGIX(proc, list, pname, params) \
+ ( ((GdkGLProc_glGetListParameterfvSGIX) (proc)) (list, pname, params) )
+
+/* glGetListParameterivSGIX */
+typedef void (APIENTRY * GdkGLProc_glGetListParameterivSGIX) (GLuint list, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetListParameterivSGIX (void);
+#define gdk_gl_glGetListParameterivSGIX(proc, list, pname, params) \
+ ( ((GdkGLProc_glGetListParameterivSGIX) (proc)) (list, pname, params) )
+
+/* glListParameterfSGIX */
+typedef void (APIENTRY * GdkGLProc_glListParameterfSGIX) (GLuint list, GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glListParameterfSGIX (void);
+#define gdk_gl_glListParameterfSGIX(proc, list, pname, param) \
+ ( ((GdkGLProc_glListParameterfSGIX) (proc)) (list, pname, param) )
+
+/* glListParameterfvSGIX */
+typedef void (APIENTRY * GdkGLProc_glListParameterfvSGIX) (GLuint list, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glListParameterfvSGIX (void);
+#define gdk_gl_glListParameterfvSGIX(proc, list, pname, params) \
+ ( ((GdkGLProc_glListParameterfvSGIX) (proc)) (list, pname, params) )
+
+/* glListParameteriSGIX */
+typedef void (APIENTRY * GdkGLProc_glListParameteriSGIX) (GLuint list, GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glListParameteriSGIX (void);
+#define gdk_gl_glListParameteriSGIX(proc, list, pname, param) \
+ ( ((GdkGLProc_glListParameteriSGIX) (proc)) (list, pname, param) )
+
+/* glListParameterivSGIX */
+typedef void (APIENTRY * GdkGLProc_glListParameterivSGIX) (GLuint list, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glListParameterivSGIX (void);
+#define gdk_gl_glListParameterivSGIX(proc, list, pname, params) \
+ ( ((GdkGLProc_glListParameterivSGIX) (proc)) (list, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_list_priority GdkGL_GL_SGIX_list_priority;
+
+struct _GdkGL_GL_SGIX_list_priority
+{
+ GdkGLProc_glGetListParameterfvSGIX glGetListParameterfvSGIX;
+ GdkGLProc_glGetListParameterivSGIX glGetListParameterivSGIX;
+ GdkGLProc_glListParameterfSGIX glListParameterfSGIX;
+ GdkGLProc_glListParameterfvSGIX glListParameterfvSGIX;
+ GdkGLProc_glListParameteriSGIX glListParameteriSGIX;
+ GdkGLProc_glListParameterivSGIX glListParameterivSGIX;
+};
+
+GdkGL_GL_SGIX_list_priority *gdk_gl_get_GL_SGIX_list_priority (void);
+
+/*
+ * GL_EXT_index_material
+ */
+
+/* glIndexMaterialEXT */
+typedef void (APIENTRY * GdkGLProc_glIndexMaterialEXT) (GLenum face, GLenum mode);
+GdkGLProc gdk_gl_get_glIndexMaterialEXT (void);
+#define gdk_gl_glIndexMaterialEXT(proc, face, mode) \
+ ( ((GdkGLProc_glIndexMaterialEXT) (proc)) (face, mode) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_index_material GdkGL_GL_EXT_index_material;
+
+struct _GdkGL_GL_EXT_index_material
+{
+ GdkGLProc_glIndexMaterialEXT glIndexMaterialEXT;
+};
+
+GdkGL_GL_EXT_index_material *gdk_gl_get_GL_EXT_index_material (void);
+
+/*
+ * GL_EXT_index_func
+ */
+
+/* glIndexFuncEXT */
+typedef void (APIENTRY * GdkGLProc_glIndexFuncEXT) (GLenum func, GLclampf ref);
+GdkGLProc gdk_gl_get_glIndexFuncEXT (void);
+#define gdk_gl_glIndexFuncEXT(proc, func, ref) \
+ ( ((GdkGLProc_glIndexFuncEXT) (proc)) (func, ref) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_index_func GdkGL_GL_EXT_index_func;
+
+struct _GdkGL_GL_EXT_index_func
+{
+ GdkGLProc_glIndexFuncEXT glIndexFuncEXT;
+};
+
+GdkGL_GL_EXT_index_func *gdk_gl_get_GL_EXT_index_func (void);
+
+/*
+ * GL_EXT_compiled_vertex_array
+ */
+
+/* glLockArraysEXT */
+typedef void (APIENTRY * GdkGLProc_glLockArraysEXT) (GLint first, GLsizei count);
+GdkGLProc gdk_gl_get_glLockArraysEXT (void);
+#define gdk_gl_glLockArraysEXT(proc, first, count) \
+ ( ((GdkGLProc_glLockArraysEXT) (proc)) (first, count) )
+
+/* glUnlockArraysEXT */
+typedef void (APIENTRY * GdkGLProc_glUnlockArraysEXT) (void);
+GdkGLProc gdk_gl_get_glUnlockArraysEXT (void);
+#define gdk_gl_glUnlockArraysEXT(proc) \
+ ( ((GdkGLProc_glUnlockArraysEXT) (proc)) () )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_compiled_vertex_array GdkGL_GL_EXT_compiled_vertex_array;
+
+struct _GdkGL_GL_EXT_compiled_vertex_array
+{
+ GdkGLProc_glLockArraysEXT glLockArraysEXT;
+ GdkGLProc_glUnlockArraysEXT glUnlockArraysEXT;
+};
+
+GdkGL_GL_EXT_compiled_vertex_array *gdk_gl_get_GL_EXT_compiled_vertex_array (void);
+
+/*
+ * GL_EXT_cull_vertex
+ */
+
+/* glCullParameterdvEXT */
+typedef void (APIENTRY * GdkGLProc_glCullParameterdvEXT) (GLenum pname, GLdouble *params);
+GdkGLProc gdk_gl_get_glCullParameterdvEXT (void);
+#define gdk_gl_glCullParameterdvEXT(proc, pname, params) \
+ ( ((GdkGLProc_glCullParameterdvEXT) (proc)) (pname, params) )
+
+/* glCullParameterfvEXT */
+typedef void (APIENTRY * GdkGLProc_glCullParameterfvEXT) (GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glCullParameterfvEXT (void);
+#define gdk_gl_glCullParameterfvEXT(proc, pname, params) \
+ ( ((GdkGLProc_glCullParameterfvEXT) (proc)) (pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_cull_vertex GdkGL_GL_EXT_cull_vertex;
+
+struct _GdkGL_GL_EXT_cull_vertex
+{
+ GdkGLProc_glCullParameterdvEXT glCullParameterdvEXT;
+ GdkGLProc_glCullParameterfvEXT glCullParameterfvEXT;
+};
+
+GdkGL_GL_EXT_cull_vertex *gdk_gl_get_GL_EXT_cull_vertex (void);
+
+/*
+ * GL_SGIX_fragment_lighting
+ */
+
+/* glFragmentColorMaterialSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentColorMaterialSGIX) (GLenum face, GLenum mode);
+GdkGLProc gdk_gl_get_glFragmentColorMaterialSGIX (void);
+#define gdk_gl_glFragmentColorMaterialSGIX(proc, face, mode) \
+ ( ((GdkGLProc_glFragmentColorMaterialSGIX) (proc)) (face, mode) )
+
+/* glFragmentLightfSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightfSGIX) (GLenum light, GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glFragmentLightfSGIX (void);
+#define gdk_gl_glFragmentLightfSGIX(proc, light, pname, param) \
+ ( ((GdkGLProc_glFragmentLightfSGIX) (proc)) (light, pname, param) )
+
+/* glFragmentLightfvSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightfvSGIX) (GLenum light, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glFragmentLightfvSGIX (void);
+#define gdk_gl_glFragmentLightfvSGIX(proc, light, pname, params) \
+ ( ((GdkGLProc_glFragmentLightfvSGIX) (proc)) (light, pname, params) )
+
+/* glFragmentLightiSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightiSGIX) (GLenum light, GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glFragmentLightiSGIX (void);
+#define gdk_gl_glFragmentLightiSGIX(proc, light, pname, param) \
+ ( ((GdkGLProc_glFragmentLightiSGIX) (proc)) (light, pname, param) )
+
+/* glFragmentLightivSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightivSGIX) (GLenum light, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glFragmentLightivSGIX (void);
+#define gdk_gl_glFragmentLightivSGIX(proc, light, pname, params) \
+ ( ((GdkGLProc_glFragmentLightivSGIX) (proc)) (light, pname, params) )
+
+/* glFragmentLightModelfSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightModelfSGIX) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glFragmentLightModelfSGIX (void);
+#define gdk_gl_glFragmentLightModelfSGIX(proc, pname, param) \
+ ( ((GdkGLProc_glFragmentLightModelfSGIX) (proc)) (pname, param) )
+
+/* glFragmentLightModelfvSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightModelfvSGIX) (GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glFragmentLightModelfvSGIX (void);
+#define gdk_gl_glFragmentLightModelfvSGIX(proc, pname, params) \
+ ( ((GdkGLProc_glFragmentLightModelfvSGIX) (proc)) (pname, params) )
+
+/* glFragmentLightModeliSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightModeliSGIX) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glFragmentLightModeliSGIX (void);
+#define gdk_gl_glFragmentLightModeliSGIX(proc, pname, param) \
+ ( ((GdkGLProc_glFragmentLightModeliSGIX) (proc)) (pname, param) )
+
+/* glFragmentLightModelivSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightModelivSGIX) (GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glFragmentLightModelivSGIX (void);
+#define gdk_gl_glFragmentLightModelivSGIX(proc, pname, params) \
+ ( ((GdkGLProc_glFragmentLightModelivSGIX) (proc)) (pname, params) )
+
+/* glFragmentMaterialfSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentMaterialfSGIX) (GLenum face, GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glFragmentMaterialfSGIX (void);
+#define gdk_gl_glFragmentMaterialfSGIX(proc, face, pname, param) \
+ ( ((GdkGLProc_glFragmentMaterialfSGIX) (proc)) (face, pname, param) )
+
+/* glFragmentMaterialfvSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentMaterialfvSGIX) (GLenum face, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glFragmentMaterialfvSGIX (void);
+#define gdk_gl_glFragmentMaterialfvSGIX(proc, face, pname, params) \
+ ( ((GdkGLProc_glFragmentMaterialfvSGIX) (proc)) (face, pname, params) )
+
+/* glFragmentMaterialiSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentMaterialiSGIX) (GLenum face, GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glFragmentMaterialiSGIX (void);
+#define gdk_gl_glFragmentMaterialiSGIX(proc, face, pname, param) \
+ ( ((GdkGLProc_glFragmentMaterialiSGIX) (proc)) (face, pname, param) )
+
+/* glFragmentMaterialivSGIX */
+typedef void (APIENTRY * GdkGLProc_glFragmentMaterialivSGIX) (GLenum face, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glFragmentMaterialivSGIX (void);
+#define gdk_gl_glFragmentMaterialivSGIX(proc, face, pname, params) \
+ ( ((GdkGLProc_glFragmentMaterialivSGIX) (proc)) (face, pname, params) )
+
+/* glGetFragmentLightfvSGIX */
+typedef void (APIENTRY * GdkGLProc_glGetFragmentLightfvSGIX) (GLenum light, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetFragmentLightfvSGIX (void);
+#define gdk_gl_glGetFragmentLightfvSGIX(proc, light, pname, params) \
+ ( ((GdkGLProc_glGetFragmentLightfvSGIX) (proc)) (light, pname, params) )
+
+/* glGetFragmentLightivSGIX */
+typedef void (APIENTRY * GdkGLProc_glGetFragmentLightivSGIX) (GLenum light, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetFragmentLightivSGIX (void);
+#define gdk_gl_glGetFragmentLightivSGIX(proc, light, pname, params) \
+ ( ((GdkGLProc_glGetFragmentLightivSGIX) (proc)) (light, pname, params) )
+
+/* glGetFragmentMaterialfvSGIX */
+typedef void (APIENTRY * GdkGLProc_glGetFragmentMaterialfvSGIX) (GLenum face, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetFragmentMaterialfvSGIX (void);
+#define gdk_gl_glGetFragmentMaterialfvSGIX(proc, face, pname, params) \
+ ( ((GdkGLProc_glGetFragmentMaterialfvSGIX) (proc)) (face, pname, params) )
+
+/* glGetFragmentMaterialivSGIX */
+typedef void (APIENTRY * GdkGLProc_glGetFragmentMaterialivSGIX) (GLenum face, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetFragmentMaterialivSGIX (void);
+#define gdk_gl_glGetFragmentMaterialivSGIX(proc, face, pname, params) \
+ ( ((GdkGLProc_glGetFragmentMaterialivSGIX) (proc)) (face, pname, params) )
+
+/* glLightEnviSGIX */
+typedef void (APIENTRY * GdkGLProc_glLightEnviSGIX) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glLightEnviSGIX (void);
+#define gdk_gl_glLightEnviSGIX(proc, pname, param) \
+ ( ((GdkGLProc_glLightEnviSGIX) (proc)) (pname, param) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_fragment_lighting GdkGL_GL_SGIX_fragment_lighting;
+
+struct _GdkGL_GL_SGIX_fragment_lighting
+{
+ GdkGLProc_glFragmentColorMaterialSGIX glFragmentColorMaterialSGIX;
+ GdkGLProc_glFragmentLightfSGIX glFragmentLightfSGIX;
+ GdkGLProc_glFragmentLightfvSGIX glFragmentLightfvSGIX;
+ GdkGLProc_glFragmentLightiSGIX glFragmentLightiSGIX;
+ GdkGLProc_glFragmentLightivSGIX glFragmentLightivSGIX;
+ GdkGLProc_glFragmentLightModelfSGIX glFragmentLightModelfSGIX;
+ GdkGLProc_glFragmentLightModelfvSGIX glFragmentLightModelfvSGIX;
+ GdkGLProc_glFragmentLightModeliSGIX glFragmentLightModeliSGIX;
+ GdkGLProc_glFragmentLightModelivSGIX glFragmentLightModelivSGIX;
+ GdkGLProc_glFragmentMaterialfSGIX glFragmentMaterialfSGIX;
+ GdkGLProc_glFragmentMaterialfvSGIX glFragmentMaterialfvSGIX;
+ GdkGLProc_glFragmentMaterialiSGIX glFragmentMaterialiSGIX;
+ GdkGLProc_glFragmentMaterialivSGIX glFragmentMaterialivSGIX;
+ GdkGLProc_glGetFragmentLightfvSGIX glGetFragmentLightfvSGIX;
+ GdkGLProc_glGetFragmentLightivSGIX glGetFragmentLightivSGIX;
+ GdkGLProc_glGetFragmentMaterialfvSGIX glGetFragmentMaterialfvSGIX;
+ GdkGLProc_glGetFragmentMaterialivSGIX glGetFragmentMaterialivSGIX;
+ GdkGLProc_glLightEnviSGIX glLightEnviSGIX;
+};
+
+GdkGL_GL_SGIX_fragment_lighting *gdk_gl_get_GL_SGIX_fragment_lighting (void);
+
+/*
+ * GL_EXT_draw_range_elements
+ */
+
+/* glDrawRangeElementsEXT */
+typedef void (APIENTRY * GdkGLProc_glDrawRangeElementsEXT) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
+GdkGLProc gdk_gl_get_glDrawRangeElementsEXT (void);
+#define gdk_gl_glDrawRangeElementsEXT(proc, mode, start, end, count, type, indices) \
+ ( ((GdkGLProc_glDrawRangeElementsEXT) (proc)) (mode, start, end, count, type, indices) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_draw_range_elements GdkGL_GL_EXT_draw_range_elements;
+
+struct _GdkGL_GL_EXT_draw_range_elements
+{
+ GdkGLProc_glDrawRangeElementsEXT glDrawRangeElementsEXT;
+};
+
+GdkGL_GL_EXT_draw_range_elements *gdk_gl_get_GL_EXT_draw_range_elements (void);
+
+/*
+ * GL_EXT_light_texture
+ */
+
+/* glApplyTextureEXT */
+typedef void (APIENTRY * GdkGLProc_glApplyTextureEXT) (GLenum mode);
+GdkGLProc gdk_gl_get_glApplyTextureEXT (void);
+#define gdk_gl_glApplyTextureEXT(proc, mode) \
+ ( ((GdkGLProc_glApplyTextureEXT) (proc)) (mode) )
+
+/* glTextureLightEXT */
+typedef void (APIENTRY * GdkGLProc_glTextureLightEXT) (GLenum pname);
+GdkGLProc gdk_gl_get_glTextureLightEXT (void);
+#define gdk_gl_glTextureLightEXT(proc, pname) \
+ ( ((GdkGLProc_glTextureLightEXT) (proc)) (pname) )
+
+/* glTextureMaterialEXT */
+typedef void (APIENTRY * GdkGLProc_glTextureMaterialEXT) (GLenum face, GLenum mode);
+GdkGLProc gdk_gl_get_glTextureMaterialEXT (void);
+#define gdk_gl_glTextureMaterialEXT(proc, face, mode) \
+ ( ((GdkGLProc_glTextureMaterialEXT) (proc)) (face, mode) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_light_texture GdkGL_GL_EXT_light_texture;
+
+struct _GdkGL_GL_EXT_light_texture
+{
+ GdkGLProc_glApplyTextureEXT glApplyTextureEXT;
+ GdkGLProc_glTextureLightEXT glTextureLightEXT;
+ GdkGLProc_glTextureMaterialEXT glTextureMaterialEXT;
+};
+
+GdkGL_GL_EXT_light_texture *gdk_gl_get_GL_EXT_light_texture (void);
+
+/*
+ * GL_SGIX_async
+ */
+
+/* glAsyncMarkerSGIX */
+typedef void (APIENTRY * GdkGLProc_glAsyncMarkerSGIX) (GLuint marker);
+GdkGLProc gdk_gl_get_glAsyncMarkerSGIX (void);
+#define gdk_gl_glAsyncMarkerSGIX(proc, marker) \
+ ( ((GdkGLProc_glAsyncMarkerSGIX) (proc)) (marker) )
+
+/* glFinishAsyncSGIX */
+typedef GLint (APIENTRY * GdkGLProc_glFinishAsyncSGIX) (GLuint *markerp);
+GdkGLProc gdk_gl_get_glFinishAsyncSGIX (void);
+#define gdk_gl_glFinishAsyncSGIX(proc, markerp) \
+ ( ((GdkGLProc_glFinishAsyncSGIX) (proc)) (markerp) )
+
+/* glPollAsyncSGIX */
+typedef GLint (APIENTRY * GdkGLProc_glPollAsyncSGIX) (GLuint *markerp);
+GdkGLProc gdk_gl_get_glPollAsyncSGIX (void);
+#define gdk_gl_glPollAsyncSGIX(proc, markerp) \
+ ( ((GdkGLProc_glPollAsyncSGIX) (proc)) (markerp) )
+
+/* glGenAsyncMarkersSGIX */
+typedef GLuint (APIENTRY * GdkGLProc_glGenAsyncMarkersSGIX) (GLsizei range);
+GdkGLProc gdk_gl_get_glGenAsyncMarkersSGIX (void);
+#define gdk_gl_glGenAsyncMarkersSGIX(proc, range) \
+ ( ((GdkGLProc_glGenAsyncMarkersSGIX) (proc)) (range) )
+
+/* glDeleteAsyncMarkersSGIX */
+typedef void (APIENTRY * GdkGLProc_glDeleteAsyncMarkersSGIX) (GLuint marker, GLsizei range);
+GdkGLProc gdk_gl_get_glDeleteAsyncMarkersSGIX (void);
+#define gdk_gl_glDeleteAsyncMarkersSGIX(proc, marker, range) \
+ ( ((GdkGLProc_glDeleteAsyncMarkersSGIX) (proc)) (marker, range) )
+
+/* glIsAsyncMarkerSGIX */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsAsyncMarkerSGIX) (GLuint marker);
+GdkGLProc gdk_gl_get_glIsAsyncMarkerSGIX (void);
+#define gdk_gl_glIsAsyncMarkerSGIX(proc, marker) \
+ ( ((GdkGLProc_glIsAsyncMarkerSGIX) (proc)) (marker) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_async GdkGL_GL_SGIX_async;
+
+struct _GdkGL_GL_SGIX_async
+{
+ GdkGLProc_glAsyncMarkerSGIX glAsyncMarkerSGIX;
+ GdkGLProc_glFinishAsyncSGIX glFinishAsyncSGIX;
+ GdkGLProc_glPollAsyncSGIX glPollAsyncSGIX;
+ GdkGLProc_glGenAsyncMarkersSGIX glGenAsyncMarkersSGIX;
+ GdkGLProc_glDeleteAsyncMarkersSGIX glDeleteAsyncMarkersSGIX;
+ GdkGLProc_glIsAsyncMarkerSGIX glIsAsyncMarkerSGIX;
+};
+
+GdkGL_GL_SGIX_async *gdk_gl_get_GL_SGIX_async (void);
+
+/*
+ * GL_INTEL_parallel_arrays
+ */
+
+/* glVertexPointervINTEL */
+typedef void (APIENTRY * GdkGLProc_glVertexPointervINTEL) (GLint size, GLenum type, const GLvoid* *pointer);
+GdkGLProc gdk_gl_get_glVertexPointervINTEL (void);
+#define gdk_gl_glVertexPointervINTEL(proc, size, type, pointer) \
+ ( ((GdkGLProc_glVertexPointervINTEL) (proc)) (size, type, pointer) )
+
+/* glNormalPointervINTEL */
+typedef void (APIENTRY * GdkGLProc_glNormalPointervINTEL) (GLenum type, const GLvoid* *pointer);
+GdkGLProc gdk_gl_get_glNormalPointervINTEL (void);
+#define gdk_gl_glNormalPointervINTEL(proc, type, pointer) \
+ ( ((GdkGLProc_glNormalPointervINTEL) (proc)) (type, pointer) )
+
+/* glColorPointervINTEL */
+typedef void (APIENTRY * GdkGLProc_glColorPointervINTEL) (GLint size, GLenum type, const GLvoid* *pointer);
+GdkGLProc gdk_gl_get_glColorPointervINTEL (void);
+#define gdk_gl_glColorPointervINTEL(proc, size, type, pointer) \
+ ( ((GdkGLProc_glColorPointervINTEL) (proc)) (size, type, pointer) )
+
+/* glTexCoordPointervINTEL */
+typedef void (APIENTRY * GdkGLProc_glTexCoordPointervINTEL) (GLint size, GLenum type, const GLvoid* *pointer);
+GdkGLProc gdk_gl_get_glTexCoordPointervINTEL (void);
+#define gdk_gl_glTexCoordPointervINTEL(proc, size, type, pointer) \
+ ( ((GdkGLProc_glTexCoordPointervINTEL) (proc)) (size, type, pointer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_INTEL_parallel_arrays GdkGL_GL_INTEL_parallel_arrays;
+
+struct _GdkGL_GL_INTEL_parallel_arrays
+{
+ GdkGLProc_glVertexPointervINTEL glVertexPointervINTEL;
+ GdkGLProc_glNormalPointervINTEL glNormalPointervINTEL;
+ GdkGLProc_glColorPointervINTEL glColorPointervINTEL;
+ GdkGLProc_glTexCoordPointervINTEL glTexCoordPointervINTEL;
+};
+
+GdkGL_GL_INTEL_parallel_arrays *gdk_gl_get_GL_INTEL_parallel_arrays (void);
+
+/*
+ * GL_EXT_pixel_transform
+ */
+
+/* glPixelTransformParameteriEXT */
+typedef void (APIENTRY * GdkGLProc_glPixelTransformParameteriEXT) (GLenum target, GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glPixelTransformParameteriEXT (void);
+#define gdk_gl_glPixelTransformParameteriEXT(proc, target, pname, param) \
+ ( ((GdkGLProc_glPixelTransformParameteriEXT) (proc)) (target, pname, param) )
+
+/* glPixelTransformParameterfEXT */
+typedef void (APIENTRY * GdkGLProc_glPixelTransformParameterfEXT) (GLenum target, GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glPixelTransformParameterfEXT (void);
+#define gdk_gl_glPixelTransformParameterfEXT(proc, target, pname, param) \
+ ( ((GdkGLProc_glPixelTransformParameterfEXT) (proc)) (target, pname, param) )
+
+/* glPixelTransformParameterivEXT */
+typedef void (APIENTRY * GdkGLProc_glPixelTransformParameterivEXT) (GLenum target, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glPixelTransformParameterivEXT (void);
+#define gdk_gl_glPixelTransformParameterivEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glPixelTransformParameterivEXT) (proc)) (target, pname, params) )
+
+/* glPixelTransformParameterfvEXT */
+typedef void (APIENTRY * GdkGLProc_glPixelTransformParameterfvEXT) (GLenum target, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glPixelTransformParameterfvEXT (void);
+#define gdk_gl_glPixelTransformParameterfvEXT(proc, target, pname, params) \
+ ( ((GdkGLProc_glPixelTransformParameterfvEXT) (proc)) (target, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_pixel_transform GdkGL_GL_EXT_pixel_transform;
+
+struct _GdkGL_GL_EXT_pixel_transform
+{
+ GdkGLProc_glPixelTransformParameteriEXT glPixelTransformParameteriEXT;
+ GdkGLProc_glPixelTransformParameterfEXT glPixelTransformParameterfEXT;
+ GdkGLProc_glPixelTransformParameterivEXT glPixelTransformParameterivEXT;
+ GdkGLProc_glPixelTransformParameterfvEXT glPixelTransformParameterfvEXT;
+};
+
+GdkGL_GL_EXT_pixel_transform *gdk_gl_get_GL_EXT_pixel_transform (void);
+
+/*
+ * GL_EXT_secondary_color
+ */
+
+/* glSecondaryColor3bEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3bEXT) (GLbyte red, GLbyte green, GLbyte blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3bEXT (void);
+#define gdk_gl_glSecondaryColor3bEXT(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3bEXT) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3bvEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3bvEXT) (const GLbyte *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3bvEXT (void);
+#define gdk_gl_glSecondaryColor3bvEXT(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3bvEXT) (proc)) (v) )
+
+/* glSecondaryColor3dEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3dEXT) (GLdouble red, GLdouble green, GLdouble blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3dEXT (void);
+#define gdk_gl_glSecondaryColor3dEXT(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3dEXT) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3dvEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3dvEXT) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3dvEXT (void);
+#define gdk_gl_glSecondaryColor3dvEXT(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3dvEXT) (proc)) (v) )
+
+/* glSecondaryColor3fEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3fEXT) (GLfloat red, GLfloat green, GLfloat blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3fEXT (void);
+#define gdk_gl_glSecondaryColor3fEXT(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3fEXT) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3fvEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3fvEXT) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3fvEXT (void);
+#define gdk_gl_glSecondaryColor3fvEXT(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3fvEXT) (proc)) (v) )
+
+/* glSecondaryColor3iEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3iEXT) (GLint red, GLint green, GLint blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3iEXT (void);
+#define gdk_gl_glSecondaryColor3iEXT(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3iEXT) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3ivEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3ivEXT) (const GLint *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3ivEXT (void);
+#define gdk_gl_glSecondaryColor3ivEXT(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3ivEXT) (proc)) (v) )
+
+/* glSecondaryColor3sEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3sEXT) (GLshort red, GLshort green, GLshort blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3sEXT (void);
+#define gdk_gl_glSecondaryColor3sEXT(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3sEXT) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3svEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3svEXT) (const GLshort *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3svEXT (void);
+#define gdk_gl_glSecondaryColor3svEXT(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3svEXT) (proc)) (v) )
+
+/* glSecondaryColor3ubEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3ubEXT) (GLubyte red, GLubyte green, GLubyte blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3ubEXT (void);
+#define gdk_gl_glSecondaryColor3ubEXT(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3ubEXT) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3ubvEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3ubvEXT) (const GLubyte *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3ubvEXT (void);
+#define gdk_gl_glSecondaryColor3ubvEXT(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3ubvEXT) (proc)) (v) )
+
+/* glSecondaryColor3uiEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3uiEXT) (GLuint red, GLuint green, GLuint blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3uiEXT (void);
+#define gdk_gl_glSecondaryColor3uiEXT(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3uiEXT) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3uivEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3uivEXT) (const GLuint *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3uivEXT (void);
+#define gdk_gl_glSecondaryColor3uivEXT(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3uivEXT) (proc)) (v) )
+
+/* glSecondaryColor3usEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3usEXT) (GLushort red, GLushort green, GLushort blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3usEXT (void);
+#define gdk_gl_glSecondaryColor3usEXT(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3usEXT) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3usvEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3usvEXT) (const GLushort *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3usvEXT (void);
+#define gdk_gl_glSecondaryColor3usvEXT(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3usvEXT) (proc)) (v) )
+
+/* glSecondaryColorPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColorPointerEXT) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glSecondaryColorPointerEXT (void);
+#define gdk_gl_glSecondaryColorPointerEXT(proc, size, type, stride, pointer) \
+ ( ((GdkGLProc_glSecondaryColorPointerEXT) (proc)) (size, type, stride, pointer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_secondary_color GdkGL_GL_EXT_secondary_color;
+
+struct _GdkGL_GL_EXT_secondary_color
+{
+ GdkGLProc_glSecondaryColor3bEXT glSecondaryColor3bEXT;
+ GdkGLProc_glSecondaryColor3bvEXT glSecondaryColor3bvEXT;
+ GdkGLProc_glSecondaryColor3dEXT glSecondaryColor3dEXT;
+ GdkGLProc_glSecondaryColor3dvEXT glSecondaryColor3dvEXT;
+ GdkGLProc_glSecondaryColor3fEXT glSecondaryColor3fEXT;
+ GdkGLProc_glSecondaryColor3fvEXT glSecondaryColor3fvEXT;
+ GdkGLProc_glSecondaryColor3iEXT glSecondaryColor3iEXT;
+ GdkGLProc_glSecondaryColor3ivEXT glSecondaryColor3ivEXT;
+ GdkGLProc_glSecondaryColor3sEXT glSecondaryColor3sEXT;
+ GdkGLProc_glSecondaryColor3svEXT glSecondaryColor3svEXT;
+ GdkGLProc_glSecondaryColor3ubEXT glSecondaryColor3ubEXT;
+ GdkGLProc_glSecondaryColor3ubvEXT glSecondaryColor3ubvEXT;
+ GdkGLProc_glSecondaryColor3uiEXT glSecondaryColor3uiEXT;
+ GdkGLProc_glSecondaryColor3uivEXT glSecondaryColor3uivEXT;
+ GdkGLProc_glSecondaryColor3usEXT glSecondaryColor3usEXT;
+ GdkGLProc_glSecondaryColor3usvEXT glSecondaryColor3usvEXT;
+ GdkGLProc_glSecondaryColorPointerEXT glSecondaryColorPointerEXT;
+};
+
+GdkGL_GL_EXT_secondary_color *gdk_gl_get_GL_EXT_secondary_color (void);
+
+/*
+ * GL_EXT_texture_perturb_normal
+ */
+
+/* glTextureNormalEXT */
+typedef void (APIENTRY * GdkGLProc_glTextureNormalEXT) (GLenum mode);
+GdkGLProc gdk_gl_get_glTextureNormalEXT (void);
+#define gdk_gl_glTextureNormalEXT(proc, mode) \
+ ( ((GdkGLProc_glTextureNormalEXT) (proc)) (mode) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_texture_perturb_normal GdkGL_GL_EXT_texture_perturb_normal;
+
+struct _GdkGL_GL_EXT_texture_perturb_normal
+{
+ GdkGLProc_glTextureNormalEXT glTextureNormalEXT;
+};
+
+GdkGL_GL_EXT_texture_perturb_normal *gdk_gl_get_GL_EXT_texture_perturb_normal (void);
+
+/*
+ * GL_EXT_multi_draw_arrays
+ */
+
+/* glMultiDrawArraysEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiDrawArraysEXT) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+GdkGLProc gdk_gl_get_glMultiDrawArraysEXT (void);
+#define gdk_gl_glMultiDrawArraysEXT(proc, mode, first, count, primcount) \
+ ( ((GdkGLProc_glMultiDrawArraysEXT) (proc)) (mode, first, count, primcount) )
+
+/* glMultiDrawElementsEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiDrawElementsEXT) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
+GdkGLProc gdk_gl_get_glMultiDrawElementsEXT (void);
+#define gdk_gl_glMultiDrawElementsEXT(proc, mode, count, type, indices, primcount) \
+ ( ((GdkGLProc_glMultiDrawElementsEXT) (proc)) (mode, count, type, indices, primcount) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_multi_draw_arrays GdkGL_GL_EXT_multi_draw_arrays;
+
+struct _GdkGL_GL_EXT_multi_draw_arrays
+{
+ GdkGLProc_glMultiDrawArraysEXT glMultiDrawArraysEXT;
+ GdkGLProc_glMultiDrawElementsEXT glMultiDrawElementsEXT;
+};
+
+GdkGL_GL_EXT_multi_draw_arrays *gdk_gl_get_GL_EXT_multi_draw_arrays (void);
+
+/*
+ * GL_EXT_fog_coord
+ */
+
+/* glFogCoordfEXT */
+typedef void (APIENTRY * GdkGLProc_glFogCoordfEXT) (GLfloat coord);
+GdkGLProc gdk_gl_get_glFogCoordfEXT (void);
+#define gdk_gl_glFogCoordfEXT(proc, coord) \
+ ( ((GdkGLProc_glFogCoordfEXT) (proc)) (coord) )
+
+/* glFogCoordfvEXT */
+typedef void (APIENTRY * GdkGLProc_glFogCoordfvEXT) (const GLfloat *coord);
+GdkGLProc gdk_gl_get_glFogCoordfvEXT (void);
+#define gdk_gl_glFogCoordfvEXT(proc, coord) \
+ ( ((GdkGLProc_glFogCoordfvEXT) (proc)) (coord) )
+
+/* glFogCoorddEXT */
+typedef void (APIENTRY * GdkGLProc_glFogCoorddEXT) (GLdouble coord);
+GdkGLProc gdk_gl_get_glFogCoorddEXT (void);
+#define gdk_gl_glFogCoorddEXT(proc, coord) \
+ ( ((GdkGLProc_glFogCoorddEXT) (proc)) (coord) )
+
+/* glFogCoorddvEXT */
+typedef void (APIENTRY * GdkGLProc_glFogCoorddvEXT) (const GLdouble *coord);
+GdkGLProc gdk_gl_get_glFogCoorddvEXT (void);
+#define gdk_gl_glFogCoorddvEXT(proc, coord) \
+ ( ((GdkGLProc_glFogCoorddvEXT) (proc)) (coord) )
+
+/* glFogCoordPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glFogCoordPointerEXT) (GLenum type, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glFogCoordPointerEXT (void);
+#define gdk_gl_glFogCoordPointerEXT(proc, type, stride, pointer) \
+ ( ((GdkGLProc_glFogCoordPointerEXT) (proc)) (type, stride, pointer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_fog_coord GdkGL_GL_EXT_fog_coord;
+
+struct _GdkGL_GL_EXT_fog_coord
+{
+ GdkGLProc_glFogCoordfEXT glFogCoordfEXT;
+ GdkGLProc_glFogCoordfvEXT glFogCoordfvEXT;
+ GdkGLProc_glFogCoorddEXT glFogCoorddEXT;
+ GdkGLProc_glFogCoorddvEXT glFogCoorddvEXT;
+ GdkGLProc_glFogCoordPointerEXT glFogCoordPointerEXT;
+};
+
+GdkGL_GL_EXT_fog_coord *gdk_gl_get_GL_EXT_fog_coord (void);
+
+/*
+ * GL_EXT_coordinate_frame
+ */
+
+/* glTangent3bEXT */
+typedef void (APIENTRY * GdkGLProc_glTangent3bEXT) (GLbyte tx, GLbyte ty, GLbyte tz);
+GdkGLProc gdk_gl_get_glTangent3bEXT (void);
+#define gdk_gl_glTangent3bEXT(proc, tx, ty, tz) \
+ ( ((GdkGLProc_glTangent3bEXT) (proc)) (tx, ty, tz) )
+
+/* glTangent3bvEXT */
+typedef void (APIENTRY * GdkGLProc_glTangent3bvEXT) (const GLbyte *v);
+GdkGLProc gdk_gl_get_glTangent3bvEXT (void);
+#define gdk_gl_glTangent3bvEXT(proc, v) \
+ ( ((GdkGLProc_glTangent3bvEXT) (proc)) (v) )
+
+/* glTangent3dEXT */
+typedef void (APIENTRY * GdkGLProc_glTangent3dEXT) (GLdouble tx, GLdouble ty, GLdouble tz);
+GdkGLProc gdk_gl_get_glTangent3dEXT (void);
+#define gdk_gl_glTangent3dEXT(proc, tx, ty, tz) \
+ ( ((GdkGLProc_glTangent3dEXT) (proc)) (tx, ty, tz) )
+
+/* glTangent3dvEXT */
+typedef void (APIENTRY * GdkGLProc_glTangent3dvEXT) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glTangent3dvEXT (void);
+#define gdk_gl_glTangent3dvEXT(proc, v) \
+ ( ((GdkGLProc_glTangent3dvEXT) (proc)) (v) )
+
+/* glTangent3fEXT */
+typedef void (APIENTRY * GdkGLProc_glTangent3fEXT) (GLfloat tx, GLfloat ty, GLfloat tz);
+GdkGLProc gdk_gl_get_glTangent3fEXT (void);
+#define gdk_gl_glTangent3fEXT(proc, tx, ty, tz) \
+ ( ((GdkGLProc_glTangent3fEXT) (proc)) (tx, ty, tz) )
+
+/* glTangent3fvEXT */
+typedef void (APIENTRY * GdkGLProc_glTangent3fvEXT) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glTangent3fvEXT (void);
+#define gdk_gl_glTangent3fvEXT(proc, v) \
+ ( ((GdkGLProc_glTangent3fvEXT) (proc)) (v) )
+
+/* glTangent3iEXT */
+typedef void (APIENTRY * GdkGLProc_glTangent3iEXT) (GLint tx, GLint ty, GLint tz);
+GdkGLProc gdk_gl_get_glTangent3iEXT (void);
+#define gdk_gl_glTangent3iEXT(proc, tx, ty, tz) \
+ ( ((GdkGLProc_glTangent3iEXT) (proc)) (tx, ty, tz) )
+
+/* glTangent3ivEXT */
+typedef void (APIENTRY * GdkGLProc_glTangent3ivEXT) (const GLint *v);
+GdkGLProc gdk_gl_get_glTangent3ivEXT (void);
+#define gdk_gl_glTangent3ivEXT(proc, v) \
+ ( ((GdkGLProc_glTangent3ivEXT) (proc)) (v) )
+
+/* glTangent3sEXT */
+typedef void (APIENTRY * GdkGLProc_glTangent3sEXT) (GLshort tx, GLshort ty, GLshort tz);
+GdkGLProc gdk_gl_get_glTangent3sEXT (void);
+#define gdk_gl_glTangent3sEXT(proc, tx, ty, tz) \
+ ( ((GdkGLProc_glTangent3sEXT) (proc)) (tx, ty, tz) )
+
+/* glTangent3svEXT */
+typedef void (APIENTRY * GdkGLProc_glTangent3svEXT) (const GLshort *v);
+GdkGLProc gdk_gl_get_glTangent3svEXT (void);
+#define gdk_gl_glTangent3svEXT(proc, v) \
+ ( ((GdkGLProc_glTangent3svEXT) (proc)) (v) )
+
+/* glBinormal3bEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormal3bEXT) (GLbyte bx, GLbyte by, GLbyte bz);
+GdkGLProc gdk_gl_get_glBinormal3bEXT (void);
+#define gdk_gl_glBinormal3bEXT(proc, bx, by, bz) \
+ ( ((GdkGLProc_glBinormal3bEXT) (proc)) (bx, by, bz) )
+
+/* glBinormal3bvEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormal3bvEXT) (const GLbyte *v);
+GdkGLProc gdk_gl_get_glBinormal3bvEXT (void);
+#define gdk_gl_glBinormal3bvEXT(proc, v) \
+ ( ((GdkGLProc_glBinormal3bvEXT) (proc)) (v) )
+
+/* glBinormal3dEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormal3dEXT) (GLdouble bx, GLdouble by, GLdouble bz);
+GdkGLProc gdk_gl_get_glBinormal3dEXT (void);
+#define gdk_gl_glBinormal3dEXT(proc, bx, by, bz) \
+ ( ((GdkGLProc_glBinormal3dEXT) (proc)) (bx, by, bz) )
+
+/* glBinormal3dvEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormal3dvEXT) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glBinormal3dvEXT (void);
+#define gdk_gl_glBinormal3dvEXT(proc, v) \
+ ( ((GdkGLProc_glBinormal3dvEXT) (proc)) (v) )
+
+/* glBinormal3fEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormal3fEXT) (GLfloat bx, GLfloat by, GLfloat bz);
+GdkGLProc gdk_gl_get_glBinormal3fEXT (void);
+#define gdk_gl_glBinormal3fEXT(proc, bx, by, bz) \
+ ( ((GdkGLProc_glBinormal3fEXT) (proc)) (bx, by, bz) )
+
+/* glBinormal3fvEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormal3fvEXT) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glBinormal3fvEXT (void);
+#define gdk_gl_glBinormal3fvEXT(proc, v) \
+ ( ((GdkGLProc_glBinormal3fvEXT) (proc)) (v) )
+
+/* glBinormal3iEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormal3iEXT) (GLint bx, GLint by, GLint bz);
+GdkGLProc gdk_gl_get_glBinormal3iEXT (void);
+#define gdk_gl_glBinormal3iEXT(proc, bx, by, bz) \
+ ( ((GdkGLProc_glBinormal3iEXT) (proc)) (bx, by, bz) )
+
+/* glBinormal3ivEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormal3ivEXT) (const GLint *v);
+GdkGLProc gdk_gl_get_glBinormal3ivEXT (void);
+#define gdk_gl_glBinormal3ivEXT(proc, v) \
+ ( ((GdkGLProc_glBinormal3ivEXT) (proc)) (v) )
+
+/* glBinormal3sEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormal3sEXT) (GLshort bx, GLshort by, GLshort bz);
+GdkGLProc gdk_gl_get_glBinormal3sEXT (void);
+#define gdk_gl_glBinormal3sEXT(proc, bx, by, bz) \
+ ( ((GdkGLProc_glBinormal3sEXT) (proc)) (bx, by, bz) )
+
+/* glBinormal3svEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormal3svEXT) (const GLshort *v);
+GdkGLProc gdk_gl_get_glBinormal3svEXT (void);
+#define gdk_gl_glBinormal3svEXT(proc, v) \
+ ( ((GdkGLProc_glBinormal3svEXT) (proc)) (v) )
+
+/* glTangentPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glTangentPointerEXT) (GLenum type, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glTangentPointerEXT (void);
+#define gdk_gl_glTangentPointerEXT(proc, type, stride, pointer) \
+ ( ((GdkGLProc_glTangentPointerEXT) (proc)) (type, stride, pointer) )
+
+/* glBinormalPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glBinormalPointerEXT) (GLenum type, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glBinormalPointerEXT (void);
+#define gdk_gl_glBinormalPointerEXT(proc, type, stride, pointer) \
+ ( ((GdkGLProc_glBinormalPointerEXT) (proc)) (type, stride, pointer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_coordinate_frame GdkGL_GL_EXT_coordinate_frame;
+
+struct _GdkGL_GL_EXT_coordinate_frame
+{
+ GdkGLProc_glTangent3bEXT glTangent3bEXT;
+ GdkGLProc_glTangent3bvEXT glTangent3bvEXT;
+ GdkGLProc_glTangent3dEXT glTangent3dEXT;
+ GdkGLProc_glTangent3dvEXT glTangent3dvEXT;
+ GdkGLProc_glTangent3fEXT glTangent3fEXT;
+ GdkGLProc_glTangent3fvEXT glTangent3fvEXT;
+ GdkGLProc_glTangent3iEXT glTangent3iEXT;
+ GdkGLProc_glTangent3ivEXT glTangent3ivEXT;
+ GdkGLProc_glTangent3sEXT glTangent3sEXT;
+ GdkGLProc_glTangent3svEXT glTangent3svEXT;
+ GdkGLProc_glBinormal3bEXT glBinormal3bEXT;
+ GdkGLProc_glBinormal3bvEXT glBinormal3bvEXT;
+ GdkGLProc_glBinormal3dEXT glBinormal3dEXT;
+ GdkGLProc_glBinormal3dvEXT glBinormal3dvEXT;
+ GdkGLProc_glBinormal3fEXT glBinormal3fEXT;
+ GdkGLProc_glBinormal3fvEXT glBinormal3fvEXT;
+ GdkGLProc_glBinormal3iEXT glBinormal3iEXT;
+ GdkGLProc_glBinormal3ivEXT glBinormal3ivEXT;
+ GdkGLProc_glBinormal3sEXT glBinormal3sEXT;
+ GdkGLProc_glBinormal3svEXT glBinormal3svEXT;
+ GdkGLProc_glTangentPointerEXT glTangentPointerEXT;
+ GdkGLProc_glBinormalPointerEXT glBinormalPointerEXT;
+};
+
+GdkGL_GL_EXT_coordinate_frame *gdk_gl_get_GL_EXT_coordinate_frame (void);
+
+/*
+ * GL_SUNX_constant_data
+ */
+
+/* glFinishTextureSUNX */
+typedef void (APIENTRY * GdkGLProc_glFinishTextureSUNX) (void);
+GdkGLProc gdk_gl_get_glFinishTextureSUNX (void);
+#define gdk_gl_glFinishTextureSUNX(proc) \
+ ( ((GdkGLProc_glFinishTextureSUNX) (proc)) () )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SUNX_constant_data GdkGL_GL_SUNX_constant_data;
+
+struct _GdkGL_GL_SUNX_constant_data
+{
+ GdkGLProc_glFinishTextureSUNX glFinishTextureSUNX;
+};
+
+GdkGL_GL_SUNX_constant_data *gdk_gl_get_GL_SUNX_constant_data (void);
+
+/*
+ * GL_SUN_global_alpha
+ */
+
+/* glGlobalAlphaFactorbSUN */
+typedef void (APIENTRY * GdkGLProc_glGlobalAlphaFactorbSUN) (GLbyte factor);
+GdkGLProc gdk_gl_get_glGlobalAlphaFactorbSUN (void);
+#define gdk_gl_glGlobalAlphaFactorbSUN(proc, factor) \
+ ( ((GdkGLProc_glGlobalAlphaFactorbSUN) (proc)) (factor) )
+
+/* glGlobalAlphaFactorsSUN */
+typedef void (APIENTRY * GdkGLProc_glGlobalAlphaFactorsSUN) (GLshort factor);
+GdkGLProc gdk_gl_get_glGlobalAlphaFactorsSUN (void);
+#define gdk_gl_glGlobalAlphaFactorsSUN(proc, factor) \
+ ( ((GdkGLProc_glGlobalAlphaFactorsSUN) (proc)) (factor) )
+
+/* glGlobalAlphaFactoriSUN */
+typedef void (APIENTRY * GdkGLProc_glGlobalAlphaFactoriSUN) (GLint factor);
+GdkGLProc gdk_gl_get_glGlobalAlphaFactoriSUN (void);
+#define gdk_gl_glGlobalAlphaFactoriSUN(proc, factor) \
+ ( ((GdkGLProc_glGlobalAlphaFactoriSUN) (proc)) (factor) )
+
+/* glGlobalAlphaFactorfSUN */
+typedef void (APIENTRY * GdkGLProc_glGlobalAlphaFactorfSUN) (GLfloat factor);
+GdkGLProc gdk_gl_get_glGlobalAlphaFactorfSUN (void);
+#define gdk_gl_glGlobalAlphaFactorfSUN(proc, factor) \
+ ( ((GdkGLProc_glGlobalAlphaFactorfSUN) (proc)) (factor) )
+
+/* glGlobalAlphaFactordSUN */
+typedef void (APIENTRY * GdkGLProc_glGlobalAlphaFactordSUN) (GLdouble factor);
+GdkGLProc gdk_gl_get_glGlobalAlphaFactordSUN (void);
+#define gdk_gl_glGlobalAlphaFactordSUN(proc, factor) \
+ ( ((GdkGLProc_glGlobalAlphaFactordSUN) (proc)) (factor) )
+
+/* glGlobalAlphaFactorubSUN */
+typedef void (APIENTRY * GdkGLProc_glGlobalAlphaFactorubSUN) (GLubyte factor);
+GdkGLProc gdk_gl_get_glGlobalAlphaFactorubSUN (void);
+#define gdk_gl_glGlobalAlphaFactorubSUN(proc, factor) \
+ ( ((GdkGLProc_glGlobalAlphaFactorubSUN) (proc)) (factor) )
+
+/* glGlobalAlphaFactorusSUN */
+typedef void (APIENTRY * GdkGLProc_glGlobalAlphaFactorusSUN) (GLushort factor);
+GdkGLProc gdk_gl_get_glGlobalAlphaFactorusSUN (void);
+#define gdk_gl_glGlobalAlphaFactorusSUN(proc, factor) \
+ ( ((GdkGLProc_glGlobalAlphaFactorusSUN) (proc)) (factor) )
+
+/* glGlobalAlphaFactoruiSUN */
+typedef void (APIENTRY * GdkGLProc_glGlobalAlphaFactoruiSUN) (GLuint factor);
+GdkGLProc gdk_gl_get_glGlobalAlphaFactoruiSUN (void);
+#define gdk_gl_glGlobalAlphaFactoruiSUN(proc, factor) \
+ ( ((GdkGLProc_glGlobalAlphaFactoruiSUN) (proc)) (factor) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SUN_global_alpha GdkGL_GL_SUN_global_alpha;
+
+struct _GdkGL_GL_SUN_global_alpha
+{
+ GdkGLProc_glGlobalAlphaFactorbSUN glGlobalAlphaFactorbSUN;
+ GdkGLProc_glGlobalAlphaFactorsSUN glGlobalAlphaFactorsSUN;
+ GdkGLProc_glGlobalAlphaFactoriSUN glGlobalAlphaFactoriSUN;
+ GdkGLProc_glGlobalAlphaFactorfSUN glGlobalAlphaFactorfSUN;
+ GdkGLProc_glGlobalAlphaFactordSUN glGlobalAlphaFactordSUN;
+ GdkGLProc_glGlobalAlphaFactorubSUN glGlobalAlphaFactorubSUN;
+ GdkGLProc_glGlobalAlphaFactorusSUN glGlobalAlphaFactorusSUN;
+ GdkGLProc_glGlobalAlphaFactoruiSUN glGlobalAlphaFactoruiSUN;
+};
+
+GdkGL_GL_SUN_global_alpha *gdk_gl_get_GL_SUN_global_alpha (void);
+
+/*
+ * GL_SUN_triangle_list
+ */
+
+/* glReplacementCodeuiSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiSUN) (GLuint code);
+GdkGLProc gdk_gl_get_glReplacementCodeuiSUN (void);
+#define gdk_gl_glReplacementCodeuiSUN(proc, code) \
+ ( ((GdkGLProc_glReplacementCodeuiSUN) (proc)) (code) )
+
+/* glReplacementCodeusSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeusSUN) (GLushort code);
+GdkGLProc gdk_gl_get_glReplacementCodeusSUN (void);
+#define gdk_gl_glReplacementCodeusSUN(proc, code) \
+ ( ((GdkGLProc_glReplacementCodeusSUN) (proc)) (code) )
+
+/* glReplacementCodeubSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeubSUN) (GLubyte code);
+GdkGLProc gdk_gl_get_glReplacementCodeubSUN (void);
+#define gdk_gl_glReplacementCodeubSUN(proc, code) \
+ ( ((GdkGLProc_glReplacementCodeubSUN) (proc)) (code) )
+
+/* glReplacementCodeuivSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuivSUN) (const GLuint *code);
+GdkGLProc gdk_gl_get_glReplacementCodeuivSUN (void);
+#define gdk_gl_glReplacementCodeuivSUN(proc, code) \
+ ( ((GdkGLProc_glReplacementCodeuivSUN) (proc)) (code) )
+
+/* glReplacementCodeusvSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeusvSUN) (const GLushort *code);
+GdkGLProc gdk_gl_get_glReplacementCodeusvSUN (void);
+#define gdk_gl_glReplacementCodeusvSUN(proc, code) \
+ ( ((GdkGLProc_glReplacementCodeusvSUN) (proc)) (code) )
+
+/* glReplacementCodeubvSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeubvSUN) (const GLubyte *code);
+GdkGLProc gdk_gl_get_glReplacementCodeubvSUN (void);
+#define gdk_gl_glReplacementCodeubvSUN(proc, code) \
+ ( ((GdkGLProc_glReplacementCodeubvSUN) (proc)) (code) )
+
+/* glReplacementCodePointerSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodePointerSUN) (GLenum type, GLsizei stride, const GLvoid* *pointer);
+GdkGLProc gdk_gl_get_glReplacementCodePointerSUN (void);
+#define gdk_gl_glReplacementCodePointerSUN(proc, type, stride, pointer) \
+ ( ((GdkGLProc_glReplacementCodePointerSUN) (proc)) (type, stride, pointer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SUN_triangle_list GdkGL_GL_SUN_triangle_list;
+
+struct _GdkGL_GL_SUN_triangle_list
+{
+ GdkGLProc_glReplacementCodeuiSUN glReplacementCodeuiSUN;
+ GdkGLProc_glReplacementCodeusSUN glReplacementCodeusSUN;
+ GdkGLProc_glReplacementCodeubSUN glReplacementCodeubSUN;
+ GdkGLProc_glReplacementCodeuivSUN glReplacementCodeuivSUN;
+ GdkGLProc_glReplacementCodeusvSUN glReplacementCodeusvSUN;
+ GdkGLProc_glReplacementCodeubvSUN glReplacementCodeubvSUN;
+ GdkGLProc_glReplacementCodePointerSUN glReplacementCodePointerSUN;
+};
+
+GdkGL_GL_SUN_triangle_list *gdk_gl_get_GL_SUN_triangle_list (void);
+
+/*
+ * GL_SUN_vertex
+ */
+
+/* glColor4ubVertex2fSUN */
+typedef void (APIENTRY * GdkGLProc_glColor4ubVertex2fSUN) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
+GdkGLProc gdk_gl_get_glColor4ubVertex2fSUN (void);
+#define gdk_gl_glColor4ubVertex2fSUN(proc, r, g, b, a, x, y) \
+ ( ((GdkGLProc_glColor4ubVertex2fSUN) (proc)) (r, g, b, a, x, y) )
+
+/* glColor4ubVertex2fvSUN */
+typedef void (APIENTRY * GdkGLProc_glColor4ubVertex2fvSUN) (const GLubyte *c, const GLfloat *v);
+GdkGLProc gdk_gl_get_glColor4ubVertex2fvSUN (void);
+#define gdk_gl_glColor4ubVertex2fvSUN(proc, c, v) \
+ ( ((GdkGLProc_glColor4ubVertex2fvSUN) (proc)) (c, v) )
+
+/* glColor4ubVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glColor4ubVertex3fSUN) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glColor4ubVertex3fSUN (void);
+#define gdk_gl_glColor4ubVertex3fSUN(proc, r, g, b, a, x, y, z) \
+ ( ((GdkGLProc_glColor4ubVertex3fSUN) (proc)) (r, g, b, a, x, y, z) )
+
+/* glColor4ubVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glColor4ubVertex3fvSUN) (const GLubyte *c, const GLfloat *v);
+GdkGLProc gdk_gl_get_glColor4ubVertex3fvSUN (void);
+#define gdk_gl_glColor4ubVertex3fvSUN(proc, c, v) \
+ ( ((GdkGLProc_glColor4ubVertex3fvSUN) (proc)) (c, v) )
+
+/* glColor3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glColor3fVertex3fSUN) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glColor3fVertex3fSUN (void);
+#define gdk_gl_glColor3fVertex3fSUN(proc, r, g, b, x, y, z) \
+ ( ((GdkGLProc_glColor3fVertex3fSUN) (proc)) (r, g, b, x, y, z) )
+
+/* glColor3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glColor3fVertex3fvSUN) (const GLfloat *c, const GLfloat *v);
+GdkGLProc gdk_gl_get_glColor3fVertex3fvSUN (void);
+#define gdk_gl_glColor3fVertex3fvSUN(proc, c, v) \
+ ( ((GdkGLProc_glColor3fVertex3fvSUN) (proc)) (c, v) )
+
+/* glNormal3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glNormal3fVertex3fSUN) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glNormal3fVertex3fSUN (void);
+#define gdk_gl_glNormal3fVertex3fSUN(proc, nx, ny, nz, x, y, z) \
+ ( ((GdkGLProc_glNormal3fVertex3fSUN) (proc)) (nx, ny, nz, x, y, z) )
+
+/* glNormal3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glNormal3fVertex3fvSUN) (const GLfloat *n, const GLfloat *v);
+GdkGLProc gdk_gl_get_glNormal3fVertex3fvSUN (void);
+#define gdk_gl_glNormal3fVertex3fvSUN(proc, n, v) \
+ ( ((GdkGLProc_glNormal3fVertex3fvSUN) (proc)) (n, v) )
+
+/* glColor4fNormal3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glColor4fNormal3fVertex3fSUN) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glColor4fNormal3fVertex3fSUN (void);
+#define gdk_gl_glColor4fNormal3fVertex3fSUN(proc, r, g, b, a, nx, ny, nz, x, y, z) \
+ ( ((GdkGLProc_glColor4fNormal3fVertex3fSUN) (proc)) (r, g, b, a, nx, ny, nz, x, y, z) )
+
+/* glColor4fNormal3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glColor4fNormal3fVertex3fvSUN) (const GLfloat *c, const GLfloat *n, const GLfloat *v);
+GdkGLProc gdk_gl_get_glColor4fNormal3fVertex3fvSUN (void);
+#define gdk_gl_glColor4fNormal3fVertex3fvSUN(proc, c, n, v) \
+ ( ((GdkGLProc_glColor4fNormal3fVertex3fvSUN) (proc)) (c, n, v) )
+
+/* glTexCoord2fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glTexCoord2fVertex3fSUN (void);
+#define gdk_gl_glTexCoord2fVertex3fSUN(proc, s, t, x, y, z) \
+ ( ((GdkGLProc_glTexCoord2fVertex3fSUN) (proc)) (s, t, x, y, z) )
+
+/* glTexCoord2fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2fVertex3fvSUN) (const GLfloat *tc, const GLfloat *v);
+GdkGLProc gdk_gl_get_glTexCoord2fVertex3fvSUN (void);
+#define gdk_gl_glTexCoord2fVertex3fvSUN(proc, tc, v) \
+ ( ((GdkGLProc_glTexCoord2fVertex3fvSUN) (proc)) (tc, v) )
+
+/* glTexCoord4fVertex4fSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord4fVertex4fSUN) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GdkGLProc gdk_gl_get_glTexCoord4fVertex4fSUN (void);
+#define gdk_gl_glTexCoord4fVertex4fSUN(proc, s, t, p, q, x, y, z, w) \
+ ( ((GdkGLProc_glTexCoord4fVertex4fSUN) (proc)) (s, t, p, q, x, y, z, w) )
+
+/* glTexCoord4fVertex4fvSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord4fVertex4fvSUN) (const GLfloat *tc, const GLfloat *v);
+GdkGLProc gdk_gl_get_glTexCoord4fVertex4fvSUN (void);
+#define gdk_gl_glTexCoord4fVertex4fvSUN(proc, tc, v) \
+ ( ((GdkGLProc_glTexCoord4fVertex4fvSUN) (proc)) (tc, v) )
+
+/* glTexCoord2fColor4ubVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2fColor4ubVertex3fSUN) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glTexCoord2fColor4ubVertex3fSUN (void);
+#define gdk_gl_glTexCoord2fColor4ubVertex3fSUN(proc, s, t, r, g, b, a, x, y, z) \
+ ( ((GdkGLProc_glTexCoord2fColor4ubVertex3fSUN) (proc)) (s, t, r, g, b, a, x, y, z) )
+
+/* glTexCoord2fColor4ubVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2fColor4ubVertex3fvSUN) (const GLfloat *tc, const GLubyte *c, const GLfloat *v);
+GdkGLProc gdk_gl_get_glTexCoord2fColor4ubVertex3fvSUN (void);
+#define gdk_gl_glTexCoord2fColor4ubVertex3fvSUN(proc, tc, c, v) \
+ ( ((GdkGLProc_glTexCoord2fColor4ubVertex3fvSUN) (proc)) (tc, c, v) )
+
+/* glTexCoord2fColor3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2fColor3fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glTexCoord2fColor3fVertex3fSUN (void);
+#define gdk_gl_glTexCoord2fColor3fVertex3fSUN(proc, s, t, r, g, b, x, y, z) \
+ ( ((GdkGLProc_glTexCoord2fColor3fVertex3fSUN) (proc)) (s, t, r, g, b, x, y, z) )
+
+/* glTexCoord2fColor3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2fColor3fVertex3fvSUN) (const GLfloat *tc, const GLfloat *c, const GLfloat *v);
+GdkGLProc gdk_gl_get_glTexCoord2fColor3fVertex3fvSUN (void);
+#define gdk_gl_glTexCoord2fColor3fVertex3fvSUN(proc, tc, c, v) \
+ ( ((GdkGLProc_glTexCoord2fColor3fVertex3fvSUN) (proc)) (tc, c, v) )
+
+/* glTexCoord2fNormal3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2fNormal3fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glTexCoord2fNormal3fVertex3fSUN (void);
+#define gdk_gl_glTexCoord2fNormal3fVertex3fSUN(proc, s, t, nx, ny, nz, x, y, z) \
+ ( ((GdkGLProc_glTexCoord2fNormal3fVertex3fSUN) (proc)) (s, t, nx, ny, nz, x, y, z) )
+
+/* glTexCoord2fNormal3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2fNormal3fVertex3fvSUN) (const GLfloat *tc, const GLfloat *n, const GLfloat *v);
+GdkGLProc gdk_gl_get_glTexCoord2fNormal3fVertex3fvSUN (void);
+#define gdk_gl_glTexCoord2fNormal3fVertex3fvSUN(proc, tc, n, v) \
+ ( ((GdkGLProc_glTexCoord2fNormal3fVertex3fvSUN) (proc)) (tc, n, v) )
+
+/* glTexCoord2fColor4fNormal3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glTexCoord2fColor4fNormal3fVertex3fSUN (void);
+#define gdk_gl_glTexCoord2fColor4fNormal3fVertex3fSUN(proc, s, t, r, g, b, a, nx, ny, nz, x, y, z) \
+ ( ((GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fSUN) (proc)) (s, t, r, g, b, a, nx, ny, nz, x, y, z) )
+
+/* glTexCoord2fColor4fNormal3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fvSUN) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+GdkGLProc gdk_gl_get_glTexCoord2fColor4fNormal3fVertex3fvSUN (void);
+#define gdk_gl_glTexCoord2fColor4fNormal3fVertex3fvSUN(proc, tc, c, n, v) \
+ ( ((GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fvSUN) (proc)) (tc, c, n, v) )
+
+/* glTexCoord4fColor4fNormal3fVertex4fSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fSUN) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GdkGLProc gdk_gl_get_glTexCoord4fColor4fNormal3fVertex4fSUN (void);
+#define gdk_gl_glTexCoord4fColor4fNormal3fVertex4fSUN(proc, s, t, p, q, r, g, b, a, nx, ny, nz, x, y, z, w) \
+ ( ((GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fSUN) (proc)) (s, t, p, q, r, g, b, a, nx, ny, nz, x, y, z, w) )
+
+/* glTexCoord4fColor4fNormal3fVertex4fvSUN */
+typedef void (APIENTRY * GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fvSUN) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+GdkGLProc gdk_gl_get_glTexCoord4fColor4fNormal3fVertex4fvSUN (void);
+#define gdk_gl_glTexCoord4fColor4fNormal3fVertex4fvSUN(proc, tc, c, n, v) \
+ ( ((GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fvSUN) (proc)) (tc, c, n, v) )
+
+/* glReplacementCodeuiVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiVertex3fSUN) (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glReplacementCodeuiVertex3fSUN (void);
+#define gdk_gl_glReplacementCodeuiVertex3fSUN(proc, rc, x, y, z) \
+ ( ((GdkGLProc_glReplacementCodeuiVertex3fSUN) (proc)) (rc, x, y, z) )
+
+/* glReplacementCodeuiVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiVertex3fvSUN) (const GLuint *rc, const GLfloat *v);
+GdkGLProc gdk_gl_get_glReplacementCodeuiVertex3fvSUN (void);
+#define gdk_gl_glReplacementCodeuiVertex3fvSUN(proc, rc, v) \
+ ( ((GdkGLProc_glReplacementCodeuiVertex3fvSUN) (proc)) (rc, v) )
+
+/* glReplacementCodeuiColor4ubVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiColor4ubVertex3fSUN) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glReplacementCodeuiColor4ubVertex3fSUN (void);
+#define gdk_gl_glReplacementCodeuiColor4ubVertex3fSUN(proc, rc, r, g, b, a, x, y, z) \
+ ( ((GdkGLProc_glReplacementCodeuiColor4ubVertex3fSUN) (proc)) (rc, r, g, b, a, x, y, z) )
+
+/* glReplacementCodeuiColor4ubVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiColor4ubVertex3fvSUN) (const GLuint *rc, const GLubyte *c, const GLfloat *v);
+GdkGLProc gdk_gl_get_glReplacementCodeuiColor4ubVertex3fvSUN (void);
+#define gdk_gl_glReplacementCodeuiColor4ubVertex3fvSUN(proc, rc, c, v) \
+ ( ((GdkGLProc_glReplacementCodeuiColor4ubVertex3fvSUN) (proc)) (rc, c, v) )
+
+/* glReplacementCodeuiColor3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiColor3fVertex3fSUN) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glReplacementCodeuiColor3fVertex3fSUN (void);
+#define gdk_gl_glReplacementCodeuiColor3fVertex3fSUN(proc, rc, r, g, b, x, y, z) \
+ ( ((GdkGLProc_glReplacementCodeuiColor3fVertex3fSUN) (proc)) (rc, r, g, b, x, y, z) )
+
+/* glReplacementCodeuiColor3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiColor3fVertex3fvSUN) (const GLuint *rc, const GLfloat *c, const GLfloat *v);
+GdkGLProc gdk_gl_get_glReplacementCodeuiColor3fVertex3fvSUN (void);
+#define gdk_gl_glReplacementCodeuiColor3fVertex3fvSUN(proc, rc, c, v) \
+ ( ((GdkGLProc_glReplacementCodeuiColor3fVertex3fvSUN) (proc)) (rc, c, v) )
+
+/* glReplacementCodeuiNormal3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiNormal3fVertex3fSUN) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glReplacementCodeuiNormal3fVertex3fSUN (void);
+#define gdk_gl_glReplacementCodeuiNormal3fVertex3fSUN(proc, rc, nx, ny, nz, x, y, z) \
+ ( ((GdkGLProc_glReplacementCodeuiNormal3fVertex3fSUN) (proc)) (rc, nx, ny, nz, x, y, z) )
+
+/* glReplacementCodeuiNormal3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *n, const GLfloat *v);
+GdkGLProc gdk_gl_get_glReplacementCodeuiNormal3fVertex3fvSUN (void);
+#define gdk_gl_glReplacementCodeuiNormal3fVertex3fvSUN(proc, rc, n, v) \
+ ( ((GdkGLProc_glReplacementCodeuiNormal3fVertex3fvSUN) (proc)) (rc, n, v) )
+
+/* glReplacementCodeuiColor4fNormal3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fSUN) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glReplacementCodeuiColor4fNormal3fVertex3fSUN (void);
+#define gdk_gl_glReplacementCodeuiColor4fNormal3fVertex3fSUN(proc, rc, r, g, b, a, nx, ny, nz, x, y, z) \
+ ( ((GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fSUN) (proc)) (rc, r, g, b, a, nx, ny, nz, x, y, z) )
+
+/* glReplacementCodeuiColor4fNormal3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+GdkGLProc gdk_gl_get_glReplacementCodeuiColor4fNormal3fVertex3fvSUN (void);
+#define gdk_gl_glReplacementCodeuiColor4fNormal3fVertex3fvSUN(proc, rc, c, n, v) \
+ ( ((GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fvSUN) (proc)) (rc, c, n, v) )
+
+/* glReplacementCodeuiTexCoord2fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fSUN) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glReplacementCodeuiTexCoord2fVertex3fSUN (void);
+#define gdk_gl_glReplacementCodeuiTexCoord2fVertex3fSUN(proc, rc, s, t, x, y, z) \
+ ( ((GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fSUN) (proc)) (rc, s, t, x, y, z) )
+
+/* glReplacementCodeuiTexCoord2fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fvSUN) (const GLuint *rc, const GLfloat *tc, const GLfloat *v);
+GdkGLProc gdk_gl_get_glReplacementCodeuiTexCoord2fVertex3fvSUN (void);
+#define gdk_gl_glReplacementCodeuiTexCoord2fVertex3fvSUN(proc, rc, tc, v) \
+ ( ((GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fvSUN) (proc)) (rc, tc, v) )
+
+/* glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (void);
+#define gdk_gl_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(proc, rc, s, t, nx, ny, nz, x, y, z) \
+ ( ((GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) (proc)) (rc, s, t, nx, ny, nz, x, y, z) )
+
+/* glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
+GdkGLProc gdk_gl_get_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (void);
+#define gdk_gl_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(proc, rc, tc, n, v) \
+ ( ((GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) (proc)) (rc, tc, n, v) )
+
+/* glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (void);
+#define gdk_gl_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(proc, rc, s, t, r, g, b, a, nx, ny, nz, x, y, z) \
+ ( ((GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) (proc)) (rc, s, t, r, g, b, a, nx, ny, nz, x, y, z) )
+
+/* glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */
+typedef void (APIENTRY * GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+GdkGLProc gdk_gl_get_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (void);
+#define gdk_gl_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(proc, rc, tc, c, n, v) \
+ ( ((GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) (proc)) (rc, tc, c, n, v) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SUN_vertex GdkGL_GL_SUN_vertex;
+
+struct _GdkGL_GL_SUN_vertex
+{
+ GdkGLProc_glColor4ubVertex2fSUN glColor4ubVertex2fSUN;
+ GdkGLProc_glColor4ubVertex2fvSUN glColor4ubVertex2fvSUN;
+ GdkGLProc_glColor4ubVertex3fSUN glColor4ubVertex3fSUN;
+ GdkGLProc_glColor4ubVertex3fvSUN glColor4ubVertex3fvSUN;
+ GdkGLProc_glColor3fVertex3fSUN glColor3fVertex3fSUN;
+ GdkGLProc_glColor3fVertex3fvSUN glColor3fVertex3fvSUN;
+ GdkGLProc_glNormal3fVertex3fSUN glNormal3fVertex3fSUN;
+ GdkGLProc_glNormal3fVertex3fvSUN glNormal3fVertex3fvSUN;
+ GdkGLProc_glColor4fNormal3fVertex3fSUN glColor4fNormal3fVertex3fSUN;
+ GdkGLProc_glColor4fNormal3fVertex3fvSUN glColor4fNormal3fVertex3fvSUN;
+ GdkGLProc_glTexCoord2fVertex3fSUN glTexCoord2fVertex3fSUN;
+ GdkGLProc_glTexCoord2fVertex3fvSUN glTexCoord2fVertex3fvSUN;
+ GdkGLProc_glTexCoord4fVertex4fSUN glTexCoord4fVertex4fSUN;
+ GdkGLProc_glTexCoord4fVertex4fvSUN glTexCoord4fVertex4fvSUN;
+ GdkGLProc_glTexCoord2fColor4ubVertex3fSUN glTexCoord2fColor4ubVertex3fSUN;
+ GdkGLProc_glTexCoord2fColor4ubVertex3fvSUN glTexCoord2fColor4ubVertex3fvSUN;
+ GdkGLProc_glTexCoord2fColor3fVertex3fSUN glTexCoord2fColor3fVertex3fSUN;
+ GdkGLProc_glTexCoord2fColor3fVertex3fvSUN glTexCoord2fColor3fVertex3fvSUN;
+ GdkGLProc_glTexCoord2fNormal3fVertex3fSUN glTexCoord2fNormal3fVertex3fSUN;
+ GdkGLProc_glTexCoord2fNormal3fVertex3fvSUN glTexCoord2fNormal3fVertex3fvSUN;
+ GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fSUN glTexCoord2fColor4fNormal3fVertex3fSUN;
+ GdkGLProc_glTexCoord2fColor4fNormal3fVertex3fvSUN glTexCoord2fColor4fNormal3fVertex3fvSUN;
+ GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fSUN glTexCoord4fColor4fNormal3fVertex4fSUN;
+ GdkGLProc_glTexCoord4fColor4fNormal3fVertex4fvSUN glTexCoord4fColor4fNormal3fVertex4fvSUN;
+ GdkGLProc_glReplacementCodeuiVertex3fSUN glReplacementCodeuiVertex3fSUN;
+ GdkGLProc_glReplacementCodeuiVertex3fvSUN glReplacementCodeuiVertex3fvSUN;
+ GdkGLProc_glReplacementCodeuiColor4ubVertex3fSUN glReplacementCodeuiColor4ubVertex3fSUN;
+ GdkGLProc_glReplacementCodeuiColor4ubVertex3fvSUN glReplacementCodeuiColor4ubVertex3fvSUN;
+ GdkGLProc_glReplacementCodeuiColor3fVertex3fSUN glReplacementCodeuiColor3fVertex3fSUN;
+ GdkGLProc_glReplacementCodeuiColor3fVertex3fvSUN glReplacementCodeuiColor3fVertex3fvSUN;
+ GdkGLProc_glReplacementCodeuiNormal3fVertex3fSUN glReplacementCodeuiNormal3fVertex3fSUN;
+ GdkGLProc_glReplacementCodeuiNormal3fVertex3fvSUN glReplacementCodeuiNormal3fVertex3fvSUN;
+ GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fSUN glReplacementCodeuiColor4fNormal3fVertex3fSUN;
+ GdkGLProc_glReplacementCodeuiColor4fNormal3fVertex3fvSUN glReplacementCodeuiColor4fNormal3fVertex3fvSUN;
+ GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fSUN glReplacementCodeuiTexCoord2fVertex3fSUN;
+ GdkGLProc_glReplacementCodeuiTexCoord2fVertex3fvSUN glReplacementCodeuiTexCoord2fVertex3fvSUN;
+ GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
+ GdkGLProc_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
+ GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
+ GdkGLProc_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
+};
+
+GdkGL_GL_SUN_vertex *gdk_gl_get_GL_SUN_vertex (void);
+
+/*
+ * GL_EXT_blend_func_separate
+ */
+
+/* glBlendFuncSeparateEXT */
+typedef void (APIENTRY * GdkGLProc_glBlendFuncSeparateEXT) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+GdkGLProc gdk_gl_get_glBlendFuncSeparateEXT (void);
+#define gdk_gl_glBlendFuncSeparateEXT(proc, sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) \
+ ( ((GdkGLProc_glBlendFuncSeparateEXT) (proc)) (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_blend_func_separate GdkGL_GL_EXT_blend_func_separate;
+
+struct _GdkGL_GL_EXT_blend_func_separate
+{
+ GdkGLProc_glBlendFuncSeparateEXT glBlendFuncSeparateEXT;
+};
+
+GdkGL_GL_EXT_blend_func_separate *gdk_gl_get_GL_EXT_blend_func_separate (void);
+
+/*
+ * GL_INGR_blend_func_separate
+ */
+
+/* glBlendFuncSeparateINGR */
+typedef void (APIENTRY * GdkGLProc_glBlendFuncSeparateINGR) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+GdkGLProc gdk_gl_get_glBlendFuncSeparateINGR (void);
+#define gdk_gl_glBlendFuncSeparateINGR(proc, sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) \
+ ( ((GdkGLProc_glBlendFuncSeparateINGR) (proc)) (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_INGR_blend_func_separate GdkGL_GL_INGR_blend_func_separate;
+
+struct _GdkGL_GL_INGR_blend_func_separate
+{
+ GdkGLProc_glBlendFuncSeparateINGR glBlendFuncSeparateINGR;
+};
+
+GdkGL_GL_INGR_blend_func_separate *gdk_gl_get_GL_INGR_blend_func_separate (void);
+
+/*
+ * GL_EXT_vertex_weighting
+ */
+
+/* glVertexWeightfEXT */
+typedef void (APIENTRY * GdkGLProc_glVertexWeightfEXT) (GLfloat weight);
+GdkGLProc gdk_gl_get_glVertexWeightfEXT (void);
+#define gdk_gl_glVertexWeightfEXT(proc, weight) \
+ ( ((GdkGLProc_glVertexWeightfEXT) (proc)) (weight) )
+
+/* glVertexWeightfvEXT */
+typedef void (APIENTRY * GdkGLProc_glVertexWeightfvEXT) (const GLfloat *weight);
+GdkGLProc gdk_gl_get_glVertexWeightfvEXT (void);
+#define gdk_gl_glVertexWeightfvEXT(proc, weight) \
+ ( ((GdkGLProc_glVertexWeightfvEXT) (proc)) (weight) )
+
+/* glVertexWeightPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glVertexWeightPointerEXT) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glVertexWeightPointerEXT (void);
+#define gdk_gl_glVertexWeightPointerEXT(proc, size, type, stride, pointer) \
+ ( ((GdkGLProc_glVertexWeightPointerEXT) (proc)) (size, type, stride, pointer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_vertex_weighting GdkGL_GL_EXT_vertex_weighting;
+
+struct _GdkGL_GL_EXT_vertex_weighting
+{
+ GdkGLProc_glVertexWeightfEXT glVertexWeightfEXT;
+ GdkGLProc_glVertexWeightfvEXT glVertexWeightfvEXT;
+ GdkGLProc_glVertexWeightPointerEXT glVertexWeightPointerEXT;
+};
+
+GdkGL_GL_EXT_vertex_weighting *gdk_gl_get_GL_EXT_vertex_weighting (void);
+
+/*
+ * GL_NV_vertex_array_range
+ */
+
+/* glFlushVertexArrayRangeNV */
+typedef void (APIENTRY * GdkGLProc_glFlushVertexArrayRangeNV) (void);
+GdkGLProc gdk_gl_get_glFlushVertexArrayRangeNV (void);
+#define gdk_gl_glFlushVertexArrayRangeNV(proc) \
+ ( ((GdkGLProc_glFlushVertexArrayRangeNV) (proc)) () )
+
+/* glVertexArrayRangeNV */
+typedef void (APIENTRY * GdkGLProc_glVertexArrayRangeNV) (GLsizei length, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glVertexArrayRangeNV (void);
+#define gdk_gl_glVertexArrayRangeNV(proc, length, pointer) \
+ ( ((GdkGLProc_glVertexArrayRangeNV) (proc)) (length, pointer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_vertex_array_range GdkGL_GL_NV_vertex_array_range;
+
+struct _GdkGL_GL_NV_vertex_array_range
+{
+ GdkGLProc_glFlushVertexArrayRangeNV glFlushVertexArrayRangeNV;
+ GdkGLProc_glVertexArrayRangeNV glVertexArrayRangeNV;
+};
+
+GdkGL_GL_NV_vertex_array_range *gdk_gl_get_GL_NV_vertex_array_range (void);
+
+/*
+ * GL_NV_register_combiners
+ */
+
+/* glCombinerParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glCombinerParameterfvNV) (GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glCombinerParameterfvNV (void);
+#define gdk_gl_glCombinerParameterfvNV(proc, pname, params) \
+ ( ((GdkGLProc_glCombinerParameterfvNV) (proc)) (pname, params) )
+
+/* glCombinerParameterfNV */
+typedef void (APIENTRY * GdkGLProc_glCombinerParameterfNV) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glCombinerParameterfNV (void);
+#define gdk_gl_glCombinerParameterfNV(proc, pname, param) \
+ ( ((GdkGLProc_glCombinerParameterfNV) (proc)) (pname, param) )
+
+/* glCombinerParameterivNV */
+typedef void (APIENTRY * GdkGLProc_glCombinerParameterivNV) (GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glCombinerParameterivNV (void);
+#define gdk_gl_glCombinerParameterivNV(proc, pname, params) \
+ ( ((GdkGLProc_glCombinerParameterivNV) (proc)) (pname, params) )
+
+/* glCombinerParameteriNV */
+typedef void (APIENTRY * GdkGLProc_glCombinerParameteriNV) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glCombinerParameteriNV (void);
+#define gdk_gl_glCombinerParameteriNV(proc, pname, param) \
+ ( ((GdkGLProc_glCombinerParameteriNV) (proc)) (pname, param) )
+
+/* glCombinerInputNV */
+typedef void (APIENTRY * GdkGLProc_glCombinerInputNV) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+GdkGLProc gdk_gl_get_glCombinerInputNV (void);
+#define gdk_gl_glCombinerInputNV(proc, stage, portion, variable, input, mapping, componentUsage) \
+ ( ((GdkGLProc_glCombinerInputNV) (proc)) (stage, portion, variable, input, mapping, componentUsage) )
+
+/* glCombinerOutputNV */
+typedef void (APIENTRY * GdkGLProc_glCombinerOutputNV) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+GdkGLProc gdk_gl_get_glCombinerOutputNV (void);
+#define gdk_gl_glCombinerOutputNV(proc, stage, portion, abOutput, cdOutput, sumOutput, scale, bias, abDotProduct, cdDotProduct, muxSum) \
+ ( ((GdkGLProc_glCombinerOutputNV) (proc)) (stage, portion, abOutput, cdOutput, sumOutput, scale, bias, abDotProduct, cdDotProduct, muxSum) )
+
+/* glFinalCombinerInputNV */
+typedef void (APIENTRY * GdkGLProc_glFinalCombinerInputNV) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+GdkGLProc gdk_gl_get_glFinalCombinerInputNV (void);
+#define gdk_gl_glFinalCombinerInputNV(proc, variable, input, mapping, componentUsage) \
+ ( ((GdkGLProc_glFinalCombinerInputNV) (proc)) (variable, input, mapping, componentUsage) )
+
+/* glGetCombinerInputParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glGetCombinerInputParameterfvNV) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetCombinerInputParameterfvNV (void);
+#define gdk_gl_glGetCombinerInputParameterfvNV(proc, stage, portion, variable, pname, params) \
+ ( ((GdkGLProc_glGetCombinerInputParameterfvNV) (proc)) (stage, portion, variable, pname, params) )
+
+/* glGetCombinerInputParameterivNV */
+typedef void (APIENTRY * GdkGLProc_glGetCombinerInputParameterivNV) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetCombinerInputParameterivNV (void);
+#define gdk_gl_glGetCombinerInputParameterivNV(proc, stage, portion, variable, pname, params) \
+ ( ((GdkGLProc_glGetCombinerInputParameterivNV) (proc)) (stage, portion, variable, pname, params) )
+
+/* glGetCombinerOutputParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glGetCombinerOutputParameterfvNV) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetCombinerOutputParameterfvNV (void);
+#define gdk_gl_glGetCombinerOutputParameterfvNV(proc, stage, portion, pname, params) \
+ ( ((GdkGLProc_glGetCombinerOutputParameterfvNV) (proc)) (stage, portion, pname, params) )
+
+/* glGetCombinerOutputParameterivNV */
+typedef void (APIENTRY * GdkGLProc_glGetCombinerOutputParameterivNV) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetCombinerOutputParameterivNV (void);
+#define gdk_gl_glGetCombinerOutputParameterivNV(proc, stage, portion, pname, params) \
+ ( ((GdkGLProc_glGetCombinerOutputParameterivNV) (proc)) (stage, portion, pname, params) )
+
+/* glGetFinalCombinerInputParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glGetFinalCombinerInputParameterfvNV) (GLenum variable, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetFinalCombinerInputParameterfvNV (void);
+#define gdk_gl_glGetFinalCombinerInputParameterfvNV(proc, variable, pname, params) \
+ ( ((GdkGLProc_glGetFinalCombinerInputParameterfvNV) (proc)) (variable, pname, params) )
+
+/* glGetFinalCombinerInputParameterivNV */
+typedef void (APIENTRY * GdkGLProc_glGetFinalCombinerInputParameterivNV) (GLenum variable, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetFinalCombinerInputParameterivNV (void);
+#define gdk_gl_glGetFinalCombinerInputParameterivNV(proc, variable, pname, params) \
+ ( ((GdkGLProc_glGetFinalCombinerInputParameterivNV) (proc)) (variable, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_register_combiners GdkGL_GL_NV_register_combiners;
+
+struct _GdkGL_GL_NV_register_combiners
+{
+ GdkGLProc_glCombinerParameterfvNV glCombinerParameterfvNV;
+ GdkGLProc_glCombinerParameterfNV glCombinerParameterfNV;
+ GdkGLProc_glCombinerParameterivNV glCombinerParameterivNV;
+ GdkGLProc_glCombinerParameteriNV glCombinerParameteriNV;
+ GdkGLProc_glCombinerInputNV glCombinerInputNV;
+ GdkGLProc_glCombinerOutputNV glCombinerOutputNV;
+ GdkGLProc_glFinalCombinerInputNV glFinalCombinerInputNV;
+ GdkGLProc_glGetCombinerInputParameterfvNV glGetCombinerInputParameterfvNV;
+ GdkGLProc_glGetCombinerInputParameterivNV glGetCombinerInputParameterivNV;
+ GdkGLProc_glGetCombinerOutputParameterfvNV glGetCombinerOutputParameterfvNV;
+ GdkGLProc_glGetCombinerOutputParameterivNV glGetCombinerOutputParameterivNV;
+ GdkGLProc_glGetFinalCombinerInputParameterfvNV glGetFinalCombinerInputParameterfvNV;
+ GdkGLProc_glGetFinalCombinerInputParameterivNV glGetFinalCombinerInputParameterivNV;
+};
+
+GdkGL_GL_NV_register_combiners *gdk_gl_get_GL_NV_register_combiners (void);
+
+/*
+ * GL_MESA_resize_buffers
+ */
+
+/* glResizeBuffersMESA */
+typedef void (APIENTRY * GdkGLProc_glResizeBuffersMESA) (void);
+GdkGLProc gdk_gl_get_glResizeBuffersMESA (void);
+#define gdk_gl_glResizeBuffersMESA(proc) \
+ ( ((GdkGLProc_glResizeBuffersMESA) (proc)) () )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_MESA_resize_buffers GdkGL_GL_MESA_resize_buffers;
+
+struct _GdkGL_GL_MESA_resize_buffers
+{
+ GdkGLProc_glResizeBuffersMESA glResizeBuffersMESA;
+};
+
+GdkGL_GL_MESA_resize_buffers *gdk_gl_get_GL_MESA_resize_buffers (void);
+
+/*
+ * GL_MESA_window_pos
+ */
+
+/* glWindowPos2dMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2dMESA) (GLdouble x, GLdouble y);
+GdkGLProc gdk_gl_get_glWindowPos2dMESA (void);
+#define gdk_gl_glWindowPos2dMESA(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2dMESA) (proc)) (x, y) )
+
+/* glWindowPos2dvMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2dvMESA) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glWindowPos2dvMESA (void);
+#define gdk_gl_glWindowPos2dvMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos2dvMESA) (proc)) (v) )
+
+/* glWindowPos2fMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2fMESA) (GLfloat x, GLfloat y);
+GdkGLProc gdk_gl_get_glWindowPos2fMESA (void);
+#define gdk_gl_glWindowPos2fMESA(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2fMESA) (proc)) (x, y) )
+
+/* glWindowPos2fvMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2fvMESA) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glWindowPos2fvMESA (void);
+#define gdk_gl_glWindowPos2fvMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos2fvMESA) (proc)) (v) )
+
+/* glWindowPos2iMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2iMESA) (GLint x, GLint y);
+GdkGLProc gdk_gl_get_glWindowPos2iMESA (void);
+#define gdk_gl_glWindowPos2iMESA(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2iMESA) (proc)) (x, y) )
+
+/* glWindowPos2ivMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2ivMESA) (const GLint *v);
+GdkGLProc gdk_gl_get_glWindowPos2ivMESA (void);
+#define gdk_gl_glWindowPos2ivMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos2ivMESA) (proc)) (v) )
+
+/* glWindowPos2sMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2sMESA) (GLshort x, GLshort y);
+GdkGLProc gdk_gl_get_glWindowPos2sMESA (void);
+#define gdk_gl_glWindowPos2sMESA(proc, x, y) \
+ ( ((GdkGLProc_glWindowPos2sMESA) (proc)) (x, y) )
+
+/* glWindowPos2svMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos2svMESA) (const GLshort *v);
+GdkGLProc gdk_gl_get_glWindowPos2svMESA (void);
+#define gdk_gl_glWindowPos2svMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos2svMESA) (proc)) (v) )
+
+/* glWindowPos3dMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3dMESA) (GLdouble x, GLdouble y, GLdouble z);
+GdkGLProc gdk_gl_get_glWindowPos3dMESA (void);
+#define gdk_gl_glWindowPos3dMESA(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3dMESA) (proc)) (x, y, z) )
+
+/* glWindowPos3dvMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3dvMESA) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glWindowPos3dvMESA (void);
+#define gdk_gl_glWindowPos3dvMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos3dvMESA) (proc)) (v) )
+
+/* glWindowPos3fMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3fMESA) (GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glWindowPos3fMESA (void);
+#define gdk_gl_glWindowPos3fMESA(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3fMESA) (proc)) (x, y, z) )
+
+/* glWindowPos3fvMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3fvMESA) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glWindowPos3fvMESA (void);
+#define gdk_gl_glWindowPos3fvMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos3fvMESA) (proc)) (v) )
+
+/* glWindowPos3iMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3iMESA) (GLint x, GLint y, GLint z);
+GdkGLProc gdk_gl_get_glWindowPos3iMESA (void);
+#define gdk_gl_glWindowPos3iMESA(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3iMESA) (proc)) (x, y, z) )
+
+/* glWindowPos3ivMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3ivMESA) (const GLint *v);
+GdkGLProc gdk_gl_get_glWindowPos3ivMESA (void);
+#define gdk_gl_glWindowPos3ivMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos3ivMESA) (proc)) (v) )
+
+/* glWindowPos3sMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3sMESA) (GLshort x, GLshort y, GLshort z);
+GdkGLProc gdk_gl_get_glWindowPos3sMESA (void);
+#define gdk_gl_glWindowPos3sMESA(proc, x, y, z) \
+ ( ((GdkGLProc_glWindowPos3sMESA) (proc)) (x, y, z) )
+
+/* glWindowPos3svMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos3svMESA) (const GLshort *v);
+GdkGLProc gdk_gl_get_glWindowPos3svMESA (void);
+#define gdk_gl_glWindowPos3svMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos3svMESA) (proc)) (v) )
+
+/* glWindowPos4dMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos4dMESA) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GdkGLProc gdk_gl_get_glWindowPos4dMESA (void);
+#define gdk_gl_glWindowPos4dMESA(proc, x, y, z, w) \
+ ( ((GdkGLProc_glWindowPos4dMESA) (proc)) (x, y, z, w) )
+
+/* glWindowPos4dvMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos4dvMESA) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glWindowPos4dvMESA (void);
+#define gdk_gl_glWindowPos4dvMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos4dvMESA) (proc)) (v) )
+
+/* glWindowPos4fMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos4fMESA) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GdkGLProc gdk_gl_get_glWindowPos4fMESA (void);
+#define gdk_gl_glWindowPos4fMESA(proc, x, y, z, w) \
+ ( ((GdkGLProc_glWindowPos4fMESA) (proc)) (x, y, z, w) )
+
+/* glWindowPos4fvMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos4fvMESA) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glWindowPos4fvMESA (void);
+#define gdk_gl_glWindowPos4fvMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos4fvMESA) (proc)) (v) )
+
+/* glWindowPos4iMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos4iMESA) (GLint x, GLint y, GLint z, GLint w);
+GdkGLProc gdk_gl_get_glWindowPos4iMESA (void);
+#define gdk_gl_glWindowPos4iMESA(proc, x, y, z, w) \
+ ( ((GdkGLProc_glWindowPos4iMESA) (proc)) (x, y, z, w) )
+
+/* glWindowPos4ivMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos4ivMESA) (const GLint *v);
+GdkGLProc gdk_gl_get_glWindowPos4ivMESA (void);
+#define gdk_gl_glWindowPos4ivMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos4ivMESA) (proc)) (v) )
+
+/* glWindowPos4sMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos4sMESA) (GLshort x, GLshort y, GLshort z, GLshort w);
+GdkGLProc gdk_gl_get_glWindowPos4sMESA (void);
+#define gdk_gl_glWindowPos4sMESA(proc, x, y, z, w) \
+ ( ((GdkGLProc_glWindowPos4sMESA) (proc)) (x, y, z, w) )
+
+/* glWindowPos4svMESA */
+typedef void (APIENTRY * GdkGLProc_glWindowPos4svMESA) (const GLshort *v);
+GdkGLProc gdk_gl_get_glWindowPos4svMESA (void);
+#define gdk_gl_glWindowPos4svMESA(proc, v) \
+ ( ((GdkGLProc_glWindowPos4svMESA) (proc)) (v) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_MESA_window_pos GdkGL_GL_MESA_window_pos;
+
+struct _GdkGL_GL_MESA_window_pos
+{
+ GdkGLProc_glWindowPos2dMESA glWindowPos2dMESA;
+ GdkGLProc_glWindowPos2dvMESA glWindowPos2dvMESA;
+ GdkGLProc_glWindowPos2fMESA glWindowPos2fMESA;
+ GdkGLProc_glWindowPos2fvMESA glWindowPos2fvMESA;
+ GdkGLProc_glWindowPos2iMESA glWindowPos2iMESA;
+ GdkGLProc_glWindowPos2ivMESA glWindowPos2ivMESA;
+ GdkGLProc_glWindowPos2sMESA glWindowPos2sMESA;
+ GdkGLProc_glWindowPos2svMESA glWindowPos2svMESA;
+ GdkGLProc_glWindowPos3dMESA glWindowPos3dMESA;
+ GdkGLProc_glWindowPos3dvMESA glWindowPos3dvMESA;
+ GdkGLProc_glWindowPos3fMESA glWindowPos3fMESA;
+ GdkGLProc_glWindowPos3fvMESA glWindowPos3fvMESA;
+ GdkGLProc_glWindowPos3iMESA glWindowPos3iMESA;
+ GdkGLProc_glWindowPos3ivMESA glWindowPos3ivMESA;
+ GdkGLProc_glWindowPos3sMESA glWindowPos3sMESA;
+ GdkGLProc_glWindowPos3svMESA glWindowPos3svMESA;
+ GdkGLProc_glWindowPos4dMESA glWindowPos4dMESA;
+ GdkGLProc_glWindowPos4dvMESA glWindowPos4dvMESA;
+ GdkGLProc_glWindowPos4fMESA glWindowPos4fMESA;
+ GdkGLProc_glWindowPos4fvMESA glWindowPos4fvMESA;
+ GdkGLProc_glWindowPos4iMESA glWindowPos4iMESA;
+ GdkGLProc_glWindowPos4ivMESA glWindowPos4ivMESA;
+ GdkGLProc_glWindowPos4sMESA glWindowPos4sMESA;
+ GdkGLProc_glWindowPos4svMESA glWindowPos4svMESA;
+};
+
+GdkGL_GL_MESA_window_pos *gdk_gl_get_GL_MESA_window_pos (void);
+
+/*
+ * GL_IBM_multimode_draw_arrays
+ */
+
+/* glMultiModeDrawArraysIBM */
+typedef void (APIENTRY * GdkGLProc_glMultiModeDrawArraysIBM) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
+GdkGLProc gdk_gl_get_glMultiModeDrawArraysIBM (void);
+#define gdk_gl_glMultiModeDrawArraysIBM(proc, mode, first, count, primcount, modestride) \
+ ( ((GdkGLProc_glMultiModeDrawArraysIBM) (proc)) (mode, first, count, primcount, modestride) )
+
+/* glMultiModeDrawElementsIBM */
+typedef void (APIENTRY * GdkGLProc_glMultiModeDrawElementsIBM) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, GLint modestride);
+GdkGLProc gdk_gl_get_glMultiModeDrawElementsIBM (void);
+#define gdk_gl_glMultiModeDrawElementsIBM(proc, mode, count, type, indices, primcount, modestride) \
+ ( ((GdkGLProc_glMultiModeDrawElementsIBM) (proc)) (mode, count, type, indices, primcount, modestride) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_IBM_multimode_draw_arrays GdkGL_GL_IBM_multimode_draw_arrays;
+
+struct _GdkGL_GL_IBM_multimode_draw_arrays
+{
+ GdkGLProc_glMultiModeDrawArraysIBM glMultiModeDrawArraysIBM;
+ GdkGLProc_glMultiModeDrawElementsIBM glMultiModeDrawElementsIBM;
+};
+
+GdkGL_GL_IBM_multimode_draw_arrays *gdk_gl_get_GL_IBM_multimode_draw_arrays (void);
+
+/*
+ * GL_IBM_vertex_array_lists
+ */
+
+/* glColorPointerListIBM */
+typedef void (APIENTRY * GdkGLProc_glColorPointerListIBM) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+GdkGLProc gdk_gl_get_glColorPointerListIBM (void);
+#define gdk_gl_glColorPointerListIBM(proc, size, type, stride, pointer, ptrstride) \
+ ( ((GdkGLProc_glColorPointerListIBM) (proc)) (size, type, stride, pointer, ptrstride) )
+
+/* glSecondaryColorPointerListIBM */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColorPointerListIBM) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+GdkGLProc gdk_gl_get_glSecondaryColorPointerListIBM (void);
+#define gdk_gl_glSecondaryColorPointerListIBM(proc, size, type, stride, pointer, ptrstride) \
+ ( ((GdkGLProc_glSecondaryColorPointerListIBM) (proc)) (size, type, stride, pointer, ptrstride) )
+
+/* glEdgeFlagPointerListIBM */
+typedef void (APIENTRY * GdkGLProc_glEdgeFlagPointerListIBM) (GLint stride, const GLboolean* *pointer, GLint ptrstride);
+GdkGLProc gdk_gl_get_glEdgeFlagPointerListIBM (void);
+#define gdk_gl_glEdgeFlagPointerListIBM(proc, stride, pointer, ptrstride) \
+ ( ((GdkGLProc_glEdgeFlagPointerListIBM) (proc)) (stride, pointer, ptrstride) )
+
+/* glFogCoordPointerListIBM */
+typedef void (APIENTRY * GdkGLProc_glFogCoordPointerListIBM) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+GdkGLProc gdk_gl_get_glFogCoordPointerListIBM (void);
+#define gdk_gl_glFogCoordPointerListIBM(proc, type, stride, pointer, ptrstride) \
+ ( ((GdkGLProc_glFogCoordPointerListIBM) (proc)) (type, stride, pointer, ptrstride) )
+
+/* glIndexPointerListIBM */
+typedef void (APIENTRY * GdkGLProc_glIndexPointerListIBM) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+GdkGLProc gdk_gl_get_glIndexPointerListIBM (void);
+#define gdk_gl_glIndexPointerListIBM(proc, type, stride, pointer, ptrstride) \
+ ( ((GdkGLProc_glIndexPointerListIBM) (proc)) (type, stride, pointer, ptrstride) )
+
+/* glNormalPointerListIBM */
+typedef void (APIENTRY * GdkGLProc_glNormalPointerListIBM) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+GdkGLProc gdk_gl_get_glNormalPointerListIBM (void);
+#define gdk_gl_glNormalPointerListIBM(proc, type, stride, pointer, ptrstride) \
+ ( ((GdkGLProc_glNormalPointerListIBM) (proc)) (type, stride, pointer, ptrstride) )
+
+/* glTexCoordPointerListIBM */
+typedef void (APIENTRY * GdkGLProc_glTexCoordPointerListIBM) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+GdkGLProc gdk_gl_get_glTexCoordPointerListIBM (void);
+#define gdk_gl_glTexCoordPointerListIBM(proc, size, type, stride, pointer, ptrstride) \
+ ( ((GdkGLProc_glTexCoordPointerListIBM) (proc)) (size, type, stride, pointer, ptrstride) )
+
+/* glVertexPointerListIBM */
+typedef void (APIENTRY * GdkGLProc_glVertexPointerListIBM) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+GdkGLProc gdk_gl_get_glVertexPointerListIBM (void);
+#define gdk_gl_glVertexPointerListIBM(proc, size, type, stride, pointer, ptrstride) \
+ ( ((GdkGLProc_glVertexPointerListIBM) (proc)) (size, type, stride, pointer, ptrstride) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_IBM_vertex_array_lists GdkGL_GL_IBM_vertex_array_lists;
+
+struct _GdkGL_GL_IBM_vertex_array_lists
+{
+ GdkGLProc_glColorPointerListIBM glColorPointerListIBM;
+ GdkGLProc_glSecondaryColorPointerListIBM glSecondaryColorPointerListIBM;
+ GdkGLProc_glEdgeFlagPointerListIBM glEdgeFlagPointerListIBM;
+ GdkGLProc_glFogCoordPointerListIBM glFogCoordPointerListIBM;
+ GdkGLProc_glIndexPointerListIBM glIndexPointerListIBM;
+ GdkGLProc_glNormalPointerListIBM glNormalPointerListIBM;
+ GdkGLProc_glTexCoordPointerListIBM glTexCoordPointerListIBM;
+ GdkGLProc_glVertexPointerListIBM glVertexPointerListIBM;
+};
+
+GdkGL_GL_IBM_vertex_array_lists *gdk_gl_get_GL_IBM_vertex_array_lists (void);
+
+/*
+ * GL_3DFX_tbuffer
+ */
+
+/* glTbufferMask3DFX */
+typedef void (APIENTRY * GdkGLProc_glTbufferMask3DFX) (GLuint mask);
+GdkGLProc gdk_gl_get_glTbufferMask3DFX (void);
+#define gdk_gl_glTbufferMask3DFX(proc, mask) \
+ ( ((GdkGLProc_glTbufferMask3DFX) (proc)) (mask) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_3DFX_tbuffer GdkGL_GL_3DFX_tbuffer;
+
+struct _GdkGL_GL_3DFX_tbuffer
+{
+ GdkGLProc_glTbufferMask3DFX glTbufferMask3DFX;
+};
+
+GdkGL_GL_3DFX_tbuffer *gdk_gl_get_GL_3DFX_tbuffer (void);
+
+/*
+ * GL_EXT_multisample
+ */
+
+/* glSampleMaskEXT */
+typedef void (APIENTRY * GdkGLProc_glSampleMaskEXT) (GLclampf value, GLboolean invert);
+GdkGLProc gdk_gl_get_glSampleMaskEXT (void);
+#define gdk_gl_glSampleMaskEXT(proc, value, invert) \
+ ( ((GdkGLProc_glSampleMaskEXT) (proc)) (value, invert) )
+
+/* glSamplePatternEXT */
+typedef void (APIENTRY * GdkGLProc_glSamplePatternEXT) (GLenum pattern);
+GdkGLProc gdk_gl_get_glSamplePatternEXT (void);
+#define gdk_gl_glSamplePatternEXT(proc, pattern) \
+ ( ((GdkGLProc_glSamplePatternEXT) (proc)) (pattern) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_multisample GdkGL_GL_EXT_multisample;
+
+struct _GdkGL_GL_EXT_multisample
+{
+ GdkGLProc_glSampleMaskEXT glSampleMaskEXT;
+ GdkGLProc_glSamplePatternEXT glSamplePatternEXT;
+};
+
+GdkGL_GL_EXT_multisample *gdk_gl_get_GL_EXT_multisample (void);
+
+/*
+ * GL_SGIS_texture_color_mask
+ */
+
+/* glTextureColorMaskSGIS */
+typedef void (APIENTRY * GdkGLProc_glTextureColorMaskSGIS) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+GdkGLProc gdk_gl_get_glTextureColorMaskSGIS (void);
+#define gdk_gl_glTextureColorMaskSGIS(proc, red, green, blue, alpha) \
+ ( ((GdkGLProc_glTextureColorMaskSGIS) (proc)) (red, green, blue, alpha) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIS_texture_color_mask GdkGL_GL_SGIS_texture_color_mask;
+
+struct _GdkGL_GL_SGIS_texture_color_mask
+{
+ GdkGLProc_glTextureColorMaskSGIS glTextureColorMaskSGIS;
+};
+
+GdkGL_GL_SGIS_texture_color_mask *gdk_gl_get_GL_SGIS_texture_color_mask (void);
+
+/*
+ * GL_SGIX_igloo_interface
+ */
+
+/* glIglooInterfaceSGIX */
+typedef void (APIENTRY * GdkGLProc_glIglooInterfaceSGIX) (GLenum pname, const GLvoid *params);
+GdkGLProc gdk_gl_get_glIglooInterfaceSGIX (void);
+#define gdk_gl_glIglooInterfaceSGIX(proc, pname, params) \
+ ( ((GdkGLProc_glIglooInterfaceSGIX) (proc)) (pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_igloo_interface GdkGL_GL_SGIX_igloo_interface;
+
+struct _GdkGL_GL_SGIX_igloo_interface
+{
+ GdkGLProc_glIglooInterfaceSGIX glIglooInterfaceSGIX;
+};
+
+GdkGL_GL_SGIX_igloo_interface *gdk_gl_get_GL_SGIX_igloo_interface (void);
+
+/*
+ * GL_NV_fence
+ */
+
+/* glDeleteFencesNV */
+typedef void (APIENTRY * GdkGLProc_glDeleteFencesNV) (GLsizei n, const GLuint *fences);
+GdkGLProc gdk_gl_get_glDeleteFencesNV (void);
+#define gdk_gl_glDeleteFencesNV(proc, n, fences) \
+ ( ((GdkGLProc_glDeleteFencesNV) (proc)) (n, fences) )
+
+/* glGenFencesNV */
+typedef void (APIENTRY * GdkGLProc_glGenFencesNV) (GLsizei n, GLuint *fences);
+GdkGLProc gdk_gl_get_glGenFencesNV (void);
+#define gdk_gl_glGenFencesNV(proc, n, fences) \
+ ( ((GdkGLProc_glGenFencesNV) (proc)) (n, fences) )
+
+/* glIsFenceNV */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsFenceNV) (GLuint fence);
+GdkGLProc gdk_gl_get_glIsFenceNV (void);
+#define gdk_gl_glIsFenceNV(proc, fence) \
+ ( ((GdkGLProc_glIsFenceNV) (proc)) (fence) )
+
+/* glTestFenceNV */
+typedef GLboolean (APIENTRY * GdkGLProc_glTestFenceNV) (GLuint fence);
+GdkGLProc gdk_gl_get_glTestFenceNV (void);
+#define gdk_gl_glTestFenceNV(proc, fence) \
+ ( ((GdkGLProc_glTestFenceNV) (proc)) (fence) )
+
+/* glGetFenceivNV */
+typedef void (APIENTRY * GdkGLProc_glGetFenceivNV) (GLuint fence, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetFenceivNV (void);
+#define gdk_gl_glGetFenceivNV(proc, fence, pname, params) \
+ ( ((GdkGLProc_glGetFenceivNV) (proc)) (fence, pname, params) )
+
+/* glFinishFenceNV */
+typedef void (APIENTRY * GdkGLProc_glFinishFenceNV) (GLuint fence);
+GdkGLProc gdk_gl_get_glFinishFenceNV (void);
+#define gdk_gl_glFinishFenceNV(proc, fence) \
+ ( ((GdkGLProc_glFinishFenceNV) (proc)) (fence) )
+
+/* glSetFenceNV */
+typedef void (APIENTRY * GdkGLProc_glSetFenceNV) (GLuint fence, GLenum condition);
+GdkGLProc gdk_gl_get_glSetFenceNV (void);
+#define gdk_gl_glSetFenceNV(proc, fence, condition) \
+ ( ((GdkGLProc_glSetFenceNV) (proc)) (fence, condition) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_fence GdkGL_GL_NV_fence;
+
+struct _GdkGL_GL_NV_fence
+{
+ GdkGLProc_glDeleteFencesNV glDeleteFencesNV;
+ GdkGLProc_glGenFencesNV glGenFencesNV;
+ GdkGLProc_glIsFenceNV glIsFenceNV;
+ GdkGLProc_glTestFenceNV glTestFenceNV;
+ GdkGLProc_glGetFenceivNV glGetFenceivNV;
+ GdkGLProc_glFinishFenceNV glFinishFenceNV;
+ GdkGLProc_glSetFenceNV glSetFenceNV;
+};
+
+GdkGL_GL_NV_fence *gdk_gl_get_GL_NV_fence (void);
+
+/*
+ * GL_NV_evaluators
+ */
+
+/* glMapControlPointsNV */
+typedef void (APIENTRY * GdkGLProc_glMapControlPointsNV) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
+GdkGLProc gdk_gl_get_glMapControlPointsNV (void);
+#define gdk_gl_glMapControlPointsNV(proc, target, index, type, ustride, vstride, uorder, vorder, packed, points) \
+ ( ((GdkGLProc_glMapControlPointsNV) (proc)) (target, index, type, ustride, vstride, uorder, vorder, packed, points) )
+
+/* glMapParameterivNV */
+typedef void (APIENTRY * GdkGLProc_glMapParameterivNV) (GLenum target, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glMapParameterivNV (void);
+#define gdk_gl_glMapParameterivNV(proc, target, pname, params) \
+ ( ((GdkGLProc_glMapParameterivNV) (proc)) (target, pname, params) )
+
+/* glMapParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glMapParameterfvNV) (GLenum target, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glMapParameterfvNV (void);
+#define gdk_gl_glMapParameterfvNV(proc, target, pname, params) \
+ ( ((GdkGLProc_glMapParameterfvNV) (proc)) (target, pname, params) )
+
+/* glGetMapControlPointsNV */
+typedef void (APIENTRY * GdkGLProc_glGetMapControlPointsNV) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
+GdkGLProc gdk_gl_get_glGetMapControlPointsNV (void);
+#define gdk_gl_glGetMapControlPointsNV(proc, target, index, type, ustride, vstride, packed, points) \
+ ( ((GdkGLProc_glGetMapControlPointsNV) (proc)) (target, index, type, ustride, vstride, packed, points) )
+
+/* glGetMapParameterivNV */
+typedef void (APIENTRY * GdkGLProc_glGetMapParameterivNV) (GLenum target, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetMapParameterivNV (void);
+#define gdk_gl_glGetMapParameterivNV(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetMapParameterivNV) (proc)) (target, pname, params) )
+
+/* glGetMapParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glGetMapParameterfvNV) (GLenum target, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetMapParameterfvNV (void);
+#define gdk_gl_glGetMapParameterfvNV(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetMapParameterfvNV) (proc)) (target, pname, params) )
+
+/* glGetMapAttribParameterivNV */
+typedef void (APIENTRY * GdkGLProc_glGetMapAttribParameterivNV) (GLenum target, GLuint index, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetMapAttribParameterivNV (void);
+#define gdk_gl_glGetMapAttribParameterivNV(proc, target, index, pname, params) \
+ ( ((GdkGLProc_glGetMapAttribParameterivNV) (proc)) (target, index, pname, params) )
+
+/* glGetMapAttribParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glGetMapAttribParameterfvNV) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetMapAttribParameterfvNV (void);
+#define gdk_gl_glGetMapAttribParameterfvNV(proc, target, index, pname, params) \
+ ( ((GdkGLProc_glGetMapAttribParameterfvNV) (proc)) (target, index, pname, params) )
+
+/* glEvalMapsNV */
+typedef void (APIENTRY * GdkGLProc_glEvalMapsNV) (GLenum target, GLenum mode);
+GdkGLProc gdk_gl_get_glEvalMapsNV (void);
+#define gdk_gl_glEvalMapsNV(proc, target, mode) \
+ ( ((GdkGLProc_glEvalMapsNV) (proc)) (target, mode) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_evaluators GdkGL_GL_NV_evaluators;
+
+struct _GdkGL_GL_NV_evaluators
+{
+ GdkGLProc_glMapControlPointsNV glMapControlPointsNV;
+ GdkGLProc_glMapParameterivNV glMapParameterivNV;
+ GdkGLProc_glMapParameterfvNV glMapParameterfvNV;
+ GdkGLProc_glGetMapControlPointsNV glGetMapControlPointsNV;
+ GdkGLProc_glGetMapParameterivNV glGetMapParameterivNV;
+ GdkGLProc_glGetMapParameterfvNV glGetMapParameterfvNV;
+ GdkGLProc_glGetMapAttribParameterivNV glGetMapAttribParameterivNV;
+ GdkGLProc_glGetMapAttribParameterfvNV glGetMapAttribParameterfvNV;
+ GdkGLProc_glEvalMapsNV glEvalMapsNV;
+};
+
+GdkGL_GL_NV_evaluators *gdk_gl_get_GL_NV_evaluators (void);
+
+/*
+ * GL_NV_register_combiners2
+ */
+
+/* glCombinerStageParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glCombinerStageParameterfvNV) (GLenum stage, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glCombinerStageParameterfvNV (void);
+#define gdk_gl_glCombinerStageParameterfvNV(proc, stage, pname, params) \
+ ( ((GdkGLProc_glCombinerStageParameterfvNV) (proc)) (stage, pname, params) )
+
+/* glGetCombinerStageParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glGetCombinerStageParameterfvNV) (GLenum stage, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetCombinerStageParameterfvNV (void);
+#define gdk_gl_glGetCombinerStageParameterfvNV(proc, stage, pname, params) \
+ ( ((GdkGLProc_glGetCombinerStageParameterfvNV) (proc)) (stage, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_register_combiners2 GdkGL_GL_NV_register_combiners2;
+
+struct _GdkGL_GL_NV_register_combiners2
+{
+ GdkGLProc_glCombinerStageParameterfvNV glCombinerStageParameterfvNV;
+ GdkGLProc_glGetCombinerStageParameterfvNV glGetCombinerStageParameterfvNV;
+};
+
+GdkGL_GL_NV_register_combiners2 *gdk_gl_get_GL_NV_register_combiners2 (void);
+
+/*
+ * GL_NV_vertex_program
+ */
+
+/* glAreProgramsResidentNV */
+typedef GLboolean (APIENTRY * GdkGLProc_glAreProgramsResidentNV) (GLsizei n, const GLuint *programs, GLboolean *residences);
+GdkGLProc gdk_gl_get_glAreProgramsResidentNV (void);
+#define gdk_gl_glAreProgramsResidentNV(proc, n, programs, residences) \
+ ( ((GdkGLProc_glAreProgramsResidentNV) (proc)) (n, programs, residences) )
+
+/* glBindProgramNV */
+typedef void (APIENTRY * GdkGLProc_glBindProgramNV) (GLenum target, GLuint id);
+GdkGLProc gdk_gl_get_glBindProgramNV (void);
+#define gdk_gl_glBindProgramNV(proc, target, id) \
+ ( ((GdkGLProc_glBindProgramNV) (proc)) (target, id) )
+
+/* glDeleteProgramsNV */
+typedef void (APIENTRY * GdkGLProc_glDeleteProgramsNV) (GLsizei n, const GLuint *programs);
+GdkGLProc gdk_gl_get_glDeleteProgramsNV (void);
+#define gdk_gl_glDeleteProgramsNV(proc, n, programs) \
+ ( ((GdkGLProc_glDeleteProgramsNV) (proc)) (n, programs) )
+
+/* glExecuteProgramNV */
+typedef void (APIENTRY * GdkGLProc_glExecuteProgramNV) (GLenum target, GLuint id, const GLfloat *params);
+GdkGLProc gdk_gl_get_glExecuteProgramNV (void);
+#define gdk_gl_glExecuteProgramNV(proc, target, id, params) \
+ ( ((GdkGLProc_glExecuteProgramNV) (proc)) (target, id, params) )
+
+/* glGenProgramsNV */
+typedef void (APIENTRY * GdkGLProc_glGenProgramsNV) (GLsizei n, GLuint *programs);
+GdkGLProc gdk_gl_get_glGenProgramsNV (void);
+#define gdk_gl_glGenProgramsNV(proc, n, programs) \
+ ( ((GdkGLProc_glGenProgramsNV) (proc)) (n, programs) )
+
+/* glGetProgramParameterdvNV */
+typedef void (APIENTRY * GdkGLProc_glGetProgramParameterdvNV) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
+GdkGLProc gdk_gl_get_glGetProgramParameterdvNV (void);
+#define gdk_gl_glGetProgramParameterdvNV(proc, target, index, pname, params) \
+ ( ((GdkGLProc_glGetProgramParameterdvNV) (proc)) (target, index, pname, params) )
+
+/* glGetProgramParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glGetProgramParameterfvNV) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetProgramParameterfvNV (void);
+#define gdk_gl_glGetProgramParameterfvNV(proc, target, index, pname, params) \
+ ( ((GdkGLProc_glGetProgramParameterfvNV) (proc)) (target, index, pname, params) )
+
+/* glGetProgramivNV */
+typedef void (APIENTRY * GdkGLProc_glGetProgramivNV) (GLuint id, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetProgramivNV (void);
+#define gdk_gl_glGetProgramivNV(proc, id, pname, params) \
+ ( ((GdkGLProc_glGetProgramivNV) (proc)) (id, pname, params) )
+
+/* glGetProgramStringNV */
+typedef void (APIENTRY * GdkGLProc_glGetProgramStringNV) (GLuint id, GLenum pname, GLubyte *program);
+GdkGLProc gdk_gl_get_glGetProgramStringNV (void);
+#define gdk_gl_glGetProgramStringNV(proc, id, pname, program) \
+ ( ((GdkGLProc_glGetProgramStringNV) (proc)) (id, pname, program) )
+
+/* glGetTrackMatrixivNV */
+typedef void (APIENTRY * GdkGLProc_glGetTrackMatrixivNV) (GLenum target, GLuint address, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetTrackMatrixivNV (void);
+#define gdk_gl_glGetTrackMatrixivNV(proc, target, address, pname, params) \
+ ( ((GdkGLProc_glGetTrackMatrixivNV) (proc)) (target, address, pname, params) )
+
+/* glGetVertexAttribdvNV */
+typedef void (APIENTRY * GdkGLProc_glGetVertexAttribdvNV) (GLuint index, GLenum pname, GLdouble *params);
+GdkGLProc gdk_gl_get_glGetVertexAttribdvNV (void);
+#define gdk_gl_glGetVertexAttribdvNV(proc, index, pname, params) \
+ ( ((GdkGLProc_glGetVertexAttribdvNV) (proc)) (index, pname, params) )
+
+/* glGetVertexAttribfvNV */
+typedef void (APIENTRY * GdkGLProc_glGetVertexAttribfvNV) (GLuint index, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetVertexAttribfvNV (void);
+#define gdk_gl_glGetVertexAttribfvNV(proc, index, pname, params) \
+ ( ((GdkGLProc_glGetVertexAttribfvNV) (proc)) (index, pname, params) )
+
+/* glGetVertexAttribivNV */
+typedef void (APIENTRY * GdkGLProc_glGetVertexAttribivNV) (GLuint index, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetVertexAttribivNV (void);
+#define gdk_gl_glGetVertexAttribivNV(proc, index, pname, params) \
+ ( ((GdkGLProc_glGetVertexAttribivNV) (proc)) (index, pname, params) )
+
+/* glGetVertexAttribPointervNV */
+typedef void (APIENTRY * GdkGLProc_glGetVertexAttribPointervNV) (GLuint index, GLenum pname, GLvoid* *pointer);
+GdkGLProc gdk_gl_get_glGetVertexAttribPointervNV (void);
+#define gdk_gl_glGetVertexAttribPointervNV(proc, index, pname, pointer) \
+ ( ((GdkGLProc_glGetVertexAttribPointervNV) (proc)) (index, pname, pointer) )
+
+/* glIsProgramNV */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsProgramNV) (GLuint id);
+GdkGLProc gdk_gl_get_glIsProgramNV (void);
+#define gdk_gl_glIsProgramNV(proc, id) \
+ ( ((GdkGLProc_glIsProgramNV) (proc)) (id) )
+
+/* glLoadProgramNV */
+typedef void (APIENTRY * GdkGLProc_glLoadProgramNV) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
+GdkGLProc gdk_gl_get_glLoadProgramNV (void);
+#define gdk_gl_glLoadProgramNV(proc, target, id, len, program) \
+ ( ((GdkGLProc_glLoadProgramNV) (proc)) (target, id, len, program) )
+
+/* glProgramParameter4dNV */
+typedef void (APIENTRY * GdkGLProc_glProgramParameter4dNV) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GdkGLProc gdk_gl_get_glProgramParameter4dNV (void);
+#define gdk_gl_glProgramParameter4dNV(proc, target, index, x, y, z, w) \
+ ( ((GdkGLProc_glProgramParameter4dNV) (proc)) (target, index, x, y, z, w) )
+
+/* glProgramParameter4dvNV */
+typedef void (APIENTRY * GdkGLProc_glProgramParameter4dvNV) (GLenum target, GLuint index, const GLdouble *v);
+GdkGLProc gdk_gl_get_glProgramParameter4dvNV (void);
+#define gdk_gl_glProgramParameter4dvNV(proc, target, index, v) \
+ ( ((GdkGLProc_glProgramParameter4dvNV) (proc)) (target, index, v) )
+
+/* glProgramParameter4fNV */
+typedef void (APIENTRY * GdkGLProc_glProgramParameter4fNV) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GdkGLProc gdk_gl_get_glProgramParameter4fNV (void);
+#define gdk_gl_glProgramParameter4fNV(proc, target, index, x, y, z, w) \
+ ( ((GdkGLProc_glProgramParameter4fNV) (proc)) (target, index, x, y, z, w) )
+
+/* glProgramParameter4fvNV */
+typedef void (APIENTRY * GdkGLProc_glProgramParameter4fvNV) (GLenum target, GLuint index, const GLfloat *v);
+GdkGLProc gdk_gl_get_glProgramParameter4fvNV (void);
+#define gdk_gl_glProgramParameter4fvNV(proc, target, index, v) \
+ ( ((GdkGLProc_glProgramParameter4fvNV) (proc)) (target, index, v) )
+
+/* glProgramParameters4dvNV */
+typedef void (APIENTRY * GdkGLProc_glProgramParameters4dvNV) (GLenum target, GLuint index, GLuint count, const GLdouble *v);
+GdkGLProc gdk_gl_get_glProgramParameters4dvNV (void);
+#define gdk_gl_glProgramParameters4dvNV(proc, target, index, count, v) \
+ ( ((GdkGLProc_glProgramParameters4dvNV) (proc)) (target, index, count, v) )
+
+/* glProgramParameters4fvNV */
+typedef void (APIENTRY * GdkGLProc_glProgramParameters4fvNV) (GLenum target, GLuint index, GLuint count, const GLfloat *v);
+GdkGLProc gdk_gl_get_glProgramParameters4fvNV (void);
+#define gdk_gl_glProgramParameters4fvNV(proc, target, index, count, v) \
+ ( ((GdkGLProc_glProgramParameters4fvNV) (proc)) (target, index, count, v) )
+
+/* glRequestResidentProgramsNV */
+typedef void (APIENTRY * GdkGLProc_glRequestResidentProgramsNV) (GLsizei n, const GLuint *programs);
+GdkGLProc gdk_gl_get_glRequestResidentProgramsNV (void);
+#define gdk_gl_glRequestResidentProgramsNV(proc, n, programs) \
+ ( ((GdkGLProc_glRequestResidentProgramsNV) (proc)) (n, programs) )
+
+/* glTrackMatrixNV */
+typedef void (APIENTRY * GdkGLProc_glTrackMatrixNV) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
+GdkGLProc gdk_gl_get_glTrackMatrixNV (void);
+#define gdk_gl_glTrackMatrixNV(proc, target, address, matrix, transform) \
+ ( ((GdkGLProc_glTrackMatrixNV) (proc)) (target, address, matrix, transform) )
+
+/* glVertexAttribPointerNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribPointerNV) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glVertexAttribPointerNV (void);
+#define gdk_gl_glVertexAttribPointerNV(proc, index, fsize, type, stride, pointer) \
+ ( ((GdkGLProc_glVertexAttribPointerNV) (proc)) (index, fsize, type, stride, pointer) )
+
+/* glVertexAttrib1dNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1dNV) (GLuint index, GLdouble x);
+GdkGLProc gdk_gl_get_glVertexAttrib1dNV (void);
+#define gdk_gl_glVertexAttrib1dNV(proc, index, x) \
+ ( ((GdkGLProc_glVertexAttrib1dNV) (proc)) (index, x) )
+
+/* glVertexAttrib1dvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1dvNV) (GLuint index, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttrib1dvNV (void);
+#define gdk_gl_glVertexAttrib1dvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib1dvNV) (proc)) (index, v) )
+
+/* glVertexAttrib1fNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1fNV) (GLuint index, GLfloat x);
+GdkGLProc gdk_gl_get_glVertexAttrib1fNV (void);
+#define gdk_gl_glVertexAttrib1fNV(proc, index, x) \
+ ( ((GdkGLProc_glVertexAttrib1fNV) (proc)) (index, x) )
+
+/* glVertexAttrib1fvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1fvNV) (GLuint index, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttrib1fvNV (void);
+#define gdk_gl_glVertexAttrib1fvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib1fvNV) (proc)) (index, v) )
+
+/* glVertexAttrib1sNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1sNV) (GLuint index, GLshort x);
+GdkGLProc gdk_gl_get_glVertexAttrib1sNV (void);
+#define gdk_gl_glVertexAttrib1sNV(proc, index, x) \
+ ( ((GdkGLProc_glVertexAttrib1sNV) (proc)) (index, x) )
+
+/* glVertexAttrib1svNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1svNV) (GLuint index, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib1svNV (void);
+#define gdk_gl_glVertexAttrib1svNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib1svNV) (proc)) (index, v) )
+
+/* glVertexAttrib2dNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2dNV) (GLuint index, GLdouble x, GLdouble y);
+GdkGLProc gdk_gl_get_glVertexAttrib2dNV (void);
+#define gdk_gl_glVertexAttrib2dNV(proc, index, x, y) \
+ ( ((GdkGLProc_glVertexAttrib2dNV) (proc)) (index, x, y) )
+
+/* glVertexAttrib2dvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2dvNV) (GLuint index, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttrib2dvNV (void);
+#define gdk_gl_glVertexAttrib2dvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib2dvNV) (proc)) (index, v) )
+
+/* glVertexAttrib2fNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2fNV) (GLuint index, GLfloat x, GLfloat y);
+GdkGLProc gdk_gl_get_glVertexAttrib2fNV (void);
+#define gdk_gl_glVertexAttrib2fNV(proc, index, x, y) \
+ ( ((GdkGLProc_glVertexAttrib2fNV) (proc)) (index, x, y) )
+
+/* glVertexAttrib2fvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2fvNV) (GLuint index, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttrib2fvNV (void);
+#define gdk_gl_glVertexAttrib2fvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib2fvNV) (proc)) (index, v) )
+
+/* glVertexAttrib2sNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2sNV) (GLuint index, GLshort x, GLshort y);
+GdkGLProc gdk_gl_get_glVertexAttrib2sNV (void);
+#define gdk_gl_glVertexAttrib2sNV(proc, index, x, y) \
+ ( ((GdkGLProc_glVertexAttrib2sNV) (proc)) (index, x, y) )
+
+/* glVertexAttrib2svNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2svNV) (GLuint index, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib2svNV (void);
+#define gdk_gl_glVertexAttrib2svNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib2svNV) (proc)) (index, v) )
+
+/* glVertexAttrib3dNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3dNV) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+GdkGLProc gdk_gl_get_glVertexAttrib3dNV (void);
+#define gdk_gl_glVertexAttrib3dNV(proc, index, x, y, z) \
+ ( ((GdkGLProc_glVertexAttrib3dNV) (proc)) (index, x, y, z) )
+
+/* glVertexAttrib3dvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3dvNV) (GLuint index, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttrib3dvNV (void);
+#define gdk_gl_glVertexAttrib3dvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib3dvNV) (proc)) (index, v) )
+
+/* glVertexAttrib3fNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3fNV) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glVertexAttrib3fNV (void);
+#define gdk_gl_glVertexAttrib3fNV(proc, index, x, y, z) \
+ ( ((GdkGLProc_glVertexAttrib3fNV) (proc)) (index, x, y, z) )
+
+/* glVertexAttrib3fvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3fvNV) (GLuint index, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttrib3fvNV (void);
+#define gdk_gl_glVertexAttrib3fvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib3fvNV) (proc)) (index, v) )
+
+/* glVertexAttrib3sNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3sNV) (GLuint index, GLshort x, GLshort y, GLshort z);
+GdkGLProc gdk_gl_get_glVertexAttrib3sNV (void);
+#define gdk_gl_glVertexAttrib3sNV(proc, index, x, y, z) \
+ ( ((GdkGLProc_glVertexAttrib3sNV) (proc)) (index, x, y, z) )
+
+/* glVertexAttrib3svNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3svNV) (GLuint index, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib3svNV (void);
+#define gdk_gl_glVertexAttrib3svNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib3svNV) (proc)) (index, v) )
+
+/* glVertexAttrib4dNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4dNV) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GdkGLProc gdk_gl_get_glVertexAttrib4dNV (void);
+#define gdk_gl_glVertexAttrib4dNV(proc, index, x, y, z, w) \
+ ( ((GdkGLProc_glVertexAttrib4dNV) (proc)) (index, x, y, z, w) )
+
+/* glVertexAttrib4dvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4dvNV) (GLuint index, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4dvNV (void);
+#define gdk_gl_glVertexAttrib4dvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4dvNV) (proc)) (index, v) )
+
+/* glVertexAttrib4fNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4fNV) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GdkGLProc gdk_gl_get_glVertexAttrib4fNV (void);
+#define gdk_gl_glVertexAttrib4fNV(proc, index, x, y, z, w) \
+ ( ((GdkGLProc_glVertexAttrib4fNV) (proc)) (index, x, y, z, w) )
+
+/* glVertexAttrib4fvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4fvNV) (GLuint index, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4fvNV (void);
+#define gdk_gl_glVertexAttrib4fvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4fvNV) (proc)) (index, v) )
+
+/* glVertexAttrib4sNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4sNV) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+GdkGLProc gdk_gl_get_glVertexAttrib4sNV (void);
+#define gdk_gl_glVertexAttrib4sNV(proc, index, x, y, z, w) \
+ ( ((GdkGLProc_glVertexAttrib4sNV) (proc)) (index, x, y, z, w) )
+
+/* glVertexAttrib4svNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4svNV) (GLuint index, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4svNV (void);
+#define gdk_gl_glVertexAttrib4svNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4svNV) (proc)) (index, v) )
+
+/* glVertexAttrib4ubNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4ubNV) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+GdkGLProc gdk_gl_get_glVertexAttrib4ubNV (void);
+#define gdk_gl_glVertexAttrib4ubNV(proc, index, x, y, z, w) \
+ ( ((GdkGLProc_glVertexAttrib4ubNV) (proc)) (index, x, y, z, w) )
+
+/* glVertexAttrib4ubvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4ubvNV) (GLuint index, const GLubyte *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4ubvNV (void);
+#define gdk_gl_glVertexAttrib4ubvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4ubvNV) (proc)) (index, v) )
+
+/* glVertexAttribs1dvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs1dvNV) (GLuint index, GLsizei count, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttribs1dvNV (void);
+#define gdk_gl_glVertexAttribs1dvNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs1dvNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs1fvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs1fvNV) (GLuint index, GLsizei count, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttribs1fvNV (void);
+#define gdk_gl_glVertexAttribs1fvNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs1fvNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs1svNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs1svNV) (GLuint index, GLsizei count, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttribs1svNV (void);
+#define gdk_gl_glVertexAttribs1svNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs1svNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs2dvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs2dvNV) (GLuint index, GLsizei count, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttribs2dvNV (void);
+#define gdk_gl_glVertexAttribs2dvNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs2dvNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs2fvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs2fvNV) (GLuint index, GLsizei count, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttribs2fvNV (void);
+#define gdk_gl_glVertexAttribs2fvNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs2fvNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs2svNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs2svNV) (GLuint index, GLsizei count, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttribs2svNV (void);
+#define gdk_gl_glVertexAttribs2svNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs2svNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs3dvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs3dvNV) (GLuint index, GLsizei count, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttribs3dvNV (void);
+#define gdk_gl_glVertexAttribs3dvNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs3dvNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs3fvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs3fvNV) (GLuint index, GLsizei count, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttribs3fvNV (void);
+#define gdk_gl_glVertexAttribs3fvNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs3fvNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs3svNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs3svNV) (GLuint index, GLsizei count, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttribs3svNV (void);
+#define gdk_gl_glVertexAttribs3svNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs3svNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs4dvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs4dvNV) (GLuint index, GLsizei count, const GLdouble *v);
+GdkGLProc gdk_gl_get_glVertexAttribs4dvNV (void);
+#define gdk_gl_glVertexAttribs4dvNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs4dvNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs4fvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs4fvNV) (GLuint index, GLsizei count, const GLfloat *v);
+GdkGLProc gdk_gl_get_glVertexAttribs4fvNV (void);
+#define gdk_gl_glVertexAttribs4fvNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs4fvNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs4svNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs4svNV) (GLuint index, GLsizei count, const GLshort *v);
+GdkGLProc gdk_gl_get_glVertexAttribs4svNV (void);
+#define gdk_gl_glVertexAttribs4svNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs4svNV) (proc)) (index, count, v) )
+
+/* glVertexAttribs4ubvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs4ubvNV) (GLuint index, GLsizei count, const GLubyte *v);
+GdkGLProc gdk_gl_get_glVertexAttribs4ubvNV (void);
+#define gdk_gl_glVertexAttribs4ubvNV(proc, index, count, v) \
+ ( ((GdkGLProc_glVertexAttribs4ubvNV) (proc)) (index, count, v) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_vertex_program GdkGL_GL_NV_vertex_program;
+
+struct _GdkGL_GL_NV_vertex_program
+{
+ GdkGLProc_glAreProgramsResidentNV glAreProgramsResidentNV;
+ GdkGLProc_glBindProgramNV glBindProgramNV;
+ GdkGLProc_glDeleteProgramsNV glDeleteProgramsNV;
+ GdkGLProc_glExecuteProgramNV glExecuteProgramNV;
+ GdkGLProc_glGenProgramsNV glGenProgramsNV;
+ GdkGLProc_glGetProgramParameterdvNV glGetProgramParameterdvNV;
+ GdkGLProc_glGetProgramParameterfvNV glGetProgramParameterfvNV;
+ GdkGLProc_glGetProgramivNV glGetProgramivNV;
+ GdkGLProc_glGetProgramStringNV glGetProgramStringNV;
+ GdkGLProc_glGetTrackMatrixivNV glGetTrackMatrixivNV;
+ GdkGLProc_glGetVertexAttribdvNV glGetVertexAttribdvNV;
+ GdkGLProc_glGetVertexAttribfvNV glGetVertexAttribfvNV;
+ GdkGLProc_glGetVertexAttribivNV glGetVertexAttribivNV;
+ GdkGLProc_glGetVertexAttribPointervNV glGetVertexAttribPointervNV;
+ GdkGLProc_glIsProgramNV glIsProgramNV;
+ GdkGLProc_glLoadProgramNV glLoadProgramNV;
+ GdkGLProc_glProgramParameter4dNV glProgramParameter4dNV;
+ GdkGLProc_glProgramParameter4dvNV glProgramParameter4dvNV;
+ GdkGLProc_glProgramParameter4fNV glProgramParameter4fNV;
+ GdkGLProc_glProgramParameter4fvNV glProgramParameter4fvNV;
+ GdkGLProc_glProgramParameters4dvNV glProgramParameters4dvNV;
+ GdkGLProc_glProgramParameters4fvNV glProgramParameters4fvNV;
+ GdkGLProc_glRequestResidentProgramsNV glRequestResidentProgramsNV;
+ GdkGLProc_glTrackMatrixNV glTrackMatrixNV;
+ GdkGLProc_glVertexAttribPointerNV glVertexAttribPointerNV;
+ GdkGLProc_glVertexAttrib1dNV glVertexAttrib1dNV;
+ GdkGLProc_glVertexAttrib1dvNV glVertexAttrib1dvNV;
+ GdkGLProc_glVertexAttrib1fNV glVertexAttrib1fNV;
+ GdkGLProc_glVertexAttrib1fvNV glVertexAttrib1fvNV;
+ GdkGLProc_glVertexAttrib1sNV glVertexAttrib1sNV;
+ GdkGLProc_glVertexAttrib1svNV glVertexAttrib1svNV;
+ GdkGLProc_glVertexAttrib2dNV glVertexAttrib2dNV;
+ GdkGLProc_glVertexAttrib2dvNV glVertexAttrib2dvNV;
+ GdkGLProc_glVertexAttrib2fNV glVertexAttrib2fNV;
+ GdkGLProc_glVertexAttrib2fvNV glVertexAttrib2fvNV;
+ GdkGLProc_glVertexAttrib2sNV glVertexAttrib2sNV;
+ GdkGLProc_glVertexAttrib2svNV glVertexAttrib2svNV;
+ GdkGLProc_glVertexAttrib3dNV glVertexAttrib3dNV;
+ GdkGLProc_glVertexAttrib3dvNV glVertexAttrib3dvNV;
+ GdkGLProc_glVertexAttrib3fNV glVertexAttrib3fNV;
+ GdkGLProc_glVertexAttrib3fvNV glVertexAttrib3fvNV;
+ GdkGLProc_glVertexAttrib3sNV glVertexAttrib3sNV;
+ GdkGLProc_glVertexAttrib3svNV glVertexAttrib3svNV;
+ GdkGLProc_glVertexAttrib4dNV glVertexAttrib4dNV;
+ GdkGLProc_glVertexAttrib4dvNV glVertexAttrib4dvNV;
+ GdkGLProc_glVertexAttrib4fNV glVertexAttrib4fNV;
+ GdkGLProc_glVertexAttrib4fvNV glVertexAttrib4fvNV;
+ GdkGLProc_glVertexAttrib4sNV glVertexAttrib4sNV;
+ GdkGLProc_glVertexAttrib4svNV glVertexAttrib4svNV;
+ GdkGLProc_glVertexAttrib4ubNV glVertexAttrib4ubNV;
+ GdkGLProc_glVertexAttrib4ubvNV glVertexAttrib4ubvNV;
+ GdkGLProc_glVertexAttribs1dvNV glVertexAttribs1dvNV;
+ GdkGLProc_glVertexAttribs1fvNV glVertexAttribs1fvNV;
+ GdkGLProc_glVertexAttribs1svNV glVertexAttribs1svNV;
+ GdkGLProc_glVertexAttribs2dvNV glVertexAttribs2dvNV;
+ GdkGLProc_glVertexAttribs2fvNV glVertexAttribs2fvNV;
+ GdkGLProc_glVertexAttribs2svNV glVertexAttribs2svNV;
+ GdkGLProc_glVertexAttribs3dvNV glVertexAttribs3dvNV;
+ GdkGLProc_glVertexAttribs3fvNV glVertexAttribs3fvNV;
+ GdkGLProc_glVertexAttribs3svNV glVertexAttribs3svNV;
+ GdkGLProc_glVertexAttribs4dvNV glVertexAttribs4dvNV;
+ GdkGLProc_glVertexAttribs4fvNV glVertexAttribs4fvNV;
+ GdkGLProc_glVertexAttribs4svNV glVertexAttribs4svNV;
+ GdkGLProc_glVertexAttribs4ubvNV glVertexAttribs4ubvNV;
+};
+
+GdkGL_GL_NV_vertex_program *gdk_gl_get_GL_NV_vertex_program (void);
+
+/*
+ * GL_ATI_envmap_bumpmap
+ */
+
+/* glTexBumpParameterivATI */
+typedef void (APIENTRY * GdkGLProc_glTexBumpParameterivATI) (GLenum pname, const GLint *param);
+GdkGLProc gdk_gl_get_glTexBumpParameterivATI (void);
+#define gdk_gl_glTexBumpParameterivATI(proc, pname, param) \
+ ( ((GdkGLProc_glTexBumpParameterivATI) (proc)) (pname, param) )
+
+/* glTexBumpParameterfvATI */
+typedef void (APIENTRY * GdkGLProc_glTexBumpParameterfvATI) (GLenum pname, const GLfloat *param);
+GdkGLProc gdk_gl_get_glTexBumpParameterfvATI (void);
+#define gdk_gl_glTexBumpParameterfvATI(proc, pname, param) \
+ ( ((GdkGLProc_glTexBumpParameterfvATI) (proc)) (pname, param) )
+
+/* glGetTexBumpParameterivATI */
+typedef void (APIENTRY * GdkGLProc_glGetTexBumpParameterivATI) (GLenum pname, GLint *param);
+GdkGLProc gdk_gl_get_glGetTexBumpParameterivATI (void);
+#define gdk_gl_glGetTexBumpParameterivATI(proc, pname, param) \
+ ( ((GdkGLProc_glGetTexBumpParameterivATI) (proc)) (pname, param) )
+
+/* glGetTexBumpParameterfvATI */
+typedef void (APIENTRY * GdkGLProc_glGetTexBumpParameterfvATI) (GLenum pname, GLfloat *param);
+GdkGLProc gdk_gl_get_glGetTexBumpParameterfvATI (void);
+#define gdk_gl_glGetTexBumpParameterfvATI(proc, pname, param) \
+ ( ((GdkGLProc_glGetTexBumpParameterfvATI) (proc)) (pname, param) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_envmap_bumpmap GdkGL_GL_ATI_envmap_bumpmap;
+
+struct _GdkGL_GL_ATI_envmap_bumpmap
+{
+ GdkGLProc_glTexBumpParameterivATI glTexBumpParameterivATI;
+ GdkGLProc_glTexBumpParameterfvATI glTexBumpParameterfvATI;
+ GdkGLProc_glGetTexBumpParameterivATI glGetTexBumpParameterivATI;
+ GdkGLProc_glGetTexBumpParameterfvATI glGetTexBumpParameterfvATI;
+};
+
+GdkGL_GL_ATI_envmap_bumpmap *gdk_gl_get_GL_ATI_envmap_bumpmap (void);
+
+/*
+ * GL_ATI_fragment_shader
+ */
+
+/* glGenFragmentShadersATI */
+typedef GLuint (APIENTRY * GdkGLProc_glGenFragmentShadersATI) (GLuint range);
+GdkGLProc gdk_gl_get_glGenFragmentShadersATI (void);
+#define gdk_gl_glGenFragmentShadersATI(proc, range) \
+ ( ((GdkGLProc_glGenFragmentShadersATI) (proc)) (range) )
+
+/* glBindFragmentShaderATI */
+typedef void (APIENTRY * GdkGLProc_glBindFragmentShaderATI) (GLuint id);
+GdkGLProc gdk_gl_get_glBindFragmentShaderATI (void);
+#define gdk_gl_glBindFragmentShaderATI(proc, id) \
+ ( ((GdkGLProc_glBindFragmentShaderATI) (proc)) (id) )
+
+/* glDeleteFragmentShaderATI */
+typedef void (APIENTRY * GdkGLProc_glDeleteFragmentShaderATI) (GLuint id);
+GdkGLProc gdk_gl_get_glDeleteFragmentShaderATI (void);
+#define gdk_gl_glDeleteFragmentShaderATI(proc, id) \
+ ( ((GdkGLProc_glDeleteFragmentShaderATI) (proc)) (id) )
+
+/* glBeginFragmentShaderATI */
+typedef void (APIENTRY * GdkGLProc_glBeginFragmentShaderATI) (void);
+GdkGLProc gdk_gl_get_glBeginFragmentShaderATI (void);
+#define gdk_gl_glBeginFragmentShaderATI(proc) \
+ ( ((GdkGLProc_glBeginFragmentShaderATI) (proc)) () )
+
+/* glEndFragmentShaderATI */
+typedef void (APIENTRY * GdkGLProc_glEndFragmentShaderATI) (void);
+GdkGLProc gdk_gl_get_glEndFragmentShaderATI (void);
+#define gdk_gl_glEndFragmentShaderATI(proc) \
+ ( ((GdkGLProc_glEndFragmentShaderATI) (proc)) () )
+
+/* glPassTexCoordATI */
+typedef void (APIENTRY * GdkGLProc_glPassTexCoordATI) (GLuint dst, GLuint coord, GLenum swizzle);
+GdkGLProc gdk_gl_get_glPassTexCoordATI (void);
+#define gdk_gl_glPassTexCoordATI(proc, dst, coord, swizzle) \
+ ( ((GdkGLProc_glPassTexCoordATI) (proc)) (dst, coord, swizzle) )
+
+/* glSampleMapATI */
+typedef void (APIENTRY * GdkGLProc_glSampleMapATI) (GLuint dst, GLuint interp, GLenum swizzle);
+GdkGLProc gdk_gl_get_glSampleMapATI (void);
+#define gdk_gl_glSampleMapATI(proc, dst, interp, swizzle) \
+ ( ((GdkGLProc_glSampleMapATI) (proc)) (dst, interp, swizzle) )
+
+/* glColorFragmentOp1ATI */
+typedef void (APIENTRY * GdkGLProc_glColorFragmentOp1ATI) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+GdkGLProc gdk_gl_get_glColorFragmentOp1ATI (void);
+#define gdk_gl_glColorFragmentOp1ATI(proc, op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod) \
+ ( ((GdkGLProc_glColorFragmentOp1ATI) (proc)) (op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod) )
+
+/* glColorFragmentOp2ATI */
+typedef void (APIENTRY * GdkGLProc_glColorFragmentOp2ATI) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+GdkGLProc gdk_gl_get_glColorFragmentOp2ATI (void);
+#define gdk_gl_glColorFragmentOp2ATI(proc, op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod) \
+ ( ((GdkGLProc_glColorFragmentOp2ATI) (proc)) (op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod) )
+
+/* glColorFragmentOp3ATI */
+typedef void (APIENTRY * GdkGLProc_glColorFragmentOp3ATI) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+GdkGLProc gdk_gl_get_glColorFragmentOp3ATI (void);
+#define gdk_gl_glColorFragmentOp3ATI(proc, op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod) \
+ ( ((GdkGLProc_glColorFragmentOp3ATI) (proc)) (op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod) )
+
+/* glAlphaFragmentOp1ATI */
+typedef void (APIENTRY * GdkGLProc_glAlphaFragmentOp1ATI) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+GdkGLProc gdk_gl_get_glAlphaFragmentOp1ATI (void);
+#define gdk_gl_glAlphaFragmentOp1ATI(proc, op, dst, dstMod, arg1, arg1Rep, arg1Mod) \
+ ( ((GdkGLProc_glAlphaFragmentOp1ATI) (proc)) (op, dst, dstMod, arg1, arg1Rep, arg1Mod) )
+
+/* glAlphaFragmentOp2ATI */
+typedef void (APIENTRY * GdkGLProc_glAlphaFragmentOp2ATI) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+GdkGLProc gdk_gl_get_glAlphaFragmentOp2ATI (void);
+#define gdk_gl_glAlphaFragmentOp2ATI(proc, op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod) \
+ ( ((GdkGLProc_glAlphaFragmentOp2ATI) (proc)) (op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod) )
+
+/* glAlphaFragmentOp3ATI */
+typedef void (APIENTRY * GdkGLProc_glAlphaFragmentOp3ATI) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+GdkGLProc gdk_gl_get_glAlphaFragmentOp3ATI (void);
+#define gdk_gl_glAlphaFragmentOp3ATI(proc, op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod) \
+ ( ((GdkGLProc_glAlphaFragmentOp3ATI) (proc)) (op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod) )
+
+/* glSetFragmentShaderConstantATI */
+typedef void (APIENTRY * GdkGLProc_glSetFragmentShaderConstantATI) (GLuint dst, const GLfloat *value);
+GdkGLProc gdk_gl_get_glSetFragmentShaderConstantATI (void);
+#define gdk_gl_glSetFragmentShaderConstantATI(proc, dst, value) \
+ ( ((GdkGLProc_glSetFragmentShaderConstantATI) (proc)) (dst, value) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_fragment_shader GdkGL_GL_ATI_fragment_shader;
+
+struct _GdkGL_GL_ATI_fragment_shader
+{
+ GdkGLProc_glGenFragmentShadersATI glGenFragmentShadersATI;
+ GdkGLProc_glBindFragmentShaderATI glBindFragmentShaderATI;
+ GdkGLProc_glDeleteFragmentShaderATI glDeleteFragmentShaderATI;
+ GdkGLProc_glBeginFragmentShaderATI glBeginFragmentShaderATI;
+ GdkGLProc_glEndFragmentShaderATI glEndFragmentShaderATI;
+ GdkGLProc_glPassTexCoordATI glPassTexCoordATI;
+ GdkGLProc_glSampleMapATI glSampleMapATI;
+ GdkGLProc_glColorFragmentOp1ATI glColorFragmentOp1ATI;
+ GdkGLProc_glColorFragmentOp2ATI glColorFragmentOp2ATI;
+ GdkGLProc_glColorFragmentOp3ATI glColorFragmentOp3ATI;
+ GdkGLProc_glAlphaFragmentOp1ATI glAlphaFragmentOp1ATI;
+ GdkGLProc_glAlphaFragmentOp2ATI glAlphaFragmentOp2ATI;
+ GdkGLProc_glAlphaFragmentOp3ATI glAlphaFragmentOp3ATI;
+ GdkGLProc_glSetFragmentShaderConstantATI glSetFragmentShaderConstantATI;
+};
+
+GdkGL_GL_ATI_fragment_shader *gdk_gl_get_GL_ATI_fragment_shader (void);
+
+/*
+ * GL_ATI_pn_triangles
+ */
+
+/* glPNTrianglesiATI */
+typedef void (APIENTRY * GdkGLProc_glPNTrianglesiATI) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glPNTrianglesiATI (void);
+#define gdk_gl_glPNTrianglesiATI(proc, pname, param) \
+ ( ((GdkGLProc_glPNTrianglesiATI) (proc)) (pname, param) )
+
+/* glPNTrianglesfATI */
+typedef void (APIENTRY * GdkGLProc_glPNTrianglesfATI) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glPNTrianglesfATI (void);
+#define gdk_gl_glPNTrianglesfATI(proc, pname, param) \
+ ( ((GdkGLProc_glPNTrianglesfATI) (proc)) (pname, param) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_pn_triangles GdkGL_GL_ATI_pn_triangles;
+
+struct _GdkGL_GL_ATI_pn_triangles
+{
+ GdkGLProc_glPNTrianglesiATI glPNTrianglesiATI;
+ GdkGLProc_glPNTrianglesfATI glPNTrianglesfATI;
+};
+
+GdkGL_GL_ATI_pn_triangles *gdk_gl_get_GL_ATI_pn_triangles (void);
+
+/*
+ * GL_ATI_vertex_array_object
+ */
+
+/* glNewObjectBufferATI */
+typedef GLuint (APIENTRY * GdkGLProc_glNewObjectBufferATI) (GLsizei size, const GLvoid *pointer, GLenum usage);
+GdkGLProc gdk_gl_get_glNewObjectBufferATI (void);
+#define gdk_gl_glNewObjectBufferATI(proc, size, pointer, usage) \
+ ( ((GdkGLProc_glNewObjectBufferATI) (proc)) (size, pointer, usage) )
+
+/* glIsObjectBufferATI */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsObjectBufferATI) (GLuint buffer);
+GdkGLProc gdk_gl_get_glIsObjectBufferATI (void);
+#define gdk_gl_glIsObjectBufferATI(proc, buffer) \
+ ( ((GdkGLProc_glIsObjectBufferATI) (proc)) (buffer) )
+
+/* glUpdateObjectBufferATI */
+typedef void (APIENTRY * GdkGLProc_glUpdateObjectBufferATI) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
+GdkGLProc gdk_gl_get_glUpdateObjectBufferATI (void);
+#define gdk_gl_glUpdateObjectBufferATI(proc, buffer, offset, size, pointer, preserve) \
+ ( ((GdkGLProc_glUpdateObjectBufferATI) (proc)) (buffer, offset, size, pointer, preserve) )
+
+/* glGetObjectBufferfvATI */
+typedef void (APIENTRY * GdkGLProc_glGetObjectBufferfvATI) (GLuint buffer, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetObjectBufferfvATI (void);
+#define gdk_gl_glGetObjectBufferfvATI(proc, buffer, pname, params) \
+ ( ((GdkGLProc_glGetObjectBufferfvATI) (proc)) (buffer, pname, params) )
+
+/* glGetObjectBufferivATI */
+typedef void (APIENTRY * GdkGLProc_glGetObjectBufferivATI) (GLuint buffer, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetObjectBufferivATI (void);
+#define gdk_gl_glGetObjectBufferivATI(proc, buffer, pname, params) \
+ ( ((GdkGLProc_glGetObjectBufferivATI) (proc)) (buffer, pname, params) )
+
+/* glFreeObjectBufferATI */
+typedef void (APIENTRY * GdkGLProc_glFreeObjectBufferATI) (GLuint buffer);
+GdkGLProc gdk_gl_get_glFreeObjectBufferATI (void);
+#define gdk_gl_glFreeObjectBufferATI(proc, buffer) \
+ ( ((GdkGLProc_glFreeObjectBufferATI) (proc)) (buffer) )
+
+/* glArrayObjectATI */
+typedef void (APIENTRY * GdkGLProc_glArrayObjectATI) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+GdkGLProc gdk_gl_get_glArrayObjectATI (void);
+#define gdk_gl_glArrayObjectATI(proc, array, size, type, stride, buffer, offset) \
+ ( ((GdkGLProc_glArrayObjectATI) (proc)) (array, size, type, stride, buffer, offset) )
+
+/* glGetArrayObjectfvATI */
+typedef void (APIENTRY * GdkGLProc_glGetArrayObjectfvATI) (GLenum array, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetArrayObjectfvATI (void);
+#define gdk_gl_glGetArrayObjectfvATI(proc, array, pname, params) \
+ ( ((GdkGLProc_glGetArrayObjectfvATI) (proc)) (array, pname, params) )
+
+/* glGetArrayObjectivATI */
+typedef void (APIENTRY * GdkGLProc_glGetArrayObjectivATI) (GLenum array, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetArrayObjectivATI (void);
+#define gdk_gl_glGetArrayObjectivATI(proc, array, pname, params) \
+ ( ((GdkGLProc_glGetArrayObjectivATI) (proc)) (array, pname, params) )
+
+/* glVariantArrayObjectATI */
+typedef void (APIENTRY * GdkGLProc_glVariantArrayObjectATI) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+GdkGLProc gdk_gl_get_glVariantArrayObjectATI (void);
+#define gdk_gl_glVariantArrayObjectATI(proc, id, type, stride, buffer, offset) \
+ ( ((GdkGLProc_glVariantArrayObjectATI) (proc)) (id, type, stride, buffer, offset) )
+
+/* glGetVariantArrayObjectfvATI */
+typedef void (APIENTRY * GdkGLProc_glGetVariantArrayObjectfvATI) (GLuint id, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetVariantArrayObjectfvATI (void);
+#define gdk_gl_glGetVariantArrayObjectfvATI(proc, id, pname, params) \
+ ( ((GdkGLProc_glGetVariantArrayObjectfvATI) (proc)) (id, pname, params) )
+
+/* glGetVariantArrayObjectivATI */
+typedef void (APIENTRY * GdkGLProc_glGetVariantArrayObjectivATI) (GLuint id, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetVariantArrayObjectivATI (void);
+#define gdk_gl_glGetVariantArrayObjectivATI(proc, id, pname, params) \
+ ( ((GdkGLProc_glGetVariantArrayObjectivATI) (proc)) (id, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_vertex_array_object GdkGL_GL_ATI_vertex_array_object;
+
+struct _GdkGL_GL_ATI_vertex_array_object
+{
+ GdkGLProc_glNewObjectBufferATI glNewObjectBufferATI;
+ GdkGLProc_glIsObjectBufferATI glIsObjectBufferATI;
+ GdkGLProc_glUpdateObjectBufferATI glUpdateObjectBufferATI;
+ GdkGLProc_glGetObjectBufferfvATI glGetObjectBufferfvATI;
+ GdkGLProc_glGetObjectBufferivATI glGetObjectBufferivATI;
+ GdkGLProc_glFreeObjectBufferATI glFreeObjectBufferATI;
+ GdkGLProc_glArrayObjectATI glArrayObjectATI;
+ GdkGLProc_glGetArrayObjectfvATI glGetArrayObjectfvATI;
+ GdkGLProc_glGetArrayObjectivATI glGetArrayObjectivATI;
+ GdkGLProc_glVariantArrayObjectATI glVariantArrayObjectATI;
+ GdkGLProc_glGetVariantArrayObjectfvATI glGetVariantArrayObjectfvATI;
+ GdkGLProc_glGetVariantArrayObjectivATI glGetVariantArrayObjectivATI;
+};
+
+GdkGL_GL_ATI_vertex_array_object *gdk_gl_get_GL_ATI_vertex_array_object (void);
+
+/*
+ * GL_EXT_vertex_shader
+ */
+
+/* glBeginVertexShaderEXT */
+typedef void (APIENTRY * GdkGLProc_glBeginVertexShaderEXT) (void);
+GdkGLProc gdk_gl_get_glBeginVertexShaderEXT (void);
+#define gdk_gl_glBeginVertexShaderEXT(proc) \
+ ( ((GdkGLProc_glBeginVertexShaderEXT) (proc)) () )
+
+/* glEndVertexShaderEXT */
+typedef void (APIENTRY * GdkGLProc_glEndVertexShaderEXT) (void);
+GdkGLProc gdk_gl_get_glEndVertexShaderEXT (void);
+#define gdk_gl_glEndVertexShaderEXT(proc) \
+ ( ((GdkGLProc_glEndVertexShaderEXT) (proc)) () )
+
+/* glBindVertexShaderEXT */
+typedef void (APIENTRY * GdkGLProc_glBindVertexShaderEXT) (GLuint id);
+GdkGLProc gdk_gl_get_glBindVertexShaderEXT (void);
+#define gdk_gl_glBindVertexShaderEXT(proc, id) \
+ ( ((GdkGLProc_glBindVertexShaderEXT) (proc)) (id) )
+
+/* glGenVertexShadersEXT */
+typedef GLuint (APIENTRY * GdkGLProc_glGenVertexShadersEXT) (GLuint range);
+GdkGLProc gdk_gl_get_glGenVertexShadersEXT (void);
+#define gdk_gl_glGenVertexShadersEXT(proc, range) \
+ ( ((GdkGLProc_glGenVertexShadersEXT) (proc)) (range) )
+
+/* glDeleteVertexShaderEXT */
+typedef void (APIENTRY * GdkGLProc_glDeleteVertexShaderEXT) (GLuint id);
+GdkGLProc gdk_gl_get_glDeleteVertexShaderEXT (void);
+#define gdk_gl_glDeleteVertexShaderEXT(proc, id) \
+ ( ((GdkGLProc_glDeleteVertexShaderEXT) (proc)) (id) )
+
+/* glShaderOp1EXT */
+typedef void (APIENTRY * GdkGLProc_glShaderOp1EXT) (GLenum op, GLuint res, GLuint arg1);
+GdkGLProc gdk_gl_get_glShaderOp1EXT (void);
+#define gdk_gl_glShaderOp1EXT(proc, op, res, arg1) \
+ ( ((GdkGLProc_glShaderOp1EXT) (proc)) (op, res, arg1) )
+
+/* glShaderOp2EXT */
+typedef void (APIENTRY * GdkGLProc_glShaderOp2EXT) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
+GdkGLProc gdk_gl_get_glShaderOp2EXT (void);
+#define gdk_gl_glShaderOp2EXT(proc, op, res, arg1, arg2) \
+ ( ((GdkGLProc_glShaderOp2EXT) (proc)) (op, res, arg1, arg2) )
+
+/* glShaderOp3EXT */
+typedef void (APIENTRY * GdkGLProc_glShaderOp3EXT) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
+GdkGLProc gdk_gl_get_glShaderOp3EXT (void);
+#define gdk_gl_glShaderOp3EXT(proc, op, res, arg1, arg2, arg3) \
+ ( ((GdkGLProc_glShaderOp3EXT) (proc)) (op, res, arg1, arg2, arg3) )
+
+/* glSwizzleEXT */
+typedef void (APIENTRY * GdkGLProc_glSwizzleEXT) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+GdkGLProc gdk_gl_get_glSwizzleEXT (void);
+#define gdk_gl_glSwizzleEXT(proc, res, in, outX, outY, outZ, outW) \
+ ( ((GdkGLProc_glSwizzleEXT) (proc)) (res, in, outX, outY, outZ, outW) )
+
+/* glWriteMaskEXT */
+typedef void (APIENTRY * GdkGLProc_glWriteMaskEXT) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+GdkGLProc gdk_gl_get_glWriteMaskEXT (void);
+#define gdk_gl_glWriteMaskEXT(proc, res, in, outX, outY, outZ, outW) \
+ ( ((GdkGLProc_glWriteMaskEXT) (proc)) (res, in, outX, outY, outZ, outW) )
+
+/* glInsertComponentEXT */
+typedef void (APIENTRY * GdkGLProc_glInsertComponentEXT) (GLuint res, GLuint src, GLuint num);
+GdkGLProc gdk_gl_get_glInsertComponentEXT (void);
+#define gdk_gl_glInsertComponentEXT(proc, res, src, num) \
+ ( ((GdkGLProc_glInsertComponentEXT) (proc)) (res, src, num) )
+
+/* glExtractComponentEXT */
+typedef void (APIENTRY * GdkGLProc_glExtractComponentEXT) (GLuint res, GLuint src, GLuint num);
+GdkGLProc gdk_gl_get_glExtractComponentEXT (void);
+#define gdk_gl_glExtractComponentEXT(proc, res, src, num) \
+ ( ((GdkGLProc_glExtractComponentEXT) (proc)) (res, src, num) )
+
+/* glGenSymbolsEXT */
+typedef GLuint (APIENTRY * GdkGLProc_glGenSymbolsEXT) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
+GdkGLProc gdk_gl_get_glGenSymbolsEXT (void);
+#define gdk_gl_glGenSymbolsEXT(proc, datatype, storagetype, range, components) \
+ ( ((GdkGLProc_glGenSymbolsEXT) (proc)) (datatype, storagetype, range, components) )
+
+/* glSetInvariantEXT */
+typedef void (APIENTRY * GdkGLProc_glSetInvariantEXT) (GLuint id, GLenum type, const GLvoid *addr);
+GdkGLProc gdk_gl_get_glSetInvariantEXT (void);
+#define gdk_gl_glSetInvariantEXT(proc, id, type, addr) \
+ ( ((GdkGLProc_glSetInvariantEXT) (proc)) (id, type, addr) )
+
+/* glSetLocalConstantEXT */
+typedef void (APIENTRY * GdkGLProc_glSetLocalConstantEXT) (GLuint id, GLenum type, const GLvoid *addr);
+GdkGLProc gdk_gl_get_glSetLocalConstantEXT (void);
+#define gdk_gl_glSetLocalConstantEXT(proc, id, type, addr) \
+ ( ((GdkGLProc_glSetLocalConstantEXT) (proc)) (id, type, addr) )
+
+/* glVariantbvEXT */
+typedef void (APIENTRY * GdkGLProc_glVariantbvEXT) (GLuint id, const GLbyte *addr);
+GdkGLProc gdk_gl_get_glVariantbvEXT (void);
+#define gdk_gl_glVariantbvEXT(proc, id, addr) \
+ ( ((GdkGLProc_glVariantbvEXT) (proc)) (id, addr) )
+
+/* glVariantsvEXT */
+typedef void (APIENTRY * GdkGLProc_glVariantsvEXT) (GLuint id, const GLshort *addr);
+GdkGLProc gdk_gl_get_glVariantsvEXT (void);
+#define gdk_gl_glVariantsvEXT(proc, id, addr) \
+ ( ((GdkGLProc_glVariantsvEXT) (proc)) (id, addr) )
+
+/* glVariantivEXT */
+typedef void (APIENTRY * GdkGLProc_glVariantivEXT) (GLuint id, const GLint *addr);
+GdkGLProc gdk_gl_get_glVariantivEXT (void);
+#define gdk_gl_glVariantivEXT(proc, id, addr) \
+ ( ((GdkGLProc_glVariantivEXT) (proc)) (id, addr) )
+
+/* glVariantfvEXT */
+typedef void (APIENTRY * GdkGLProc_glVariantfvEXT) (GLuint id, const GLfloat *addr);
+GdkGLProc gdk_gl_get_glVariantfvEXT (void);
+#define gdk_gl_glVariantfvEXT(proc, id, addr) \
+ ( ((GdkGLProc_glVariantfvEXT) (proc)) (id, addr) )
+
+/* glVariantdvEXT */
+typedef void (APIENTRY * GdkGLProc_glVariantdvEXT) (GLuint id, const GLdouble *addr);
+GdkGLProc gdk_gl_get_glVariantdvEXT (void);
+#define gdk_gl_glVariantdvEXT(proc, id, addr) \
+ ( ((GdkGLProc_glVariantdvEXT) (proc)) (id, addr) )
+
+/* glVariantubvEXT */
+typedef void (APIENTRY * GdkGLProc_glVariantubvEXT) (GLuint id, const GLubyte *addr);
+GdkGLProc gdk_gl_get_glVariantubvEXT (void);
+#define gdk_gl_glVariantubvEXT(proc, id, addr) \
+ ( ((GdkGLProc_glVariantubvEXT) (proc)) (id, addr) )
+
+/* glVariantusvEXT */
+typedef void (APIENTRY * GdkGLProc_glVariantusvEXT) (GLuint id, const GLushort *addr);
+GdkGLProc gdk_gl_get_glVariantusvEXT (void);
+#define gdk_gl_glVariantusvEXT(proc, id, addr) \
+ ( ((GdkGLProc_glVariantusvEXT) (proc)) (id, addr) )
+
+/* glVariantuivEXT */
+typedef void (APIENTRY * GdkGLProc_glVariantuivEXT) (GLuint id, const GLuint *addr);
+GdkGLProc gdk_gl_get_glVariantuivEXT (void);
+#define gdk_gl_glVariantuivEXT(proc, id, addr) \
+ ( ((GdkGLProc_glVariantuivEXT) (proc)) (id, addr) )
+
+/* glVariantPointerEXT */
+typedef void (APIENTRY * GdkGLProc_glVariantPointerEXT) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr);
+GdkGLProc gdk_gl_get_glVariantPointerEXT (void);
+#define gdk_gl_glVariantPointerEXT(proc, id, type, stride, addr) \
+ ( ((GdkGLProc_glVariantPointerEXT) (proc)) (id, type, stride, addr) )
+
+/* glEnableVariantClientStateEXT */
+typedef void (APIENTRY * GdkGLProc_glEnableVariantClientStateEXT) (GLuint id);
+GdkGLProc gdk_gl_get_glEnableVariantClientStateEXT (void);
+#define gdk_gl_glEnableVariantClientStateEXT(proc, id) \
+ ( ((GdkGLProc_glEnableVariantClientStateEXT) (proc)) (id) )
+
+/* glDisableVariantClientStateEXT */
+typedef void (APIENTRY * GdkGLProc_glDisableVariantClientStateEXT) (GLuint id);
+GdkGLProc gdk_gl_get_glDisableVariantClientStateEXT (void);
+#define gdk_gl_glDisableVariantClientStateEXT(proc, id) \
+ ( ((GdkGLProc_glDisableVariantClientStateEXT) (proc)) (id) )
+
+/* glBindLightParameterEXT */
+typedef GLuint (APIENTRY * GdkGLProc_glBindLightParameterEXT) (GLenum light, GLenum value);
+GdkGLProc gdk_gl_get_glBindLightParameterEXT (void);
+#define gdk_gl_glBindLightParameterEXT(proc, light, value) \
+ ( ((GdkGLProc_glBindLightParameterEXT) (proc)) (light, value) )
+
+/* glBindMaterialParameterEXT */
+typedef GLuint (APIENTRY * GdkGLProc_glBindMaterialParameterEXT) (GLenum face, GLenum value);
+GdkGLProc gdk_gl_get_glBindMaterialParameterEXT (void);
+#define gdk_gl_glBindMaterialParameterEXT(proc, face, value) \
+ ( ((GdkGLProc_glBindMaterialParameterEXT) (proc)) (face, value) )
+
+/* glBindTexGenParameterEXT */
+typedef GLuint (APIENTRY * GdkGLProc_glBindTexGenParameterEXT) (GLenum unit, GLenum coord, GLenum value);
+GdkGLProc gdk_gl_get_glBindTexGenParameterEXT (void);
+#define gdk_gl_glBindTexGenParameterEXT(proc, unit, coord, value) \
+ ( ((GdkGLProc_glBindTexGenParameterEXT) (proc)) (unit, coord, value) )
+
+/* glBindTextureUnitParameterEXT */
+typedef GLuint (APIENTRY * GdkGLProc_glBindTextureUnitParameterEXT) (GLenum unit, GLenum value);
+GdkGLProc gdk_gl_get_glBindTextureUnitParameterEXT (void);
+#define gdk_gl_glBindTextureUnitParameterEXT(proc, unit, value) \
+ ( ((GdkGLProc_glBindTextureUnitParameterEXT) (proc)) (unit, value) )
+
+/* glBindParameterEXT */
+typedef GLuint (APIENTRY * GdkGLProc_glBindParameterEXT) (GLenum value);
+GdkGLProc gdk_gl_get_glBindParameterEXT (void);
+#define gdk_gl_glBindParameterEXT(proc, value) \
+ ( ((GdkGLProc_glBindParameterEXT) (proc)) (value) )
+
+/* glIsVariantEnabledEXT */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsVariantEnabledEXT) (GLuint id, GLenum cap);
+GdkGLProc gdk_gl_get_glIsVariantEnabledEXT (void);
+#define gdk_gl_glIsVariantEnabledEXT(proc, id, cap) \
+ ( ((GdkGLProc_glIsVariantEnabledEXT) (proc)) (id, cap) )
+
+/* glGetVariantBooleanvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetVariantBooleanvEXT) (GLuint id, GLenum value, GLboolean *data);
+GdkGLProc gdk_gl_get_glGetVariantBooleanvEXT (void);
+#define gdk_gl_glGetVariantBooleanvEXT(proc, id, value, data) \
+ ( ((GdkGLProc_glGetVariantBooleanvEXT) (proc)) (id, value, data) )
+
+/* glGetVariantIntegervEXT */
+typedef void (APIENTRY * GdkGLProc_glGetVariantIntegervEXT) (GLuint id, GLenum value, GLint *data);
+GdkGLProc gdk_gl_get_glGetVariantIntegervEXT (void);
+#define gdk_gl_glGetVariantIntegervEXT(proc, id, value, data) \
+ ( ((GdkGLProc_glGetVariantIntegervEXT) (proc)) (id, value, data) )
+
+/* glGetVariantFloatvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetVariantFloatvEXT) (GLuint id, GLenum value, GLfloat *data);
+GdkGLProc gdk_gl_get_glGetVariantFloatvEXT (void);
+#define gdk_gl_glGetVariantFloatvEXT(proc, id, value, data) \
+ ( ((GdkGLProc_glGetVariantFloatvEXT) (proc)) (id, value, data) )
+
+/* glGetVariantPointervEXT */
+typedef void (APIENTRY * GdkGLProc_glGetVariantPointervEXT) (GLuint id, GLenum value, GLvoid* *data);
+GdkGLProc gdk_gl_get_glGetVariantPointervEXT (void);
+#define gdk_gl_glGetVariantPointervEXT(proc, id, value, data) \
+ ( ((GdkGLProc_glGetVariantPointervEXT) (proc)) (id, value, data) )
+
+/* glGetInvariantBooleanvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetInvariantBooleanvEXT) (GLuint id, GLenum value, GLboolean *data);
+GdkGLProc gdk_gl_get_glGetInvariantBooleanvEXT (void);
+#define gdk_gl_glGetInvariantBooleanvEXT(proc, id, value, data) \
+ ( ((GdkGLProc_glGetInvariantBooleanvEXT) (proc)) (id, value, data) )
+
+/* glGetInvariantIntegervEXT */
+typedef void (APIENTRY * GdkGLProc_glGetInvariantIntegervEXT) (GLuint id, GLenum value, GLint *data);
+GdkGLProc gdk_gl_get_glGetInvariantIntegervEXT (void);
+#define gdk_gl_glGetInvariantIntegervEXT(proc, id, value, data) \
+ ( ((GdkGLProc_glGetInvariantIntegervEXT) (proc)) (id, value, data) )
+
+/* glGetInvariantFloatvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetInvariantFloatvEXT) (GLuint id, GLenum value, GLfloat *data);
+GdkGLProc gdk_gl_get_glGetInvariantFloatvEXT (void);
+#define gdk_gl_glGetInvariantFloatvEXT(proc, id, value, data) \
+ ( ((GdkGLProc_glGetInvariantFloatvEXT) (proc)) (id, value, data) )
+
+/* glGetLocalConstantBooleanvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetLocalConstantBooleanvEXT) (GLuint id, GLenum value, GLboolean *data);
+GdkGLProc gdk_gl_get_glGetLocalConstantBooleanvEXT (void);
+#define gdk_gl_glGetLocalConstantBooleanvEXT(proc, id, value, data) \
+ ( ((GdkGLProc_glGetLocalConstantBooleanvEXT) (proc)) (id, value, data) )
+
+/* glGetLocalConstantIntegervEXT */
+typedef void (APIENTRY * GdkGLProc_glGetLocalConstantIntegervEXT) (GLuint id, GLenum value, GLint *data);
+GdkGLProc gdk_gl_get_glGetLocalConstantIntegervEXT (void);
+#define gdk_gl_glGetLocalConstantIntegervEXT(proc, id, value, data) \
+ ( ((GdkGLProc_glGetLocalConstantIntegervEXT) (proc)) (id, value, data) )
+
+/* glGetLocalConstantFloatvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetLocalConstantFloatvEXT) (GLuint id, GLenum value, GLfloat *data);
+GdkGLProc gdk_gl_get_glGetLocalConstantFloatvEXT (void);
+#define gdk_gl_glGetLocalConstantFloatvEXT(proc, id, value, data) \
+ ( ((GdkGLProc_glGetLocalConstantFloatvEXT) (proc)) (id, value, data) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_vertex_shader GdkGL_GL_EXT_vertex_shader;
+
+struct _GdkGL_GL_EXT_vertex_shader
+{
+ GdkGLProc_glBeginVertexShaderEXT glBeginVertexShaderEXT;
+ GdkGLProc_glEndVertexShaderEXT glEndVertexShaderEXT;
+ GdkGLProc_glBindVertexShaderEXT glBindVertexShaderEXT;
+ GdkGLProc_glGenVertexShadersEXT glGenVertexShadersEXT;
+ GdkGLProc_glDeleteVertexShaderEXT glDeleteVertexShaderEXT;
+ GdkGLProc_glShaderOp1EXT glShaderOp1EXT;
+ GdkGLProc_glShaderOp2EXT glShaderOp2EXT;
+ GdkGLProc_glShaderOp3EXT glShaderOp3EXT;
+ GdkGLProc_glSwizzleEXT glSwizzleEXT;
+ GdkGLProc_glWriteMaskEXT glWriteMaskEXT;
+ GdkGLProc_glInsertComponentEXT glInsertComponentEXT;
+ GdkGLProc_glExtractComponentEXT glExtractComponentEXT;
+ GdkGLProc_glGenSymbolsEXT glGenSymbolsEXT;
+ GdkGLProc_glSetInvariantEXT glSetInvariantEXT;
+ GdkGLProc_glSetLocalConstantEXT glSetLocalConstantEXT;
+ GdkGLProc_glVariantbvEXT glVariantbvEXT;
+ GdkGLProc_glVariantsvEXT glVariantsvEXT;
+ GdkGLProc_glVariantivEXT glVariantivEXT;
+ GdkGLProc_glVariantfvEXT glVariantfvEXT;
+ GdkGLProc_glVariantdvEXT glVariantdvEXT;
+ GdkGLProc_glVariantubvEXT glVariantubvEXT;
+ GdkGLProc_glVariantusvEXT glVariantusvEXT;
+ GdkGLProc_glVariantuivEXT glVariantuivEXT;
+ GdkGLProc_glVariantPointerEXT glVariantPointerEXT;
+ GdkGLProc_glEnableVariantClientStateEXT glEnableVariantClientStateEXT;
+ GdkGLProc_glDisableVariantClientStateEXT glDisableVariantClientStateEXT;
+ GdkGLProc_glBindLightParameterEXT glBindLightParameterEXT;
+ GdkGLProc_glBindMaterialParameterEXT glBindMaterialParameterEXT;
+ GdkGLProc_glBindTexGenParameterEXT glBindTexGenParameterEXT;
+ GdkGLProc_glBindTextureUnitParameterEXT glBindTextureUnitParameterEXT;
+ GdkGLProc_glBindParameterEXT glBindParameterEXT;
+ GdkGLProc_glIsVariantEnabledEXT glIsVariantEnabledEXT;
+ GdkGLProc_glGetVariantBooleanvEXT glGetVariantBooleanvEXT;
+ GdkGLProc_glGetVariantIntegervEXT glGetVariantIntegervEXT;
+ GdkGLProc_glGetVariantFloatvEXT glGetVariantFloatvEXT;
+ GdkGLProc_glGetVariantPointervEXT glGetVariantPointervEXT;
+ GdkGLProc_glGetInvariantBooleanvEXT glGetInvariantBooleanvEXT;
+ GdkGLProc_glGetInvariantIntegervEXT glGetInvariantIntegervEXT;
+ GdkGLProc_glGetInvariantFloatvEXT glGetInvariantFloatvEXT;
+ GdkGLProc_glGetLocalConstantBooleanvEXT glGetLocalConstantBooleanvEXT;
+ GdkGLProc_glGetLocalConstantIntegervEXT glGetLocalConstantIntegervEXT;
+ GdkGLProc_glGetLocalConstantFloatvEXT glGetLocalConstantFloatvEXT;
+};
+
+GdkGL_GL_EXT_vertex_shader *gdk_gl_get_GL_EXT_vertex_shader (void);
+
+/*
+ * GL_ATI_vertex_streams
+ */
+
+/* glVertexStream1sATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream1sATI) (GLenum stream, GLshort x);
+GdkGLProc gdk_gl_get_glVertexStream1sATI (void);
+#define gdk_gl_glVertexStream1sATI(proc, stream, x) \
+ ( ((GdkGLProc_glVertexStream1sATI) (proc)) (stream, x) )
+
+/* glVertexStream1svATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream1svATI) (GLenum stream, const GLshort *coords);
+GdkGLProc gdk_gl_get_glVertexStream1svATI (void);
+#define gdk_gl_glVertexStream1svATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream1svATI) (proc)) (stream, coords) )
+
+/* glVertexStream1iATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream1iATI) (GLenum stream, GLint x);
+GdkGLProc gdk_gl_get_glVertexStream1iATI (void);
+#define gdk_gl_glVertexStream1iATI(proc, stream, x) \
+ ( ((GdkGLProc_glVertexStream1iATI) (proc)) (stream, x) )
+
+/* glVertexStream1ivATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream1ivATI) (GLenum stream, const GLint *coords);
+GdkGLProc gdk_gl_get_glVertexStream1ivATI (void);
+#define gdk_gl_glVertexStream1ivATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream1ivATI) (proc)) (stream, coords) )
+
+/* glVertexStream1fATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream1fATI) (GLenum stream, GLfloat x);
+GdkGLProc gdk_gl_get_glVertexStream1fATI (void);
+#define gdk_gl_glVertexStream1fATI(proc, stream, x) \
+ ( ((GdkGLProc_glVertexStream1fATI) (proc)) (stream, x) )
+
+/* glVertexStream1fvATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream1fvATI) (GLenum stream, const GLfloat *coords);
+GdkGLProc gdk_gl_get_glVertexStream1fvATI (void);
+#define gdk_gl_glVertexStream1fvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream1fvATI) (proc)) (stream, coords) )
+
+/* glVertexStream1dATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream1dATI) (GLenum stream, GLdouble x);
+GdkGLProc gdk_gl_get_glVertexStream1dATI (void);
+#define gdk_gl_glVertexStream1dATI(proc, stream, x) \
+ ( ((GdkGLProc_glVertexStream1dATI) (proc)) (stream, x) )
+
+/* glVertexStream1dvATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream1dvATI) (GLenum stream, const GLdouble *coords);
+GdkGLProc gdk_gl_get_glVertexStream1dvATI (void);
+#define gdk_gl_glVertexStream1dvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream1dvATI) (proc)) (stream, coords) )
+
+/* glVertexStream2sATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream2sATI) (GLenum stream, GLshort x, GLshort y);
+GdkGLProc gdk_gl_get_glVertexStream2sATI (void);
+#define gdk_gl_glVertexStream2sATI(proc, stream, x, y) \
+ ( ((GdkGLProc_glVertexStream2sATI) (proc)) (stream, x, y) )
+
+/* glVertexStream2svATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream2svATI) (GLenum stream, const GLshort *coords);
+GdkGLProc gdk_gl_get_glVertexStream2svATI (void);
+#define gdk_gl_glVertexStream2svATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream2svATI) (proc)) (stream, coords) )
+
+/* glVertexStream2iATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream2iATI) (GLenum stream, GLint x, GLint y);
+GdkGLProc gdk_gl_get_glVertexStream2iATI (void);
+#define gdk_gl_glVertexStream2iATI(proc, stream, x, y) \
+ ( ((GdkGLProc_glVertexStream2iATI) (proc)) (stream, x, y) )
+
+/* glVertexStream2ivATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream2ivATI) (GLenum stream, const GLint *coords);
+GdkGLProc gdk_gl_get_glVertexStream2ivATI (void);
+#define gdk_gl_glVertexStream2ivATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream2ivATI) (proc)) (stream, coords) )
+
+/* glVertexStream2fATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream2fATI) (GLenum stream, GLfloat x, GLfloat y);
+GdkGLProc gdk_gl_get_glVertexStream2fATI (void);
+#define gdk_gl_glVertexStream2fATI(proc, stream, x, y) \
+ ( ((GdkGLProc_glVertexStream2fATI) (proc)) (stream, x, y) )
+
+/* glVertexStream2fvATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream2fvATI) (GLenum stream, const GLfloat *coords);
+GdkGLProc gdk_gl_get_glVertexStream2fvATI (void);
+#define gdk_gl_glVertexStream2fvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream2fvATI) (proc)) (stream, coords) )
+
+/* glVertexStream2dATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream2dATI) (GLenum stream, GLdouble x, GLdouble y);
+GdkGLProc gdk_gl_get_glVertexStream2dATI (void);
+#define gdk_gl_glVertexStream2dATI(proc, stream, x, y) \
+ ( ((GdkGLProc_glVertexStream2dATI) (proc)) (stream, x, y) )
+
+/* glVertexStream2dvATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream2dvATI) (GLenum stream, const GLdouble *coords);
+GdkGLProc gdk_gl_get_glVertexStream2dvATI (void);
+#define gdk_gl_glVertexStream2dvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream2dvATI) (proc)) (stream, coords) )
+
+/* glVertexStream3sATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream3sATI) (GLenum stream, GLshort x, GLshort y, GLshort z);
+GdkGLProc gdk_gl_get_glVertexStream3sATI (void);
+#define gdk_gl_glVertexStream3sATI(proc, stream, x, y, z) \
+ ( ((GdkGLProc_glVertexStream3sATI) (proc)) (stream, x, y, z) )
+
+/* glVertexStream3svATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream3svATI) (GLenum stream, const GLshort *coords);
+GdkGLProc gdk_gl_get_glVertexStream3svATI (void);
+#define gdk_gl_glVertexStream3svATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream3svATI) (proc)) (stream, coords) )
+
+/* glVertexStream3iATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream3iATI) (GLenum stream, GLint x, GLint y, GLint z);
+GdkGLProc gdk_gl_get_glVertexStream3iATI (void);
+#define gdk_gl_glVertexStream3iATI(proc, stream, x, y, z) \
+ ( ((GdkGLProc_glVertexStream3iATI) (proc)) (stream, x, y, z) )
+
+/* glVertexStream3ivATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream3ivATI) (GLenum stream, const GLint *coords);
+GdkGLProc gdk_gl_get_glVertexStream3ivATI (void);
+#define gdk_gl_glVertexStream3ivATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream3ivATI) (proc)) (stream, coords) )
+
+/* glVertexStream3fATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream3fATI) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
+GdkGLProc gdk_gl_get_glVertexStream3fATI (void);
+#define gdk_gl_glVertexStream3fATI(proc, stream, x, y, z) \
+ ( ((GdkGLProc_glVertexStream3fATI) (proc)) (stream, x, y, z) )
+
+/* glVertexStream3fvATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream3fvATI) (GLenum stream, const GLfloat *coords);
+GdkGLProc gdk_gl_get_glVertexStream3fvATI (void);
+#define gdk_gl_glVertexStream3fvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream3fvATI) (proc)) (stream, coords) )
+
+/* glVertexStream3dATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream3dATI) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
+GdkGLProc gdk_gl_get_glVertexStream3dATI (void);
+#define gdk_gl_glVertexStream3dATI(proc, stream, x, y, z) \
+ ( ((GdkGLProc_glVertexStream3dATI) (proc)) (stream, x, y, z) )
+
+/* glVertexStream3dvATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream3dvATI) (GLenum stream, const GLdouble *coords);
+GdkGLProc gdk_gl_get_glVertexStream3dvATI (void);
+#define gdk_gl_glVertexStream3dvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream3dvATI) (proc)) (stream, coords) )
+
+/* glVertexStream4sATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream4sATI) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
+GdkGLProc gdk_gl_get_glVertexStream4sATI (void);
+#define gdk_gl_glVertexStream4sATI(proc, stream, x, y, z, w) \
+ ( ((GdkGLProc_glVertexStream4sATI) (proc)) (stream, x, y, z, w) )
+
+/* glVertexStream4svATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream4svATI) (GLenum stream, const GLshort *coords);
+GdkGLProc gdk_gl_get_glVertexStream4svATI (void);
+#define gdk_gl_glVertexStream4svATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream4svATI) (proc)) (stream, coords) )
+
+/* glVertexStream4iATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream4iATI) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
+GdkGLProc gdk_gl_get_glVertexStream4iATI (void);
+#define gdk_gl_glVertexStream4iATI(proc, stream, x, y, z, w) \
+ ( ((GdkGLProc_glVertexStream4iATI) (proc)) (stream, x, y, z, w) )
+
+/* glVertexStream4ivATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream4ivATI) (GLenum stream, const GLint *coords);
+GdkGLProc gdk_gl_get_glVertexStream4ivATI (void);
+#define gdk_gl_glVertexStream4ivATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream4ivATI) (proc)) (stream, coords) )
+
+/* glVertexStream4fATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream4fATI) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GdkGLProc gdk_gl_get_glVertexStream4fATI (void);
+#define gdk_gl_glVertexStream4fATI(proc, stream, x, y, z, w) \
+ ( ((GdkGLProc_glVertexStream4fATI) (proc)) (stream, x, y, z, w) )
+
+/* glVertexStream4fvATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream4fvATI) (GLenum stream, const GLfloat *coords);
+GdkGLProc gdk_gl_get_glVertexStream4fvATI (void);
+#define gdk_gl_glVertexStream4fvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream4fvATI) (proc)) (stream, coords) )
+
+/* glVertexStream4dATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream4dATI) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GdkGLProc gdk_gl_get_glVertexStream4dATI (void);
+#define gdk_gl_glVertexStream4dATI(proc, stream, x, y, z, w) \
+ ( ((GdkGLProc_glVertexStream4dATI) (proc)) (stream, x, y, z, w) )
+
+/* glVertexStream4dvATI */
+typedef void (APIENTRY * GdkGLProc_glVertexStream4dvATI) (GLenum stream, const GLdouble *coords);
+GdkGLProc gdk_gl_get_glVertexStream4dvATI (void);
+#define gdk_gl_glVertexStream4dvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glVertexStream4dvATI) (proc)) (stream, coords) )
+
+/* glNormalStream3bATI */
+typedef void (APIENTRY * GdkGLProc_glNormalStream3bATI) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
+GdkGLProc gdk_gl_get_glNormalStream3bATI (void);
+#define gdk_gl_glNormalStream3bATI(proc, stream, nx, ny, nz) \
+ ( ((GdkGLProc_glNormalStream3bATI) (proc)) (stream, nx, ny, nz) )
+
+/* glNormalStream3bvATI */
+typedef void (APIENTRY * GdkGLProc_glNormalStream3bvATI) (GLenum stream, const GLbyte *coords);
+GdkGLProc gdk_gl_get_glNormalStream3bvATI (void);
+#define gdk_gl_glNormalStream3bvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glNormalStream3bvATI) (proc)) (stream, coords) )
+
+/* glNormalStream3sATI */
+typedef void (APIENTRY * GdkGLProc_glNormalStream3sATI) (GLenum stream, GLshort nx, GLshort ny, GLshort nz);
+GdkGLProc gdk_gl_get_glNormalStream3sATI (void);
+#define gdk_gl_glNormalStream3sATI(proc, stream, nx, ny, nz) \
+ ( ((GdkGLProc_glNormalStream3sATI) (proc)) (stream, nx, ny, nz) )
+
+/* glNormalStream3svATI */
+typedef void (APIENTRY * GdkGLProc_glNormalStream3svATI) (GLenum stream, const GLshort *coords);
+GdkGLProc gdk_gl_get_glNormalStream3svATI (void);
+#define gdk_gl_glNormalStream3svATI(proc, stream, coords) \
+ ( ((GdkGLProc_glNormalStream3svATI) (proc)) (stream, coords) )
+
+/* glNormalStream3iATI */
+typedef void (APIENTRY * GdkGLProc_glNormalStream3iATI) (GLenum stream, GLint nx, GLint ny, GLint nz);
+GdkGLProc gdk_gl_get_glNormalStream3iATI (void);
+#define gdk_gl_glNormalStream3iATI(proc, stream, nx, ny, nz) \
+ ( ((GdkGLProc_glNormalStream3iATI) (proc)) (stream, nx, ny, nz) )
+
+/* glNormalStream3ivATI */
+typedef void (APIENTRY * GdkGLProc_glNormalStream3ivATI) (GLenum stream, const GLint *coords);
+GdkGLProc gdk_gl_get_glNormalStream3ivATI (void);
+#define gdk_gl_glNormalStream3ivATI(proc, stream, coords) \
+ ( ((GdkGLProc_glNormalStream3ivATI) (proc)) (stream, coords) )
+
+/* glNormalStream3fATI */
+typedef void (APIENTRY * GdkGLProc_glNormalStream3fATI) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
+GdkGLProc gdk_gl_get_glNormalStream3fATI (void);
+#define gdk_gl_glNormalStream3fATI(proc, stream, nx, ny, nz) \
+ ( ((GdkGLProc_glNormalStream3fATI) (proc)) (stream, nx, ny, nz) )
+
+/* glNormalStream3fvATI */
+typedef void (APIENTRY * GdkGLProc_glNormalStream3fvATI) (GLenum stream, const GLfloat *coords);
+GdkGLProc gdk_gl_get_glNormalStream3fvATI (void);
+#define gdk_gl_glNormalStream3fvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glNormalStream3fvATI) (proc)) (stream, coords) )
+
+/* glNormalStream3dATI */
+typedef void (APIENTRY * GdkGLProc_glNormalStream3dATI) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
+GdkGLProc gdk_gl_get_glNormalStream3dATI (void);
+#define gdk_gl_glNormalStream3dATI(proc, stream, nx, ny, nz) \
+ ( ((GdkGLProc_glNormalStream3dATI) (proc)) (stream, nx, ny, nz) )
+
+/* glNormalStream3dvATI */
+typedef void (APIENTRY * GdkGLProc_glNormalStream3dvATI) (GLenum stream, const GLdouble *coords);
+GdkGLProc gdk_gl_get_glNormalStream3dvATI (void);
+#define gdk_gl_glNormalStream3dvATI(proc, stream, coords) \
+ ( ((GdkGLProc_glNormalStream3dvATI) (proc)) (stream, coords) )
+
+/* glClientActiveVertexStreamATI */
+typedef void (APIENTRY * GdkGLProc_glClientActiveVertexStreamATI) (GLenum stream);
+GdkGLProc gdk_gl_get_glClientActiveVertexStreamATI (void);
+#define gdk_gl_glClientActiveVertexStreamATI(proc, stream) \
+ ( ((GdkGLProc_glClientActiveVertexStreamATI) (proc)) (stream) )
+
+/* glVertexBlendEnviATI */
+typedef void (APIENTRY * GdkGLProc_glVertexBlendEnviATI) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glVertexBlendEnviATI (void);
+#define gdk_gl_glVertexBlendEnviATI(proc, pname, param) \
+ ( ((GdkGLProc_glVertexBlendEnviATI) (proc)) (pname, param) )
+
+/* glVertexBlendEnvfATI */
+typedef void (APIENTRY * GdkGLProc_glVertexBlendEnvfATI) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glVertexBlendEnvfATI (void);
+#define gdk_gl_glVertexBlendEnvfATI(proc, pname, param) \
+ ( ((GdkGLProc_glVertexBlendEnvfATI) (proc)) (pname, param) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_vertex_streams GdkGL_GL_ATI_vertex_streams;
+
+struct _GdkGL_GL_ATI_vertex_streams
+{
+ GdkGLProc_glVertexStream1sATI glVertexStream1sATI;
+ GdkGLProc_glVertexStream1svATI glVertexStream1svATI;
+ GdkGLProc_glVertexStream1iATI glVertexStream1iATI;
+ GdkGLProc_glVertexStream1ivATI glVertexStream1ivATI;
+ GdkGLProc_glVertexStream1fATI glVertexStream1fATI;
+ GdkGLProc_glVertexStream1fvATI glVertexStream1fvATI;
+ GdkGLProc_glVertexStream1dATI glVertexStream1dATI;
+ GdkGLProc_glVertexStream1dvATI glVertexStream1dvATI;
+ GdkGLProc_glVertexStream2sATI glVertexStream2sATI;
+ GdkGLProc_glVertexStream2svATI glVertexStream2svATI;
+ GdkGLProc_glVertexStream2iATI glVertexStream2iATI;
+ GdkGLProc_glVertexStream2ivATI glVertexStream2ivATI;
+ GdkGLProc_glVertexStream2fATI glVertexStream2fATI;
+ GdkGLProc_glVertexStream2fvATI glVertexStream2fvATI;
+ GdkGLProc_glVertexStream2dATI glVertexStream2dATI;
+ GdkGLProc_glVertexStream2dvATI glVertexStream2dvATI;
+ GdkGLProc_glVertexStream3sATI glVertexStream3sATI;
+ GdkGLProc_glVertexStream3svATI glVertexStream3svATI;
+ GdkGLProc_glVertexStream3iATI glVertexStream3iATI;
+ GdkGLProc_glVertexStream3ivATI glVertexStream3ivATI;
+ GdkGLProc_glVertexStream3fATI glVertexStream3fATI;
+ GdkGLProc_glVertexStream3fvATI glVertexStream3fvATI;
+ GdkGLProc_glVertexStream3dATI glVertexStream3dATI;
+ GdkGLProc_glVertexStream3dvATI glVertexStream3dvATI;
+ GdkGLProc_glVertexStream4sATI glVertexStream4sATI;
+ GdkGLProc_glVertexStream4svATI glVertexStream4svATI;
+ GdkGLProc_glVertexStream4iATI glVertexStream4iATI;
+ GdkGLProc_glVertexStream4ivATI glVertexStream4ivATI;
+ GdkGLProc_glVertexStream4fATI glVertexStream4fATI;
+ GdkGLProc_glVertexStream4fvATI glVertexStream4fvATI;
+ GdkGLProc_glVertexStream4dATI glVertexStream4dATI;
+ GdkGLProc_glVertexStream4dvATI glVertexStream4dvATI;
+ GdkGLProc_glNormalStream3bATI glNormalStream3bATI;
+ GdkGLProc_glNormalStream3bvATI glNormalStream3bvATI;
+ GdkGLProc_glNormalStream3sATI glNormalStream3sATI;
+ GdkGLProc_glNormalStream3svATI glNormalStream3svATI;
+ GdkGLProc_glNormalStream3iATI glNormalStream3iATI;
+ GdkGLProc_glNormalStream3ivATI glNormalStream3ivATI;
+ GdkGLProc_glNormalStream3fATI glNormalStream3fATI;
+ GdkGLProc_glNormalStream3fvATI glNormalStream3fvATI;
+ GdkGLProc_glNormalStream3dATI glNormalStream3dATI;
+ GdkGLProc_glNormalStream3dvATI glNormalStream3dvATI;
+ GdkGLProc_glClientActiveVertexStreamATI glClientActiveVertexStreamATI;
+ GdkGLProc_glVertexBlendEnviATI glVertexBlendEnviATI;
+ GdkGLProc_glVertexBlendEnvfATI glVertexBlendEnvfATI;
+};
+
+GdkGL_GL_ATI_vertex_streams *gdk_gl_get_GL_ATI_vertex_streams (void);
+
+/*
+ * GL_ATI_element_array
+ */
+
+/* glElementPointerATI */
+typedef void (APIENTRY * GdkGLProc_glElementPointerATI) (GLenum type, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glElementPointerATI (void);
+#define gdk_gl_glElementPointerATI(proc, type, pointer) \
+ ( ((GdkGLProc_glElementPointerATI) (proc)) (type, pointer) )
+
+/* glDrawElementArrayATI */
+typedef void (APIENTRY * GdkGLProc_glDrawElementArrayATI) (GLenum mode, GLsizei count);
+GdkGLProc gdk_gl_get_glDrawElementArrayATI (void);
+#define gdk_gl_glDrawElementArrayATI(proc, mode, count) \
+ ( ((GdkGLProc_glDrawElementArrayATI) (proc)) (mode, count) )
+
+/* glDrawRangeElementArrayATI */
+typedef void (APIENTRY * GdkGLProc_glDrawRangeElementArrayATI) (GLenum mode, GLuint start, GLuint end, GLsizei count);
+GdkGLProc gdk_gl_get_glDrawRangeElementArrayATI (void);
+#define gdk_gl_glDrawRangeElementArrayATI(proc, mode, start, end, count) \
+ ( ((GdkGLProc_glDrawRangeElementArrayATI) (proc)) (mode, start, end, count) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_element_array GdkGL_GL_ATI_element_array;
+
+struct _GdkGL_GL_ATI_element_array
+{
+ GdkGLProc_glElementPointerATI glElementPointerATI;
+ GdkGLProc_glDrawElementArrayATI glDrawElementArrayATI;
+ GdkGLProc_glDrawRangeElementArrayATI glDrawRangeElementArrayATI;
+};
+
+GdkGL_GL_ATI_element_array *gdk_gl_get_GL_ATI_element_array (void);
+
+/*
+ * GL_SUN_mesh_array
+ */
+
+/* glDrawMeshArraysSUN */
+typedef void (APIENTRY * GdkGLProc_glDrawMeshArraysSUN) (GLenum mode, GLint first, GLsizei count, GLsizei width);
+GdkGLProc gdk_gl_get_glDrawMeshArraysSUN (void);
+#define gdk_gl_glDrawMeshArraysSUN(proc, mode, first, count, width) \
+ ( ((GdkGLProc_glDrawMeshArraysSUN) (proc)) (mode, first, count, width) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SUN_mesh_array GdkGL_GL_SUN_mesh_array;
+
+struct _GdkGL_GL_SUN_mesh_array
+{
+ GdkGLProc_glDrawMeshArraysSUN glDrawMeshArraysSUN;
+};
+
+GdkGL_GL_SUN_mesh_array *gdk_gl_get_GL_SUN_mesh_array (void);
+
+/*
+ * GL_NV_occlusion_query
+ */
+
+/* glGenOcclusionQueriesNV */
+typedef void (APIENTRY * GdkGLProc_glGenOcclusionQueriesNV) (GLsizei n, GLuint *ids);
+GdkGLProc gdk_gl_get_glGenOcclusionQueriesNV (void);
+#define gdk_gl_glGenOcclusionQueriesNV(proc, n, ids) \
+ ( ((GdkGLProc_glGenOcclusionQueriesNV) (proc)) (n, ids) )
+
+/* glDeleteOcclusionQueriesNV */
+typedef void (APIENTRY * GdkGLProc_glDeleteOcclusionQueriesNV) (GLsizei n, const GLuint *ids);
+GdkGLProc gdk_gl_get_glDeleteOcclusionQueriesNV (void);
+#define gdk_gl_glDeleteOcclusionQueriesNV(proc, n, ids) \
+ ( ((GdkGLProc_glDeleteOcclusionQueriesNV) (proc)) (n, ids) )
+
+/* glIsOcclusionQueryNV */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsOcclusionQueryNV) (GLuint id);
+GdkGLProc gdk_gl_get_glIsOcclusionQueryNV (void);
+#define gdk_gl_glIsOcclusionQueryNV(proc, id) \
+ ( ((GdkGLProc_glIsOcclusionQueryNV) (proc)) (id) )
+
+/* glBeginOcclusionQueryNV */
+typedef void (APIENTRY * GdkGLProc_glBeginOcclusionQueryNV) (GLuint id);
+GdkGLProc gdk_gl_get_glBeginOcclusionQueryNV (void);
+#define gdk_gl_glBeginOcclusionQueryNV(proc, id) \
+ ( ((GdkGLProc_glBeginOcclusionQueryNV) (proc)) (id) )
+
+/* glEndOcclusionQueryNV */
+typedef void (APIENTRY * GdkGLProc_glEndOcclusionQueryNV) (void);
+GdkGLProc gdk_gl_get_glEndOcclusionQueryNV (void);
+#define gdk_gl_glEndOcclusionQueryNV(proc) \
+ ( ((GdkGLProc_glEndOcclusionQueryNV) (proc)) () )
+
+/* glGetOcclusionQueryivNV */
+typedef void (APIENTRY * GdkGLProc_glGetOcclusionQueryivNV) (GLuint id, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetOcclusionQueryivNV (void);
+#define gdk_gl_glGetOcclusionQueryivNV(proc, id, pname, params) \
+ ( ((GdkGLProc_glGetOcclusionQueryivNV) (proc)) (id, pname, params) )
+
+/* glGetOcclusionQueryuivNV */
+typedef void (APIENTRY * GdkGLProc_glGetOcclusionQueryuivNV) (GLuint id, GLenum pname, GLuint *params);
+GdkGLProc gdk_gl_get_glGetOcclusionQueryuivNV (void);
+#define gdk_gl_glGetOcclusionQueryuivNV(proc, id, pname, params) \
+ ( ((GdkGLProc_glGetOcclusionQueryuivNV) (proc)) (id, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_occlusion_query GdkGL_GL_NV_occlusion_query;
+
+struct _GdkGL_GL_NV_occlusion_query
+{
+ GdkGLProc_glGenOcclusionQueriesNV glGenOcclusionQueriesNV;
+ GdkGLProc_glDeleteOcclusionQueriesNV glDeleteOcclusionQueriesNV;
+ GdkGLProc_glIsOcclusionQueryNV glIsOcclusionQueryNV;
+ GdkGLProc_glBeginOcclusionQueryNV glBeginOcclusionQueryNV;
+ GdkGLProc_glEndOcclusionQueryNV glEndOcclusionQueryNV;
+ GdkGLProc_glGetOcclusionQueryivNV glGetOcclusionQueryivNV;
+ GdkGLProc_glGetOcclusionQueryuivNV glGetOcclusionQueryuivNV;
+};
+
+GdkGL_GL_NV_occlusion_query *gdk_gl_get_GL_NV_occlusion_query (void);
+
+/*
+ * GL_NV_point_sprite
+ */
+
+/* glPointParameteriNV */
+typedef void (APIENTRY * GdkGLProc_glPointParameteriNV) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glPointParameteriNV (void);
+#define gdk_gl_glPointParameteriNV(proc, pname, param) \
+ ( ((GdkGLProc_glPointParameteriNV) (proc)) (pname, param) )
+
+/* glPointParameterivNV */
+typedef void (APIENTRY * GdkGLProc_glPointParameterivNV) (GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glPointParameterivNV (void);
+#define gdk_gl_glPointParameterivNV(proc, pname, params) \
+ ( ((GdkGLProc_glPointParameterivNV) (proc)) (pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_point_sprite GdkGL_GL_NV_point_sprite;
+
+struct _GdkGL_GL_NV_point_sprite
+{
+ GdkGLProc_glPointParameteriNV glPointParameteriNV;
+ GdkGLProc_glPointParameterivNV glPointParameterivNV;
+};
+
+GdkGL_GL_NV_point_sprite *gdk_gl_get_GL_NV_point_sprite (void);
+
+/*
+ * GL_EXT_stencil_two_side
+ */
+
+/* glActiveStencilFaceEXT */
+typedef void (APIENTRY * GdkGLProc_glActiveStencilFaceEXT) (GLenum face);
+GdkGLProc gdk_gl_get_glActiveStencilFaceEXT (void);
+#define gdk_gl_glActiveStencilFaceEXT(proc, face) \
+ ( ((GdkGLProc_glActiveStencilFaceEXT) (proc)) (face) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_stencil_two_side GdkGL_GL_EXT_stencil_two_side;
+
+struct _GdkGL_GL_EXT_stencil_two_side
+{
+ GdkGLProc_glActiveStencilFaceEXT glActiveStencilFaceEXT;
+};
+
+GdkGL_GL_EXT_stencil_two_side *gdk_gl_get_GL_EXT_stencil_two_side (void);
+
+/*
+ * GL_APPLE_element_array
+ */
+
+/* glElementPointerAPPLE */
+typedef void (APIENTRY * GdkGLProc_glElementPointerAPPLE) (GLenum type, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glElementPointerAPPLE (void);
+#define gdk_gl_glElementPointerAPPLE(proc, type, pointer) \
+ ( ((GdkGLProc_glElementPointerAPPLE) (proc)) (type, pointer) )
+
+/* glDrawElementArrayAPPLE */
+typedef void (APIENTRY * GdkGLProc_glDrawElementArrayAPPLE) (GLenum mode, GLint first, GLsizei count);
+GdkGLProc gdk_gl_get_glDrawElementArrayAPPLE (void);
+#define gdk_gl_glDrawElementArrayAPPLE(proc, mode, first, count) \
+ ( ((GdkGLProc_glDrawElementArrayAPPLE) (proc)) (mode, first, count) )
+
+/* glDrawRangeElementArrayAPPLE */
+typedef void (APIENTRY * GdkGLProc_glDrawRangeElementArrayAPPLE) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
+GdkGLProc gdk_gl_get_glDrawRangeElementArrayAPPLE (void);
+#define gdk_gl_glDrawRangeElementArrayAPPLE(proc, mode, start, end, first, count) \
+ ( ((GdkGLProc_glDrawRangeElementArrayAPPLE) (proc)) (mode, start, end, first, count) )
+
+/* glMultiDrawElementArrayAPPLE */
+typedef void (APIENTRY * GdkGLProc_glMultiDrawElementArrayAPPLE) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
+GdkGLProc gdk_gl_get_glMultiDrawElementArrayAPPLE (void);
+#define gdk_gl_glMultiDrawElementArrayAPPLE(proc, mode, first, count, primcount) \
+ ( ((GdkGLProc_glMultiDrawElementArrayAPPLE) (proc)) (mode, first, count, primcount) )
+
+/* glMultiDrawRangeElementArrayAPPLE */
+typedef void (APIENTRY * GdkGLProc_glMultiDrawRangeElementArrayAPPLE) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
+GdkGLProc gdk_gl_get_glMultiDrawRangeElementArrayAPPLE (void);
+#define gdk_gl_glMultiDrawRangeElementArrayAPPLE(proc, mode, start, end, first, count, primcount) \
+ ( ((GdkGLProc_glMultiDrawRangeElementArrayAPPLE) (proc)) (mode, start, end, first, count, primcount) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_APPLE_element_array GdkGL_GL_APPLE_element_array;
+
+struct _GdkGL_GL_APPLE_element_array
+{
+ GdkGLProc_glElementPointerAPPLE glElementPointerAPPLE;
+ GdkGLProc_glDrawElementArrayAPPLE glDrawElementArrayAPPLE;
+ GdkGLProc_glDrawRangeElementArrayAPPLE glDrawRangeElementArrayAPPLE;
+ GdkGLProc_glMultiDrawElementArrayAPPLE glMultiDrawElementArrayAPPLE;
+ GdkGLProc_glMultiDrawRangeElementArrayAPPLE glMultiDrawRangeElementArrayAPPLE;
+};
+
+GdkGL_GL_APPLE_element_array *gdk_gl_get_GL_APPLE_element_array (void);
+
+/*
+ * GL_APPLE_fence
+ */
+
+/* glGenFencesAPPLE */
+typedef void (APIENTRY * GdkGLProc_glGenFencesAPPLE) (GLsizei n, GLuint *fences);
+GdkGLProc gdk_gl_get_glGenFencesAPPLE (void);
+#define gdk_gl_glGenFencesAPPLE(proc, n, fences) \
+ ( ((GdkGLProc_glGenFencesAPPLE) (proc)) (n, fences) )
+
+/* glDeleteFencesAPPLE */
+typedef void (APIENTRY * GdkGLProc_glDeleteFencesAPPLE) (GLsizei n, const GLuint *fences);
+GdkGLProc gdk_gl_get_glDeleteFencesAPPLE (void);
+#define gdk_gl_glDeleteFencesAPPLE(proc, n, fences) \
+ ( ((GdkGLProc_glDeleteFencesAPPLE) (proc)) (n, fences) )
+
+/* glSetFenceAPPLE */
+typedef void (APIENTRY * GdkGLProc_glSetFenceAPPLE) (GLuint fence);
+GdkGLProc gdk_gl_get_glSetFenceAPPLE (void);
+#define gdk_gl_glSetFenceAPPLE(proc, fence) \
+ ( ((GdkGLProc_glSetFenceAPPLE) (proc)) (fence) )
+
+/* glIsFenceAPPLE */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsFenceAPPLE) (GLuint fence);
+GdkGLProc gdk_gl_get_glIsFenceAPPLE (void);
+#define gdk_gl_glIsFenceAPPLE(proc, fence) \
+ ( ((GdkGLProc_glIsFenceAPPLE) (proc)) (fence) )
+
+/* glTestFenceAPPLE */
+typedef GLboolean (APIENTRY * GdkGLProc_glTestFenceAPPLE) (GLuint fence);
+GdkGLProc gdk_gl_get_glTestFenceAPPLE (void);
+#define gdk_gl_glTestFenceAPPLE(proc, fence) \
+ ( ((GdkGLProc_glTestFenceAPPLE) (proc)) (fence) )
+
+/* glFinishFenceAPPLE */
+typedef void (APIENTRY * GdkGLProc_glFinishFenceAPPLE) (GLuint fence);
+GdkGLProc gdk_gl_get_glFinishFenceAPPLE (void);
+#define gdk_gl_glFinishFenceAPPLE(proc, fence) \
+ ( ((GdkGLProc_glFinishFenceAPPLE) (proc)) (fence) )
+
+/* glTestObjectAPPLE */
+typedef GLboolean (APIENTRY * GdkGLProc_glTestObjectAPPLE) (GLenum object, GLuint name);
+GdkGLProc gdk_gl_get_glTestObjectAPPLE (void);
+#define gdk_gl_glTestObjectAPPLE(proc, object, name) \
+ ( ((GdkGLProc_glTestObjectAPPLE) (proc)) (object, name) )
+
+/* glFinishObjectAPPLE */
+typedef void (APIENTRY * GdkGLProc_glFinishObjectAPPLE) (GLenum object, GLint name);
+GdkGLProc gdk_gl_get_glFinishObjectAPPLE (void);
+#define gdk_gl_glFinishObjectAPPLE(proc, object, name) \
+ ( ((GdkGLProc_glFinishObjectAPPLE) (proc)) (object, name) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_APPLE_fence GdkGL_GL_APPLE_fence;
+
+struct _GdkGL_GL_APPLE_fence
+{
+ GdkGLProc_glGenFencesAPPLE glGenFencesAPPLE;
+ GdkGLProc_glDeleteFencesAPPLE glDeleteFencesAPPLE;
+ GdkGLProc_glSetFenceAPPLE glSetFenceAPPLE;
+ GdkGLProc_glIsFenceAPPLE glIsFenceAPPLE;
+ GdkGLProc_glTestFenceAPPLE glTestFenceAPPLE;
+ GdkGLProc_glFinishFenceAPPLE glFinishFenceAPPLE;
+ GdkGLProc_glTestObjectAPPLE glTestObjectAPPLE;
+ GdkGLProc_glFinishObjectAPPLE glFinishObjectAPPLE;
+};
+
+GdkGL_GL_APPLE_fence *gdk_gl_get_GL_APPLE_fence (void);
+
+/*
+ * GL_APPLE_vertex_array_object
+ */
+
+/* glBindVertexArrayAPPLE */
+typedef void (APIENTRY * GdkGLProc_glBindVertexArrayAPPLE) (GLuint array);
+GdkGLProc gdk_gl_get_glBindVertexArrayAPPLE (void);
+#define gdk_gl_glBindVertexArrayAPPLE(proc, array) \
+ ( ((GdkGLProc_glBindVertexArrayAPPLE) (proc)) (array) )
+
+/* glDeleteVertexArraysAPPLE */
+typedef void (APIENTRY * GdkGLProc_glDeleteVertexArraysAPPLE) (GLsizei n, const GLuint *arrays);
+GdkGLProc gdk_gl_get_glDeleteVertexArraysAPPLE (void);
+#define gdk_gl_glDeleteVertexArraysAPPLE(proc, n, arrays) \
+ ( ((GdkGLProc_glDeleteVertexArraysAPPLE) (proc)) (n, arrays) )
+
+/* glGenVertexArraysAPPLE */
+typedef void (APIENTRY * GdkGLProc_glGenVertexArraysAPPLE) (GLsizei n, const GLuint *arrays);
+GdkGLProc gdk_gl_get_glGenVertexArraysAPPLE (void);
+#define gdk_gl_glGenVertexArraysAPPLE(proc, n, arrays) \
+ ( ((GdkGLProc_glGenVertexArraysAPPLE) (proc)) (n, arrays) )
+
+/* glIsVertexArrayAPPLE */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsVertexArrayAPPLE) (GLuint array);
+GdkGLProc gdk_gl_get_glIsVertexArrayAPPLE (void);
+#define gdk_gl_glIsVertexArrayAPPLE(proc, array) \
+ ( ((GdkGLProc_glIsVertexArrayAPPLE) (proc)) (array) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_APPLE_vertex_array_object GdkGL_GL_APPLE_vertex_array_object;
+
+struct _GdkGL_GL_APPLE_vertex_array_object
+{
+ GdkGLProc_glBindVertexArrayAPPLE glBindVertexArrayAPPLE;
+ GdkGLProc_glDeleteVertexArraysAPPLE glDeleteVertexArraysAPPLE;
+ GdkGLProc_glGenVertexArraysAPPLE glGenVertexArraysAPPLE;
+ GdkGLProc_glIsVertexArrayAPPLE glIsVertexArrayAPPLE;
+};
+
+GdkGL_GL_APPLE_vertex_array_object *gdk_gl_get_GL_APPLE_vertex_array_object (void);
+
+/*
+ * GL_APPLE_vertex_array_range
+ */
+
+/* glVertexArrayRangeAPPLE */
+typedef void (APIENTRY * GdkGLProc_glVertexArrayRangeAPPLE) (GLsizei length, GLvoid *pointer);
+GdkGLProc gdk_gl_get_glVertexArrayRangeAPPLE (void);
+#define gdk_gl_glVertexArrayRangeAPPLE(proc, length, pointer) \
+ ( ((GdkGLProc_glVertexArrayRangeAPPLE) (proc)) (length, pointer) )
+
+/* glFlushVertexArrayRangeAPPLE */
+typedef void (APIENTRY * GdkGLProc_glFlushVertexArrayRangeAPPLE) (GLsizei length, GLvoid *pointer);
+GdkGLProc gdk_gl_get_glFlushVertexArrayRangeAPPLE (void);
+#define gdk_gl_glFlushVertexArrayRangeAPPLE(proc, length, pointer) \
+ ( ((GdkGLProc_glFlushVertexArrayRangeAPPLE) (proc)) (length, pointer) )
+
+/* glVertexArrayParameteriAPPLE */
+typedef void (APIENTRY * GdkGLProc_glVertexArrayParameteriAPPLE) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glVertexArrayParameteriAPPLE (void);
+#define gdk_gl_glVertexArrayParameteriAPPLE(proc, pname, param) \
+ ( ((GdkGLProc_glVertexArrayParameteriAPPLE) (proc)) (pname, param) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_APPLE_vertex_array_range GdkGL_GL_APPLE_vertex_array_range;
+
+struct _GdkGL_GL_APPLE_vertex_array_range
+{
+ GdkGLProc_glVertexArrayRangeAPPLE glVertexArrayRangeAPPLE;
+ GdkGLProc_glFlushVertexArrayRangeAPPLE glFlushVertexArrayRangeAPPLE;
+ GdkGLProc_glVertexArrayParameteriAPPLE glVertexArrayParameteriAPPLE;
+};
+
+GdkGL_GL_APPLE_vertex_array_range *gdk_gl_get_GL_APPLE_vertex_array_range (void);
+
+/*
+ * GL_ATI_draw_buffers
+ */
+
+/* glDrawBuffersATI */
+typedef void (APIENTRY * GdkGLProc_glDrawBuffersATI) (GLsizei n, const GLenum *bufs);
+GdkGLProc gdk_gl_get_glDrawBuffersATI (void);
+#define gdk_gl_glDrawBuffersATI(proc, n, bufs) \
+ ( ((GdkGLProc_glDrawBuffersATI) (proc)) (n, bufs) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_draw_buffers GdkGL_GL_ATI_draw_buffers;
+
+struct _GdkGL_GL_ATI_draw_buffers
+{
+ GdkGLProc_glDrawBuffersATI glDrawBuffersATI;
+};
+
+GdkGL_GL_ATI_draw_buffers *gdk_gl_get_GL_ATI_draw_buffers (void);
+
+/*
+ * GL_NV_fragment_program
+ */
+
+/* glProgramNamedParameter4fNV */
+typedef void (APIENTRY * GdkGLProc_glProgramNamedParameter4fNV) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GdkGLProc gdk_gl_get_glProgramNamedParameter4fNV (void);
+#define gdk_gl_glProgramNamedParameter4fNV(proc, id, len, name, x, y, z, w) \
+ ( ((GdkGLProc_glProgramNamedParameter4fNV) (proc)) (id, len, name, x, y, z, w) )
+
+/* glProgramNamedParameter4dNV */
+typedef void (APIENTRY * GdkGLProc_glProgramNamedParameter4dNV) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GdkGLProc gdk_gl_get_glProgramNamedParameter4dNV (void);
+#define gdk_gl_glProgramNamedParameter4dNV(proc, id, len, name, x, y, z, w) \
+ ( ((GdkGLProc_glProgramNamedParameter4dNV) (proc)) (id, len, name, x, y, z, w) )
+
+/* glProgramNamedParameter4fvNV */
+typedef void (APIENTRY * GdkGLProc_glProgramNamedParameter4fvNV) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
+GdkGLProc gdk_gl_get_glProgramNamedParameter4fvNV (void);
+#define gdk_gl_glProgramNamedParameter4fvNV(proc, id, len, name, v) \
+ ( ((GdkGLProc_glProgramNamedParameter4fvNV) (proc)) (id, len, name, v) )
+
+/* glProgramNamedParameter4dvNV */
+typedef void (APIENTRY * GdkGLProc_glProgramNamedParameter4dvNV) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
+GdkGLProc gdk_gl_get_glProgramNamedParameter4dvNV (void);
+#define gdk_gl_glProgramNamedParameter4dvNV(proc, id, len, name, v) \
+ ( ((GdkGLProc_glProgramNamedParameter4dvNV) (proc)) (id, len, name, v) )
+
+/* glGetProgramNamedParameterfvNV */
+typedef void (APIENTRY * GdkGLProc_glGetProgramNamedParameterfvNV) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetProgramNamedParameterfvNV (void);
+#define gdk_gl_glGetProgramNamedParameterfvNV(proc, id, len, name, params) \
+ ( ((GdkGLProc_glGetProgramNamedParameterfvNV) (proc)) (id, len, name, params) )
+
+/* glGetProgramNamedParameterdvNV */
+typedef void (APIENTRY * GdkGLProc_glGetProgramNamedParameterdvNV) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
+GdkGLProc gdk_gl_get_glGetProgramNamedParameterdvNV (void);
+#define gdk_gl_glGetProgramNamedParameterdvNV(proc, id, len, name, params) \
+ ( ((GdkGLProc_glGetProgramNamedParameterdvNV) (proc)) (id, len, name, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_fragment_program GdkGL_GL_NV_fragment_program;
+
+struct _GdkGL_GL_NV_fragment_program
+{
+ GdkGLProc_glProgramNamedParameter4fNV glProgramNamedParameter4fNV;
+ GdkGLProc_glProgramNamedParameter4dNV glProgramNamedParameter4dNV;
+ GdkGLProc_glProgramNamedParameter4fvNV glProgramNamedParameter4fvNV;
+ GdkGLProc_glProgramNamedParameter4dvNV glProgramNamedParameter4dvNV;
+ GdkGLProc_glGetProgramNamedParameterfvNV glGetProgramNamedParameterfvNV;
+ GdkGLProc_glGetProgramNamedParameterdvNV glGetProgramNamedParameterdvNV;
+};
+
+GdkGL_GL_NV_fragment_program *gdk_gl_get_GL_NV_fragment_program (void);
+
+/*
+ * GL_NV_half_float
+ */
+
+/* glVertex2hNV */
+typedef void (APIENTRY * GdkGLProc_glVertex2hNV) (GLhalfNV x, GLhalfNV y);
+GdkGLProc gdk_gl_get_glVertex2hNV (void);
+#define gdk_gl_glVertex2hNV(proc, x, y) \
+ ( ((GdkGLProc_glVertex2hNV) (proc)) (x, y) )
+
+/* glVertex2hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertex2hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertex2hvNV (void);
+#define gdk_gl_glVertex2hvNV(proc, v) \
+ ( ((GdkGLProc_glVertex2hvNV) (proc)) (v) )
+
+/* glVertex3hNV */
+typedef void (APIENTRY * GdkGLProc_glVertex3hNV) (GLhalfNV x, GLhalfNV y, GLhalfNV z);
+GdkGLProc gdk_gl_get_glVertex3hNV (void);
+#define gdk_gl_glVertex3hNV(proc, x, y, z) \
+ ( ((GdkGLProc_glVertex3hNV) (proc)) (x, y, z) )
+
+/* glVertex3hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertex3hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertex3hvNV (void);
+#define gdk_gl_glVertex3hvNV(proc, v) \
+ ( ((GdkGLProc_glVertex3hvNV) (proc)) (v) )
+
+/* glVertex4hNV */
+typedef void (APIENTRY * GdkGLProc_glVertex4hNV) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+GdkGLProc gdk_gl_get_glVertex4hNV (void);
+#define gdk_gl_glVertex4hNV(proc, x, y, z, w) \
+ ( ((GdkGLProc_glVertex4hNV) (proc)) (x, y, z, w) )
+
+/* glVertex4hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertex4hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertex4hvNV (void);
+#define gdk_gl_glVertex4hvNV(proc, v) \
+ ( ((GdkGLProc_glVertex4hvNV) (proc)) (v) )
+
+/* glNormal3hNV */
+typedef void (APIENTRY * GdkGLProc_glNormal3hNV) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
+GdkGLProc gdk_gl_get_glNormal3hNV (void);
+#define gdk_gl_glNormal3hNV(proc, nx, ny, nz) \
+ ( ((GdkGLProc_glNormal3hNV) (proc)) (nx, ny, nz) )
+
+/* glNormal3hvNV */
+typedef void (APIENTRY * GdkGLProc_glNormal3hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glNormal3hvNV (void);
+#define gdk_gl_glNormal3hvNV(proc, v) \
+ ( ((GdkGLProc_glNormal3hvNV) (proc)) (v) )
+
+/* glColor3hNV */
+typedef void (APIENTRY * GdkGLProc_glColor3hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+GdkGLProc gdk_gl_get_glColor3hNV (void);
+#define gdk_gl_glColor3hNV(proc, red, green, blue) \
+ ( ((GdkGLProc_glColor3hNV) (proc)) (red, green, blue) )
+
+/* glColor3hvNV */
+typedef void (APIENTRY * GdkGLProc_glColor3hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glColor3hvNV (void);
+#define gdk_gl_glColor3hvNV(proc, v) \
+ ( ((GdkGLProc_glColor3hvNV) (proc)) (v) )
+
+/* glColor4hNV */
+typedef void (APIENTRY * GdkGLProc_glColor4hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
+GdkGLProc gdk_gl_get_glColor4hNV (void);
+#define gdk_gl_glColor4hNV(proc, red, green, blue, alpha) \
+ ( ((GdkGLProc_glColor4hNV) (proc)) (red, green, blue, alpha) )
+
+/* glColor4hvNV */
+typedef void (APIENTRY * GdkGLProc_glColor4hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glColor4hvNV (void);
+#define gdk_gl_glColor4hvNV(proc, v) \
+ ( ((GdkGLProc_glColor4hvNV) (proc)) (v) )
+
+/* glTexCoord1hNV */
+typedef void (APIENTRY * GdkGLProc_glTexCoord1hNV) (GLhalfNV s);
+GdkGLProc gdk_gl_get_glTexCoord1hNV (void);
+#define gdk_gl_glTexCoord1hNV(proc, s) \
+ ( ((GdkGLProc_glTexCoord1hNV) (proc)) (s) )
+
+/* glTexCoord1hvNV */
+typedef void (APIENTRY * GdkGLProc_glTexCoord1hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glTexCoord1hvNV (void);
+#define gdk_gl_glTexCoord1hvNV(proc, v) \
+ ( ((GdkGLProc_glTexCoord1hvNV) (proc)) (v) )
+
+/* glTexCoord2hNV */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2hNV) (GLhalfNV s, GLhalfNV t);
+GdkGLProc gdk_gl_get_glTexCoord2hNV (void);
+#define gdk_gl_glTexCoord2hNV(proc, s, t) \
+ ( ((GdkGLProc_glTexCoord2hNV) (proc)) (s, t) )
+
+/* glTexCoord2hvNV */
+typedef void (APIENTRY * GdkGLProc_glTexCoord2hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glTexCoord2hvNV (void);
+#define gdk_gl_glTexCoord2hvNV(proc, v) \
+ ( ((GdkGLProc_glTexCoord2hvNV) (proc)) (v) )
+
+/* glTexCoord3hNV */
+typedef void (APIENTRY * GdkGLProc_glTexCoord3hNV) (GLhalfNV s, GLhalfNV t, GLhalfNV r);
+GdkGLProc gdk_gl_get_glTexCoord3hNV (void);
+#define gdk_gl_glTexCoord3hNV(proc, s, t, r) \
+ ( ((GdkGLProc_glTexCoord3hNV) (proc)) (s, t, r) )
+
+/* glTexCoord3hvNV */
+typedef void (APIENTRY * GdkGLProc_glTexCoord3hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glTexCoord3hvNV (void);
+#define gdk_gl_glTexCoord3hvNV(proc, v) \
+ ( ((GdkGLProc_glTexCoord3hvNV) (proc)) (v) )
+
+/* glTexCoord4hNV */
+typedef void (APIENTRY * GdkGLProc_glTexCoord4hNV) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+GdkGLProc gdk_gl_get_glTexCoord4hNV (void);
+#define gdk_gl_glTexCoord4hNV(proc, s, t, r, q) \
+ ( ((GdkGLProc_glTexCoord4hNV) (proc)) (s, t, r, q) )
+
+/* glTexCoord4hvNV */
+typedef void (APIENTRY * GdkGLProc_glTexCoord4hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glTexCoord4hvNV (void);
+#define gdk_gl_glTexCoord4hvNV(proc, v) \
+ ( ((GdkGLProc_glTexCoord4hvNV) (proc)) (v) )
+
+/* glMultiTexCoord1hNV */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1hNV) (GLenum target, GLhalfNV s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1hNV (void);
+#define gdk_gl_glMultiTexCoord1hNV(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1hNV) (proc)) (target, s) )
+
+/* glMultiTexCoord1hvNV */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1hvNV) (GLenum target, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1hvNV (void);
+#define gdk_gl_glMultiTexCoord1hvNV(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1hvNV) (proc)) (target, v) )
+
+/* glMultiTexCoord2hNV */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2hNV) (GLenum target, GLhalfNV s, GLhalfNV t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2hNV (void);
+#define gdk_gl_glMultiTexCoord2hNV(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2hNV) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2hvNV */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2hvNV) (GLenum target, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2hvNV (void);
+#define gdk_gl_glMultiTexCoord2hvNV(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2hvNV) (proc)) (target, v) )
+
+/* glMultiTexCoord3hNV */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3hNV) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3hNV (void);
+#define gdk_gl_glMultiTexCoord3hNV(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3hNV) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3hvNV */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3hvNV) (GLenum target, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3hvNV (void);
+#define gdk_gl_glMultiTexCoord3hvNV(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3hvNV) (proc)) (target, v) )
+
+/* glMultiTexCoord4hNV */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4hNV) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4hNV (void);
+#define gdk_gl_glMultiTexCoord4hNV(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4hNV) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4hvNV */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4hvNV) (GLenum target, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4hvNV (void);
+#define gdk_gl_glMultiTexCoord4hvNV(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4hvNV) (proc)) (target, v) )
+
+/* glFogCoordhNV */
+typedef void (APIENTRY * GdkGLProc_glFogCoordhNV) (GLhalfNV fog);
+GdkGLProc gdk_gl_get_glFogCoordhNV (void);
+#define gdk_gl_glFogCoordhNV(proc, fog) \
+ ( ((GdkGLProc_glFogCoordhNV) (proc)) (fog) )
+
+/* glFogCoordhvNV */
+typedef void (APIENTRY * GdkGLProc_glFogCoordhvNV) (const GLhalfNV *fog);
+GdkGLProc gdk_gl_get_glFogCoordhvNV (void);
+#define gdk_gl_glFogCoordhvNV(proc, fog) \
+ ( ((GdkGLProc_glFogCoordhvNV) (proc)) (fog) )
+
+/* glSecondaryColor3hNV */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+GdkGLProc gdk_gl_get_glSecondaryColor3hNV (void);
+#define gdk_gl_glSecondaryColor3hNV(proc, red, green, blue) \
+ ( ((GdkGLProc_glSecondaryColor3hNV) (proc)) (red, green, blue) )
+
+/* glSecondaryColor3hvNV */
+typedef void (APIENTRY * GdkGLProc_glSecondaryColor3hvNV) (const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glSecondaryColor3hvNV (void);
+#define gdk_gl_glSecondaryColor3hvNV(proc, v) \
+ ( ((GdkGLProc_glSecondaryColor3hvNV) (proc)) (v) )
+
+/* glVertexWeighthNV */
+typedef void (APIENTRY * GdkGLProc_glVertexWeighthNV) (GLhalfNV weight);
+GdkGLProc gdk_gl_get_glVertexWeighthNV (void);
+#define gdk_gl_glVertexWeighthNV(proc, weight) \
+ ( ((GdkGLProc_glVertexWeighthNV) (proc)) (weight) )
+
+/* glVertexWeighthvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexWeighthvNV) (const GLhalfNV *weight);
+GdkGLProc gdk_gl_get_glVertexWeighthvNV (void);
+#define gdk_gl_glVertexWeighthvNV(proc, weight) \
+ ( ((GdkGLProc_glVertexWeighthvNV) (proc)) (weight) )
+
+/* glVertexAttrib1hNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1hNV) (GLuint index, GLhalfNV x);
+GdkGLProc gdk_gl_get_glVertexAttrib1hNV (void);
+#define gdk_gl_glVertexAttrib1hNV(proc, index, x) \
+ ( ((GdkGLProc_glVertexAttrib1hNV) (proc)) (index, x) )
+
+/* glVertexAttrib1hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib1hvNV) (GLuint index, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertexAttrib1hvNV (void);
+#define gdk_gl_glVertexAttrib1hvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib1hvNV) (proc)) (index, v) )
+
+/* glVertexAttrib2hNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2hNV) (GLuint index, GLhalfNV x, GLhalfNV y);
+GdkGLProc gdk_gl_get_glVertexAttrib2hNV (void);
+#define gdk_gl_glVertexAttrib2hNV(proc, index, x, y) \
+ ( ((GdkGLProc_glVertexAttrib2hNV) (proc)) (index, x, y) )
+
+/* glVertexAttrib2hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib2hvNV) (GLuint index, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertexAttrib2hvNV (void);
+#define gdk_gl_glVertexAttrib2hvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib2hvNV) (proc)) (index, v) )
+
+/* glVertexAttrib3hNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3hNV) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
+GdkGLProc gdk_gl_get_glVertexAttrib3hNV (void);
+#define gdk_gl_glVertexAttrib3hNV(proc, index, x, y, z) \
+ ( ((GdkGLProc_glVertexAttrib3hNV) (proc)) (index, x, y, z) )
+
+/* glVertexAttrib3hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib3hvNV) (GLuint index, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertexAttrib3hvNV (void);
+#define gdk_gl_glVertexAttrib3hvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib3hvNV) (proc)) (index, v) )
+
+/* glVertexAttrib4hNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4hNV) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+GdkGLProc gdk_gl_get_glVertexAttrib4hNV (void);
+#define gdk_gl_glVertexAttrib4hNV(proc, index, x, y, z, w) \
+ ( ((GdkGLProc_glVertexAttrib4hNV) (proc)) (index, x, y, z, w) )
+
+/* glVertexAttrib4hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttrib4hvNV) (GLuint index, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertexAttrib4hvNV (void);
+#define gdk_gl_glVertexAttrib4hvNV(proc, index, v) \
+ ( ((GdkGLProc_glVertexAttrib4hvNV) (proc)) (index, v) )
+
+/* glVertexAttribs1hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs1hvNV) (GLuint index, GLsizei n, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertexAttribs1hvNV (void);
+#define gdk_gl_glVertexAttribs1hvNV(proc, index, n, v) \
+ ( ((GdkGLProc_glVertexAttribs1hvNV) (proc)) (index, n, v) )
+
+/* glVertexAttribs2hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs2hvNV) (GLuint index, GLsizei n, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertexAttribs2hvNV (void);
+#define gdk_gl_glVertexAttribs2hvNV(proc, index, n, v) \
+ ( ((GdkGLProc_glVertexAttribs2hvNV) (proc)) (index, n, v) )
+
+/* glVertexAttribs3hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs3hvNV) (GLuint index, GLsizei n, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertexAttribs3hvNV (void);
+#define gdk_gl_glVertexAttribs3hvNV(proc, index, n, v) \
+ ( ((GdkGLProc_glVertexAttribs3hvNV) (proc)) (index, n, v) )
+
+/* glVertexAttribs4hvNV */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribs4hvNV) (GLuint index, GLsizei n, const GLhalfNV *v);
+GdkGLProc gdk_gl_get_glVertexAttribs4hvNV (void);
+#define gdk_gl_glVertexAttribs4hvNV(proc, index, n, v) \
+ ( ((GdkGLProc_glVertexAttribs4hvNV) (proc)) (index, n, v) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_half_float GdkGL_GL_NV_half_float;
+
+struct _GdkGL_GL_NV_half_float
+{
+ GdkGLProc_glVertex2hNV glVertex2hNV;
+ GdkGLProc_glVertex2hvNV glVertex2hvNV;
+ GdkGLProc_glVertex3hNV glVertex3hNV;
+ GdkGLProc_glVertex3hvNV glVertex3hvNV;
+ GdkGLProc_glVertex4hNV glVertex4hNV;
+ GdkGLProc_glVertex4hvNV glVertex4hvNV;
+ GdkGLProc_glNormal3hNV glNormal3hNV;
+ GdkGLProc_glNormal3hvNV glNormal3hvNV;
+ GdkGLProc_glColor3hNV glColor3hNV;
+ GdkGLProc_glColor3hvNV glColor3hvNV;
+ GdkGLProc_glColor4hNV glColor4hNV;
+ GdkGLProc_glColor4hvNV glColor4hvNV;
+ GdkGLProc_glTexCoord1hNV glTexCoord1hNV;
+ GdkGLProc_glTexCoord1hvNV glTexCoord1hvNV;
+ GdkGLProc_glTexCoord2hNV glTexCoord2hNV;
+ GdkGLProc_glTexCoord2hvNV glTexCoord2hvNV;
+ GdkGLProc_glTexCoord3hNV glTexCoord3hNV;
+ GdkGLProc_glTexCoord3hvNV glTexCoord3hvNV;
+ GdkGLProc_glTexCoord4hNV glTexCoord4hNV;
+ GdkGLProc_glTexCoord4hvNV glTexCoord4hvNV;
+ GdkGLProc_glMultiTexCoord1hNV glMultiTexCoord1hNV;
+ GdkGLProc_glMultiTexCoord1hvNV glMultiTexCoord1hvNV;
+ GdkGLProc_glMultiTexCoord2hNV glMultiTexCoord2hNV;
+ GdkGLProc_glMultiTexCoord2hvNV glMultiTexCoord2hvNV;
+ GdkGLProc_glMultiTexCoord3hNV glMultiTexCoord3hNV;
+ GdkGLProc_glMultiTexCoord3hvNV glMultiTexCoord3hvNV;
+ GdkGLProc_glMultiTexCoord4hNV glMultiTexCoord4hNV;
+ GdkGLProc_glMultiTexCoord4hvNV glMultiTexCoord4hvNV;
+ GdkGLProc_glFogCoordhNV glFogCoordhNV;
+ GdkGLProc_glFogCoordhvNV glFogCoordhvNV;
+ GdkGLProc_glSecondaryColor3hNV glSecondaryColor3hNV;
+ GdkGLProc_glSecondaryColor3hvNV glSecondaryColor3hvNV;
+ GdkGLProc_glVertexWeighthNV glVertexWeighthNV;
+ GdkGLProc_glVertexWeighthvNV glVertexWeighthvNV;
+ GdkGLProc_glVertexAttrib1hNV glVertexAttrib1hNV;
+ GdkGLProc_glVertexAttrib1hvNV glVertexAttrib1hvNV;
+ GdkGLProc_glVertexAttrib2hNV glVertexAttrib2hNV;
+ GdkGLProc_glVertexAttrib2hvNV glVertexAttrib2hvNV;
+ GdkGLProc_glVertexAttrib3hNV glVertexAttrib3hNV;
+ GdkGLProc_glVertexAttrib3hvNV glVertexAttrib3hvNV;
+ GdkGLProc_glVertexAttrib4hNV glVertexAttrib4hNV;
+ GdkGLProc_glVertexAttrib4hvNV glVertexAttrib4hvNV;
+ GdkGLProc_glVertexAttribs1hvNV glVertexAttribs1hvNV;
+ GdkGLProc_glVertexAttribs2hvNV glVertexAttribs2hvNV;
+ GdkGLProc_glVertexAttribs3hvNV glVertexAttribs3hvNV;
+ GdkGLProc_glVertexAttribs4hvNV glVertexAttribs4hvNV;
+};
+
+GdkGL_GL_NV_half_float *gdk_gl_get_GL_NV_half_float (void);
+
+/*
+ * GL_NV_pixel_data_range
+ */
+
+/* glPixelDataRangeNV */
+typedef void (APIENTRY * GdkGLProc_glPixelDataRangeNV) (GLenum target, GLsizei length, GLvoid *pointer);
+GdkGLProc gdk_gl_get_glPixelDataRangeNV (void);
+#define gdk_gl_glPixelDataRangeNV(proc, target, length, pointer) \
+ ( ((GdkGLProc_glPixelDataRangeNV) (proc)) (target, length, pointer) )
+
+/* glFlushPixelDataRangeNV */
+typedef void (APIENTRY * GdkGLProc_glFlushPixelDataRangeNV) (GLenum target);
+GdkGLProc gdk_gl_get_glFlushPixelDataRangeNV (void);
+#define gdk_gl_glFlushPixelDataRangeNV(proc, target) \
+ ( ((GdkGLProc_glFlushPixelDataRangeNV) (proc)) (target) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_pixel_data_range GdkGL_GL_NV_pixel_data_range;
+
+struct _GdkGL_GL_NV_pixel_data_range
+{
+ GdkGLProc_glPixelDataRangeNV glPixelDataRangeNV;
+ GdkGLProc_glFlushPixelDataRangeNV glFlushPixelDataRangeNV;
+};
+
+GdkGL_GL_NV_pixel_data_range *gdk_gl_get_GL_NV_pixel_data_range (void);
+
+/*
+ * GL_NV_primitive_restart
+ */
+
+/* glPrimitiveRestartNV */
+typedef void (APIENTRY * GdkGLProc_glPrimitiveRestartNV) (void);
+GdkGLProc gdk_gl_get_glPrimitiveRestartNV (void);
+#define gdk_gl_glPrimitiveRestartNV(proc) \
+ ( ((GdkGLProc_glPrimitiveRestartNV) (proc)) () )
+
+/* glPrimitiveRestartIndexNV */
+typedef void (APIENTRY * GdkGLProc_glPrimitiveRestartIndexNV) (GLuint index);
+GdkGLProc gdk_gl_get_glPrimitiveRestartIndexNV (void);
+#define gdk_gl_glPrimitiveRestartIndexNV(proc, index) \
+ ( ((GdkGLProc_glPrimitiveRestartIndexNV) (proc)) (index) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_primitive_restart GdkGL_GL_NV_primitive_restart;
+
+struct _GdkGL_GL_NV_primitive_restart
+{
+ GdkGLProc_glPrimitiveRestartNV glPrimitiveRestartNV;
+ GdkGLProc_glPrimitiveRestartIndexNV glPrimitiveRestartIndexNV;
+};
+
+GdkGL_GL_NV_primitive_restart *gdk_gl_get_GL_NV_primitive_restart (void);
+
+/*
+ * GL_ATI_map_object_buffer
+ */
+
+/* glMapObjectBufferATI */
+typedef GLvoid* (APIENTRY * GdkGLProc_glMapObjectBufferATI) (GLuint buffer);
+GdkGLProc gdk_gl_get_glMapObjectBufferATI (void);
+#define gdk_gl_glMapObjectBufferATI(proc, buffer) \
+ ( ((GdkGLProc_glMapObjectBufferATI) (proc)) (buffer) )
+
+/* glUnmapObjectBufferATI */
+typedef void (APIENTRY * GdkGLProc_glUnmapObjectBufferATI) (GLuint buffer);
+GdkGLProc gdk_gl_get_glUnmapObjectBufferATI (void);
+#define gdk_gl_glUnmapObjectBufferATI(proc, buffer) \
+ ( ((GdkGLProc_glUnmapObjectBufferATI) (proc)) (buffer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_map_object_buffer GdkGL_GL_ATI_map_object_buffer;
+
+struct _GdkGL_GL_ATI_map_object_buffer
+{
+ GdkGLProc_glMapObjectBufferATI glMapObjectBufferATI;
+ GdkGLProc_glUnmapObjectBufferATI glUnmapObjectBufferATI;
+};
+
+GdkGL_GL_ATI_map_object_buffer *gdk_gl_get_GL_ATI_map_object_buffer (void);
+
+/*
+ * GL_ATI_separate_stencil
+ */
+
+/* glStencilOpSeparateATI */
+typedef void (APIENTRY * GdkGLProc_glStencilOpSeparateATI) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+GdkGLProc gdk_gl_get_glStencilOpSeparateATI (void);
+#define gdk_gl_glStencilOpSeparateATI(proc, face, sfail, dpfail, dppass) \
+ ( ((GdkGLProc_glStencilOpSeparateATI) (proc)) (face, sfail, dpfail, dppass) )
+
+/* glStencilFuncSeparateATI */
+typedef void (APIENTRY * GdkGLProc_glStencilFuncSeparateATI) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+GdkGLProc gdk_gl_get_glStencilFuncSeparateATI (void);
+#define gdk_gl_glStencilFuncSeparateATI(proc, frontfunc, backfunc, ref, mask) \
+ ( ((GdkGLProc_glStencilFuncSeparateATI) (proc)) (frontfunc, backfunc, ref, mask) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_separate_stencil GdkGL_GL_ATI_separate_stencil;
+
+struct _GdkGL_GL_ATI_separate_stencil
+{
+ GdkGLProc_glStencilOpSeparateATI glStencilOpSeparateATI;
+ GdkGLProc_glStencilFuncSeparateATI glStencilFuncSeparateATI;
+};
+
+GdkGL_GL_ATI_separate_stencil *gdk_gl_get_GL_ATI_separate_stencil (void);
+
+/*
+ * GL_ATI_vertex_attrib_array_object
+ */
+
+/* glVertexAttribArrayObjectATI */
+typedef void (APIENTRY * GdkGLProc_glVertexAttribArrayObjectATI) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
+GdkGLProc gdk_gl_get_glVertexAttribArrayObjectATI (void);
+#define gdk_gl_glVertexAttribArrayObjectATI(proc, index, size, type, normalized, stride, buffer, offset) \
+ ( ((GdkGLProc_glVertexAttribArrayObjectATI) (proc)) (index, size, type, normalized, stride, buffer, offset) )
+
+/* glGetVertexAttribArrayObjectfvATI */
+typedef void (APIENTRY * GdkGLProc_glGetVertexAttribArrayObjectfvATI) (GLuint index, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetVertexAttribArrayObjectfvATI (void);
+#define gdk_gl_glGetVertexAttribArrayObjectfvATI(proc, index, pname, params) \
+ ( ((GdkGLProc_glGetVertexAttribArrayObjectfvATI) (proc)) (index, pname, params) )
+
+/* glGetVertexAttribArrayObjectivATI */
+typedef void (APIENTRY * GdkGLProc_glGetVertexAttribArrayObjectivATI) (GLuint index, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetVertexAttribArrayObjectivATI (void);
+#define gdk_gl_glGetVertexAttribArrayObjectivATI(proc, index, pname, params) \
+ ( ((GdkGLProc_glGetVertexAttribArrayObjectivATI) (proc)) (index, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_vertex_attrib_array_object GdkGL_GL_ATI_vertex_attrib_array_object;
+
+struct _GdkGL_GL_ATI_vertex_attrib_array_object
+{
+ GdkGLProc_glVertexAttribArrayObjectATI glVertexAttribArrayObjectATI;
+ GdkGLProc_glGetVertexAttribArrayObjectfvATI glGetVertexAttribArrayObjectfvATI;
+ GdkGLProc_glGetVertexAttribArrayObjectivATI glGetVertexAttribArrayObjectivATI;
+};
+
+GdkGL_GL_ATI_vertex_attrib_array_object *gdk_gl_get_GL_ATI_vertex_attrib_array_object (void);
+
+/*
+ * GL_APPLE_texture_range
+ */
+
+/* glTextureRangeAPPLE */
+typedef void (APIENTRY * GdkGLProc_glTextureRangeAPPLE) (GLenum target, GLsizei length, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glTextureRangeAPPLE (void);
+#define gdk_gl_glTextureRangeAPPLE(proc, target, length, pointer) \
+ ( ((GdkGLProc_glTextureRangeAPPLE) (proc)) (target, length, pointer) )
+
+/* glGetTexParameterPointervAPPLE */
+typedef void (APIENTRY * GdkGLProc_glGetTexParameterPointervAPPLE) (GLenum target, GLenum pname, GLvoid **params);
+GdkGLProc gdk_gl_get_glGetTexParameterPointervAPPLE (void);
+#define gdk_gl_glGetTexParameterPointervAPPLE(proc, target, pname, params) \
+ ( ((GdkGLProc_glGetTexParameterPointervAPPLE) (proc)) (target, pname, params) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_APPLE_texture_range GdkGL_GL_APPLE_texture_range;
+
+struct _GdkGL_GL_APPLE_texture_range
+{
+ GdkGLProc_glTextureRangeAPPLE glTextureRangeAPPLE;
+ GdkGLProc_glGetTexParameterPointervAPPLE glGetTexParameterPointervAPPLE;
+};
+
+GdkGL_GL_APPLE_texture_range *gdk_gl_get_GL_APPLE_texture_range (void);
+
+/*
+ * GL_APPLE_vertex_program_evaluators
+ */
+
+/* glEnableVertexAttribAPPLE */
+typedef void (APIENTRY * GdkGLProc_glEnableVertexAttribAPPLE) (GLuint index, GLenum pname);
+GdkGLProc gdk_gl_get_glEnableVertexAttribAPPLE (void);
+#define gdk_gl_glEnableVertexAttribAPPLE(proc, index, pname) \
+ ( ((GdkGLProc_glEnableVertexAttribAPPLE) (proc)) (index, pname) )
+
+/* glDisableVertexAttribAPPLE */
+typedef void (APIENTRY * GdkGLProc_glDisableVertexAttribAPPLE) (GLuint index, GLenum pname);
+GdkGLProc gdk_gl_get_glDisableVertexAttribAPPLE (void);
+#define gdk_gl_glDisableVertexAttribAPPLE(proc, index, pname) \
+ ( ((GdkGLProc_glDisableVertexAttribAPPLE) (proc)) (index, pname) )
+
+/* glIsVertexAttribEnabledAPPLE */
+typedef GLboolean (APIENTRY * GdkGLProc_glIsVertexAttribEnabledAPPLE) (GLuint index, GLenum pname);
+GdkGLProc gdk_gl_get_glIsVertexAttribEnabledAPPLE (void);
+#define gdk_gl_glIsVertexAttribEnabledAPPLE(proc, index, pname) \
+ ( ((GdkGLProc_glIsVertexAttribEnabledAPPLE) (proc)) (index, pname) )
+
+/* glMapVertexAttrib1dAPPLE */
+typedef void (APIENTRY * GdkGLProc_glMapVertexAttrib1dAPPLE) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
+GdkGLProc gdk_gl_get_glMapVertexAttrib1dAPPLE (void);
+#define gdk_gl_glMapVertexAttrib1dAPPLE(proc, index, size, u1, u2, stride, order, points) \
+ ( ((GdkGLProc_glMapVertexAttrib1dAPPLE) (proc)) (index, size, u1, u2, stride, order, points) )
+
+/* glMapVertexAttrib1fAPPLE */
+typedef void (APIENTRY * GdkGLProc_glMapVertexAttrib1fAPPLE) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
+GdkGLProc gdk_gl_get_glMapVertexAttrib1fAPPLE (void);
+#define gdk_gl_glMapVertexAttrib1fAPPLE(proc, index, size, u1, u2, stride, order, points) \
+ ( ((GdkGLProc_glMapVertexAttrib1fAPPLE) (proc)) (index, size, u1, u2, stride, order, points) )
+
+/* glMapVertexAttrib2dAPPLE */
+typedef void (APIENTRY * GdkGLProc_glMapVertexAttrib2dAPPLE) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
+GdkGLProc gdk_gl_get_glMapVertexAttrib2dAPPLE (void);
+#define gdk_gl_glMapVertexAttrib2dAPPLE(proc, index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \
+ ( ((GdkGLProc_glMapVertexAttrib2dAPPLE) (proc)) (index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) )
+
+/* glMapVertexAttrib2fAPPLE */
+typedef void (APIENTRY * GdkGLProc_glMapVertexAttrib2fAPPLE) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
+GdkGLProc gdk_gl_get_glMapVertexAttrib2fAPPLE (void);
+#define gdk_gl_glMapVertexAttrib2fAPPLE(proc, index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \
+ ( ((GdkGLProc_glMapVertexAttrib2fAPPLE) (proc)) (index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_APPLE_vertex_program_evaluators GdkGL_GL_APPLE_vertex_program_evaluators;
+
+struct _GdkGL_GL_APPLE_vertex_program_evaluators
+{
+ GdkGLProc_glEnableVertexAttribAPPLE glEnableVertexAttribAPPLE;
+ GdkGLProc_glDisableVertexAttribAPPLE glDisableVertexAttribAPPLE;
+ GdkGLProc_glIsVertexAttribEnabledAPPLE glIsVertexAttribEnabledAPPLE;
+ GdkGLProc_glMapVertexAttrib1dAPPLE glMapVertexAttrib1dAPPLE;
+ GdkGLProc_glMapVertexAttrib1fAPPLE glMapVertexAttrib1fAPPLE;
+ GdkGLProc_glMapVertexAttrib2dAPPLE glMapVertexAttrib2dAPPLE;
+ GdkGLProc_glMapVertexAttrib2fAPPLE glMapVertexAttrib2fAPPLE;
+};
+
+GdkGL_GL_APPLE_vertex_program_evaluators *gdk_gl_get_GL_APPLE_vertex_program_evaluators (void);
+
+/*
+ * GL_ATI_blend_equation_separate
+ */
+
+/* glBlendEquationSeparateATI */
+typedef void (APIENTRY * GdkGLProc_glBlendEquationSeparateATI) (GLenum equationRGB, GLenum equationAlpha);
+GdkGLProc gdk_gl_get_glBlendEquationSeparateATI (void);
+#define gdk_gl_glBlendEquationSeparateATI(proc, equationRGB, equationAlpha) \
+ ( ((GdkGLProc_glBlendEquationSeparateATI) (proc)) (equationRGB, equationAlpha) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATI_blend_equation_separate GdkGL_GL_ATI_blend_equation_separate;
+
+struct _GdkGL_GL_ATI_blend_equation_separate
+{
+ GdkGLProc_glBlendEquationSeparateATI glBlendEquationSeparateATI;
+};
+
+GdkGL_GL_ATI_blend_equation_separate *gdk_gl_get_GL_ATI_blend_equation_separate (void);
+
+/*
+ * GL_ATIX_pn_triangles
+ */
+
+/* glPNTrianglesiATIX */
+typedef void (APIENTRY * GdkGLProc_glPNTrianglesiATIX) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glPNTrianglesiATIX (void);
+#define gdk_gl_glPNTrianglesiATIX(proc, pname, param) \
+ ( ((GdkGLProc_glPNTrianglesiATIX) (proc)) (pname, param) )
+
+/* glPNTrianglesfATIX */
+typedef void (APIENTRY * GdkGLProc_glPNTrianglesfATIX) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glPNTrianglesfATIX (void);
+#define gdk_gl_glPNTrianglesfATIX(proc, pname, param) \
+ ( ((GdkGLProc_glPNTrianglesfATIX) (proc)) (pname, param) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_ATIX_pn_triangles GdkGL_GL_ATIX_pn_triangles;
+
+struct _GdkGL_GL_ATIX_pn_triangles
+{
+ GdkGLProc_glPNTrianglesiATIX glPNTrianglesiATIX;
+ GdkGLProc_glPNTrianglesfATIX glPNTrianglesfATIX;
+};
+
+GdkGL_GL_ATIX_pn_triangles *gdk_gl_get_GL_ATIX_pn_triangles (void);
+
+/*
+ * GL_Autodesk_facet_normal
+ */
+
+/* glFacetNormal3b */
+typedef void (APIENTRY * GdkGLProc_glFacetNormal3b) (GLbyte nx, GLbyte ny, GLbyte nz);
+GdkGLProc gdk_gl_get_glFacetNormal3b (void);
+#define gdk_gl_glFacetNormal3b(proc, nx, ny, nz) \
+ ( ((GdkGLProc_glFacetNormal3b) (proc)) (nx, ny, nz) )
+
+/* glFacetNormal3d */
+typedef void (APIENTRY * GdkGLProc_glFacetNormal3d) (GLdouble nx, GLdouble ny, GLdouble nz);
+GdkGLProc gdk_gl_get_glFacetNormal3d (void);
+#define gdk_gl_glFacetNormal3d(proc, nx, ny, nz) \
+ ( ((GdkGLProc_glFacetNormal3d) (proc)) (nx, ny, nz) )
+
+/* glFacetNormal3f */
+typedef void (APIENTRY * GdkGLProc_glFacetNormal3f) (GLfloat nx, GLfloat ny, GLfloat nz);
+GdkGLProc gdk_gl_get_glFacetNormal3f (void);
+#define gdk_gl_glFacetNormal3f(proc, nx, ny, nz) \
+ ( ((GdkGLProc_glFacetNormal3f) (proc)) (nx, ny, nz) )
+
+/* glFacetNormal3i */
+typedef void (APIENTRY * GdkGLProc_glFacetNormal3i) (GLint nx, GLint ny, GLint nz);
+GdkGLProc gdk_gl_get_glFacetNormal3i (void);
+#define gdk_gl_glFacetNormal3i(proc, nx, ny, nz) \
+ ( ((GdkGLProc_glFacetNormal3i) (proc)) (nx, ny, nz) )
+
+/* glFacetNormal3s */
+typedef void (APIENTRY * GdkGLProc_glFacetNormal3s) (GLshort nx, GLshort ny, GLshort nz);
+GdkGLProc gdk_gl_get_glFacetNormal3s (void);
+#define gdk_gl_glFacetNormal3s(proc, nx, ny, nz) \
+ ( ((GdkGLProc_glFacetNormal3s) (proc)) (nx, ny, nz) )
+
+/* glFacetNormal3bv */
+typedef void (APIENTRY * GdkGLProc_glFacetNormal3bv) (const GLbyte *v);
+GdkGLProc gdk_gl_get_glFacetNormal3bv (void);
+#define gdk_gl_glFacetNormal3bv(proc, v) \
+ ( ((GdkGLProc_glFacetNormal3bv) (proc)) (v) )
+
+/* glFacetNormal3dv */
+typedef void (APIENTRY * GdkGLProc_glFacetNormal3dv) (const GLdouble *v);
+GdkGLProc gdk_gl_get_glFacetNormal3dv (void);
+#define gdk_gl_glFacetNormal3dv(proc, v) \
+ ( ((GdkGLProc_glFacetNormal3dv) (proc)) (v) )
+
+/* glFacetNormal3fv */
+typedef void (APIENTRY * GdkGLProc_glFacetNormal3fv) (const GLfloat *v);
+GdkGLProc gdk_gl_get_glFacetNormal3fv (void);
+#define gdk_gl_glFacetNormal3fv(proc, v) \
+ ( ((GdkGLProc_glFacetNormal3fv) (proc)) (v) )
+
+/* glFacetNormal3iv */
+typedef void (APIENTRY * GdkGLProc_glFacetNormal3iv) (const GLint *v);
+GdkGLProc gdk_gl_get_glFacetNormal3iv (void);
+#define gdk_gl_glFacetNormal3iv(proc, v) \
+ ( ((GdkGLProc_glFacetNormal3iv) (proc)) (v) )
+
+/* glFacetNormal3sv */
+typedef void (APIENTRY * GdkGLProc_glFacetNormal3sv) (const GLshort *v);
+GdkGLProc gdk_gl_get_glFacetNormal3sv (void);
+#define gdk_gl_glFacetNormal3sv(proc, v) \
+ ( ((GdkGLProc_glFacetNormal3sv) (proc)) (v) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_Autodesk_facet_normal GdkGL_GL_Autodesk_facet_normal;
+
+struct _GdkGL_GL_Autodesk_facet_normal
+{
+ GdkGLProc_glFacetNormal3b glFacetNormal3b;
+ GdkGLProc_glFacetNormal3d glFacetNormal3d;
+ GdkGLProc_glFacetNormal3f glFacetNormal3f;
+ GdkGLProc_glFacetNormal3i glFacetNormal3i;
+ GdkGLProc_glFacetNormal3s glFacetNormal3s;
+ GdkGLProc_glFacetNormal3bv glFacetNormal3bv;
+ GdkGLProc_glFacetNormal3dv glFacetNormal3dv;
+ GdkGLProc_glFacetNormal3fv glFacetNormal3fv;
+ GdkGLProc_glFacetNormal3iv glFacetNormal3iv;
+ GdkGLProc_glFacetNormal3sv glFacetNormal3sv;
+};
+
+GdkGL_GL_Autodesk_facet_normal *gdk_gl_get_GL_Autodesk_facet_normal (void);
+
+/*
+ * GL_Autodesk_valid_back_buffer_hint
+ */
+
+/* glWindowBackBufferHint */
+typedef void (APIENTRY * GdkGLProc_glWindowBackBufferHint) (void);
+GdkGLProc gdk_gl_get_glWindowBackBufferHint (void);
+#define gdk_gl_glWindowBackBufferHint(proc) \
+ ( ((GdkGLProc_glWindowBackBufferHint) (proc)) () )
+
+/* glValidBackBufferHint */
+typedef GLboolean (APIENTRY * GdkGLProc_glValidBackBufferHint) (GLint x, GLint y, GLsizei width, GLsizei height);
+GdkGLProc gdk_gl_get_glValidBackBufferHint (void);
+#define gdk_gl_glValidBackBufferHint(proc, x, y, width, height) \
+ ( ((GdkGLProc_glValidBackBufferHint) (proc)) (x, y, width, height) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_Autodesk_valid_back_buffer_hint GdkGL_GL_Autodesk_valid_back_buffer_hint;
+
+struct _GdkGL_GL_Autodesk_valid_back_buffer_hint
+{
+ GdkGLProc_glWindowBackBufferHint glWindowBackBufferHint;
+ GdkGLProc_glValidBackBufferHint glValidBackBufferHint;
+};
+
+GdkGL_GL_Autodesk_valid_back_buffer_hint *gdk_gl_get_GL_Autodesk_valid_back_buffer_hint (void);
+
+/*
+ * GL_EXT_depth_bounds_test
+ */
+
+/* glDepthBoundsEXT */
+typedef void (APIENTRY * GdkGLProc_glDepthBoundsEXT) (GLclampd zmin, GLclampd zmax);
+GdkGLProc gdk_gl_get_glDepthBoundsEXT (void);
+#define gdk_gl_glDepthBoundsEXT(proc, zmin, zmax) \
+ ( ((GdkGLProc_glDepthBoundsEXT) (proc)) (zmin, zmax) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_depth_bounds_test GdkGL_GL_EXT_depth_bounds_test;
+
+struct _GdkGL_GL_EXT_depth_bounds_test
+{
+ GdkGLProc_glDepthBoundsEXT glDepthBoundsEXT;
+};
+
+GdkGL_GL_EXT_depth_bounds_test *gdk_gl_get_GL_EXT_depth_bounds_test (void);
+
+/*
+ * GL_EXT_fragment_lighting
+ */
+
+/* glFragmentLightModelfEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightModelfEXT) (GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glFragmentLightModelfEXT (void);
+#define gdk_gl_glFragmentLightModelfEXT(proc, pname, param) \
+ ( ((GdkGLProc_glFragmentLightModelfEXT) (proc)) (pname, param) )
+
+/* glFragmentLightModelfvEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightModelfvEXT) (GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glFragmentLightModelfvEXT (void);
+#define gdk_gl_glFragmentLightModelfvEXT(proc, pname, params) \
+ ( ((GdkGLProc_glFragmentLightModelfvEXT) (proc)) (pname, params) )
+
+/* glFragmentLightModeliEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightModeliEXT) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glFragmentLightModeliEXT (void);
+#define gdk_gl_glFragmentLightModeliEXT(proc, pname, param) \
+ ( ((GdkGLProc_glFragmentLightModeliEXT) (proc)) (pname, param) )
+
+/* glFragmentLightModelivEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightModelivEXT) (GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glFragmentLightModelivEXT (void);
+#define gdk_gl_glFragmentLightModelivEXT(proc, pname, params) \
+ ( ((GdkGLProc_glFragmentLightModelivEXT) (proc)) (pname, params) )
+
+/* glFragmentLightfEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightfEXT) (GLenum light, GLenum pname, GLfloat param);
+GdkGLProc gdk_gl_get_glFragmentLightfEXT (void);
+#define gdk_gl_glFragmentLightfEXT(proc, light, pname, param) \
+ ( ((GdkGLProc_glFragmentLightfEXT) (proc)) (light, pname, param) )
+
+/* glFragmentLightfvEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightfvEXT) (GLenum light, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glFragmentLightfvEXT (void);
+#define gdk_gl_glFragmentLightfvEXT(proc, light, pname, params) \
+ ( ((GdkGLProc_glFragmentLightfvEXT) (proc)) (light, pname, params) )
+
+/* glFragmentLightiEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightiEXT) (GLenum light, GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glFragmentLightiEXT (void);
+#define gdk_gl_glFragmentLightiEXT(proc, light, pname, param) \
+ ( ((GdkGLProc_glFragmentLightiEXT) (proc)) (light, pname, param) )
+
+/* glFragmentLightivEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentLightivEXT) (GLenum light, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glFragmentLightivEXT (void);
+#define gdk_gl_glFragmentLightivEXT(proc, light, pname, params) \
+ ( ((GdkGLProc_glFragmentLightivEXT) (proc)) (light, pname, params) )
+
+/* glGetFragmentLightfvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetFragmentLightfvEXT) (GLenum light, GLenum pname, GLfloat *params);
+GdkGLProc gdk_gl_get_glGetFragmentLightfvEXT (void);
+#define gdk_gl_glGetFragmentLightfvEXT(proc, light, pname, params) \
+ ( ((GdkGLProc_glGetFragmentLightfvEXT) (proc)) (light, pname, params) )
+
+/* glGetFragmentLightivEXT */
+typedef void (APIENTRY * GdkGLProc_glGetFragmentLightivEXT) (GLenum light, GLenum pname, GLint *params);
+GdkGLProc gdk_gl_get_glGetFragmentLightivEXT (void);
+#define gdk_gl_glGetFragmentLightivEXT(proc, light, pname, params) \
+ ( ((GdkGLProc_glGetFragmentLightivEXT) (proc)) (light, pname, params) )
+
+/* glFragmentMaterialfEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentMaterialfEXT) (GLenum face, GLenum pname, const GLfloat param);
+GdkGLProc gdk_gl_get_glFragmentMaterialfEXT (void);
+#define gdk_gl_glFragmentMaterialfEXT(proc, face, pname, param) \
+ ( ((GdkGLProc_glFragmentMaterialfEXT) (proc)) (face, pname, param) )
+
+/* glFragmentMaterialfvEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentMaterialfvEXT) (GLenum face, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glFragmentMaterialfvEXT (void);
+#define gdk_gl_glFragmentMaterialfvEXT(proc, face, pname, params) \
+ ( ((GdkGLProc_glFragmentMaterialfvEXT) (proc)) (face, pname, params) )
+
+/* glFragmentMaterialiEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentMaterialiEXT) (GLenum face, GLenum pname, const GLint param);
+GdkGLProc gdk_gl_get_glFragmentMaterialiEXT (void);
+#define gdk_gl_glFragmentMaterialiEXT(proc, face, pname, param) \
+ ( ((GdkGLProc_glFragmentMaterialiEXT) (proc)) (face, pname, param) )
+
+/* glFragmentMaterialivEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentMaterialivEXT) (GLenum face, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glFragmentMaterialivEXT (void);
+#define gdk_gl_glFragmentMaterialivEXT(proc, face, pname, params) \
+ ( ((GdkGLProc_glFragmentMaterialivEXT) (proc)) (face, pname, params) )
+
+/* glFragmentColorMaterialEXT */
+typedef void (APIENTRY * GdkGLProc_glFragmentColorMaterialEXT) (GLenum face, GLenum mode);
+GdkGLProc gdk_gl_get_glFragmentColorMaterialEXT (void);
+#define gdk_gl_glFragmentColorMaterialEXT(proc, face, mode) \
+ ( ((GdkGLProc_glFragmentColorMaterialEXT) (proc)) (face, mode) )
+
+/* glGetFragmentMaterialfvEXT */
+typedef void (APIENTRY * GdkGLProc_glGetFragmentMaterialfvEXT) (GLenum face, GLenum pname, const GLfloat *params);
+GdkGLProc gdk_gl_get_glGetFragmentMaterialfvEXT (void);
+#define gdk_gl_glGetFragmentMaterialfvEXT(proc, face, pname, params) \
+ ( ((GdkGLProc_glGetFragmentMaterialfvEXT) (proc)) (face, pname, params) )
+
+/* glGetFragmentMaterialivEXT */
+typedef void (APIENTRY * GdkGLProc_glGetFragmentMaterialivEXT) (GLenum face, GLenum pname, const GLint *params);
+GdkGLProc gdk_gl_get_glGetFragmentMaterialivEXT (void);
+#define gdk_gl_glGetFragmentMaterialivEXT(proc, face, pname, params) \
+ ( ((GdkGLProc_glGetFragmentMaterialivEXT) (proc)) (face, pname, params) )
+
+/* glLightEnviEXT */
+typedef void (APIENTRY * GdkGLProc_glLightEnviEXT) (GLenum pname, GLint param);
+GdkGLProc gdk_gl_get_glLightEnviEXT (void);
+#define gdk_gl_glLightEnviEXT(proc, pname, param) \
+ ( ((GdkGLProc_glLightEnviEXT) (proc)) (pname, param) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_fragment_lighting GdkGL_GL_EXT_fragment_lighting;
+
+struct _GdkGL_GL_EXT_fragment_lighting
+{
+ GdkGLProc_glFragmentLightModelfEXT glFragmentLightModelfEXT;
+ GdkGLProc_glFragmentLightModelfvEXT glFragmentLightModelfvEXT;
+ GdkGLProc_glFragmentLightModeliEXT glFragmentLightModeliEXT;
+ GdkGLProc_glFragmentLightModelivEXT glFragmentLightModelivEXT;
+ GdkGLProc_glFragmentLightfEXT glFragmentLightfEXT;
+ GdkGLProc_glFragmentLightfvEXT glFragmentLightfvEXT;
+ GdkGLProc_glFragmentLightiEXT glFragmentLightiEXT;
+ GdkGLProc_glFragmentLightivEXT glFragmentLightivEXT;
+ GdkGLProc_glGetFragmentLightfvEXT glGetFragmentLightfvEXT;
+ GdkGLProc_glGetFragmentLightivEXT glGetFragmentLightivEXT;
+ GdkGLProc_glFragmentMaterialfEXT glFragmentMaterialfEXT;
+ GdkGLProc_glFragmentMaterialfvEXT glFragmentMaterialfvEXT;
+ GdkGLProc_glFragmentMaterialiEXT glFragmentMaterialiEXT;
+ GdkGLProc_glFragmentMaterialivEXT glFragmentMaterialivEXT;
+ GdkGLProc_glFragmentColorMaterialEXT glFragmentColorMaterialEXT;
+ GdkGLProc_glGetFragmentMaterialfvEXT glGetFragmentMaterialfvEXT;
+ GdkGLProc_glGetFragmentMaterialivEXT glGetFragmentMaterialivEXT;
+ GdkGLProc_glLightEnviEXT glLightEnviEXT;
+};
+
+GdkGL_GL_EXT_fragment_lighting *gdk_gl_get_GL_EXT_fragment_lighting (void);
+
+/*
+ * GL_EXT_multitexture
+ */
+
+/* glMultiTexCoord1dEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1dEXT) (GLenum target, GLdouble s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1dEXT (void);
+#define gdk_gl_glMultiTexCoord1dEXT(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1dEXT) (proc)) (target, s) )
+
+/* glMultiTexCoord1dvEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1dvEXT) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1dvEXT (void);
+#define gdk_gl_glMultiTexCoord1dvEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1dvEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord1fEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1fEXT) (GLenum target, GLfloat s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1fEXT (void);
+#define gdk_gl_glMultiTexCoord1fEXT(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1fEXT) (proc)) (target, s) )
+
+/* glMultiTexCoord1fvEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1fvEXT) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1fvEXT (void);
+#define gdk_gl_glMultiTexCoord1fvEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1fvEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord1iEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1iEXT) (GLenum target, GLint s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1iEXT (void);
+#define gdk_gl_glMultiTexCoord1iEXT(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1iEXT) (proc)) (target, s) )
+
+/* glMultiTexCoord1ivEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1ivEXT) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1ivEXT (void);
+#define gdk_gl_glMultiTexCoord1ivEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1ivEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord1sEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1sEXT) (GLenum target, GLshort s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1sEXT (void);
+#define gdk_gl_glMultiTexCoord1sEXT(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1sEXT) (proc)) (target, s) )
+
+/* glMultiTexCoord1svEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1svEXT) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1svEXT (void);
+#define gdk_gl_glMultiTexCoord1svEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1svEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord2dEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2dEXT) (GLenum target, GLdouble s, GLdouble t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2dEXT (void);
+#define gdk_gl_glMultiTexCoord2dEXT(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2dEXT) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2dvEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2dvEXT) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2dvEXT (void);
+#define gdk_gl_glMultiTexCoord2dvEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2dvEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord2fEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2fEXT) (GLenum target, GLfloat s, GLfloat t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2fEXT (void);
+#define gdk_gl_glMultiTexCoord2fEXT(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2fEXT) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2fvEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2fvEXT) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2fvEXT (void);
+#define gdk_gl_glMultiTexCoord2fvEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2fvEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord2iEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2iEXT) (GLenum target, GLint s, GLint t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2iEXT (void);
+#define gdk_gl_glMultiTexCoord2iEXT(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2iEXT) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2ivEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2ivEXT) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2ivEXT (void);
+#define gdk_gl_glMultiTexCoord2ivEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2ivEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord2sEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2sEXT) (GLenum target, GLshort s, GLshort t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2sEXT (void);
+#define gdk_gl_glMultiTexCoord2sEXT(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2sEXT) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2svEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2svEXT) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2svEXT (void);
+#define gdk_gl_glMultiTexCoord2svEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2svEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord3dEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3dEXT) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3dEXT (void);
+#define gdk_gl_glMultiTexCoord3dEXT(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3dEXT) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3dvEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3dvEXT) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3dvEXT (void);
+#define gdk_gl_glMultiTexCoord3dvEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3dvEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord3fEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3fEXT) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3fEXT (void);
+#define gdk_gl_glMultiTexCoord3fEXT(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3fEXT) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3fvEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3fvEXT) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3fvEXT (void);
+#define gdk_gl_glMultiTexCoord3fvEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3fvEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord3iEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3iEXT) (GLenum target, GLint s, GLint t, GLint r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3iEXT (void);
+#define gdk_gl_glMultiTexCoord3iEXT(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3iEXT) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3ivEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3ivEXT) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3ivEXT (void);
+#define gdk_gl_glMultiTexCoord3ivEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3ivEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord3sEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3sEXT) (GLenum target, GLshort s, GLshort t, GLshort r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3sEXT (void);
+#define gdk_gl_glMultiTexCoord3sEXT(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3sEXT) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3svEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3svEXT) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3svEXT (void);
+#define gdk_gl_glMultiTexCoord3svEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3svEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord4dEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4dEXT) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4dEXT (void);
+#define gdk_gl_glMultiTexCoord4dEXT(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4dEXT) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4dvEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4dvEXT) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4dvEXT (void);
+#define gdk_gl_glMultiTexCoord4dvEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4dvEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord4fEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4fEXT) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4fEXT (void);
+#define gdk_gl_glMultiTexCoord4fEXT(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4fEXT) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4fvEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4fvEXT) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4fvEXT (void);
+#define gdk_gl_glMultiTexCoord4fvEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4fvEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord4iEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4iEXT) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4iEXT (void);
+#define gdk_gl_glMultiTexCoord4iEXT(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4iEXT) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4ivEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4ivEXT) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4ivEXT (void);
+#define gdk_gl_glMultiTexCoord4ivEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4ivEXT) (proc)) (target, v) )
+
+/* glMultiTexCoord4sEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4sEXT) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4sEXT (void);
+#define gdk_gl_glMultiTexCoord4sEXT(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4sEXT) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4svEXT */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4svEXT) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4svEXT (void);
+#define gdk_gl_glMultiTexCoord4svEXT(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4svEXT) (proc)) (target, v) )
+
+/* glInterleavedTextureCoordSetsEXT */
+typedef void (APIENTRY * GdkGLProc_glInterleavedTextureCoordSetsEXT) (GLint factor);
+GdkGLProc gdk_gl_get_glInterleavedTextureCoordSetsEXT (void);
+#define gdk_gl_glInterleavedTextureCoordSetsEXT(proc, factor) \
+ ( ((GdkGLProc_glInterleavedTextureCoordSetsEXT) (proc)) (factor) )
+
+/* glSelectTextureEXT */
+typedef void (APIENTRY * GdkGLProc_glSelectTextureEXT) (GLenum target);
+GdkGLProc gdk_gl_get_glSelectTextureEXT (void);
+#define gdk_gl_glSelectTextureEXT(proc, target) \
+ ( ((GdkGLProc_glSelectTextureEXT) (proc)) (target) )
+
+/* glSelectTextureCoordSetEXT */
+typedef void (APIENTRY * GdkGLProc_glSelectTextureCoordSetEXT) (GLenum target);
+GdkGLProc gdk_gl_get_glSelectTextureCoordSetEXT (void);
+#define gdk_gl_glSelectTextureCoordSetEXT(proc, target) \
+ ( ((GdkGLProc_glSelectTextureCoordSetEXT) (proc)) (target) )
+
+/* glSelectTextureTransformEXT */
+typedef void (APIENTRY * GdkGLProc_glSelectTextureTransformEXT) (GLenum target);
+GdkGLProc gdk_gl_get_glSelectTextureTransformEXT (void);
+#define gdk_gl_glSelectTextureTransformEXT(proc, target) \
+ ( ((GdkGLProc_glSelectTextureTransformEXT) (proc)) (target) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_multitexture GdkGL_GL_EXT_multitexture;
+
+struct _GdkGL_GL_EXT_multitexture
+{
+ GdkGLProc_glMultiTexCoord1dEXT glMultiTexCoord1dEXT;
+ GdkGLProc_glMultiTexCoord1dvEXT glMultiTexCoord1dvEXT;
+ GdkGLProc_glMultiTexCoord1fEXT glMultiTexCoord1fEXT;
+ GdkGLProc_glMultiTexCoord1fvEXT glMultiTexCoord1fvEXT;
+ GdkGLProc_glMultiTexCoord1iEXT glMultiTexCoord1iEXT;
+ GdkGLProc_glMultiTexCoord1ivEXT glMultiTexCoord1ivEXT;
+ GdkGLProc_glMultiTexCoord1sEXT glMultiTexCoord1sEXT;
+ GdkGLProc_glMultiTexCoord1svEXT glMultiTexCoord1svEXT;
+ GdkGLProc_glMultiTexCoord2dEXT glMultiTexCoord2dEXT;
+ GdkGLProc_glMultiTexCoord2dvEXT glMultiTexCoord2dvEXT;
+ GdkGLProc_glMultiTexCoord2fEXT glMultiTexCoord2fEXT;
+ GdkGLProc_glMultiTexCoord2fvEXT glMultiTexCoord2fvEXT;
+ GdkGLProc_glMultiTexCoord2iEXT glMultiTexCoord2iEXT;
+ GdkGLProc_glMultiTexCoord2ivEXT glMultiTexCoord2ivEXT;
+ GdkGLProc_glMultiTexCoord2sEXT glMultiTexCoord2sEXT;
+ GdkGLProc_glMultiTexCoord2svEXT glMultiTexCoord2svEXT;
+ GdkGLProc_glMultiTexCoord3dEXT glMultiTexCoord3dEXT;
+ GdkGLProc_glMultiTexCoord3dvEXT glMultiTexCoord3dvEXT;
+ GdkGLProc_glMultiTexCoord3fEXT glMultiTexCoord3fEXT;
+ GdkGLProc_glMultiTexCoord3fvEXT glMultiTexCoord3fvEXT;
+ GdkGLProc_glMultiTexCoord3iEXT glMultiTexCoord3iEXT;
+ GdkGLProc_glMultiTexCoord3ivEXT glMultiTexCoord3ivEXT;
+ GdkGLProc_glMultiTexCoord3sEXT glMultiTexCoord3sEXT;
+ GdkGLProc_glMultiTexCoord3svEXT glMultiTexCoord3svEXT;
+ GdkGLProc_glMultiTexCoord4dEXT glMultiTexCoord4dEXT;
+ GdkGLProc_glMultiTexCoord4dvEXT glMultiTexCoord4dvEXT;
+ GdkGLProc_glMultiTexCoord4fEXT glMultiTexCoord4fEXT;
+ GdkGLProc_glMultiTexCoord4fvEXT glMultiTexCoord4fvEXT;
+ GdkGLProc_glMultiTexCoord4iEXT glMultiTexCoord4iEXT;
+ GdkGLProc_glMultiTexCoord4ivEXT glMultiTexCoord4ivEXT;
+ GdkGLProc_glMultiTexCoord4sEXT glMultiTexCoord4sEXT;
+ GdkGLProc_glMultiTexCoord4svEXT glMultiTexCoord4svEXT;
+ GdkGLProc_glInterleavedTextureCoordSetsEXT glInterleavedTextureCoordSetsEXT;
+ GdkGLProc_glSelectTextureEXT glSelectTextureEXT;
+ GdkGLProc_glSelectTextureCoordSetEXT glSelectTextureCoordSetEXT;
+ GdkGLProc_glSelectTextureTransformEXT glSelectTextureTransformEXT;
+};
+
+GdkGL_GL_EXT_multitexture *gdk_gl_get_GL_EXT_multitexture (void);
+
+/*
+ * GL_EXT_scene_marker
+ */
+
+/* glBeginSceneEXT */
+typedef void (APIENTRY * GdkGLProc_glBeginSceneEXT) (void);
+GdkGLProc gdk_gl_get_glBeginSceneEXT (void);
+#define gdk_gl_glBeginSceneEXT(proc) \
+ ( ((GdkGLProc_glBeginSceneEXT) (proc)) () )
+
+/* glEndSceneEXT */
+typedef void (APIENTRY * GdkGLProc_glEndSceneEXT) (void);
+GdkGLProc gdk_gl_get_glEndSceneEXT (void);
+#define gdk_gl_glEndSceneEXT(proc) \
+ ( ((GdkGLProc_glEndSceneEXT) (proc)) () )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_EXT_scene_marker GdkGL_GL_EXT_scene_marker;
+
+struct _GdkGL_GL_EXT_scene_marker
+{
+ GdkGLProc_glBeginSceneEXT glBeginSceneEXT;
+ GdkGLProc_glEndSceneEXT glEndSceneEXT;
+};
+
+GdkGL_GL_EXT_scene_marker *gdk_gl_get_GL_EXT_scene_marker (void);
+
+/*
+ * GL_IBM_static_data
+ */
+
+/* glFlushStaticDataIBM */
+typedef void (APIENTRY * GdkGLProc_glFlushStaticDataIBM) (GLenum target);
+GdkGLProc gdk_gl_get_glFlushStaticDataIBM (void);
+#define gdk_gl_glFlushStaticDataIBM(proc, target) \
+ ( ((GdkGLProc_glFlushStaticDataIBM) (proc)) (target) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_IBM_static_data GdkGL_GL_IBM_static_data;
+
+struct _GdkGL_GL_IBM_static_data
+{
+ GdkGLProc_glFlushStaticDataIBM glFlushStaticDataIBM;
+};
+
+GdkGL_GL_IBM_static_data *gdk_gl_get_GL_IBM_static_data (void);
+
+/*
+ * GL_KTX_buffer_region
+ */
+
+/* glBufferRegionEnabled */
+typedef GLuint (APIENTRY * GdkGLProc_glBufferRegionEnabled) (void);
+GdkGLProc gdk_gl_get_glBufferRegionEnabled (void);
+#define gdk_gl_glBufferRegionEnabled(proc) \
+ ( ((GdkGLProc_glBufferRegionEnabled) (proc)) () )
+
+/* glNewBufferRegion */
+typedef GLuint (APIENTRY * GdkGLProc_glNewBufferRegion) (GLenum region);
+GdkGLProc gdk_gl_get_glNewBufferRegion (void);
+#define gdk_gl_glNewBufferRegion(proc, region) \
+ ( ((GdkGLProc_glNewBufferRegion) (proc)) (region) )
+
+/* glDeleteBufferRegion */
+typedef void (APIENTRY * GdkGLProc_glDeleteBufferRegion) (GLenum region);
+GdkGLProc gdk_gl_get_glDeleteBufferRegion (void);
+#define gdk_gl_glDeleteBufferRegion(proc, region) \
+ ( ((GdkGLProc_glDeleteBufferRegion) (proc)) (region) )
+
+/* glReadBufferRegion */
+typedef void (APIENTRY * GdkGLProc_glReadBufferRegion) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height);
+GdkGLProc gdk_gl_get_glReadBufferRegion (void);
+#define gdk_gl_glReadBufferRegion(proc, region, x, y, width, height) \
+ ( ((GdkGLProc_glReadBufferRegion) (proc)) (region, x, y, width, height) )
+
+/* glDrawBufferRegion */
+typedef void (APIENTRY * GdkGLProc_glDrawBufferRegion) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest);
+GdkGLProc gdk_gl_get_glDrawBufferRegion (void);
+#define gdk_gl_glDrawBufferRegion(proc, region, x, y, width, height, xDest, yDest) \
+ ( ((GdkGLProc_glDrawBufferRegion) (proc)) (region, x, y, width, height, xDest, yDest) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_KTX_buffer_region GdkGL_GL_KTX_buffer_region;
+
+struct _GdkGL_GL_KTX_buffer_region
+{
+ GdkGLProc_glBufferRegionEnabled glBufferRegionEnabled;
+ GdkGLProc_glNewBufferRegion glNewBufferRegion;
+ GdkGLProc_glDeleteBufferRegion glDeleteBufferRegion;
+ GdkGLProc_glReadBufferRegion glReadBufferRegion;
+ GdkGLProc_glDrawBufferRegion glDrawBufferRegion;
+};
+
+GdkGL_GL_KTX_buffer_region *gdk_gl_get_GL_KTX_buffer_region (void);
+
+/*
+ * GL_NV_element_array
+ */
+
+/* glElementPointerNV */
+typedef void (APIENTRY * GdkGLProc_glElementPointerNV) (GLenum type, const GLvoid *pointer);
+GdkGLProc gdk_gl_get_glElementPointerNV (void);
+#define gdk_gl_glElementPointerNV(proc, type, pointer) \
+ ( ((GdkGLProc_glElementPointerNV) (proc)) (type, pointer) )
+
+/* glDrawElementArrayNV */
+typedef void (APIENTRY * GdkGLProc_glDrawElementArrayNV) (GLenum mode, GLint first, GLsizei count);
+GdkGLProc gdk_gl_get_glDrawElementArrayNV (void);
+#define gdk_gl_glDrawElementArrayNV(proc, mode, first, count) \
+ ( ((GdkGLProc_glDrawElementArrayNV) (proc)) (mode, first, count) )
+
+/* glDrawRangeElementArrayNV */
+typedef void (APIENTRY * GdkGLProc_glDrawRangeElementArrayNV) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
+GdkGLProc gdk_gl_get_glDrawRangeElementArrayNV (void);
+#define gdk_gl_glDrawRangeElementArrayNV(proc, mode, start, end, first, count) \
+ ( ((GdkGLProc_glDrawRangeElementArrayNV) (proc)) (mode, start, end, first, count) )
+
+/* glMultiDrawElementArrayNV */
+typedef void (APIENTRY * GdkGLProc_glMultiDrawElementArrayNV) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
+GdkGLProc gdk_gl_get_glMultiDrawElementArrayNV (void);
+#define gdk_gl_glMultiDrawElementArrayNV(proc, mode, first, count, primcount) \
+ ( ((GdkGLProc_glMultiDrawElementArrayNV) (proc)) (mode, first, count, primcount) )
+
+/* glMultiDrawRangeElementArrayNV */
+typedef void (APIENTRY * GdkGLProc_glMultiDrawRangeElementArrayNV) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
+GdkGLProc gdk_gl_get_glMultiDrawRangeElementArrayNV (void);
+#define gdk_gl_glMultiDrawRangeElementArrayNV(proc, mode, start, end, first, count, primcount) \
+ ( ((GdkGLProc_glMultiDrawRangeElementArrayNV) (proc)) (mode, start, end, first, count, primcount) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_element_array GdkGL_GL_NV_element_array;
+
+struct _GdkGL_GL_NV_element_array
+{
+ GdkGLProc_glElementPointerNV glElementPointerNV;
+ GdkGLProc_glDrawElementArrayNV glDrawElementArrayNV;
+ GdkGLProc_glDrawRangeElementArrayNV glDrawRangeElementArrayNV;
+ GdkGLProc_glMultiDrawElementArrayNV glMultiDrawElementArrayNV;
+ GdkGLProc_glMultiDrawRangeElementArrayNV glMultiDrawRangeElementArrayNV;
+};
+
+GdkGL_GL_NV_element_array *gdk_gl_get_GL_NV_element_array (void);
+
+/*
+ * GL_NV_stencil_two_side
+ */
+
+/* glActiveStencilFaceNV */
+typedef void (APIENTRY * GdkGLProc_glActiveStencilFaceNV) (GLenum face);
+GdkGLProc gdk_gl_get_glActiveStencilFaceNV (void);
+#define gdk_gl_glActiveStencilFaceNV(proc, face) \
+ ( ((GdkGLProc_glActiveStencilFaceNV) (proc)) (face) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_NV_stencil_two_side GdkGL_GL_NV_stencil_two_side;
+
+struct _GdkGL_GL_NV_stencil_two_side
+{
+ GdkGLProc_glActiveStencilFaceNV glActiveStencilFaceNV;
+};
+
+GdkGL_GL_NV_stencil_two_side *gdk_gl_get_GL_NV_stencil_two_side (void);
+
+/*
+ * GL_SGIS_multitexture
+ */
+
+/* glMultiTexCoord1dSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1dSGIS) (GLenum target, GLdouble s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1dSGIS (void);
+#define gdk_gl_glMultiTexCoord1dSGIS(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1dSGIS) (proc)) (target, s) )
+
+/* glMultiTexCoord1dvSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1dvSGIS) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1dvSGIS (void);
+#define gdk_gl_glMultiTexCoord1dvSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1dvSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord1fSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1fSGIS) (GLenum target, GLfloat s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1fSGIS (void);
+#define gdk_gl_glMultiTexCoord1fSGIS(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1fSGIS) (proc)) (target, s) )
+
+/* glMultiTexCoord1fvSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1fvSGIS) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1fvSGIS (void);
+#define gdk_gl_glMultiTexCoord1fvSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1fvSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord1iSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1iSGIS) (GLenum target, GLint s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1iSGIS (void);
+#define gdk_gl_glMultiTexCoord1iSGIS(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1iSGIS) (proc)) (target, s) )
+
+/* glMultiTexCoord1ivSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1ivSGIS) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1ivSGIS (void);
+#define gdk_gl_glMultiTexCoord1ivSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1ivSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord1sSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1sSGIS) (GLenum target, GLshort s);
+GdkGLProc gdk_gl_get_glMultiTexCoord1sSGIS (void);
+#define gdk_gl_glMultiTexCoord1sSGIS(proc, target, s) \
+ ( ((GdkGLProc_glMultiTexCoord1sSGIS) (proc)) (target, s) )
+
+/* glMultiTexCoord1svSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord1svSGIS) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord1svSGIS (void);
+#define gdk_gl_glMultiTexCoord1svSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord1svSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord2dSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2dSGIS) (GLenum target, GLdouble s, GLdouble t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2dSGIS (void);
+#define gdk_gl_glMultiTexCoord2dSGIS(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2dSGIS) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2dvSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2dvSGIS) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2dvSGIS (void);
+#define gdk_gl_glMultiTexCoord2dvSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2dvSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord2fSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2fSGIS) (GLenum target, GLfloat s, GLfloat t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2fSGIS (void);
+#define gdk_gl_glMultiTexCoord2fSGIS(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2fSGIS) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2fvSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2fvSGIS) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2fvSGIS (void);
+#define gdk_gl_glMultiTexCoord2fvSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2fvSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord2iSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2iSGIS) (GLenum target, GLint s, GLint t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2iSGIS (void);
+#define gdk_gl_glMultiTexCoord2iSGIS(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2iSGIS) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2ivSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2ivSGIS) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2ivSGIS (void);
+#define gdk_gl_glMultiTexCoord2ivSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2ivSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord2sSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2sSGIS) (GLenum target, GLshort s, GLshort t);
+GdkGLProc gdk_gl_get_glMultiTexCoord2sSGIS (void);
+#define gdk_gl_glMultiTexCoord2sSGIS(proc, target, s, t) \
+ ( ((GdkGLProc_glMultiTexCoord2sSGIS) (proc)) (target, s, t) )
+
+/* glMultiTexCoord2svSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord2svSGIS) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord2svSGIS (void);
+#define gdk_gl_glMultiTexCoord2svSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord2svSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord3dSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3dSGIS) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3dSGIS (void);
+#define gdk_gl_glMultiTexCoord3dSGIS(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3dSGIS) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3dvSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3dvSGIS) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3dvSGIS (void);
+#define gdk_gl_glMultiTexCoord3dvSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3dvSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord3fSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3fSGIS) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3fSGIS (void);
+#define gdk_gl_glMultiTexCoord3fSGIS(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3fSGIS) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3fvSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3fvSGIS) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3fvSGIS (void);
+#define gdk_gl_glMultiTexCoord3fvSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3fvSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord3iSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3iSGIS) (GLenum target, GLint s, GLint t, GLint r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3iSGIS (void);
+#define gdk_gl_glMultiTexCoord3iSGIS(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3iSGIS) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3ivSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3ivSGIS) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3ivSGIS (void);
+#define gdk_gl_glMultiTexCoord3ivSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3ivSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord3sSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3sSGIS) (GLenum target, GLshort s, GLshort t, GLshort r);
+GdkGLProc gdk_gl_get_glMultiTexCoord3sSGIS (void);
+#define gdk_gl_glMultiTexCoord3sSGIS(proc, target, s, t, r) \
+ ( ((GdkGLProc_glMultiTexCoord3sSGIS) (proc)) (target, s, t, r) )
+
+/* glMultiTexCoord3svSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord3svSGIS) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord3svSGIS (void);
+#define gdk_gl_glMultiTexCoord3svSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord3svSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord4dSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4dSGIS) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4dSGIS (void);
+#define gdk_gl_glMultiTexCoord4dSGIS(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4dSGIS) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4dvSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4dvSGIS) (GLenum target, const GLdouble *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4dvSGIS (void);
+#define gdk_gl_glMultiTexCoord4dvSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4dvSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord4fSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4fSGIS) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4fSGIS (void);
+#define gdk_gl_glMultiTexCoord4fSGIS(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4fSGIS) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4fvSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4fvSGIS) (GLenum target, const GLfloat *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4fvSGIS (void);
+#define gdk_gl_glMultiTexCoord4fvSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4fvSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord4iSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4iSGIS) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4iSGIS (void);
+#define gdk_gl_glMultiTexCoord4iSGIS(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4iSGIS) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4ivSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4ivSGIS) (GLenum target, const GLint *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4ivSGIS (void);
+#define gdk_gl_glMultiTexCoord4ivSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4ivSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoord4sSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4sSGIS) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+GdkGLProc gdk_gl_get_glMultiTexCoord4sSGIS (void);
+#define gdk_gl_glMultiTexCoord4sSGIS(proc, target, s, t, r, q) \
+ ( ((GdkGLProc_glMultiTexCoord4sSGIS) (proc)) (target, s, t, r, q) )
+
+/* glMultiTexCoord4svSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoord4svSGIS) (GLenum target, const GLshort *v);
+GdkGLProc gdk_gl_get_glMultiTexCoord4svSGIS (void);
+#define gdk_gl_glMultiTexCoord4svSGIS(proc, target, v) \
+ ( ((GdkGLProc_glMultiTexCoord4svSGIS) (proc)) (target, v) )
+
+/* glMultiTexCoordPointerSGIS */
+typedef void (APIENTRY * GdkGLProc_glMultiTexCoordPointerSGIS) (GLenum target, GLint size, GLenum type, GLsizei stride, const void *pointer);
+GdkGLProc gdk_gl_get_glMultiTexCoordPointerSGIS (void);
+#define gdk_gl_glMultiTexCoordPointerSGIS(proc, target, size, type, stride, pointer) \
+ ( ((GdkGLProc_glMultiTexCoordPointerSGIS) (proc)) (target, size, type, stride, pointer) )
+
+/* glSelectTextureSGIS */
+typedef void (APIENTRY * GdkGLProc_glSelectTextureSGIS) (GLenum target);
+GdkGLProc gdk_gl_get_glSelectTextureSGIS (void);
+#define gdk_gl_glSelectTextureSGIS(proc, target) \
+ ( ((GdkGLProc_glSelectTextureSGIS) (proc)) (target) )
+
+/* glSelectTextureCoordSetSGIS */
+typedef void (APIENTRY * GdkGLProc_glSelectTextureCoordSetSGIS) (GLenum target);
+GdkGLProc gdk_gl_get_glSelectTextureCoordSetSGIS (void);
+#define gdk_gl_glSelectTextureCoordSetSGIS(proc, target) \
+ ( ((GdkGLProc_glSelectTextureCoordSetSGIS) (proc)) (target) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIS_multitexture GdkGL_GL_SGIS_multitexture;
+
+struct _GdkGL_GL_SGIS_multitexture
+{
+ GdkGLProc_glMultiTexCoord1dSGIS glMultiTexCoord1dSGIS;
+ GdkGLProc_glMultiTexCoord1dvSGIS glMultiTexCoord1dvSGIS;
+ GdkGLProc_glMultiTexCoord1fSGIS glMultiTexCoord1fSGIS;
+ GdkGLProc_glMultiTexCoord1fvSGIS glMultiTexCoord1fvSGIS;
+ GdkGLProc_glMultiTexCoord1iSGIS glMultiTexCoord1iSGIS;
+ GdkGLProc_glMultiTexCoord1ivSGIS glMultiTexCoord1ivSGIS;
+ GdkGLProc_glMultiTexCoord1sSGIS glMultiTexCoord1sSGIS;
+ GdkGLProc_glMultiTexCoord1svSGIS glMultiTexCoord1svSGIS;
+ GdkGLProc_glMultiTexCoord2dSGIS glMultiTexCoord2dSGIS;
+ GdkGLProc_glMultiTexCoord2dvSGIS glMultiTexCoord2dvSGIS;
+ GdkGLProc_glMultiTexCoord2fSGIS glMultiTexCoord2fSGIS;
+ GdkGLProc_glMultiTexCoord2fvSGIS glMultiTexCoord2fvSGIS;
+ GdkGLProc_glMultiTexCoord2iSGIS glMultiTexCoord2iSGIS;
+ GdkGLProc_glMultiTexCoord2ivSGIS glMultiTexCoord2ivSGIS;
+ GdkGLProc_glMultiTexCoord2sSGIS glMultiTexCoord2sSGIS;
+ GdkGLProc_glMultiTexCoord2svSGIS glMultiTexCoord2svSGIS;
+ GdkGLProc_glMultiTexCoord3dSGIS glMultiTexCoord3dSGIS;
+ GdkGLProc_glMultiTexCoord3dvSGIS glMultiTexCoord3dvSGIS;
+ GdkGLProc_glMultiTexCoord3fSGIS glMultiTexCoord3fSGIS;
+ GdkGLProc_glMultiTexCoord3fvSGIS glMultiTexCoord3fvSGIS;
+ GdkGLProc_glMultiTexCoord3iSGIS glMultiTexCoord3iSGIS;
+ GdkGLProc_glMultiTexCoord3ivSGIS glMultiTexCoord3ivSGIS;
+ GdkGLProc_glMultiTexCoord3sSGIS glMultiTexCoord3sSGIS;
+ GdkGLProc_glMultiTexCoord3svSGIS glMultiTexCoord3svSGIS;
+ GdkGLProc_glMultiTexCoord4dSGIS glMultiTexCoord4dSGIS;
+ GdkGLProc_glMultiTexCoord4dvSGIS glMultiTexCoord4dvSGIS;
+ GdkGLProc_glMultiTexCoord4fSGIS glMultiTexCoord4fSGIS;
+ GdkGLProc_glMultiTexCoord4fvSGIS glMultiTexCoord4fvSGIS;
+ GdkGLProc_glMultiTexCoord4iSGIS glMultiTexCoord4iSGIS;
+ GdkGLProc_glMultiTexCoord4ivSGIS glMultiTexCoord4ivSGIS;
+ GdkGLProc_glMultiTexCoord4sSGIS glMultiTexCoord4sSGIS;
+ GdkGLProc_glMultiTexCoord4svSGIS glMultiTexCoord4svSGIS;
+ GdkGLProc_glMultiTexCoordPointerSGIS glMultiTexCoordPointerSGIS;
+ GdkGLProc_glSelectTextureSGIS glSelectTextureSGIS;
+ GdkGLProc_glSelectTextureCoordSetSGIS glSelectTextureCoordSetSGIS;
+};
+
+GdkGL_GL_SGIS_multitexture *gdk_gl_get_GL_SGIS_multitexture (void);
+
+/*
+ * GL_SGIX_fog_texture
+ */
+
+/* glTextureFogSGIX */
+typedef void (APIENTRY * GdkGLProc_glTextureFogSGIX) (GLenum pname);
+GdkGLProc gdk_gl_get_glTextureFogSGIX (void);
+#define gdk_gl_glTextureFogSGIX(proc, pname) \
+ ( ((GdkGLProc_glTextureFogSGIX) (proc)) (pname) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SGIX_fog_texture GdkGL_GL_SGIX_fog_texture;
+
+struct _GdkGL_GL_SGIX_fog_texture
+{
+ GdkGLProc_glTextureFogSGIX glTextureFogSGIX;
+};
+
+GdkGL_GL_SGIX_fog_texture *gdk_gl_get_GL_SGIX_fog_texture (void);
+
+/*
+ * GL_SUN_multi_draw_arrays
+ */
+
+/* glMultiDrawArraysSUN */
+typedef void (APIENTRY * GdkGLProc_glMultiDrawArraysSUN) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+GdkGLProc gdk_gl_get_glMultiDrawArraysSUN (void);
+#define gdk_gl_glMultiDrawArraysSUN(proc, mode, first, count, primcount) \
+ ( ((GdkGLProc_glMultiDrawArraysSUN) (proc)) (mode, first, count, primcount) )
+
+/* glMultiDrawElementsSUN */
+typedef void (APIENTRY * GdkGLProc_glMultiDrawElementsSUN) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
+GdkGLProc gdk_gl_get_glMultiDrawElementsSUN (void);
+#define gdk_gl_glMultiDrawElementsSUN(proc, mode, count, type, indices, primcount) \
+ ( ((GdkGLProc_glMultiDrawElementsSUN) (proc)) (mode, count, type, indices, primcount) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_SUN_multi_draw_arrays GdkGL_GL_SUN_multi_draw_arrays;
+
+struct _GdkGL_GL_SUN_multi_draw_arrays
+{
+ GdkGLProc_glMultiDrawArraysSUN glMultiDrawArraysSUN;
+ GdkGLProc_glMultiDrawElementsSUN glMultiDrawElementsSUN;
+};
+
+GdkGL_GL_SUN_multi_draw_arrays *gdk_gl_get_GL_SUN_multi_draw_arrays (void);
+
+/*
+ * GL_WIN_swap_hint
+ */
+
+/* glAddSwapHintRectWIN */
+typedef void (APIENTRY * GdkGLProc_glAddSwapHintRectWIN) (GLint x, GLint y, GLsizei width, GLsizei height);
+GdkGLProc gdk_gl_get_glAddSwapHintRectWIN (void);
+#define gdk_gl_glAddSwapHintRectWIN(proc, x, y, width, height) \
+ ( ((GdkGLProc_glAddSwapHintRectWIN) (proc)) (x, y, width, height) )
+
+/* proc struct */
+
+typedef struct _GdkGL_GL_WIN_swap_hint GdkGL_GL_WIN_swap_hint;
+
+struct _GdkGL_GL_WIN_swap_hint
+{
+ GdkGLProc_glAddSwapHintRectWIN glAddSwapHintRectWIN;
+};
+
+GdkGL_GL_WIN_swap_hint *gdk_gl_get_GL_WIN_swap_hint (void);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_GLEXT_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.c
new file mode 100644
index 00000000..b2fcb459
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.c
@@ -0,0 +1,245 @@
+/* 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.
+ */
+
+#include <string.h>
+#include <stdlib.h>
+
+#include "gdkglprivate.h"
+#include "gdkglquery.h"
+#include "gdkglinit.h"
+
+static gboolean gdk_gl_initialized = FALSE;
+
+guint gdk_gl_debug_flags = 0; /* Global GdkGLExt debug flag */
+
+#ifdef G_ENABLE_DEBUG
+
+static const GDebugKey gdk_gl_debug_keys[] = {
+ {"misc", GDK_GL_DEBUG_MISC},
+ {"func", GDK_GL_DEBUG_FUNC},
+ {"impl", GDK_GL_DEBUG_IMPL}
+};
+
+static const guint gdk_gl_ndebug_keys = G_N_ELEMENTS (gdk_gl_debug_keys);
+
+#endif /* G_ENABLE_DEBUG */
+
+/**
+ * gdk_gl_parse_args:
+ * @argc: the number of command line arguments.
+ * @argv: the array of command line arguments.
+ *
+ * Parses command line arguments, and initializes global
+ * attributes of GdkGLExt.
+ *
+ * Any arguments used by GdkGLExt are removed from the array and
+ * @argc and @argv are updated accordingly.
+ *
+ * You shouldn't call this function explicitely if you are using
+ * gdk_gl_init(), or gdk_gl_init_check().
+ *
+ * Return value: %TRUE if initialization succeeded, otherwise %FALSE.
+ **/
+gboolean
+gdk_gl_parse_args (int *argc,
+ char ***argv)
+{
+ const gchar *env_string;
+
+ if (gdk_gl_initialized)
+ return TRUE;
+
+ env_string = g_getenv ("GDK_GL_NO_STANDARD_COLORMAP");
+ if (env_string != NULL)
+ {
+ _gdk_gl_config_no_standard_colormap = (atoi (env_string) != 0);
+ env_string = NULL;
+ }
+
+ env_string = g_getenv ("GDK_GL_FORCE_INDIRECT");
+ if (env_string != NULL)
+ {
+ _gdk_gl_context_force_indirect = (atoi (env_string) != 0);
+ env_string = NULL;
+ }
+
+#ifdef G_ENABLE_DEBUG
+ env_string = g_getenv ("GDK_GL_DEBUG");
+ if (env_string != NULL)
+ {
+ gdk_gl_debug_flags = g_parse_debug_string (env_string,
+ gdk_gl_debug_keys,
+ gdk_gl_ndebug_keys);
+ env_string = NULL;
+ }
+#endif /* G_ENABLE_DEBUG */
+
+ if (argc && argv)
+ {
+ gint i, j, k;
+
+ for (i = 1; i < *argc;)
+ {
+ if (strcmp ("--gdk-gl-no-standard-colormap", (*argv)[i]) == 0)
+ {
+ _gdk_gl_config_no_standard_colormap = TRUE;
+ (*argv)[i] = NULL;
+ }
+ else if (strcmp ("--gdk-gl-force-indirect", (*argv)[i]) == 0)
+ {
+ _gdk_gl_context_force_indirect = TRUE;
+ (*argv)[i] = NULL;
+ }
+#ifdef G_ENABLE_DEBUG
+ else if ((strcmp ("--gdk-gl-debug", (*argv)[i]) == 0) ||
+ (strncmp ("--gdk-gl-debug=", (*argv)[i], 15) == 0))
+ {
+ gchar *equal_pos = strchr ((*argv)[i], '=');
+
+ if (equal_pos != NULL)
+ {
+ gdk_gl_debug_flags |= g_parse_debug_string (equal_pos+1,
+ gdk_gl_debug_keys,
+ gdk_gl_ndebug_keys);
+ }
+ else if ((i + 1) < *argc && (*argv)[i + 1])
+ {
+ gdk_gl_debug_flags |= g_parse_debug_string ((*argv)[i+1],
+ gdk_gl_debug_keys,
+ gdk_gl_ndebug_keys);
+ (*argv)[i] = NULL;
+ i += 1;
+ }
+ (*argv)[i] = NULL;
+ }
+ else if ((strcmp ("--gdk-gl-no-debug", (*argv)[i]) == 0) ||
+ (strncmp ("--gdk-gl-no-debug=", (*argv)[i], 18) == 0))
+ {
+ gchar *equal_pos = strchr ((*argv)[i], '=');
+
+ if (equal_pos != NULL)
+ {
+ gdk_gl_debug_flags &= ~g_parse_debug_string (equal_pos+1,
+ gdk_gl_debug_keys,
+ gdk_gl_ndebug_keys);
+ }
+ else if ((i + 1) < *argc && (*argv)[i + 1])
+ {
+ gdk_gl_debug_flags &= ~g_parse_debug_string ((*argv)[i+1],
+ gdk_gl_debug_keys,
+ gdk_gl_ndebug_keys);
+ (*argv)[i] = NULL;
+ i += 1;
+ }
+ (*argv)[i] = NULL;
+ }
+#endif /* G_ENABLE_DEBUG */
+ i += 1;
+ }
+
+ for (i = 1; i < *argc; i++)
+ {
+ for (k = i; k < *argc; k++)
+ if ((*argv)[k] != NULL)
+ break;
+
+ if (k > i)
+ {
+ k -= i;
+ for (j = i + k; j < *argc; j++)
+ (*argv)[j-k] = (*argv)[j];
+ *argc -= k;
+ }
+ }
+
+ }
+
+ /* Set the 'initialized' flag. */
+ gdk_gl_initialized = TRUE;
+
+ return TRUE;
+}
+
+/**
+ * gdk_gl_init_check:
+ * @argc: Address of the <parameter>argc</parameter> parameter of your
+ * <function>main()</function> function. Changed if any arguments
+ * were handled.
+ * @argv: Address of the <parameter>argv</parameter> parameter of
+ * <function>main()</function>. Any parameters understood by
+ * gdk_gl_init() are stripped before return.
+ *
+ * This function does the same work as gdk_gl_init() with only
+ * a single change: It does not terminate the program if the library can't be
+ * initialized. Instead it returns %FALSE on failure.
+ *
+ * This way the application can fall back to some other means of communication
+ * with the user - for example a curses or command line interface.
+ *
+ * Return value: %TRUE if the GUI has been successfully initialized,
+ * %FALSE otherwise.
+ **/
+gboolean
+gdk_gl_init_check (int *argc,
+ char ***argv)
+{
+ /* Parse args and init GdkGLExt library. */
+ if (!gdk_gl_parse_args (argc, argv))
+ {
+ g_warning ("GdkGLExt library initialization fails.");
+ return FALSE;
+ }
+
+ /* Is OpenGL supported? */
+ if (!gdk_gl_query_extension ())
+ {
+ g_warning ("Window system doesn't support OpenGL.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * gdk_gl_init:
+ * @argc: Address of the <parameter>argc</parameter> parameter of your
+ * <function>main()</function> function. Changed if any arguments
+ * were handled.
+ * @argv: Address of the <parameter>argv</parameter> parameter of
+ * <function>main()</function>. Any parameters understood by
+ * gdk_gl_init() are stripped before return.
+ *
+ * Call this function before using any other GdkGLExt functions in your
+ * applications. It will initialize everything needed to operate the library
+ * and parses some standard command line options. @argc and
+ * @argv are adjusted accordingly so your own code will
+ * never see those standard arguments.
+ *
+ * <note><para>
+ * This function will terminate your program if it was unable to initialize
+ * the library for some reason. If you want your program to fall back to a
+ * textual interface you want to call gdk_gl_init_check() instead.
+ * </para></note>
+ **/
+void
+gdk_gl_init (int *argc,
+ char ***argv)
+{
+ if (!gdk_gl_init_check (argc, argv))
+ exit (1);
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.h
new file mode 100644
index 00000000..c0abdd16
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.h
@@ -0,0 +1,42 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_INIT_H__
+#define __GDK_GL_INIT_H__
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkgltypes.h>
+
+G_BEGIN_DECLS
+
+/*
+ * Initialization routines.
+ */
+
+gboolean gdk_gl_parse_args (int *argc,
+ char ***argv);
+
+gboolean gdk_gl_init_check (int *argc,
+ char ***argv);
+
+void gdk_gl_init (int *argc,
+ char ***argv);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_INIT_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.c
new file mode 100644
index 00000000..b2971fe9
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.c
@@ -0,0 +1,803 @@
+/* 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.
+ */
+
+#include <gtk/gtkversion.h>
+
+#include "gdkglprivate.h"
+#include "gdkglconfig.h"
+#include "gdkglpixmap.h"
+
+static GdkGC *gdk_gl_pixmap_create_gc (GdkDrawable *drawable,
+ GdkGCValues *values,
+ GdkGCValuesMask mask);
+static void gdk_gl_pixmap_draw_rectangle (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ gint x,
+ gint y,
+ gint width,
+ gint height);
+static void gdk_gl_pixmap_draw_arc (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gint angle1,
+ gint angle2);
+static void gdk_gl_pixmap_draw_polygon (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ GdkPoint *points,
+ gint npoints);
+static void gdk_gl_pixmap_draw_text (GdkDrawable *drawable,
+ GdkFont *font,
+ GdkGC *gc,
+ gint x,
+ gint y,
+ const gchar *text,
+ gint text_length);
+static void gdk_gl_pixmap_draw_text_wc (GdkDrawable *drawable,
+ GdkFont *font,
+ GdkGC *gc,
+ gint x,
+ gint y,
+ const GdkWChar *text,
+ gint text_length);
+static void gdk_gl_pixmap_draw_drawable (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkDrawable *src,
+ gint xsrc,
+ gint ysrc,
+ gint xdest,
+ gint ydest,
+ gint width,
+ gint height);
+static void gdk_gl_pixmap_draw_points (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPoint *points,
+ gint npoints);
+static void gdk_gl_pixmap_draw_segments (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkSegment *segs,
+ gint nsegs);
+static void gdk_gl_pixmap_draw_lines (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPoint *points,
+ gint npoints);
+static void gdk_gl_pixmap_draw_glyphs (GdkDrawable *drawable,
+ GdkGC *gc,
+ PangoFont *font,
+ gint x,
+ gint y,
+ PangoGlyphString *glyphs);
+static void gdk_gl_pixmap_draw_image (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkImage *image,
+ gint xsrc,
+ gint ysrc,
+ gint xdest,
+ gint ydest,
+ gint width,
+ gint height);
+static gint gdk_gl_pixmap_get_depth (GdkDrawable *drawable);
+static void gdk_gl_pixmap_get_size (GdkDrawable *drawable,
+ gint *width,
+ gint *height);
+static void gdk_gl_pixmap_set_colormap (GdkDrawable *drawable,
+ GdkColormap *cmap);
+static GdkColormap *gdk_gl_pixmap_get_colormap (GdkDrawable *drawable);
+static GdkVisual *gdk_gl_pixmap_get_visual (GdkDrawable *drawable);
+#if !(GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION == 0)
+static GdkScreen *gdk_gl_pixmap_get_screen (GdkDrawable *drawable);
+#endif
+static GdkImage *gdk_gl_pixmap_get_image (GdkDrawable *drawable,
+ gint x,
+ gint y,
+ gint width,
+ gint height);
+static GdkRegion *gdk_gl_pixmap_get_clip_region (GdkDrawable *drawable);
+static GdkRegion *gdk_gl_pixmap_get_visible_region (GdkDrawable *drawable);
+static GdkDrawable *gdk_gl_pixmap_get_composite_drawable (GdkDrawable *drawable,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gint *composite_x_offset,
+ gint *composite_y_offset);
+static void gdk_gl_pixmap_draw_pixbuf (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPixbuf *pixbuf,
+ gint src_x,
+ gint src_y,
+ gint dest_x,
+ gint dest_y,
+ gint width,
+ gint height,
+ GdkRgbDither dither,
+ gint x_dither,
+ gint y_dither);
+static GdkImage *gdk_gl_pixmap_copy_to_image (GdkDrawable *drawable,
+ GdkImage *image,
+ gint src_x,
+ gint src_y,
+ gint dest_x,
+ gint dest_y,
+ gint width,
+ gint height);
+
+static void gdk_gl_pixmap_class_init (GdkGLPixmapClass *klass);
+static void gdk_gl_pixmap_finalize (GObject *object);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_pixmap_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLPixmapClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_pixmap_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLPixmap),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+
+ type = g_type_register_static (GDK_TYPE_DRAWABLE,
+ "GdkGLPixmap",
+ &type_info, 0);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_pixmap_class_init (GdkGLPixmapClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GdkDrawableClass *drawable_class = GDK_DRAWABLE_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_pixmap_finalize;
+
+ drawable_class->create_gc = gdk_gl_pixmap_create_gc;
+ drawable_class->draw_rectangle = gdk_gl_pixmap_draw_rectangle;
+ drawable_class->draw_arc = gdk_gl_pixmap_draw_arc;
+ drawable_class->draw_polygon = gdk_gl_pixmap_draw_polygon;
+ drawable_class->draw_text = gdk_gl_pixmap_draw_text;
+ drawable_class->draw_text_wc = gdk_gl_pixmap_draw_text_wc;
+ drawable_class->draw_drawable = gdk_gl_pixmap_draw_drawable;
+ drawable_class->draw_points = gdk_gl_pixmap_draw_points;
+ drawable_class->draw_segments = gdk_gl_pixmap_draw_segments;
+ drawable_class->draw_lines = gdk_gl_pixmap_draw_lines;
+ drawable_class->draw_glyphs = gdk_gl_pixmap_draw_glyphs;
+ drawable_class->draw_image = gdk_gl_pixmap_draw_image;
+ drawable_class->get_depth = gdk_gl_pixmap_get_depth;
+ drawable_class->get_size = gdk_gl_pixmap_get_size;
+ drawable_class->set_colormap = gdk_gl_pixmap_set_colormap;
+ drawable_class->get_colormap = gdk_gl_pixmap_get_colormap;
+ drawable_class->get_visual = gdk_gl_pixmap_get_visual;
+#if !(GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION == 0)
+ drawable_class->get_screen = gdk_gl_pixmap_get_screen;
+#endif
+ drawable_class->get_image = gdk_gl_pixmap_get_image;
+ drawable_class->get_clip_region = gdk_gl_pixmap_get_clip_region;
+ drawable_class->get_visible_region = gdk_gl_pixmap_get_visible_region;
+ drawable_class->get_composite_drawable = gdk_gl_pixmap_get_composite_drawable;
+#if GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION == 0
+ drawable_class->_draw_pixbuf = gdk_gl_pixmap_draw_pixbuf;
+#else
+ drawable_class->draw_pixbuf = gdk_gl_pixmap_draw_pixbuf;
+#endif
+ drawable_class->_copy_to_image = gdk_gl_pixmap_copy_to_image;
+}
+
+static void
+gdk_gl_pixmap_finalize (GObject *object)
+{
+ GdkGLPixmap *glpixmap = GDK_GL_PIXMAP (object);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (glpixmap->drawable != NULL)
+ g_object_remove_weak_pointer (G_OBJECT (glpixmap->drawable),
+ (gpointer *) &(glpixmap->drawable));
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static GdkGC *
+gdk_gl_pixmap_create_gc (GdkDrawable *drawable,
+ GdkGCValues *values,
+ GdkGCValuesMask mask)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->create_gc (real_drawable,
+ values,
+ mask);
+}
+
+static void
+gdk_gl_pixmap_draw_rectangle (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ gint x,
+ gint y,
+ gint width,
+ gint height)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_rectangle (real_drawable,
+ gc,
+ filled,
+ x,
+ y,
+ width,
+ height);
+}
+
+static void
+gdk_gl_pixmap_draw_arc (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gint angle1,
+ gint angle2)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_arc (real_drawable,
+ gc,
+ filled,
+ x,
+ y,
+ width,
+ height,
+ angle1,
+ angle2);
+}
+
+static void
+gdk_gl_pixmap_draw_polygon (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ GdkPoint *points,
+ gint npoints)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_polygon (real_drawable,
+ gc,
+ filled,
+ points,
+ npoints);
+}
+
+static void
+gdk_gl_pixmap_draw_text (GdkDrawable *drawable,
+ GdkFont *font,
+ GdkGC *gc,
+ gint x,
+ gint y,
+ const gchar *text,
+ gint text_length)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_text (real_drawable,
+ font,
+ gc,
+ x,
+ y,
+ text,
+ text_length);
+}
+
+static void
+gdk_gl_pixmap_draw_text_wc (GdkDrawable *drawable,
+ GdkFont *font,
+ GdkGC *gc,
+ gint x,
+ gint y,
+ const GdkWChar *text,
+ gint text_length)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_text_wc (real_drawable,
+ font,
+ gc,
+ x,
+ y,
+ text,
+ text_length);
+}
+
+static void
+gdk_gl_pixmap_draw_drawable (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkDrawable *src,
+ gint xsrc,
+ gint ysrc,
+ gint xdest,
+ gint ydest,
+ gint width,
+ gint height)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_drawable (real_drawable,
+ gc,
+ src,
+ xsrc,
+ ysrc,
+ xdest,
+ ydest,
+ width,
+ height);
+}
+
+static void
+gdk_gl_pixmap_draw_points (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPoint *points,
+ gint npoints)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_points (real_drawable,
+ gc,
+ points,
+ npoints);
+}
+
+static void
+gdk_gl_pixmap_draw_segments (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkSegment *segs,
+ gint nsegs)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_segments (real_drawable,
+ gc,
+ segs,
+ nsegs);
+}
+
+static void
+gdk_gl_pixmap_draw_lines (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPoint *points,
+ gint npoints)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_lines (real_drawable,
+ gc,
+ points,
+ npoints);
+}
+
+static void
+gdk_gl_pixmap_draw_glyphs (GdkDrawable *drawable,
+ GdkGC *gc,
+ PangoFont *font,
+ gint x,
+ gint y,
+ PangoGlyphString *glyphs)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_glyphs (real_drawable,
+ gc,
+ font,
+ x,
+ y,
+ glyphs);
+}
+
+static void
+gdk_gl_pixmap_draw_image (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkImage *image,
+ gint xsrc,
+ gint ysrc,
+ gint xdest,
+ gint ydest,
+ gint width,
+ gint height)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_image (real_drawable,
+ gc,
+ image,
+ xsrc,
+ ysrc,
+ xdest,
+ ydest,
+ width,
+ height);
+}
+
+static gint
+gdk_gl_pixmap_get_depth (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_depth (real_drawable);
+}
+
+static void
+gdk_gl_pixmap_get_size (GdkDrawable *drawable,
+ gint *width,
+ gint *height)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->get_size (real_drawable,
+ width,
+ height);
+}
+
+static void
+gdk_gl_pixmap_set_colormap (GdkDrawable *drawable,
+ GdkColormap *cmap)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->set_colormap (real_drawable,
+ cmap);
+}
+
+static GdkColormap *
+gdk_gl_pixmap_get_colormap (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_colormap (real_drawable);
+}
+
+static GdkVisual *
+gdk_gl_pixmap_get_visual (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_visual (real_drawable);
+}
+
+#if !(GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION == 0)
+
+static GdkScreen *
+gdk_gl_pixmap_get_screen (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_screen (real_drawable);
+}
+
+#endif
+
+static GdkImage *
+gdk_gl_pixmap_get_image (GdkDrawable *drawable,
+ gint x,
+ gint y,
+ gint width,
+ gint height)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_image (real_drawable,
+ x,
+ y,
+ width,
+ height);
+}
+
+static GdkRegion *
+gdk_gl_pixmap_get_clip_region (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_clip_region (real_drawable);
+}
+
+static GdkRegion *
+gdk_gl_pixmap_get_visible_region (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_visible_region (real_drawable);
+}
+
+static GdkDrawable *
+gdk_gl_pixmap_get_composite_drawable (GdkDrawable *drawable,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gint *composite_x_offset,
+ gint *composite_y_offset)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_composite_drawable (real_drawable,
+ x,
+ y,
+ width,
+ height,
+ composite_x_offset,
+ composite_y_offset);
+}
+
+static void
+gdk_gl_pixmap_draw_pixbuf (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPixbuf *pixbuf,
+ gint src_x,
+ gint src_y,
+ gint dest_x,
+ gint dest_y,
+ gint width,
+ gint height,
+ GdkRgbDither dither,
+ gint x_dither,
+ gint y_dither)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+#if GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION == 0
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->_draw_pixbuf (real_drawable,
+ gc,
+ pixbuf,
+ src_x,
+ src_y,
+ dest_x,
+ dest_y,
+ width,
+ height,
+ dither,
+ x_dither,
+ y_dither);
+#else
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_pixbuf (real_drawable,
+ gc,
+ pixbuf,
+ src_x,
+ src_y,
+ dest_x,
+ dest_y,
+ width,
+ height,
+ dither,
+ x_dither,
+ y_dither);
+#endif
+}
+
+static GdkImage *
+gdk_gl_pixmap_copy_to_image (GdkDrawable *drawable,
+ GdkImage *image,
+ gint src_x,
+ gint src_y,
+ gint dest_x,
+ gint dest_y,
+ gint width,
+ gint height)
+{
+ GdkDrawable *real_drawable = ((GdkGLPixmap *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->_copy_to_image (real_drawable,
+ image,
+ src_x,
+ src_y,
+ dest_x,
+ dest_y,
+ width,
+ height);
+}
+
+/*< private >*/
+void
+_gdk_gl_pixmap_get_size (GdkGLDrawable *gldrawable,
+ gint *width,
+ gint *height)
+{
+ GdkDrawable *real_drawable;
+
+ g_return_if_fail (GDK_IS_GL_PIXMAP (gldrawable));
+
+ real_drawable = ((GdkGLPixmap *) gldrawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->get_size (real_drawable,
+ width,
+ height);
+}
+
+/**
+ * gdk_gl_pixmap_destroy:
+ * @glpixmap: a #GdkGLPixmap.
+ *
+ * Destroys the OpenGL resources associated with @glpixmap and
+ * decrements @glpixmap's reference count.
+ **/
+void
+gdk_gl_pixmap_destroy (GdkGLPixmap *glpixmap)
+{
+ g_return_if_fail (GDK_IS_GL_PIXMAP (glpixmap));
+
+ _gdk_gl_pixmap_destroy (glpixmap);
+ g_object_unref (G_OBJECT (glpixmap));
+}
+
+/**
+ * gdk_gl_pixmap_get_pixmap:
+ * @glpixmap: a #GdkGLPixmap.
+ *
+ * Returns the #GdkPixmap associated with @glpixmap.
+ *
+ * Notice that #GdkGLPixmap is not #GdkPixmap, but another
+ * #GdkDrawable which have an associated #GdkPixmap.
+ *
+ * Return value: the #GdkPixmap associated with @glpixmap.
+ **/
+GdkPixmap *
+gdk_gl_pixmap_get_pixmap (GdkGLPixmap *glpixmap)
+{
+ g_return_val_if_fail (GDK_IS_GL_PIXMAP (glpixmap), NULL);
+
+ return GDK_PIXMAP (glpixmap->drawable);
+}
+
+/*
+ * OpenGL extension to GdkPixmap
+ */
+
+static const gchar quark_gl_pixmap_string[] = "gdk-gl-pixmap-gl-pixmap";
+static GQuark quark_gl_pixmap = 0;
+
+/**
+ * gdk_pixmap_set_gl_capability:
+ * @pixmap: the #GdkPixmap to be used as the rendering area.
+ * @glconfig: a #GdkGLConfig.
+ * @attrib_list: this must be set to NULL or empty (first attribute of None).
+ *
+ * Set the OpenGL-capability to the @pixmap.
+ * This function creates a new #GdkGLPixmap held by the @pixmap.
+ * attrib_list is currently unused. This must be set to NULL or empty
+ * (first attribute of None).
+ *
+ * Return value: the #GdkGLPixmap used by the @pixmap if it is successful,
+ * NULL otherwise.
+ **/
+GdkGLPixmap *
+gdk_pixmap_set_gl_capability (GdkPixmap *pixmap,
+ GdkGLConfig *glconfig,
+ const int *attrib_list)
+{
+ GdkGLPixmap *glpixmap;
+
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_PIXMAP (pixmap), NULL);
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), NULL);
+
+ if (quark_gl_pixmap == 0)
+ quark_gl_pixmap = g_quark_from_static_string (quark_gl_pixmap_string);
+
+ /* If already set */
+ glpixmap = g_object_get_qdata (G_OBJECT (pixmap), quark_gl_pixmap);
+ if (glpixmap != NULL)
+ return glpixmap;
+
+ /*
+ * Create GdkGLPixmap
+ */
+
+ glpixmap = gdk_gl_pixmap_new (glconfig, pixmap, attrib_list);
+ if (glpixmap == NULL)
+ {
+ g_warning ("cannot create GdkGLPixmap\n");
+ return NULL;
+ }
+
+ g_object_set_qdata_full (G_OBJECT (pixmap), quark_gl_pixmap, glpixmap,
+ (GDestroyNotify) g_object_unref);
+
+ return glpixmap;
+}
+
+/**
+ * gdk_pixmap_unset_gl_capability:
+ * @pixmap: a #GdkPixmap.
+ *
+ * Unset the OpenGL-capability of the @pixmap.
+ * This function destroys the #GdkGLPixmap held by the @pixmap.
+ *
+ **/
+void
+gdk_pixmap_unset_gl_capability (GdkPixmap *pixmap)
+{
+ GdkGLPixmap *glpixmap;
+
+ GDK_GL_NOTE_FUNC ();
+
+ if (quark_gl_pixmap == 0)
+ quark_gl_pixmap = g_quark_from_static_string (quark_gl_pixmap_string);
+
+ /*
+ * Destroy OpenGL resources explicitly, then unref.
+ */
+
+ glpixmap = g_object_get_qdata (G_OBJECT (pixmap), quark_gl_pixmap);
+ if (glpixmap == NULL)
+ return;
+
+ _gdk_gl_pixmap_destroy (glpixmap);
+
+ g_object_set_qdata (G_OBJECT (pixmap), quark_gl_pixmap, NULL);
+}
+
+/**
+ * gdk_pixmap_is_gl_capable:
+ * @pixmap: a #GdkPixmap.
+ *
+ * Returns whether the @pixmap is OpenGL-capable.
+ *
+ * Return value: TRUE if the @pixmap is OpenGL-capable, FALSE otherwise.
+ **/
+gboolean
+gdk_pixmap_is_gl_capable (GdkPixmap *pixmap)
+{
+ g_return_val_if_fail (GDK_IS_PIXMAP (pixmap), FALSE);
+
+ return g_object_get_qdata (G_OBJECT (pixmap), quark_gl_pixmap) != NULL ? TRUE : FALSE;
+}
+
+/**
+ * gdk_pixmap_get_gl_pixmap:
+ * @pixmap: a #GdkPixmap.
+ *
+ * Returns the #GdkGLPixmap held by the @pixmap.
+ *
+ * Return value: the #GdkGLPixmap.
+ **/
+GdkGLPixmap *
+gdk_pixmap_get_gl_pixmap (GdkPixmap *pixmap)
+{
+ g_return_val_if_fail (GDK_IS_PIXMAP (pixmap), NULL);
+
+ return g_object_get_qdata (G_OBJECT (pixmap), quark_gl_pixmap);
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.h
new file mode 100644
index 00000000..38593a12
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.h
@@ -0,0 +1,83 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_PIXMAP_H__
+#define __GDK_GL_PIXMAP_H__
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkgltypes.h>
+
+#include <gdk/gdkpixmap.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLPixmapClass GdkGLPixmapClass;
+
+#define GDK_TYPE_GL_PIXMAP (gdk_gl_pixmap_get_type ())
+#define GDK_GL_PIXMAP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_PIXMAP, GdkGLPixmap))
+#define GDK_GL_PIXMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_PIXMAP, GdkGLPixmapClass))
+#define GDK_IS_GL_PIXMAP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_PIXMAP))
+#define GDK_IS_GL_PIXMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_PIXMAP))
+#define GDK_GL_PIXMAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_PIXMAP, GdkGLPixmapClass))
+
+struct _GdkGLPixmap
+{
+ GdkDrawable parent_instance;
+
+ GdkDrawable *drawable; /* Associated GdkPixmap */
+};
+
+struct _GdkGLPixmapClass
+{
+ GdkDrawableClass parent_class;
+};
+
+GType gdk_gl_pixmap_get_type (void);
+
+/*
+ * attrib_list is currently unused. This must be set to NULL or empty
+ * (first attribute of None). See GLX 1.3 spec.
+ */
+GdkGLPixmap *gdk_gl_pixmap_new (GdkGLConfig *glconfig,
+ GdkPixmap *pixmap,
+ const int *attrib_list);
+
+void gdk_gl_pixmap_destroy (GdkGLPixmap *glpixmap);
+
+GdkPixmap *gdk_gl_pixmap_get_pixmap (GdkGLPixmap *glpixmap);
+
+/*
+ * OpenGL extension to GdkPixmap
+ */
+
+GdkGLPixmap *gdk_pixmap_set_gl_capability (GdkPixmap *pixmap,
+ GdkGLConfig *glconfig,
+ const int *attrib_list);
+
+void gdk_pixmap_unset_gl_capability (GdkPixmap *pixmap);
+
+gboolean gdk_pixmap_is_gl_capable (GdkPixmap *pixmap);
+
+GdkGLPixmap *gdk_pixmap_get_gl_pixmap (GdkPixmap *pixmap);
+
+#define gdk_pixmap_get_gl_drawable(pixmap) \
+ GDK_GL_DRAWABLE (gdk_pixmap_get_gl_pixmap (pixmap))
+
+G_END_DECLS
+
+#endif /* __GDK_GL_PIXMAP_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglprivate.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglprivate.h
new file mode 100644
index 00000000..d310d1c2
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglprivate.h
@@ -0,0 +1,56 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_PRIVATE_H__
+#define __GDK_GL_PRIVATE_H__
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkgldebug.h>
+#include <gdk/gdkgltokens.h>
+#include <gdk/gdkgltypes.h>
+#include <gdk/gdkgldrawable.h>
+
+G_BEGIN_DECLS
+
+#define _GDK_GL_CONCAT(x, y) x##y
+
+#define _GDK_GL_CONFIG_AS_SINGLE_MODE(glconfig) ((glconfig)->as_single_mode)
+
+void _gdk_gl_context_destroy (GdkGLContext *glcontext);
+
+void _gdk_gl_pixmap_destroy (GdkGLPixmap *glpixmap);
+void _gdk_gl_pixmap_get_size (GdkGLDrawable *gldrawable,
+ gint *width,
+ gint *height);
+
+void _gdk_gl_window_destroy (GdkGLWindow *glwindow);
+void _gdk_gl_window_get_size (GdkGLDrawable *gldrawable,
+ gint *width,
+ gint *height);
+
+void _gdk_gl_print_gl_info (void);
+
+/* Internal globals */
+
+extern gboolean _gdk_gl_config_no_standard_colormap;
+
+extern gboolean _gdk_gl_context_force_indirect;
+
+G_END_DECLS
+
+#endif /* __GDK_GL_PRIVATE_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.c
new file mode 100644
index 00000000..f581cf6b
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.c
@@ -0,0 +1,114 @@
+/* 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.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "gdkglprivate.h"
+#include "gdkglquery.h"
+
+#ifdef G_OS_WIN32
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#include <GL/gl.h>
+
+/*
+ * This code is based on glutExtensionSupported().
+ */
+
+/**
+ * gdk_gl_query_gl_extension:
+ * @extension: name of OpenGL extension.
+ *
+ * Determines whether a given OpenGL extension is supported.
+ *
+ * There must be a valid current rendering context to call
+ * gdk_gl_query_gl_extension().
+ *
+ * gdk_gl_query_gl_extension() returns information about OpenGL extensions
+ * only. This means that window system dependent extensions (for example,
+ * GLX extensions) are not reported by gdk_gl_query_gl_extension().
+ *
+ * Return value: TRUE if the OpenGL extension is supported, FALSE if not
+ * supported.
+ **/
+gboolean
+gdk_gl_query_gl_extension (const char *extension)
+{
+ static const GLubyte *extensions = NULL;
+ const GLubyte *start;
+ GLubyte *where, *terminator;
+
+ /* Extension names should not have spaces. */
+ where = (GLubyte *) strchr (extension, ' ');
+ if (where || *extension == '\0')
+ return FALSE;
+
+ if (extensions == NULL)
+ extensions = glGetString (GL_EXTENSIONS);
+
+ /* It takes a bit of care to be fool-proof about parsing the
+ OpenGL extensions string. Don't be fooled by sub-strings,
+ etc. */
+ start = extensions;
+ for (;;)
+ {
+ /* If your application crashes in the strstr routine below,
+ you are probably calling gdk_gl_query_gl_extension without
+ having a current window. Calling glGetString without
+ a current OpenGL context has unpredictable results.
+ Please fix your program. */
+ where = (GLubyte *) strstr ((const char *) start, extension);
+ if (where == NULL)
+ break;
+
+ terminator = where + strlen (extension);
+
+ if (where == start || *(where - 1) == ' ')
+ if (*terminator == ' ' || *terminator == '\0')
+ {
+ GDK_GL_NOTE (MISC, g_message (" - %s - supported", extension));
+ return TRUE;
+ }
+
+ start = terminator;
+ }
+
+ GDK_GL_NOTE (MISC, g_message (" - %s - not supported", extension));
+
+ return FALSE;
+}
+
+/*< private >*/
+void
+_gdk_gl_print_gl_info (void)
+{
+ static gboolean done = FALSE;
+
+ if (!done)
+ {
+ g_message (" -- GL_VENDOR : %s", glGetString (GL_VENDOR));
+ g_message (" -- GL_RENDERER : %s", glGetString (GL_RENDERER));
+ g_message (" -- GL_VERSION : %s", glGetString (GL_VERSION));
+ g_message (" -- GL_EXTENSIONS : %s", glGetString (GL_EXTENSIONS));
+
+ done = TRUE;
+ }
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.h
new file mode 100644
index 00000000..bf71e638
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.h
@@ -0,0 +1,52 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_QUERY_H__
+#define __GDK_GL_QUERY_H__
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkgltypes.h>
+
+G_BEGIN_DECLS
+
+#ifndef GDK_MULTIHEAD_SAFE
+gboolean gdk_gl_query_extension (void);
+#endif /* GDK_MULTIHEAD_SAFE */
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+gboolean gdk_gl_query_extension_for_display (GdkDisplay *display);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+#ifndef GDK_MULTIHEAD_SAFE
+gboolean gdk_gl_query_version (int *major,
+ int *minor);
+#endif /* GDK_MULTIHEAD_SAFE */
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+gboolean gdk_gl_query_version_for_display (GdkDisplay *display,
+ int *major,
+ int *minor);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+gboolean gdk_gl_query_gl_extension (const char *extension);
+
+GdkGLProc gdk_gl_get_proc_address (const char *proc_name);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_QUERY_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.c
new file mode 100644
index 00000000..f72abba2
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.c
@@ -0,0 +1,868 @@
+/* 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.
+ */
+
+#include <math.h>
+
+#include <glib.h>
+
+#include "gdkglprivate.h"
+#include "gdkglshapes.h"
+
+#ifdef G_OS_WIN32
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+/*
+ * The following code is imported from GLUT.
+ */
+
+/* Copyright (c) Mark J. Kilgard, 1994, 1997. */
+
+/**
+(c) Copyright 1993, Silicon Graphics, Inc.
+
+ALL RIGHTS RESERVED
+
+Permission to use, copy, modify, and distribute this software
+for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that
+both the copyright notice and this permission notice appear in
+supporting documentation, and that the name of Silicon
+Graphics, Inc. not be used in advertising or publicity
+pertaining to distribution of the software without specific,
+written prior permission.
+
+THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU
+"AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR
+OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO
+EVENT SHALL SILICON GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE
+ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER,
+INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE,
+SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR
+NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF THE POSSIBILITY
+OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+US Government Users Restricted Rights
+
+Use, duplication, or disclosure by the Government is subject to
+restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+(c)(1)(ii) of the Rights in Technical Data and Computer
+Software clause at DFARS 252.227-7013 and/or in similar or
+successor clauses in the FAR or the DOD or NASA FAR
+Supplement. Unpublished-- rights reserved under the copyright
+laws of the United States. Contractor/manufacturer is Silicon
+Graphics, Inc., 2011 N. Shoreline Blvd., Mountain View, CA
+94039-7311.
+
+OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+*/
+
+/*
+ * Cube
+ */
+
+static void
+drawBox(GLfloat size, GLenum type)
+{
+ static GLfloat n[6][3] =
+ {
+ {-1.0, 0.0, 0.0},
+ {0.0, 1.0, 0.0},
+ {1.0, 0.0, 0.0},
+ {0.0, -1.0, 0.0},
+ {0.0, 0.0, 1.0},
+ {0.0, 0.0, -1.0}
+ };
+ static GLint faces[6][4] =
+ {
+ {0, 1, 2, 3},
+ {3, 2, 6, 7},
+ {7, 6, 5, 4},
+ {4, 5, 1, 0},
+ {5, 6, 2, 1},
+ {7, 4, 0, 3}
+ };
+ GLfloat v[8][3];
+ GLint i;
+
+ v[0][0] = v[1][0] = v[2][0] = v[3][0] = -size / 2;
+ v[4][0] = v[5][0] = v[6][0] = v[7][0] = size / 2;
+ v[0][1] = v[1][1] = v[4][1] = v[5][1] = -size / 2;
+ v[2][1] = v[3][1] = v[6][1] = v[7][1] = size / 2;
+ v[0][2] = v[3][2] = v[4][2] = v[7][2] = -size / 2;
+ v[1][2] = v[2][2] = v[5][2] = v[6][2] = size / 2;
+
+ for (i = 5; i >= 0; i--) {
+ glBegin(type);
+ glNormal3fv(&n[i][0]);
+ glVertex3fv(&v[faces[i][0]][0]);
+ glVertex3fv(&v[faces[i][1]][0]);
+ glVertex3fv(&v[faces[i][2]][0]);
+ glVertex3fv(&v[faces[i][3]][0]);
+ glEnd();
+ }
+}
+
+/**
+ * gdk_gl_draw_cube:
+ * @solid: TRUE if the cube should be solid.
+ * @size: length of cube sides.
+ *
+ * Renders a cube.
+ * The cube is centered at the modeling coordinates origin with sides of
+ * length @size.
+ *
+ **/
+void
+gdk_gl_draw_cube (gboolean solid,
+ double size)
+{
+ if (solid)
+ drawBox (size, GL_QUADS);
+ else
+ drawBox (size, GL_LINE_LOOP);
+}
+
+/*
+ * Quadrics
+ */
+
+static GLUquadricObj *quadObj = NULL;
+
+#define QUAD_OBJ_INIT() { if(!quadObj) initQuadObj(); }
+
+static void
+initQuadObj(void)
+{
+ quadObj = gluNewQuadric();
+ if (!quadObj)
+ g_error("out of memory.");
+}
+
+/**
+ * gdk_gl_draw_sphere:
+ * @solid: TRUE if the sphere should be solid.
+ * @radius: the radius of the sphere.
+ * @slices: the number of subdivisions around the Z axis (similar to lines of
+ * longitude).
+ * @stacks: the number of subdivisions along the Z axis (similar to lines of
+ * latitude).
+ *
+ * Renders a sphere centered at the modeling coordinates origin of
+ * the specified @radius. The sphere is subdivided around the Z axis into
+ * @slices and along the Z axis into @stacks.
+ *
+ **/
+void
+gdk_gl_draw_sphere (gboolean solid,
+ double radius,
+ int slices,
+ int stacks)
+{
+ QUAD_OBJ_INIT();
+
+ if (solid)
+ gluQuadricDrawStyle (quadObj, GLU_FILL);
+ else
+ gluQuadricDrawStyle (quadObj, GLU_LINE);
+
+ gluQuadricNormals (quadObj, GLU_SMOOTH);
+
+ /* If we ever changed/used the texture or orientation state
+ of quadObj, we'd need to change it to the defaults here
+ with gluQuadricTexture and/or gluQuadricOrientation. */
+ gluSphere (quadObj, radius, slices, stacks);
+}
+
+/**
+ * gdk_gl_draw_cone:
+ * @solid: TRUE if the cone should be solid.
+ * @base: the radius of the base of the cone.
+ * @height: the height of the cone.
+ * @slices: the number of subdivisions around the Z axis.
+ * @stacks: the number of subdivisions along the Z axis.
+ *
+ * Renders a cone oriented along the Z axis.
+ * The @base of the cone is placed at Z = 0, and the top at Z = @height.
+ * The cone is subdivided around the Z axis into @slices, and along
+ * the Z axis into @stacks.
+ *
+ **/
+void
+gdk_gl_draw_cone (gboolean solid,
+ double base,
+ double height,
+ int slices,
+ int stacks)
+{
+ QUAD_OBJ_INIT();
+
+ if (solid)
+ gluQuadricDrawStyle (quadObj, GLU_FILL);
+ else
+ gluQuadricDrawStyle (quadObj, GLU_LINE);
+
+ gluQuadricNormals (quadObj, GLU_SMOOTH);
+
+ /* If we ever changed/used the texture or orientation state
+ of quadObj, we'd need to change it to the defaults here
+ with gluQuadricTexture and/or gluQuadricOrientation. */
+ gluCylinder (quadObj, base, 0.0, height, slices, stacks);
+}
+
+/*
+ * Torus
+ */
+
+static void
+doughnut(GLfloat r, GLfloat R, GLint nsides, GLint rings)
+{
+ int i, j;
+ GLfloat theta, phi, theta1;
+ GLfloat cosTheta, sinTheta;
+ GLfloat cosTheta1, sinTheta1;
+ GLfloat ringDelta, sideDelta;
+
+ ringDelta = 2.0 * G_PI / rings;
+ sideDelta = 2.0 * G_PI / nsides;
+
+ theta = 0.0;
+ cosTheta = 1.0;
+ sinTheta = 0.0;
+ for (i = rings - 1; i >= 0; i--) {
+ theta1 = theta + ringDelta;
+ cosTheta1 = cos(theta1);
+ sinTheta1 = sin(theta1);
+ glBegin(GL_QUAD_STRIP);
+ phi = 0.0;
+ for (j = nsides; j >= 0; j--) {
+ GLfloat cosPhi, sinPhi, dist;
+
+ phi += sideDelta;
+ cosPhi = cos(phi);
+ sinPhi = sin(phi);
+ dist = R + r * cosPhi;
+
+ glNormal3f(cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi);
+ glVertex3f(cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi);
+ glNormal3f(cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi);
+ glVertex3f(cosTheta * dist, -sinTheta * dist, r * sinPhi);
+ }
+ glEnd();
+ theta = theta1;
+ cosTheta = cosTheta1;
+ sinTheta = sinTheta1;
+ }
+}
+
+/**
+ * gdk_gl_draw_torus:
+ * @solid: TRUE if the torus should be solid.
+ * @inner_radius: inner radius of the torus.
+ * @outer_radius: outer radius of the torus.
+ * @nsides: number of sides for each radial section.
+ * @rings: number of radial divisions for the torus.
+ *
+ * Renders a torus (doughnut) centered at the modeling coordinates
+ * origin whose axis is aligned with the Z axis.
+ *
+ **/
+void
+gdk_gl_draw_torus (gboolean solid,
+ double inner_radius,
+ double outer_radius,
+ int nsides,
+ int rings)
+{
+ if (solid)
+ {
+ doughnut (inner_radius, outer_radius, nsides, rings);
+ }
+ else
+ {
+ glPushAttrib (GL_POLYGON_BIT);
+ glPolygonMode (GL_FRONT_AND_BACK, GL_LINE);
+ doughnut (inner_radius, outer_radius, nsides, rings);
+ glPopAttrib ();
+ }
+}
+
+#define DIFF3(_a,_b,_c) { \
+ (_c)[0] = (_a)[0] - (_b)[0]; \
+ (_c)[1] = (_a)[1] - (_b)[1]; \
+ (_c)[2] = (_a)[2] - (_b)[2]; \
+}
+
+static void
+crossprod(GLfloat v1[3], GLfloat v2[3], GLfloat prod[3])
+{
+ GLfloat p[3]; /* in case prod == v1 or v2 */
+
+ p[0] = v1[1] * v2[2] - v2[1] * v1[2];
+ p[1] = v1[2] * v2[0] - v2[2] * v1[0];
+ p[2] = v1[0] * v2[1] - v2[0] * v1[1];
+ prod[0] = p[0];
+ prod[1] = p[1];
+ prod[2] = p[2];
+}
+
+static void
+normalize(GLfloat v[3])
+{
+ GLfloat d;
+
+ d = sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
+ if (d == 0.0) {
+ g_warning("normalize: zero length vector");
+ v[0] = d = 1.0;
+ }
+ d = 1 / d;
+ v[0] *= d;
+ v[1] *= d;
+ v[2] *= d;
+}
+
+static void
+recorditem(GLfloat * n1, GLfloat * n2, GLfloat * n3,
+ GLenum shadeType)
+{
+ GLfloat q0[3], q1[3];
+
+ DIFF3(n1, n2, q0);
+ DIFF3(n2, n3, q1);
+ crossprod(q0, q1, q1);
+ normalize(q1);
+
+ glBegin(shadeType);
+ glNormal3fv(q1);
+ glVertex3fv(n1);
+ glVertex3fv(n2);
+ glVertex3fv(n3);
+ glEnd();
+}
+
+static void
+subdivide(GLfloat * v0, GLfloat * v1, GLfloat * v2,
+ GLenum shadeType)
+{
+ int depth;
+ GLfloat w0[3], w1[3], w2[3];
+ GLfloat l;
+ int i, j, k, n;
+
+ depth = 1;
+ for (i = 0; i < depth; i++) {
+ for (j = 0; i + j < depth; j++) {
+ k = depth - i - j;
+ for (n = 0; n < 3; n++) {
+ w0[n] = (i * v0[n] + j * v1[n] + k * v2[n]) / depth;
+ w1[n] = ((i + 1) * v0[n] + j * v1[n] + (k - 1) * v2[n])
+ / depth;
+ w2[n] = (i * v0[n] + (j + 1) * v1[n] + (k - 1) * v2[n])
+ / depth;
+ }
+ l = sqrt(w0[0] * w0[0] + w0[1] * w0[1] + w0[2] * w0[2]);
+ w0[0] /= l;
+ w0[1] /= l;
+ w0[2] /= l;
+ l = sqrt(w1[0] * w1[0] + w1[1] * w1[1] + w1[2] * w1[2]);
+ w1[0] /= l;
+ w1[1] /= l;
+ w1[2] /= l;
+ l = sqrt(w2[0] * w2[0] + w2[1] * w2[1] + w2[2] * w2[2]);
+ w2[0] /= l;
+ w2[1] /= l;
+ w2[2] /= l;
+ recorditem(w1, w0, w2, shadeType);
+ }
+ }
+}
+
+static void
+drawtriangle(int i, GLfloat data[][3], int ndx[][3],
+ GLenum shadeType)
+{
+ GLfloat *x0, *x1, *x2;
+
+ x0 = data[ndx[i][0]];
+ x1 = data[ndx[i][1]];
+ x2 = data[ndx[i][2]];
+ subdivide(x0, x1, x2, shadeType);
+}
+
+/*
+ * Tetrahedron
+ */
+
+/* tetrahedron data: */
+
+#define T 1.73205080756887729
+
+static GLfloat tdata[4][3] =
+{
+ {T, T, T},
+ {T, -T, -T},
+ {-T, T, -T},
+ {-T, -T, T}
+};
+
+static int tndex[4][3] =
+{
+ {0, 1, 3},
+ {2, 1, 0},
+ {3, 2, 0},
+ {1, 2, 3}
+};
+
+static void
+tetrahedron(GLenum shadeType)
+{
+ int i;
+
+ for (i = 3; i >= 0; i--)
+ drawtriangle(i, tdata, tndex, shadeType);
+}
+
+/**
+ * gdk_gl_draw_tetrahedron:
+ * @solid: TRUE if the tetrahedron should be solid.
+ *
+ * Renders a tetrahedron centered at the modeling coordinates
+ * origin with a radius of the square root of 3.
+ *
+ **/
+void
+gdk_gl_draw_tetrahedron (gboolean solid)
+{
+ if (solid)
+ tetrahedron (GL_TRIANGLES);
+ else
+ tetrahedron (GL_LINE_LOOP);
+}
+
+/*
+ * Octahedron
+ */
+
+/* octahedron data: The octahedron produced is centered at the
+ origin and has radius 1.0 */
+static GLfloat odata[6][3] =
+{
+ {1.0, 0.0, 0.0},
+ {-1.0, 0.0, 0.0},
+ {0.0, 1.0, 0.0},
+ {0.0, -1.0, 0.0},
+ {0.0, 0.0, 1.0},
+ {0.0, 0.0, -1.0}
+};
+
+static int ondex[8][3] =
+{
+ {0, 4, 2},
+ {1, 2, 4},
+ {0, 3, 4},
+ {1, 4, 3},
+ {0, 2, 5},
+ {1, 5, 2},
+ {0, 5, 3},
+ {1, 3, 5}
+};
+
+static void
+octahedron(GLenum shadeType)
+{
+ int i;
+
+ for (i = 7; i >= 0; i--) {
+ drawtriangle(i, odata, ondex, shadeType);
+ }
+}
+
+/**
+ * gdk_gl_draw_octahedron:
+ * @solid: TRUE if the octahedron should be solid.
+ *
+ * Renders a octahedron centered at the modeling coordinates
+ * origin with a radius of 1.0.
+ *
+ **/
+void
+gdk_gl_draw_octahedron (gboolean solid)
+{
+ if (solid)
+ octahedron (GL_TRIANGLES);
+ else
+ octahedron (GL_LINE_LOOP);
+}
+
+/*
+ * Icosahedron
+ */
+
+/* icosahedron data: These numbers are rigged to make an
+ icosahedron of radius 1.0 */
+
+#define X .525731112119133606
+#define Z .850650808352039932
+
+static GLfloat idata[12][3] =
+{
+ {-X, 0, Z},
+ {X, 0, Z},
+ {-X, 0, -Z},
+ {X, 0, -Z},
+ {0, Z, X},
+ {0, Z, -X},
+ {0, -Z, X},
+ {0, -Z, -X},
+ {Z, X, 0},
+ {-Z, X, 0},
+ {Z, -X, 0},
+ {-Z, -X, 0}
+};
+
+static int index[20][3] =
+{
+ {0, 4, 1},
+ {0, 9, 4},
+ {9, 5, 4},
+ {4, 5, 8},
+ {4, 8, 1},
+ {8, 10, 1},
+ {8, 3, 10},
+ {5, 3, 8},
+ {5, 2, 3},
+ {2, 7, 3},
+ {7, 10, 3},
+ {7, 6, 10},
+ {7, 11, 6},
+ {11, 0, 6},
+ {0, 1, 6},
+ {6, 1, 10},
+ {9, 0, 11},
+ {9, 11, 2},
+ {9, 2, 5},
+ {7, 2, 11},
+};
+
+static void
+icosahedron(GLenum shadeType)
+{
+ int i;
+
+ for (i = 19; i >= 0; i--) {
+ drawtriangle(i, idata, index, shadeType);
+ }
+}
+
+/**
+ * gdk_gl_draw_icosahedron:
+ * @solid: TRUE if the icosahedron should be solid.
+ *
+ * Renders a icosahedron.
+ * The icosahedron is centered at the modeling coordinates origin
+ * and has a radius of 1.0.
+ *
+ **/
+void
+gdk_gl_draw_icosahedron (gboolean solid)
+{
+ if (solid)
+ icosahedron (GL_TRIANGLES);
+ else
+ icosahedron (GL_LINE_LOOP);
+}
+
+/*
+ * Dodecahedron
+ */
+
+static GLfloat dodec[20][3];
+
+static void
+initDodecahedron(void)
+{
+ GLfloat alpha, beta;
+
+ alpha = sqrt(2.0 / (3.0 + sqrt(5.0)));
+ beta = 1.0 + sqrt(6.0 / (3.0 + sqrt(5.0)) -
+ 2.0 + 2.0 * sqrt(2.0 / (3.0 + sqrt(5.0))));
+ /* *INDENT-OFF* */
+ dodec[0][0] = -alpha; dodec[0][1] = 0; dodec[0][2] = beta;
+ dodec[1][0] = alpha; dodec[1][1] = 0; dodec[1][2] = beta;
+ dodec[2][0] = -1; dodec[2][1] = -1; dodec[2][2] = -1;
+ dodec[3][0] = -1; dodec[3][1] = -1; dodec[3][2] = 1;
+ dodec[4][0] = -1; dodec[4][1] = 1; dodec[4][2] = -1;
+ dodec[5][0] = -1; dodec[5][1] = 1; dodec[5][2] = 1;
+ dodec[6][0] = 1; dodec[6][1] = -1; dodec[6][2] = -1;
+ dodec[7][0] = 1; dodec[7][1] = -1; dodec[7][2] = 1;
+ dodec[8][0] = 1; dodec[8][1] = 1; dodec[8][2] = -1;
+ dodec[9][0] = 1; dodec[9][1] = 1; dodec[9][2] = 1;
+ dodec[10][0] = beta; dodec[10][1] = alpha; dodec[10][2] = 0;
+ dodec[11][0] = beta; dodec[11][1] = -alpha; dodec[11][2] = 0;
+ dodec[12][0] = -beta; dodec[12][1] = alpha; dodec[12][2] = 0;
+ dodec[13][0] = -beta; dodec[13][1] = -alpha; dodec[13][2] = 0;
+ dodec[14][0] = -alpha; dodec[14][1] = 0; dodec[14][2] = -beta;
+ dodec[15][0] = alpha; dodec[15][1] = 0; dodec[15][2] = -beta;
+ dodec[16][0] = 0; dodec[16][1] = beta; dodec[16][2] = alpha;
+ dodec[17][0] = 0; dodec[17][1] = beta; dodec[17][2] = -alpha;
+ dodec[18][0] = 0; dodec[18][1] = -beta; dodec[18][2] = alpha;
+ dodec[19][0] = 0; dodec[19][1] = -beta; dodec[19][2] = -alpha;
+ /* *INDENT-ON* */
+
+}
+
+static void
+pentagon(int a, int b, int c, int d, int e, GLenum shadeType)
+{
+ GLfloat n0[3], d1[3], d2[3];
+
+ DIFF3(dodec[a], dodec[b], d1);
+ DIFF3(dodec[b], dodec[c], d2);
+ crossprod(d1, d2, n0);
+ normalize(n0);
+
+ glBegin(shadeType);
+ glNormal3fv(n0);
+ glVertex3fv(&dodec[a][0]);
+ glVertex3fv(&dodec[b][0]);
+ glVertex3fv(&dodec[c][0]);
+ glVertex3fv(&dodec[d][0]);
+ glVertex3fv(&dodec[e][0]);
+ glEnd();
+}
+
+static void
+dodecahedron(GLenum type)
+{
+ static int inited = 0;
+
+ if (inited == 0) {
+ inited = 1;
+ initDodecahedron();
+ }
+ pentagon(0, 1, 9, 16, 5, type);
+ pentagon(1, 0, 3, 18, 7, type);
+ pentagon(1, 7, 11, 10, 9, type);
+ pentagon(11, 7, 18, 19, 6, type);
+ pentagon(8, 17, 16, 9, 10, type);
+ pentagon(2, 14, 15, 6, 19, type);
+ pentagon(2, 13, 12, 4, 14, type);
+ pentagon(2, 19, 18, 3, 13, type);
+ pentagon(3, 0, 5, 12, 13, type);
+ pentagon(6, 15, 8, 10, 11, type);
+ pentagon(4, 17, 8, 15, 14, type);
+ pentagon(4, 12, 5, 16, 17, type);
+}
+
+/**
+ * gdk_gl_draw_dodecahedron:
+ * @solid: TRUE if the dodecahedron should be solid.
+ *
+ * Renders a dodecahedron centered at the modeling coordinates
+ * origin with a radius of the square root of 3.
+ *
+ **/
+void
+gdk_gl_draw_dodecahedron (gboolean solid)
+{
+ if (solid)
+ dodecahedron (GL_TRIANGLE_FAN);
+ else
+ dodecahedron (GL_LINE_LOOP);
+}
+
+/*
+ * Teapot
+ */
+
+/* Rim, body, lid, and bottom data must be reflected in x and
+ y; handle and spout data across the y axis only. */
+
+static int patchdata[][16] =
+{
+ /* rim */
+ {102, 103, 104, 105, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15},
+ /* body */
+ {12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27},
+ {24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40},
+ /* lid */
+ {96, 96, 96, 96, 97, 98, 99, 100, 101, 101, 101,
+ 101, 0, 1, 2, 3,},
+ {0, 1, 2, 3, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117},
+ /* bottom */
+ {118, 118, 118, 118, 124, 122, 119, 121, 123, 126,
+ 125, 120, 40, 39, 38, 37},
+ /* handle */
+ {41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56},
+ {53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 28, 65, 66, 67},
+ /* spout */
+ {68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83},
+ {80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95}
+};
+/* *INDENT-OFF* */
+
+static float cpdata[][3] =
+{
+ {0.2, 0, 2.7}, {0.2, -0.112, 2.7}, {0.112, -0.2, 2.7}, {0,
+ -0.2, 2.7}, {1.3375, 0, 2.53125}, {1.3375, -0.749, 2.53125},
+ {0.749, -1.3375, 2.53125}, {0, -1.3375, 2.53125}, {1.4375,
+ 0, 2.53125}, {1.4375, -0.805, 2.53125}, {0.805, -1.4375,
+ 2.53125}, {0, -1.4375, 2.53125}, {1.5, 0, 2.4}, {1.5, -0.84,
+ 2.4}, {0.84, -1.5, 2.4}, {0, -1.5, 2.4}, {1.75, 0, 1.875},
+ {1.75, -0.98, 1.875}, {0.98, -1.75, 1.875}, {0, -1.75,
+ 1.875}, {2, 0, 1.35}, {2, -1.12, 1.35}, {1.12, -2, 1.35},
+ {0, -2, 1.35}, {2, 0, 0.9}, {2, -1.12, 0.9}, {1.12, -2,
+ 0.9}, {0, -2, 0.9}, {-2, 0, 0.9}, {2, 0, 0.45}, {2, -1.12,
+ 0.45}, {1.12, -2, 0.45}, {0, -2, 0.45}, {1.5, 0, 0.225},
+ {1.5, -0.84, 0.225}, {0.84, -1.5, 0.225}, {0, -1.5, 0.225},
+ {1.5, 0, 0.15}, {1.5, -0.84, 0.15}, {0.84, -1.5, 0.15}, {0,
+ -1.5, 0.15}, {-1.6, 0, 2.025}, {-1.6, -0.3, 2.025}, {-1.5,
+ -0.3, 2.25}, {-1.5, 0, 2.25}, {-2.3, 0, 2.025}, {-2.3, -0.3,
+ 2.025}, {-2.5, -0.3, 2.25}, {-2.5, 0, 2.25}, {-2.7, 0,
+ 2.025}, {-2.7, -0.3, 2.025}, {-3, -0.3, 2.25}, {-3, 0,
+ 2.25}, {-2.7, 0, 1.8}, {-2.7, -0.3, 1.8}, {-3, -0.3, 1.8},
+ {-3, 0, 1.8}, {-2.7, 0, 1.575}, {-2.7, -0.3, 1.575}, {-3,
+ -0.3, 1.35}, {-3, 0, 1.35}, {-2.5, 0, 1.125}, {-2.5, -0.3,
+ 1.125}, {-2.65, -0.3, 0.9375}, {-2.65, 0, 0.9375}, {-2,
+ -0.3, 0.9}, {-1.9, -0.3, 0.6}, {-1.9, 0, 0.6}, {1.7, 0,
+ 1.425}, {1.7, -0.66, 1.425}, {1.7, -0.66, 0.6}, {1.7, 0,
+ 0.6}, {2.6, 0, 1.425}, {2.6, -0.66, 1.425}, {3.1, -0.66,
+ 0.825}, {3.1, 0, 0.825}, {2.3, 0, 2.1}, {2.3, -0.25, 2.1},
+ {2.4, -0.25, 2.025}, {2.4, 0, 2.025}, {2.7, 0, 2.4}, {2.7,
+ -0.25, 2.4}, {3.3, -0.25, 2.4}, {3.3, 0, 2.4}, {2.8, 0,
+ 2.475}, {2.8, -0.25, 2.475}, {3.525, -0.25, 2.49375},
+ {3.525, 0, 2.49375}, {2.9, 0, 2.475}, {2.9, -0.15, 2.475},
+ {3.45, -0.15, 2.5125}, {3.45, 0, 2.5125}, {2.8, 0, 2.4},
+ {2.8, -0.15, 2.4}, {3.2, -0.15, 2.4}, {3.2, 0, 2.4}, {0, 0,
+ 3.15}, {0.8, 0, 3.15}, {0.8, -0.45, 3.15}, {0.45, -0.8,
+ 3.15}, {0, -0.8, 3.15}, {0, 0, 2.85}, {1.4, 0, 2.4}, {1.4,
+ -0.784, 2.4}, {0.784, -1.4, 2.4}, {0, -1.4, 2.4}, {0.4, 0,
+ 2.55}, {0.4, -0.224, 2.55}, {0.224, -0.4, 2.55}, {0, -0.4,
+ 2.55}, {1.3, 0, 2.55}, {1.3, -0.728, 2.55}, {0.728, -1.3,
+ 2.55}, {0, -1.3, 2.55}, {1.3, 0, 2.4}, {1.3, -0.728, 2.4},
+ {0.728, -1.3, 2.4}, {0, -1.3, 2.4}, {0, 0, 0}, {1.425,
+ -0.798, 0}, {1.5, 0, 0.075}, {1.425, 0, 0}, {0.798, -1.425,
+ 0}, {0, -1.5, 0.075}, {0, -1.425, 0}, {1.5, -0.84, 0.075},
+ {0.84, -1.5, 0.075}
+};
+
+static float tex[2][2][2] =
+{
+ { {0, 0},
+ {1, 0}},
+ { {0, 1},
+ {1, 1}}
+};
+
+/* *INDENT-ON* */
+
+static void
+teapot(GLint grid, GLdouble scale, GLenum type)
+{
+ float p[4][4][3], q[4][4][3], r[4][4][3], s[4][4][3];
+ long i, j, k, l;
+
+ glPushAttrib(GL_ENABLE_BIT | GL_EVAL_BIT);
+ glEnable(GL_AUTO_NORMAL);
+ glEnable(GL_NORMALIZE);
+ glEnable(GL_MAP2_VERTEX_3);
+ glEnable(GL_MAP2_TEXTURE_COORD_2);
+ glPushMatrix();
+ glRotatef(270.0, 1.0, 0.0, 0.0);
+ glScalef(0.5 * scale, 0.5 * scale, 0.5 * scale);
+ glTranslatef(0.0, 0.0, -1.5);
+ for (i = 0; i < 10; i++) {
+ for (j = 0; j < 4; j++) {
+ for (k = 0; k < 4; k++) {
+ for (l = 0; l < 3; l++) {
+ p[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l];
+ q[j][k][l] = cpdata[patchdata[i][j * 4 + (3 - k)]][l];
+ if (l == 1)
+ q[j][k][l] *= -1.0;
+ if (i < 6) {
+ r[j][k][l] =
+ cpdata[patchdata[i][j * 4 + (3 - k)]][l];
+ if (l == 0)
+ r[j][k][l] *= -1.0;
+ s[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l];
+ if (l == 0)
+ s[j][k][l] *= -1.0;
+ if (l == 1)
+ s[j][k][l] *= -1.0;
+ }
+ }
+ }
+ }
+ glMap2f(GL_MAP2_TEXTURE_COORD_2, 0, 1, 2, 2, 0, 1, 4, 2,
+ &tex[0][0][0]);
+ glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+ &p[0][0][0]);
+ glMapGrid2f(grid, 0.0, 1.0, grid, 0.0, 1.0);
+ glEvalMesh2(type, 0, grid, 0, grid);
+ glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+ &q[0][0][0]);
+ glEvalMesh2(type, 0, grid, 0, grid);
+ if (i < 6) {
+ glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+ &r[0][0][0]);
+ glEvalMesh2(type, 0, grid, 0, grid);
+ glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+ &s[0][0][0]);
+ glEvalMesh2(type, 0, grid, 0, grid);
+ }
+ }
+ glPopMatrix();
+ glPopAttrib();
+}
+
+/**
+ * gdk_gl_draw_teapot:
+ * @solid: TRUE if the teapot should be solid.
+ * @scale: relative size of the teapot.
+ *
+ * Renders a teapot.
+ * Both surface normals and texture coordinates for the teapot are generated.
+ * The teapot is generated with OpenGL evaluators.
+ *
+ **/
+void
+gdk_gl_draw_teapot (gboolean solid,
+ double scale)
+{
+ if (solid)
+ teapot (7, scale, GL_FILL);
+ else
+ teapot (10, scale, GL_LINE);
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.h
new file mode 100644
index 00000000..0cfa5749
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.h
@@ -0,0 +1,60 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_SHAPES_H__
+#define __GDK_GL_SHAPES_H__
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkgltypes.h>
+
+G_BEGIN_DECLS
+
+void gdk_gl_draw_cube (gboolean solid,
+ double size);
+
+void gdk_gl_draw_sphere (gboolean solid,
+ double radius,
+ int slices,
+ int stacks);
+
+void gdk_gl_draw_cone (gboolean solid,
+ double base,
+ double height,
+ int slices,
+ int stacks);
+
+void gdk_gl_draw_torus (gboolean solid,
+ double inner_radius,
+ double outer_radius,
+ int nsides,
+ int rings);
+
+void gdk_gl_draw_tetrahedron (gboolean solid);
+
+void gdk_gl_draw_octahedron (gboolean solid);
+
+void gdk_gl_draw_dodecahedron (gboolean solid);
+
+void gdk_gl_draw_icosahedron (gboolean solid);
+
+void gdk_gl_draw_teapot (gboolean solid,
+ double scale);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_SHAPES_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkgltokens.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgltokens.h
new file mode 100644
index 00000000..417068d1
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgltokens.h
@@ -0,0 +1,298 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_TOKENS_H__
+#define __GDK_GL_TOKENS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*
+ * Success return value
+ */
+#define GDK_GL_SUCCESS 0 /* same as 'Success' of X11 */
+
+/*
+ * Attribute list terminator
+ */
+#define GDK_GL_ATTRIB_LIST_NONE 0 /* same as 'None' of X11 */
+
+/*
+ * This source is based on the OpenGL(R) Sample Implementation by SGI.
+ */
+
+/*
+** License Applicability. Except to the extent portions of this file are
+** made subject to an alternative license as permitted in the SGI Free
+** Software License B, Version 1.1 (the "License"), the contents of this
+** file are subject only to the provisions of the License. You may not use
+** this file except in compliance with the License. You may obtain a copy
+** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
+** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
+**
+** http://oss.sgi.com/projects/FreeB
+**
+** Note that, as provided in the License, the Software is distributed on an
+** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
+** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
+** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
+** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
+**
+** Original Code. The Original Code is: OpenGL Sample Implementation,
+** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
+** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
+** Copyright in any portions created by third parties is as indicated
+** elsewhere herein. All Rights Reserved.
+**
+** Additional Notice Provisions: The application programming interfaces
+** established by SGI in conjunction with the Original Code are The
+** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
+** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
+** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
+** Window System(R) (Version 1.3), released October 19, 1998. This software
+** was created using the OpenGL(R) version 1.2.1 Sample Implementation
+** published by SGI, but has not been independently verified as being
+** compliant with the OpenGL(R) version 1.2.1 Specification.
+*/
+
+/*
+ * Visual Config Attributes.
+ */
+typedef enum
+{
+ GDK_GL_USE_GL = 1, /* support GLX rendering */
+ GDK_GL_BUFFER_SIZE = 2, /* depth of the color buffer */
+ GDK_GL_LEVEL = 3, /* level in plane stacking */
+ GDK_GL_RGBA = 4, /* true if RGBA mode */
+ GDK_GL_DOUBLEBUFFER = 5, /* double buffering supported */
+ GDK_GL_STEREO = 6, /* stereo buffering supported */
+ GDK_GL_AUX_BUFFERS = 7, /* number of aux buffers */
+ GDK_GL_RED_SIZE = 8, /* number of red component bits */
+ GDK_GL_GREEN_SIZE = 9, /* number of green component bits */
+ GDK_GL_BLUE_SIZE = 10, /* number of blue component bits */
+ GDK_GL_ALPHA_SIZE = 11, /* number of alpha component bits */
+ GDK_GL_DEPTH_SIZE = 12, /* number of depth bits */
+ GDK_GL_STENCIL_SIZE = 13, /* number of stencil bits */
+ GDK_GL_ACCUM_RED_SIZE = 14, /* number of red accum bits */
+ GDK_GL_ACCUM_GREEN_SIZE = 15, /* number of green accum bits */
+ GDK_GL_ACCUM_BLUE_SIZE = 16, /* number of blue accum bits */
+ GDK_GL_ACCUM_ALPHA_SIZE = 17, /* number of alpha accum bits */
+
+ /*
+ * FBConfig-specific attributes.
+ * [ GLX 1.3 and later ]
+ */
+ GDK_GL_CONFIG_CAVEAT = 0x20,
+ GDK_GL_X_VISUAL_TYPE = 0x22,
+ GDK_GL_TRANSPARENT_TYPE = 0x23,
+ GDK_GL_TRANSPARENT_INDEX_VALUE = 0x24,
+ GDK_GL_TRANSPARENT_RED_VALUE = 0x25,
+ GDK_GL_TRANSPARENT_GREEN_VALUE = 0x26,
+ GDK_GL_TRANSPARENT_BLUE_VALUE = 0x27,
+ GDK_GL_TRANSPARENT_ALPHA_VALUE = 0x28,
+ GDK_GL_DRAWABLE_TYPE = 0x8010,
+ GDK_GL_RENDER_TYPE = 0x8011,
+ GDK_GL_X_RENDERABLE = 0x8012,
+ GDK_GL_FBCONFIG_ID = 0x8013,
+ GDK_GL_MAX_PBUFFER_WIDTH = 0x8016,
+ GDK_GL_MAX_PBUFFER_HEIGHT = 0x8017,
+ GDK_GL_MAX_PBUFFER_PIXELS = 0x8018,
+ GDK_GL_VISUAL_ID = 0x800B,
+ GDK_GL_SCREEN = 0x800C,
+
+ /*
+ * Multisampling configuration attributes.
+ * [ GLX 1.4 and later ]
+ */
+ GDK_GL_SAMPLE_BUFFERS = 100000,
+ GDK_GL_SAMPLES = 100001
+
+} GdkGLConfigAttrib;
+
+/*
+ * Generic "don't care" value.
+ * [ GLX 1.3 and later ]
+ */
+#define GDK_GL_DONT_CARE 0xFFFFFFFF
+
+/*
+ * "none" value.
+ * [ GLX 1.3 and later ]
+ */
+#define GDK_GL_NONE 0x8000
+
+/*
+ * GLX_CONFIG_CAVEAT attribute values.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_CONFIG_CAVEAT_DONT_CARE = 0xFFFFFFFF, /* GDK_GL_DONT_CARE */
+ GDK_GL_CONFIG_CAVEAT_NONE = 0x8000, /* GDK_GL_NONE */
+ GDK_GL_SLOW_CONFIG = 0x8001,
+ GDK_GL_NON_CONFORMANT_CONFIG = 0x800D
+} GdkGLConfigCaveat;
+
+/*
+ * GLX_X_VISUAL_TYPE attribute values.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_VISUAL_TYPE_DONT_CARE = 0xFFFFFFFF, /* GDK_GL_DONT_CARE */
+ GDK_GL_TRUE_COLOR = 0x8002,
+ GDK_GL_DIRECT_COLOR = 0x8003,
+ GDK_GL_PSEUDO_COLOR = 0x8004,
+ GDK_GL_STATIC_COLOR = 0x8005,
+ GDK_GL_GRAY_SCALE = 0x8006,
+ GDK_GL_STATIC_GRAY = 0x8007
+} GdkGLVisualType;
+
+/*
+ * GLX_TRANSPARENT_TYPE attribute values.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_TRANSPARENT_NONE = 0x8000, /* GDK_GL_NONE */
+ GDK_GL_TRANSPARENT_RGB = 0x8008,
+ GDK_GL_TRANSPARENT_INDEX = 0x8009
+} GdkGLTransparentType;
+
+/*
+ * GLX_DRAWABLE_TYPE bits.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_WINDOW_BIT = 1 << 0, /* 0x00000001 */
+ GDK_GL_PIXMAP_BIT = 1 << 1, /* 0x00000002 */
+ GDK_GL_PBUFFER_BIT = 1 << 2 /* 0x00000004 */
+} GdkGLDrawableTypeMask;
+
+/*
+ * GLX_RENDER_TYPE bits.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_RGBA_BIT = 1 << 0, /* 0x00000001 */
+ GDK_GL_COLOR_INDEX_BIT = 1 << 1 /* 0x00000002 */
+} GdkGLRenderTypeMask;
+
+/*
+ * Buffer mask bits.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_FRONT_LEFT_BUFFER_BIT = 1 << 0, /* 0x00000001 */
+ GDK_GL_FRONT_RIGHT_BUFFER_BIT = 1 << 1, /* 0x00000002 */
+ GDK_GL_BACK_LEFT_BUFFER_BIT = 1 << 2, /* 0x00000004 */
+ GDK_GL_BACK_RIGHT_BUFFER_BIT = 1 << 3, /* 0x00000008 */
+ GDK_GL_AUX_BUFFERS_BIT = 1 << 4, /* 0x00000010 */
+ GDK_GL_DEPTH_BUFFER_BIT = 1 << 5, /* 0x00000020 */
+ GDK_GL_STENCIL_BUFFER_BIT = 1 << 6, /* 0x00000040 */
+ GDK_GL_ACCUM_BUFFER_BIT = 1 << 7 /* 0x00000080 */
+} GdkGLBufferMask;
+
+/*
+ * Error return values from glXGetConfig. Success is indicated by
+ * a value of 0.
+ */
+typedef enum
+{
+ GDK_GL_BAD_SCREEN = 1, /* screen # is bad */
+ GDK_GL_BAD_ATTRIBUTE = 2, /* attribute to get is bad */
+ GDK_GL_NO_EXTENSION = 3, /* no glx extension on server */
+ GDK_GL_BAD_VISUAL = 4, /* visual # not known by GLX */
+ GDK_GL_BAD_CONTEXT = 5, /* returned only by import_context EXT? */
+ GDK_GL_BAD_VALUE = 6, /* returned only by glXSwapIntervalSGI? */
+ GDK_GL_BAD_ENUM = 7 /* unused? */
+} GdkGLConfigError;
+
+/*
+ * glXCreateNewContext render_type attribute values.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_RGBA_TYPE = 0x8014,
+ GDK_GL_COLOR_INDEX_TYPE = 0x8015
+} GdkGLRenderType;
+
+/*
+ * glXQueryDrawable attributes.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_PRESERVED_CONTENTS = 0x801B,
+ GDK_GL_LARGEST_PBUFFER = 0x801C,
+ GDK_GL_WIDTH = 0x801D,
+ GDK_GL_HEIGHT = 0x801E,
+ GDK_GL_EVENT_MASK = 0x801F
+} GdkGLDrawableAttrib;
+
+/*
+ * glXCreatePbuffer attributes.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_PBUFFER_PRESERVED_CONTENTS = 0x801B, /* GDK_GL_PRESERVED_CONTENTS */
+ GDK_GL_PBUFFER_LARGEST_PBUFFER = 0x801C, /* GDK_GL_LARGEST_PBUFFER */
+ GDK_GL_PBUFFER_HEIGHT = 0x8040,
+ GDK_GL_PBUFFER_WIDTH = 0x8041
+} GdkGLPbufferAttrib;
+
+/*
+ * glXSelectEvent event mask bits.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_PBUFFER_CLOBBER_MASK = 1 << 27 /* 0x08000000 */
+} GdkGLEventMask;
+
+/*
+ * GLXPbufferClobberEvent event_type values.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_DAMAGED = 0x8020,
+ GDK_GL_SAVED = 0x8021
+} GdkGLEventType;
+
+/*
+ * GLXPbufferClobberEvent draw_type values.
+ * [ GLX 1.3 and later ]
+ */
+typedef enum
+{
+ GDK_GL_WINDOW = 0x8022,
+ GDK_GL_PBUFFER = 0x8023
+} GdkGLDrawableType;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __GDK_GL_TOKENS_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkgltypes.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgltypes.h
new file mode 100644
index 00000000..2bdb1c55
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkgltypes.h
@@ -0,0 +1,42 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_TYPES_H__
+#define __GDK_GL_TYPES_H__
+
+#include <gdk/gdktypes.h>
+
+G_BEGIN_DECLS
+
+/*
+ * Forward declarations of commonly used types
+ */
+
+typedef void (*GdkGLProc)(void);
+
+typedef struct _GdkGLConfig GdkGLConfig;
+typedef struct _GdkGLContext GdkGLContext;
+
+typedef struct _GdkGLDrawable GdkGLDrawable;
+
+typedef struct _GdkGLPixmap GdkGLPixmap;
+typedef struct _GdkGLWindow GdkGLWindow;
+
+G_END_DECLS
+
+#endif /* __GDK_GL_TYPES_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.c
new file mode 100644
index 00000000..1cfa8366
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.c
@@ -0,0 +1,25 @@
+/* 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.
+ */
+
+#include "gdkglversion.h"
+
+const guint gdkglext_major_version = GDKGLEXT_MAJOR_VERSION;
+const guint gdkglext_minor_version = GDKGLEXT_MINOR_VERSION;
+const guint gdkglext_micro_version = GDKGLEXT_MICRO_VERSION;
+const guint gdkglext_interface_age = GDKGLEXT_INTERFACE_AGE;
+const guint gdkglext_binary_age = GDKGLEXT_BINARY_AGE;
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.h
new file mode 100644
index 00000000..149ec209
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.h
@@ -0,0 +1,58 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_VERSION_H__
+#define __GDK_GL_VERSION_H__
+
+#include <glib.h>
+
+#include <gdk/gdkgldefs.h>
+
+G_BEGIN_DECLS
+
+/*
+ * Compile time version.
+ */
+#define GDKGLEXT_MAJOR_VERSION (1)
+#define GDKGLEXT_MINOR_VERSION (2)
+#define GDKGLEXT_MICRO_VERSION (0)
+#define GDKGLEXT_INTERFACE_AGE (0)
+#define GDKGLEXT_BINARY_AGE (0)
+
+/*
+ * Check whether a GdkGLExt version equal to or greater than
+ * major.minor.micro is present.
+ */
+#define GDKGLEXT_CHECK_VERSION(major, minor, micro) \
+ (GDKGLEXT_MAJOR_VERSION > (major) || \
+ (GDKGLEXT_MAJOR_VERSION == (major) && GDKGLEXT_MINOR_VERSION > (minor)) || \
+ (GDKGLEXT_MAJOR_VERSION == (major) && GDKGLEXT_MINOR_VERSION == (minor) && \
+ GDKGLEXT_MICRO_VERSION >= (micro)))
+
+/*
+ * Library version.
+ */
+GDK_GL_VAR const guint gdkglext_major_version;
+GDK_GL_VAR const guint gdkglext_minor_version;
+GDK_GL_VAR const guint gdkglext_micro_version;
+GDK_GL_VAR const guint gdkglext_interface_age;
+GDK_GL_VAR const guint gdkglext_binary_age;
+
+G_END_DECLS
+
+#endif /* __GDK_GL_VERSION_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.c b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.c
new file mode 100644
index 00000000..05eb44b8
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.c
@@ -0,0 +1,817 @@
+/* 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.
+ */
+
+#include <gtk/gtkversion.h>
+
+#include "gdkglprivate.h"
+#include "gdkglconfig.h"
+#include "gdkglwindow.h"
+
+static GdkGC *gdk_gl_window_create_gc (GdkDrawable *drawable,
+ GdkGCValues *values,
+ GdkGCValuesMask mask);
+static void gdk_gl_window_draw_rectangle (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ gint x,
+ gint y,
+ gint width,
+ gint height);
+static void gdk_gl_window_draw_arc (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gint angle1,
+ gint angle2);
+static void gdk_gl_window_draw_polygon (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ GdkPoint *points,
+ gint npoints);
+static void gdk_gl_window_draw_text (GdkDrawable *drawable,
+ GdkFont *font,
+ GdkGC *gc,
+ gint x,
+ gint y,
+ const gchar *text,
+ gint text_length);
+static void gdk_gl_window_draw_text_wc (GdkDrawable *drawable,
+ GdkFont *font,
+ GdkGC *gc,
+ gint x,
+ gint y,
+ const GdkWChar *text,
+ gint text_length);
+static void gdk_gl_window_draw_drawable (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkDrawable *src,
+ gint xsrc,
+ gint ysrc,
+ gint xdest,
+ gint ydest,
+ gint width,
+ gint height);
+static void gdk_gl_window_draw_points (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPoint *points,
+ gint npoints);
+static void gdk_gl_window_draw_segments (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkSegment *segs,
+ gint nsegs);
+static void gdk_gl_window_draw_lines (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPoint *points,
+ gint npoints);
+static void gdk_gl_window_draw_glyphs (GdkDrawable *drawable,
+ GdkGC *gc,
+ PangoFont *font,
+ gint x,
+ gint y,
+ PangoGlyphString *glyphs);
+static void gdk_gl_window_draw_image (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkImage *image,
+ gint xsrc,
+ gint ysrc,
+ gint xdest,
+ gint ydest,
+ gint width,
+ gint height);
+static gint gdk_gl_window_get_depth (GdkDrawable *drawable);
+static void gdk_gl_window_get_size (GdkDrawable *drawable,
+ gint *width,
+ gint *height);
+static void gdk_gl_window_set_colormap (GdkDrawable *drawable,
+ GdkColormap *cmap);
+static GdkColormap *gdk_gl_window_get_colormap (GdkDrawable *drawable);
+static GdkVisual *gdk_gl_window_get_visual (GdkDrawable *drawable);
+#if !(GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION == 0)
+static GdkScreen *gdk_gl_window_get_screen (GdkDrawable *drawable);
+#endif
+static GdkImage *gdk_gl_window_get_image (GdkDrawable *drawable,
+ gint x,
+ gint y,
+ gint width,
+ gint height);
+static GdkRegion *gdk_gl_window_get_clip_region (GdkDrawable *drawable);
+static GdkRegion *gdk_gl_window_get_visible_region (GdkDrawable *drawable);
+static GdkDrawable *gdk_gl_window_get_composite_drawable (GdkDrawable *drawable,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gint *composite_x_offset,
+ gint *composite_y_offset);
+static void gdk_gl_window_draw_pixbuf (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPixbuf *pixbuf,
+ gint src_x,
+ gint src_y,
+ gint dest_x,
+ gint dest_y,
+ gint width,
+ gint height,
+ GdkRgbDither dither,
+ gint x_dither,
+ gint y_dither);
+static GdkImage *gdk_gl_window_copy_to_image (GdkDrawable *drawable,
+ GdkImage *image,
+ gint src_x,
+ gint src_y,
+ gint dest_x,
+ gint dest_y,
+ gint width,
+ gint height);
+
+static void gdk_gl_window_class_init (GdkGLWindowClass *klass);
+static void gdk_gl_window_finalize (GObject *object);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_window_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLWindowClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_window_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLWindow),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+
+ type = g_type_register_static (GDK_TYPE_DRAWABLE,
+ "GdkGLWindow",
+ &type_info, 0);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_window_class_init (GdkGLWindowClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GdkDrawableClass *drawable_class = GDK_DRAWABLE_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_window_finalize;
+
+ drawable_class->create_gc = gdk_gl_window_create_gc;
+ drawable_class->draw_rectangle = gdk_gl_window_draw_rectangle;
+ drawable_class->draw_arc = gdk_gl_window_draw_arc;
+ drawable_class->draw_polygon = gdk_gl_window_draw_polygon;
+ drawable_class->draw_text = gdk_gl_window_draw_text;
+ drawable_class->draw_text_wc = gdk_gl_window_draw_text_wc;
+ drawable_class->draw_drawable = gdk_gl_window_draw_drawable;
+ drawable_class->draw_points = gdk_gl_window_draw_points;
+ drawable_class->draw_segments = gdk_gl_window_draw_segments;
+ drawable_class->draw_lines = gdk_gl_window_draw_lines;
+ drawable_class->draw_glyphs = gdk_gl_window_draw_glyphs;
+ drawable_class->draw_image = gdk_gl_window_draw_image;
+ drawable_class->get_depth = gdk_gl_window_get_depth;
+ drawable_class->get_size = gdk_gl_window_get_size;
+ drawable_class->set_colormap = gdk_gl_window_set_colormap;
+ drawable_class->get_colormap = gdk_gl_window_get_colormap;
+ drawable_class->get_visual = gdk_gl_window_get_visual;
+#if !(GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION == 0)
+ drawable_class->get_screen = gdk_gl_window_get_screen;
+#endif
+ drawable_class->get_image = gdk_gl_window_get_image;
+ drawable_class->get_clip_region = gdk_gl_window_get_clip_region;
+ drawable_class->get_visible_region = gdk_gl_window_get_visible_region;
+ drawable_class->get_composite_drawable = gdk_gl_window_get_composite_drawable;
+#if GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION == 0
+ drawable_class->_draw_pixbuf = gdk_gl_window_draw_pixbuf;
+#else
+ drawable_class->draw_pixbuf = gdk_gl_window_draw_pixbuf;
+#endif
+ drawable_class->_copy_to_image = gdk_gl_window_copy_to_image;
+}
+
+static void
+gdk_gl_window_finalize (GObject *object)
+{
+ GdkGLWindow *glwindow = GDK_GL_WINDOW (object);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (glwindow->drawable != NULL)
+ g_object_remove_weak_pointer (G_OBJECT (glwindow->drawable),
+ (gpointer *) &(glwindow->drawable));
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static GdkGC *
+gdk_gl_window_create_gc (GdkDrawable *drawable,
+ GdkGCValues *values,
+ GdkGCValuesMask mask)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->create_gc (real_drawable,
+ values,
+ mask);
+}
+
+static void
+gdk_gl_window_draw_rectangle (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ gint x,
+ gint y,
+ gint width,
+ gint height)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_rectangle (real_drawable,
+ gc,
+ filled,
+ x,
+ y,
+ width,
+ height);
+}
+
+static void
+gdk_gl_window_draw_arc (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gint angle1,
+ gint angle2)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_arc (real_drawable,
+ gc,
+ filled,
+ x,
+ y,
+ width,
+ height,
+ angle1,
+ angle2);
+}
+
+static void
+gdk_gl_window_draw_polygon (GdkDrawable *drawable,
+ GdkGC *gc,
+ gint filled,
+ GdkPoint *points,
+ gint npoints)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_polygon (real_drawable,
+ gc,
+ filled,
+ points,
+ npoints);
+}
+
+static void
+gdk_gl_window_draw_text (GdkDrawable *drawable,
+ GdkFont *font,
+ GdkGC *gc,
+ gint x,
+ gint y,
+ const gchar *text,
+ gint text_length)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_text (real_drawable,
+ font,
+ gc,
+ x,
+ y,
+ text,
+ text_length);
+}
+
+static void
+gdk_gl_window_draw_text_wc (GdkDrawable *drawable,
+ GdkFont *font,
+ GdkGC *gc,
+ gint x,
+ gint y,
+ const GdkWChar *text,
+ gint text_length)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_text_wc (real_drawable,
+ font,
+ gc,
+ x,
+ y,
+ text,
+ text_length);
+}
+
+static void
+gdk_gl_window_draw_drawable (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkDrawable *src,
+ gint xsrc,
+ gint ysrc,
+ gint xdest,
+ gint ydest,
+ gint width,
+ gint height)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_drawable (real_drawable,
+ gc,
+ src,
+ xsrc,
+ ysrc,
+ xdest,
+ ydest,
+ width,
+ height);
+}
+
+static void
+gdk_gl_window_draw_points (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPoint *points,
+ gint npoints)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_points (real_drawable,
+ gc,
+ points,
+ npoints);
+}
+
+static void
+gdk_gl_window_draw_segments (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkSegment *segs,
+ gint nsegs)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_segments (real_drawable,
+ gc,
+ segs,
+ nsegs);
+}
+
+static void
+gdk_gl_window_draw_lines (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPoint *points,
+ gint npoints)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_lines (real_drawable,
+ gc,
+ points,
+ npoints);
+}
+
+static void
+gdk_gl_window_draw_glyphs (GdkDrawable *drawable,
+ GdkGC *gc,
+ PangoFont *font,
+ gint x,
+ gint y,
+ PangoGlyphString *glyphs)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_glyphs (real_drawable,
+ gc,
+ font,
+ x,
+ y,
+ glyphs);
+}
+
+static void
+gdk_gl_window_draw_image (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkImage *image,
+ gint xsrc,
+ gint ysrc,
+ gint xdest,
+ gint ydest,
+ gint width,
+ gint height)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_image (real_drawable,
+ gc,
+ image,
+ xsrc,
+ ysrc,
+ xdest,
+ ydest,
+ width,
+ height);
+}
+
+static gint
+gdk_gl_window_get_depth (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_depth (real_drawable);
+}
+
+static void
+gdk_gl_window_get_size (GdkDrawable *drawable,
+ gint *width,
+ gint *height)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->get_size (real_drawable,
+ width,
+ height);
+}
+
+static void
+gdk_gl_window_set_colormap (GdkDrawable *drawable,
+ GdkColormap *cmap)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->set_colormap (real_drawable,
+ cmap);
+}
+
+static GdkColormap *
+gdk_gl_window_get_colormap (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_colormap (real_drawable);
+}
+
+static GdkVisual *
+gdk_gl_window_get_visual (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_visual (real_drawable);
+}
+
+#if !(GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION == 0)
+
+static GdkScreen *
+gdk_gl_window_get_screen (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_screen (real_drawable);
+}
+
+#endif
+
+static GdkImage *
+gdk_gl_window_get_image (GdkDrawable *drawable,
+ gint x,
+ gint y,
+ gint width,
+ gint height)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_image (real_drawable,
+ x,
+ y,
+ width,
+ height);
+}
+
+static GdkRegion *
+gdk_gl_window_get_clip_region (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_clip_region (real_drawable);
+}
+
+static GdkRegion *
+gdk_gl_window_get_visible_region (GdkDrawable *drawable)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_visible_region (real_drawable);
+}
+
+static GdkDrawable *
+gdk_gl_window_get_composite_drawable (GdkDrawable *drawable,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gint *composite_x_offset,
+ gint *composite_y_offset)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->get_composite_drawable (real_drawable,
+ x,
+ y,
+ width,
+ height,
+ composite_x_offset,
+ composite_y_offset);
+}
+
+static void
+gdk_gl_window_draw_pixbuf (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkPixbuf *pixbuf,
+ gint src_x,
+ gint src_y,
+ gint dest_x,
+ gint dest_y,
+ gint width,
+ gint height,
+ GdkRgbDither dither,
+ gint x_dither,
+ gint y_dither)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+#if GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION == 0
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->_draw_pixbuf (real_drawable,
+ gc,
+ pixbuf,
+ src_x,
+ src_y,
+ dest_x,
+ dest_y,
+ width,
+ height,
+ dither,
+ x_dither,
+ y_dither);
+#else
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->draw_pixbuf (real_drawable,
+ gc,
+ pixbuf,
+ src_x,
+ src_y,
+ dest_x,
+ dest_y,
+ width,
+ height,
+ dither,
+ x_dither,
+ y_dither);
+#endif
+}
+
+static GdkImage *
+gdk_gl_window_copy_to_image (GdkDrawable *drawable,
+ GdkImage *image,
+ gint src_x,
+ gint src_y,
+ gint dest_x,
+ gint dest_y,
+ gint width,
+ gint height)
+{
+ GdkDrawable *real_drawable = ((GdkGLWindow *) drawable)->drawable;
+
+ return GDK_DRAWABLE_GET_CLASS (real_drawable)->_copy_to_image (real_drawable,
+ image,
+ src_x,
+ src_y,
+ dest_x,
+ dest_y,
+ width,
+ height);
+}
+
+/*< private >*/
+void
+_gdk_gl_window_get_size (GdkGLDrawable *gldrawable,
+ gint *width,
+ gint *height)
+{
+ GdkDrawable *real_drawable;
+
+ g_return_if_fail (GDK_IS_GL_WINDOW (gldrawable));
+
+ real_drawable = ((GdkGLWindow *) gldrawable)->drawable;
+
+ GDK_DRAWABLE_GET_CLASS (real_drawable)->get_size (real_drawable,
+ width,
+ height);
+}
+
+/**
+ * gdk_gl_window_destroy:
+ * @glwindow: a #GdkGLWindow.
+ *
+ * Destroys the OpenGL resources associated with @glwindow and
+ * decrements @glwindow's reference count.
+ **/
+void
+gdk_gl_window_destroy (GdkGLWindow *glwindow)
+{
+ g_return_if_fail (GDK_IS_GL_WINDOW (glwindow));
+
+ _gdk_gl_window_destroy (glwindow);
+ g_object_unref (G_OBJECT (glwindow));
+}
+
+/**
+ * gdk_gl_window_get_window:
+ * @glwindow: a #GdkGLWindow.
+ *
+ * Returns the #GdkWindow associated with @glwindow.
+ *
+ * Notice that #GdkGLWindow is not #GdkWindow, but another
+ * #GdkDrawable which have an associated #GdkWindow.
+ *
+ * Return value: the #GdkWindow associated with @glwindow.
+ **/
+GdkWindow *
+gdk_gl_window_get_window (GdkGLWindow *glwindow)
+{
+ g_return_val_if_fail (GDK_IS_GL_WINDOW (glwindow), NULL);
+
+ return GDK_WINDOW (glwindow->drawable);
+}
+
+/*
+ * OpenGL extension to GdkWindow
+ */
+
+static const gchar quark_gl_window_string[] = "gdk-gl-window-gl-window";
+static GQuark quark_gl_window = 0;
+
+/**
+ * gdk_window_set_gl_capability:
+ * @window: the #GdkWindow to be used as the rendering area.
+ * @glconfig: a #GdkGLConfig.
+ * @attrib_list: this must be set to NULL or empty (first attribute of None).
+ *
+ * Set the OpenGL-capability to the @window.
+ * This function creates a new #GdkGLWindow held by the @window.
+ * attrib_list is currently unused. This must be set to NULL or empty
+ * (first attribute of None).
+ *
+ * Return value: the #GdkGLWindow used by the @window if it is successful,
+ * NULL otherwise.
+ **/
+GdkGLWindow *
+gdk_window_set_gl_capability (GdkWindow *window,
+ GdkGLConfig *glconfig,
+ const int *attrib_list)
+{
+ GdkGLWindow *glwindow;
+
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), NULL);
+
+ if (quark_gl_window == 0)
+ quark_gl_window = g_quark_from_static_string (quark_gl_window_string);
+
+ /* If already set */
+ glwindow = g_object_get_qdata (G_OBJECT (window), quark_gl_window);
+ if (glwindow != NULL)
+ return glwindow;
+
+ /*
+ * Create GdkGLWindow
+ */
+
+ glwindow = gdk_gl_window_new (glconfig, window, attrib_list);
+ if (glwindow == NULL)
+ {
+ g_warning ("cannot create GdkGLWindow\n");
+ return NULL;
+ }
+
+ g_object_set_qdata_full (G_OBJECT (window), quark_gl_window, glwindow,
+ (GDestroyNotify) g_object_unref);
+
+ /*
+ * Set a background of "None" on window to avoid AIX X server crash
+ */
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - window->bg_pixmap = %p",
+ ((GdkWindowObject *) window)->bg_pixmap));
+
+ gdk_window_set_back_pixmap (window, NULL, FALSE);
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - window->bg_pixmap = %p",
+ ((GdkWindowObject *) window)->bg_pixmap));
+
+ return glwindow;
+}
+
+/**
+ * gdk_window_unset_gl_capability:
+ * @window: a #GdkWindow.
+ *
+ * Unset the OpenGL-capability of the @window.
+ * This function destroys the #GdkGLWindow held by the @window.
+ *
+ **/
+void
+gdk_window_unset_gl_capability (GdkWindow *window)
+{
+ GdkGLWindow *glwindow;
+
+ GDK_GL_NOTE_FUNC ();
+
+ if (quark_gl_window == 0)
+ quark_gl_window = g_quark_from_static_string (quark_gl_window_string);
+
+ /*
+ * Destroy OpenGL resources explicitly, then unref.
+ */
+
+ glwindow = g_object_get_qdata (G_OBJECT (window), quark_gl_window);
+ if (glwindow == NULL)
+ return;
+
+ _gdk_gl_window_destroy (glwindow);
+
+ g_object_set_qdata (G_OBJECT (window), quark_gl_window, NULL);
+}
+
+/**
+ * gdk_window_is_gl_capable:
+ * @window: a #GdkWindow.
+ *
+ * Returns whether the @window is OpenGL-capable.
+ *
+ * Return value: TRUE if the @window is OpenGL-capable, FALSE otherwise.
+ **/
+gboolean
+gdk_window_is_gl_capable (GdkWindow *window)
+{
+ g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
+
+ return g_object_get_qdata (G_OBJECT (window), quark_gl_window) != NULL ? TRUE : FALSE;
+}
+
+/**
+ * gdk_window_get_gl_window:
+ * @window: a #GdkWindow.
+ *
+ * Returns the #GdkGLWindow held by the @window.
+ *
+ * Return value: the #GdkGLWindow.
+ **/
+GdkGLWindow *
+gdk_window_get_gl_window (GdkWindow *window)
+{
+ g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
+
+ return g_object_get_qdata (G_OBJECT (window), quark_gl_window);
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.h b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.h
new file mode 100644
index 00000000..9e68659c
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.h
@@ -0,0 +1,83 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_WINDOW_H__
+#define __GDK_GL_WINDOW_H__
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkgltypes.h>
+
+#include <gdk/gdkwindow.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLWindowClass GdkGLWindowClass;
+
+#define GDK_TYPE_GL_WINDOW (gdk_gl_window_get_type ())
+#define GDK_GL_WINDOW(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_WINDOW, GdkGLWindow))
+#define GDK_GL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_WINDOW, GdkGLWindowClass))
+#define GDK_IS_GL_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_WINDOW))
+#define GDK_IS_GL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_WINDOW))
+#define GDK_GL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_WINDOW, GdkGLWindowClass))
+
+struct _GdkGLWindow
+{
+ GdkDrawable parent_instance;
+
+ GdkDrawable *drawable; /* Associated GdkWindow */
+};
+
+struct _GdkGLWindowClass
+{
+ GdkDrawableClass parent_class;
+};
+
+GType gdk_gl_window_get_type (void);
+
+/*
+ * attrib_list is currently unused. This must be set to NULL or empty
+ * (first attribute of None). See GLX 1.3 spec.
+ */
+GdkGLWindow *gdk_gl_window_new (GdkGLConfig *glconfig,
+ GdkWindow *window,
+ const int *attrib_list);
+
+void gdk_gl_window_destroy (GdkGLWindow *glwindow);
+
+GdkWindow *gdk_gl_window_get_window (GdkGLWindow *glwindow);
+
+/*
+ * OpenGL extension to GdkWindow
+ */
+
+GdkGLWindow *gdk_window_set_gl_capability (GdkWindow *window,
+ GdkGLConfig *glconfig,
+ const int *attrib_list);
+
+void gdk_window_unset_gl_capability (GdkWindow *window);
+
+gboolean gdk_window_is_gl_capable (GdkWindow *window);
+
+GdkGLWindow *gdk_window_get_gl_window (GdkWindow *window);
+
+#define gdk_window_get_gl_drawable(window) \
+ GDK_GL_DRAWABLE (gdk_window_get_gl_window (window))
+
+G_END_DECLS
+
+#endif /* __GDK_GL_WINDOW_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile b/plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile
new file mode 100644
index 00000000..d5499052
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile
@@ -0,0 +1,464 @@
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# gdk/glext/Makefile. Generated from Makefile.in by configure.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+srcdir = .
+top_srcdir = ../..
+
+pkgdatadir = $(datadir)/gtkglext
+pkglibdir = $(libdir)/gtkglext
+pkgincludedir = $(includedir)/gtkglext
+top_builddir = ../..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = i686-pc-linux-gnu
+ACLOCAL = ${SHELL} /home/waker/prj/deadbeef/plugins/gtkui/gtkglext-gtk2/missing --run aclocal-1.7 -I ./m4macros
+AMDEP_FALSE = #
+AMDEP_TRUE =
+AMTAR = ${SHELL} /home/waker/prj/deadbeef/plugins/gtkui/gtkglext-gtk2/missing --run tar
+API_MI = 0
+API_MJ = 1
+AR = ar
+AS = as
+AUTOCONF = ${SHELL} /home/waker/prj/deadbeef/plugins/gtkui/gtkglext-gtk2/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/waker/prj/deadbeef/plugins/gtkui/gtkglext-gtk2/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/waker/prj/deadbeef/plugins/gtkui/gtkglext-gtk2/missing --run automake-1.7
+AWK = gawk
+BASE_DEPENDENCIES_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12
+BASE_DEPENDENCIES_LIBS = -Wl,--export-dynamic -pthread -lgtk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lfreetype -lfontconfig -lgdk-x11-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpangox-1.0 -lX11 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lrt -lglib-2.0
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2 -Wall
+CPP = gcc -E
+CPPFLAGS =
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+ECHO = echo
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = grep -E
+ENABLE_GTK_DOC_FALSE =
+ENABLE_GTK_DOC_TRUE = #
+EXAMPLES_DEP_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/atk-1.0
+EXEEXT =
+F77 =
+FFLAGS =
+GDKGLEXT_DEP_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12
+GDKGLEXT_DEP_LIBS = -lGLU -lGL -lXmu -lXt -lSM -lICE -Wl,--export-dynamic -pthread -lgdk-x11-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpangox-1.0 -lX11 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lrt -lglib-2.0 -lm
+GDKGLEXT_EXTRA_CFLAGS =
+GDKGLEXT_EXTRA_LIBS = -lGLU -lGL -lXmu -lXt -lSM -lICE
+GDKGLEXT_MULTIHEAD_SUPPORT = yes
+GDKGLEXT_PACKAGES = gdk-2.0 pango pangox gmodule-2.0
+GDKGLEXT_WIN_CFLAGS =
+GDKGLEXT_WIN_EXTRA_DEFS =
+GDKGLEXT_WIN_LIBS = -lXmu -lXt -lSM -lICE
+GLIB_CFLAGS = -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include
+GLIB_GENMARSHAL = glib-genmarshal
+GLIB_LIBS = -lglib-2.0
+GLIB_MKENUMS = glib-mkenums
+GL_CFLAGS =
+GL_LIBS = -lGLU -lGL
+GOBJECT_QUERY = gobject-query
+GTKDOC =
+GTKGLEXT_API_MAJOR_VERSION = 1
+GTKGLEXT_API_MINOR_VERSION = 0
+GTKGLEXT_API_VERSION = 1.0
+GTKGLEXT_BINARY_AGE = 0
+GTKGLEXT_DEBUG_FLAGS = -DG_DISABLE_CAST_CHECKS
+GTKGLEXT_DEP_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/atk-1.0
+GTKGLEXT_DEP_LIBS = -lGLU -lGL -lXmu -lXt -lSM -lICE -Wl,--export-dynamic -pthread -lpangox-1.0 -lX11 -lgmodule-2.0 -lrt -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0 -lm
+GTKGLEXT_DEP_LIBS_WITH_PANGOFT2 = -lGLU -lGL -lXmu -lXt -lSM -lICE -Wl,--export-dynamic -pthread -lpangox-1.0 -lX11 -lgmodule-2.0 -lrt -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0 -lm
+GTKGLEXT_EXTRA_CFLAGS =
+GTKGLEXT_EXTRA_LIBS =
+GTKGLEXT_INTERFACE_AGE = 0
+GTKGLEXT_MAJOR_VERSION = 1
+GTKGLEXT_MICRO_VERSION = 0
+GTKGLEXT_MINOR_VERSION = 2
+GTKGLEXT_PACKAGES = gtk+-2.0
+GTKGLEXT_VERSION = 1.2.0
+GTK_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12
+GTK_LIBS = -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0
+HTML_DIR = ${datadir}/gtk-doc/html
+INDENT =
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LDFLAGS =
+LIBOBJS =
+LIBS =
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBTOOL_EXPORT_OPTIONS = -export-symbols-regex "^[^_].*"
+LN_S = ln -s
+LTLIBOBJS =
+LT_AGE = 0
+LT_CURRENT = 0
+LT_CURRENT_MINUS_AGE = 0
+LT_RELEASE = 1.2
+LT_REVISION = 0
+MAINT = #
+MAINTAINER_MODE_FALSE =
+MAINTAINER_MODE_TRUE = #
+MAKEINFO = ${SHELL} /home/waker/prj/deadbeef/plugins/gtkui/gtkglext-gtk2/missing --run makeinfo
+MATH_LIB = -lm
+MS_LIB_AVAILABLE_FALSE =
+MS_LIB_AVAILABLE_TRUE = #
+MULTIHEAD_SUPPORT_FALSE = #
+MULTIHEAD_SUPPORT_TRUE =
+OBJDUMP = objdump
+OBJEXT = o
+OS_WIN32_FALSE =
+OS_WIN32_TRUE = #
+PACKAGE = gtkglext
+PACKAGE_BUGREPORT = gtkglext-list@gnome.org
+PACKAGE_NAME = gtkglext
+PACKAGE_STRING = gtkglext 1.2.0
+PACKAGE_TARNAME = gtkglext
+PACKAGE_VERSION = 1.2.0
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PKG_CONFIG = /usr/bin/pkg-config
+PLATFORM_WIN32_FALSE =
+PLATFORM_WIN32_TRUE = #
+RANLIB = ranlib
+REBUILD =
+SET_MAKE =
+SHELL = /bin/bash
+STRIP = strip
+USE_WIN32_FALSE =
+USE_WIN32_TRUE = #
+USE_X11_FALSE = #
+USE_X11_TRUE =
+VERSION = 1.2.0
+WINDOWING_CFLAGS =
+WINDOWING_LIBS = -lXmu -lXt -lSM -lICE -lXext -lX11
+X_CFLAGS =
+X_EXTRA_LIBS =
+X_LIBS =
+X_PRE_LIBS = -lSM -lICE
+ac_ct_AR = ar
+ac_ct_AS =
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_DLLTOOL =
+ac_ct_F77 =
+ac_ct_OBJDUMP =
+ac_ct_RANLIB = ranlib
+ac_ct_STRIP = strip
+ac_pt_PKG_CONFIG = /usr/bin/pkg-config
+am__fastdepCC_FALSE = #
+am__fastdepCC_TRUE =
+am__fastdepCXX_FALSE = #
+am__fastdepCXX_TRUE =
+am__include = include
+am__leading_dot = .
+am__quote =
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias =
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+datadir = ${prefix}/share
+exec_prefix = ${prefix}
+gdkglext_targetlib = libgdkglext-x11-1.0.la
+gdktarget = x11
+gtkglext_targetlib = libgtkglext-x11-1.0.la
+host = i686-pc-linux-gnu
+host_alias =
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+includedir = ${prefix}/include
+infodir = ${prefix}/info
+install_sh = /home/waker/prj/deadbeef/plugins/gtkui/gtkglext-gtk2/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localstatedir = ${prefix}/var
+mandir = ${prefix}/man
+ms_librarian =
+oldincludedir = /usr/include
+prefix = /usr
+program_transform_name = s,x,x,
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+sysconfdir = ${prefix}/etc
+target_alias =
+
+EXTRA_DIST = \
+ README \
+ list-ext.pl \
+ gen-gdkglglext-c.pl \
+ gen-gdkglglext-h.pl \
+ gen-gdkglglxext-c.pl \
+ gen-gdkglglxext-h.pl \
+ gen-gdkglwglext-c.pl \
+ gen-gdkglwglext-h.pl \
+ common-header.h
+
+
+gdkglext_glext_public_h_sources = \
+ glext.h \
+ glxext.h \
+ wglext.h \
+ glext-extra.h \
+ glxext-extra.h \
+ wglext-extra.h
+
+
+gdkglextglextincludedir = $(includedir)/gtkglext-1.0/gdk/glext
+gdkglextglextinclude_HEADERS = $(gdkglext_glext_public_h_sources)
+subdir = gdk/glext
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+HEADERS = $(gdkglextglextinclude_HEADERS)
+
+DIST_COMMON = README $(gdkglextglextinclude_HEADERS) \
+ $(srcdir)/Makefile.in Makefile.am
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: # Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gdk/glext/Makefile
+Makefile: # $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+gdkglextglextincludeHEADERS_INSTALL = $(INSTALL_HEADER)
+install-gdkglextglextincludeHEADERS: $(gdkglextglextinclude_HEADERS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(gdkglextglextincludedir)
+ @list='$(gdkglextglextinclude_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " $(gdkglextglextincludeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(gdkglextglextincludedir)/$$f"; \
+ $(gdkglextglextincludeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(gdkglextglextincludedir)/$$f; \
+ done
+
+uninstall-gdkglextglextincludeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(gdkglextglextinclude_HEADERS)'; for p in $$list; do \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " rm -f $(DESTDIR)$(gdkglextglextincludedir)/$$f"; \
+ rm -f $(DESTDIR)$(gdkglextglextincludedir)/$$f; \
+ done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(gdkglextglextincludedir)
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-gdkglextglextincludeHEADERS
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-gdkglextglextincludeHEADERS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am info \
+ info-am install install-am install-data install-data-am \
+ install-exec install-exec-am \
+ install-gdkglextglextincludeHEADERS install-info \
+ install-info-am install-man install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-gdkglextglextincludeHEADERS \
+ uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile.am b/plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile.am
new file mode 100644
index 00000000..6be03125
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile.am
@@ -0,0 +1,25 @@
+## -*- Makefile -*-
+## Makefile.am for gtkglext/gdk/glext
+
+EXTRA_DIST = \
+ README \
+ list-ext.pl \
+ gen-gdkglglext-c.pl \
+ gen-gdkglglext-h.pl \
+ gen-gdkglglxext-c.pl \
+ gen-gdkglglxext-h.pl \
+ gen-gdkglwglext-c.pl \
+ gen-gdkglwglext-h.pl \
+ common-header.h
+
+gdkglext_glext_public_h_sources = \
+ glext.h \
+ glxext.h \
+ wglext.h \
+ glext-extra.h \
+ glxext-extra.h \
+ wglext-extra.h
+
+gdkglextglextincludedir = $(includedir)/gtkglext-@GTKGLEXT_API_VERSION@/gdk/glext
+gdkglextglextinclude_HEADERS = $(gdkglext_glext_public_h_sources)
+
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/README b/plugins/gtkui/gtkglext-gtk2/gdk/glext/README
new file mode 100644
index 00000000..5a97edd5
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/README
@@ -0,0 +1,5 @@
+
+This directory contains OpenGL extension headers provided by SGI.
+
+ http://oss.sgi.com/projects/ogl-sample/registry/
+
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/common-header.h b/plugins/gtkui/gtkglext-gtk2/gdk/glext/common-header.h
new file mode 100644
index 00000000..776a2a30
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/common-header.h
@@ -0,0 +1,18 @@
+/* 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.
+ */
+
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglext-c.pl b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglext-c.pl
new file mode 100755
index 00000000..b590c93f
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglext-c.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl -w
+#
+# gen-gdkglglext-c.pl
+#
+# Script for generating gdk/gdkglglext.c from SGI's OpenGL extension
+# header.
+#
+# written by Naofumi Yasufuku <naofumi@users.sourceforge.net>
+#
+
+@input_headers = ("glext.h", "glext-extra.h");
+
+#---------------
+open(IN, "common-header.h") || die "cannot open common-header.h";
+print while (<IN>);
+close(IN);
+
+print <<EOF;
+/*
+ * This is a generated file. Please modify "gen-gdkglglext-c.pl".
+ */
+
+#include "gdkglprivate.h"
+#include "gdkglquery.h"
+#include "gdkglcontext.h"
+#include "gdkglglext.h"
+
+EOF
+#---------------
+
+foreach $in (@input_headers) {
+ open(IN, $in) || die "cannot open $in";
+
+ while (<IN>) {
+ if (/#ifndef\s+GL_[a-zA-Z0-9]+_[a-z0-9_]+/) {
+ @line = split;
+ $_ = <IN>;
+ if (/#define\s+$line[1]/) {
+ while (<IN>) {
+ if (/#ifdef\s+GL_GLEXT_PROTOTYPES/) {
+
+ $extension = $line[1];
+
+ # function prototypes
+ @functions = ();
+ while (<IN>) {
+ last if (/#endif/);
+ ($func) = /(gl\w+)/;
+ push(@functions, $func);
+ }
+
+ # typedefs
+ @typedefs = ();
+ while (<IN>) {
+ last if (/#endif/);
+ chomp;
+ push(@typedefs, $_);
+ }
+
+ generate_code();
+
+ last;
+
+ } elsif (/#endif/) {
+ last;
+ }
+ }
+ }
+ }
+ }
+
+ close(IN);
+}
+
+# code generator
+sub generate_code {
+ print "/*\n";
+ print " * $extension\n";
+ print " */\n\n";
+
+ print "static GdkGL_$extension _procs_$extension = {\n";
+ print " (GdkGLProc_$functions[0]) -1";
+ for ($i = 1; $i <= $#functions; $i++) {
+ print ",\n (GdkGLProc_$functions[$i]) -1";
+ }
+ print "\n};\n\n";
+
+ foreach $func (@functions) {
+ print "/* $func */\n";
+ print "GdkGLProc\n";
+ print "gdk_gl_get_$func (void)\n";
+ print "{\n";
+ print " if (gdk_gl_context_get_current () == NULL)\n";
+ print " return NULL;\n";
+ print "\n";
+ print " if (_procs_$extension.$func == (GdkGLProc_$func) -1)\n";
+ print " _procs_$extension.$func =\n";
+ print " (GdkGLProc_$func) gdk_gl_get_proc_address (\"$func\");\n";
+ print "\n";
+ print " GDK_GL_NOTE (MISC,\n";
+ print " g_message (\" - gdk_gl_get_$func () - \%s\",\n";
+ print " (_procs_$extension.$func) ? \"supported\" : \"not supported\"));\n";
+ print "\n";
+ print " return (GdkGLProc) (_procs_$extension.$func);\n";
+ print "}\n\n";
+ }
+
+ print "/* Get $extension functions */\n";
+ print "GdkGL_$extension *\n";
+ print "gdk_gl_get_$extension (void)\n";
+ print "{\n";
+ print " static gint supported = -1;\n";
+ print "\n";
+ print " if (gdk_gl_context_get_current () == NULL)\n";
+ print " return NULL;\n";
+ print "\n";
+ print " if (supported == -1)\n";
+ print " {\n";
+ if ($extension =~ /^GL_VERSION_.*/) {
+ print " supported = (gdk_gl_get_$functions[0] () != NULL);\n";
+ for ($i = 1; $i <= $#functions; $i++) {
+ print " supported &= (gdk_gl_get_$functions[$i] () != NULL);\n";
+ }
+ } else {
+ print " supported = gdk_gl_query_gl_extension (\"$extension\");\n";
+ print "\n";
+ print " if (supported)\n";
+ print " {\n";
+ foreach $func (@functions) {
+ print " supported &= (gdk_gl_get_$func () != NULL);\n";
+ }
+ print " }\n";
+ }
+ print " }\n";
+ print "\n";
+ print " GDK_GL_NOTE (MISC,\n";
+ print " g_message (\" - gdk_gl_get_$extension () - \%s\",\n";
+ print " (supported) ? \"supported\" : \"not supported\"));\n";
+ print "\n";
+ print " if (!supported)\n";
+ print " return NULL;\n";
+ print "\n";
+ print " return &_procs_$extension;\n";
+ print "}\n\n";
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglext-h.pl b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglext-h.pl
new file mode 100755
index 00000000..7d728107
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglext-h.pl
@@ -0,0 +1,159 @@
+#!/usr/bin/perl -w
+#
+# gen-gdkglglext-h.pl
+#
+# Script for generating gdk/gdkglglext.h from SGI's OpenGL extension
+# header.
+#
+# written by Naofumi Yasufuku <naofumi@users.sourceforge.net>
+#
+
+@input_headers = ("glext.h", "glext-extra.h");
+
+#---------------
+open(IN, "common-header.h") || die "cannot open common-header.h";
+print while (<IN>);
+close(IN);
+
+print <<EOF;
+/*
+ * This is a generated file. Please modify "gen-gdkglglext-h.pl".
+ */
+
+#ifndef __GDK_GL_GLEXT_H__
+#define __GDK_GL_GLEXT_H__
+
+#include <glib.h>
+
+#ifdef G_OS_WIN32
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#include <GL/gl.h>
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkglquery.h>
+
+G_BEGIN_DECLS
+
+#ifndef HAVE_GLHALFNV
+#if defined(GL_NV_half_float) && defined(GDKGLEXT_NEED_GLHALFNV_TYPEDEF)
+typedef unsigned short GLhalfNV;
+#endif
+#endif
+
+/* Avoid old glext.h bug. */
+#if !defined(GL_SGIS_point_parameters) && defined(GL_POINT_SIZE_MIN_SGIS)
+#define GL_SGIS_point_parameters 1
+#endif
+
+#undef __glext_h_
+#undef GL_GLEXT_VERSION
+#include <gdk/glext/glext.h>
+#include <gdk/glext/glext-extra.h>
+
+EOF
+#---------------
+
+foreach $in (@input_headers) {
+ open(IN, $in) || die "cannot open $in";
+
+ while (<IN>) {
+ if (/#ifndef\s+GL_[a-zA-Z0-9]+_[a-z0-9_]+/) {
+ @line = split;
+ $_ = <IN>;
+ if (/#define\s+$line[1]/) {
+ while (<IN>) {
+ if (/#ifdef\s+GL_GLEXT_PROTOTYPES/) {
+
+ $extension = $line[1];
+
+ # function prototypes
+ @functions = ();
+ while (<IN>) {
+ last if (/#endif/);
+ ($func) = /(gl\w+)/;
+ push(@functions, $func);
+ }
+
+ # typedefs
+ @typedefs = ();
+ while (<IN>) {
+ last if (/#endif/);
+ chomp;
+ push(@typedefs, $_);
+ }
+
+ generate_code();
+
+ last;
+
+ } elsif (/#endif/) {
+ last;
+ }
+ }
+ }
+ }
+ }
+
+ close(IN);
+}
+
+#---------------
+print <<EOF;
+G_END_DECLS
+
+#endif /* __GDK_GL_GLEXT_H__ */
+EOF
+#---------------
+
+# code generator
+sub generate_code {
+ print "/*\n";
+ print " * $extension\n";
+ print " */\n\n";
+
+ $i = 0;
+ foreach $func (@functions) {
+ print "/* $func */\n";
+
+ $type = $typedefs[$i++];
+ $type =~ s/PFN\w+/GdkGLProc_$func/;
+ print "$type\n";
+
+ print "GdkGLProc gdk_gl_get_$func (void);\n";
+
+ $_ = $type;
+ ($args) = /\(.*\)\s+\((.*)\)/;
+ @args_list = split(/,\s+/, $args);
+ foreach (@args_list) {
+ ($_) = /.*\s+\**(\w+)$/;
+ $_ = "" if (!$_);
+ }
+ $args = join(", ", @args_list);
+
+ if ($args eq "") {
+ print "#define gdk_gl_$func(proc) \\\n";
+ print " ( ((GdkGLProc_$func) (proc)) () )\n";
+ } else {
+ print "#define gdk_gl_$func(proc, $args) \\\n";
+ print " ( ((GdkGLProc_$func) (proc)) ($args) )\n";
+ }
+
+ print "\n";
+ }
+
+ print "/* proc struct */\n\n";
+
+ print "typedef struct _GdkGL_$extension GdkGL_$extension;\n\n";
+
+ print "struct _GdkGL_$extension\n";
+ print "{\n";
+ foreach $func (@functions) {
+ print " GdkGLProc_$func $func;\n";
+ }
+ print "};\n\n";
+
+ print "GdkGL_$extension *gdk_gl_get_$extension (void);\n\n";
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglxext-c.pl b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglxext-c.pl
new file mode 100755
index 00000000..161ee507
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglxext-c.pl
@@ -0,0 +1,154 @@
+#!/usr/bin/perl -w
+#
+# gen-gdkglglxext-c.pl
+#
+# Script for generating gdk/x11/gdkglglxext.c from SGI's OpenGL extension
+# header.
+#
+# written by Naofumi Yasufuku <naofumi@users.sourceforge.net>
+#
+
+@input_headers = ("glxext.h", "glxext-extra.h");
+
+#---------------
+open(IN, "common-header.h") || die "cannot open common-header.h";
+print while (<IN>);
+close(IN);
+
+print <<EOF;
+/*
+ * This is a generated file. Please modify "gen-gdkglglxext-c.pl".
+ */
+
+#include "gdkglx.h"
+#include "gdkglprivate-x11.h"
+#include "gdkglglxext.h"
+
+EOF
+#---------------
+
+foreach $in (@input_headers) {
+ open(IN, $in) || die "cannot open $in";
+
+ while (<IN>) {
+ if (/#ifndef\s+GLX_[a-zA-Z0-9]+_[a-z0-9_]+/) {
+ @line = split;
+ $_ = <IN>;
+ if (/#define\s+$line[1]/) {
+ while (<IN>) {
+ if (/#ifdef\s+GLX_GLXEXT_PROTOTYPES/) {
+
+ $extension = $line[1];
+
+ # function prototypes
+ @functions = ();
+ while (<IN>) {
+ last if (/#endif/);
+ ($func) = /(glX\w+)/;
+ push(@functions, $func);
+ }
+
+ # typedefs
+ @typedefs = ();
+ while (<IN>) {
+ last if (/#endif/);
+ chomp;
+ push(@typedefs, $_);
+ }
+
+ generate_code();
+
+ last;
+
+ } elsif (/#endif/) {
+ last;
+ }
+ }
+ }
+ }
+ }
+
+ close(IN);
+}
+
+# code generator
+sub generate_code {
+ print "/*\n";
+ print " * $extension\n";
+ print " */\n\n";
+
+ if ($extension eq "GLX_SGIX_video_source") {
+ print "#ifdef _VL_H\n\n";
+ } elsif ($extension eq "GLX_SGIX_dmbuffer") {
+ print "#ifdef _DM_BUFFER_H_\n\n";
+ }
+
+ print "static GdkGL_$extension _procs_$extension = {\n";
+ print " (GdkGLProc_$functions[0]) -1";
+ for ($i = 1; $i <= $#functions; $i++) {
+ print ",\n (GdkGLProc_$functions[$i]) -1";
+ }
+ print "\n};\n\n";
+
+ foreach $func (@functions) {
+ print "/* $func */\n";
+ print "GdkGLProc\n";
+ print "gdk_gl_get_$func (void)\n";
+ print "{\n";
+ print " if (_procs_$extension.$func == (GdkGLProc_$func) -1)\n";
+ print " _procs_$extension.$func =\n";
+ print " (GdkGLProc_$func) gdk_gl_get_proc_address (\"$func\");\n";
+ print "\n";
+ print " GDK_GL_NOTE (MISC,\n";
+ print " g_message (\" - gdk_gl_get_$func () - \%s\",\n";
+ print " (_procs_$extension.$func) ? \"supported\" : \"not supported\"));\n";
+ print "\n";
+ print " return (GdkGLProc) (_procs_$extension.$func);\n";
+ print "}\n\n";
+ }
+
+ print "/* Get $extension functions */\n";
+ print "GdkGL_$extension *\n";
+ if ($extension =~ /^GLX_VERSION_.*/) {
+ print "gdk_gl_get_$extension (void)\n";
+ } else {
+ print "gdk_gl_get_$extension (GdkGLConfig *glconfig)\n";
+ }
+ print "{\n";
+ print " static gint supported = -1;\n";
+ print "\n";
+ print " if (supported == -1)\n";
+ print " {\n";
+ if ($extension =~ /^GLX_VERSION_.*/) {
+ print " supported = (gdk_gl_get_$functions[0] () != NULL);\n";
+ for ($i = 1; $i <= $#functions; $i++) {
+ print " supported &= (gdk_gl_get_$functions[$i] () != NULL);\n";
+ }
+ } else {
+ print " supported = gdk_x11_gl_query_glx_extension (glconfig, \"$extension\");\n";
+ print "\n";
+ print " if (supported)\n";
+ print " {\n";
+ foreach $func (@functions) {
+ print " supported &= (gdk_gl_get_$func () != NULL);\n";
+ }
+ print " }\n";
+ }
+ print " }\n";
+ print "\n";
+ print " GDK_GL_NOTE (MISC,\n";
+ print " g_message (\" - gdk_gl_get_$extension () - \%s\",\n";
+ print " (supported) ? \"supported\" : \"not supported\"));\n";
+ print "\n";
+ print " if (!supported)\n";
+ print " return NULL;\n";
+ print "\n";
+ print " return &_procs_$extension;\n";
+ print "}\n\n";
+
+ if ($extension eq "GLX_SGIX_video_source") {
+ print "#endif /* _VL_H */\n\n";
+ } elsif ($extension eq "GLX_SGIX_dmbuffer") {
+ print "#endif /* _DM_BUFFER_H_ */\n\n";
+ }
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglxext-h.pl b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglxext-h.pl
new file mode 100755
index 00000000..ec625327
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglxext-h.pl
@@ -0,0 +1,218 @@
+#!/usr/bin/perl -w
+#
+# gen-gdkglglxext-h.pl
+#
+# Script for generating gdk/x11/gdkglglxext.h from SGI's OpenGL extension
+# header.
+#
+# written by Naofumi Yasufuku <naofumi@users.sourceforge.net>
+#
+
+@input_headers = ("glxext.h", "glxext-extra.h");
+
+#---------------
+open(IN, "common-header.h") || die "cannot open common-header.h";
+print while (<IN>);
+close(IN);
+
+print <<EOF;
+/*
+ * 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>
+
+EOF
+#---------------
+
+foreach $in (@input_headers) {
+ open(IN, $in) || die "cannot open $in";
+
+ while (<IN>) {
+ if (/#ifndef\s+GLX_[a-zA-Z0-9]+_[a-z0-9_]+/) {
+ @line = split;
+ $_ = <IN>;
+ if (/#define\s+$line[1]/) {
+ while (<IN>) {
+ if (/#ifdef\s+GLX_GLXEXT_PROTOTYPES/) {
+
+ $extension = $line[1];
+
+ # function prototypes
+ @functions = ();
+ while (<IN>) {
+ last if (/#endif/);
+ ($func) = /(glX\w+)/;
+ push(@functions, $func);
+ }
+
+ # typedefs
+ @typedefs = ();
+ while (<IN>) {
+ last if (/#endif/);
+ chomp;
+ push(@typedefs, $_);
+ }
+
+ generate_code();
+
+ last;
+
+ } elsif (/#endif/) {
+ last;
+ }
+ }
+ }
+ }
+ }
+
+ close(IN);
+}
+
+#---------------
+print <<EOF;
+G_END_DECLS
+
+#endif /* __GDK_GL_GLXEXT_H__ */
+EOF
+#---------------
+
+# code generator
+sub generate_code {
+ print "/*\n";
+ print " * $extension\n";
+ print " */\n\n";
+
+ if ($extension eq "GLX_SGIX_video_source") {
+ print "#ifdef _VL_H\n\n";
+ } elsif ($extension eq "GLX_SGIX_dmbuffer") {
+ print "#ifdef _DM_BUFFER_H_\n\n";
+ }
+
+ $i = 0;
+ foreach $func (@functions) {
+ print "/* $func */\n";
+
+ $type = $typedefs[$i++];
+ $type =~ s/PFN\w+/GdkGLProc_$func/;
+ print "$type\n";
+
+ print "GdkGLProc gdk_gl_get_$func (void);\n";
+
+ $_ = $type;
+ ($args) = /\(.*\)\s+\((.*)\)/;
+ @args_list = split(/,\s+/, $args);
+ foreach (@args_list) {
+ ($_) = /.*\s+\**(\w+)$/;
+ $_ = "" if (!$_);
+ }
+ $args = join(", ", @args_list);
+
+ if ($args eq "") {
+ print "#define gdk_gl_$func(proc) \\\n";
+ print " ( ((GdkGLProc_$func) (proc)) () )\n";
+ } else {
+ print "#define gdk_gl_$func(proc, $args) \\\n";
+ print " ( ((GdkGLProc_$func) (proc)) ($args) )\n";
+ }
+
+ print "\n";
+ }
+
+ print "/* proc struct */\n\n";
+
+ print "typedef struct _GdkGL_$extension GdkGL_$extension;\n\n";
+
+ print "struct _GdkGL_$extension\n";
+ print "{\n";
+ foreach $func (@functions) {
+ print " GdkGLProc_$func $func;\n";
+ }
+ print "};\n\n";
+
+ if ($extension =~ /^GLX_VERSION_.*/) {
+ print "GdkGL_$extension *gdk_gl_get_$extension (void);\n\n";
+ } else {
+ print "GdkGL_$extension *gdk_gl_get_$extension (GdkGLConfig *glconfig);\n\n";
+ }
+
+ if ($extension eq "GLX_SGIX_video_source") {
+ print "#endif /* _VL_H */\n\n";
+ } elsif ($extension eq "GLX_SGIX_dmbuffer") {
+ print "#endif /* _DM_BUFFER_H_ */\n\n";
+ }
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglwglext-c.pl b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglwglext-c.pl
new file mode 100755
index 00000000..94e73e48
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglwglext-c.pl
@@ -0,0 +1,137 @@
+#!/usr/bin/perl -w
+#
+# gen-gdkglwglext-c.pl
+#
+# Script for generating gdk/win32/gdkglwglext.c from SGI's OpenGL extension
+# header.
+#
+# written by Naofumi Yasufuku <naofumi@users.sourceforge.net>
+#
+
+@input_headers = ("wglext.h", "wglext-extra.h");
+
+#---------------
+open(IN, "common-header.h") || die "cannot open common-header.h";
+print while (<IN>);
+close(IN);
+
+print <<EOF;
+/*
+ * This is a generated file. Please modify "gen-gdkglwglext-c.pl".
+ */
+
+#include "gdkglwin32.h"
+#include "gdkglprivate-win32.h"
+#include "gdkglwglext.h"
+
+EOF
+#---------------
+
+foreach $in (@input_headers) {
+ open(IN, $in) || die "cannot open $in";
+
+ while (<IN>) {
+ if (/#ifndef\s+WGL_[a-zA-Z0-9]+_[a-z0-9_]+/) {
+ @line = split;
+ $_ = <IN>;
+ if (/#define\s+$line[1]/) {
+ while (<IN>) {
+ if (/#ifdef\s+WGL_WGLEXT_PROTOTYPES/) {
+
+ $extension = $line[1];
+
+ # function prototypes
+ @functions = ();
+ while (<IN>) {
+ last if (/#endif/);
+ ($func) = /(wgl\w+)/;
+ push(@functions, $func);
+ }
+
+ # typedefs
+ @typedefs = ();
+ while (<IN>) {
+ last if (/#endif/);
+ chomp;
+ push(@typedefs, $_);
+ }
+
+ generate_code();
+
+ last;
+
+ } elsif (/#endif/) {
+ last;
+ }
+ }
+ }
+ }
+ }
+
+ close(IN);
+}
+
+# code generator
+sub generate_code {
+ print "/*\n";
+ print " * $extension\n";
+ print " */\n\n";
+
+ print "static GdkGL_$extension _procs_$extension = {\n";
+ print " (GdkGLProc_$functions[0]) -1";
+ for ($i = 1; $i <= $#functions; $i++) {
+ print ",\n (GdkGLProc_$functions[$i]) -1";
+ }
+ print "\n};\n\n";
+
+ foreach $func (@functions) {
+ print "/* $func */\n";
+ print "GdkGLProc\n";
+ print "gdk_gl_get_$func (void)\n";
+ print "{\n";
+ print " if (wglGetCurrentContext () == NULL)\n";
+ print " return NULL;\n";
+ print "\n";
+ print " if (_procs_$extension.$func == (GdkGLProc_$func) -1)\n";
+ print " _procs_$extension.$func =\n";
+ print " (GdkGLProc_$func) gdk_gl_get_proc_address (\"$func\");\n";
+ print "\n";
+ print " GDK_GL_NOTE (MISC,\n";
+ print " g_message (\" - gdk_gl_get_$func () - \%s\",\n";
+ print " (_procs_$extension.$func) ? \"supported\" : \"not supported\"));\n";
+ print "\n";
+ print " return (GdkGLProc) (_procs_$extension.$func);\n";
+ print "}\n\n";
+ }
+
+ print "/* Get $extension functions */\n";
+ print "GdkGL_$extension *\n";
+ print "gdk_gl_get_$extension (GdkGLConfig *glconfig)\n";
+ print "{\n";
+ print " static gint supported = -1;\n";
+ print "\n";
+ print " if (wglGetCurrentContext () == NULL)\n";
+ print " return NULL;\n";
+ print "\n";
+ print " if (supported == -1)\n";
+ print " {\n";
+ print " supported = gdk_win32_gl_query_wgl_extension (glconfig, \"$extension\");\n";
+ print "\n";
+ print " if (supported)\n";
+ print " {\n";
+ foreach $func (@functions) {
+ print " supported &= (gdk_gl_get_$func () != NULL);\n";
+ }
+ print " }\n";
+ print " }\n";
+ print "\n";
+ print " GDK_GL_NOTE (MISC,\n";
+ print " g_message (\" - gdk_gl_get_$extension () - \%s\",\n";
+ print " (supported) ? \"supported\" : \"not supported\"));\n";
+ print "\n";
+ print " if (!supported)\n";
+ print " return NULL;\n";
+ print "\n";
+ print " return &_procs_$extension;\n";
+ print "}\n\n";
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglwglext-h.pl b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglwglext-h.pl
new file mode 100755
index 00000000..f9c3971e
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglwglext-h.pl
@@ -0,0 +1,149 @@
+#!/usr/bin/perl -w
+#
+# gen-gdkglwglext-h.pl
+#
+# Script for generating gdk/win32/gdkglwglext.h from SGI's OpenGL extension
+# header.
+#
+# written by Naofumi Yasufuku <naofumi@users.sourceforge.net>
+#
+
+@input_headers = ("wglext.h", "wglext-extra.h");
+
+#---------------
+open(IN, "common-header.h") || die "cannot open common-header.h";
+print while (<IN>);
+close(IN);
+
+print <<EOF;
+/*
+ * This is a generated file. Please modify "gen-gdkglwglext-h.pl".
+ */
+
+#ifndef __GDK_GL_WGLEXT_H__
+#define __GDK_GL_WGLEXT_H__
+
+#include <glib.h>
+
+#ifdef G_OS_WIN32
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#include <GL/gl.h>
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkglquery.h>
+#include <gdk/gdkglconfig.h>
+
+#undef __wglext_h_
+#undef WGL_WGLEXT_VERSION
+#include <gdk/glext/wglext.h>
+#include <gdk/glext/wglext-extra.h>
+
+G_BEGIN_DECLS
+
+EOF
+#---------------
+
+foreach $in (@input_headers) {
+ open(IN, $in) || die "cannot open $in";
+
+ while (<IN>) {
+ if (/#ifndef\s+WGL_[a-zA-Z0-9]+_[a-z0-9_]+/) {
+ @line = split;
+ $_ = <IN>;
+ if (/#define\s+$line[1]/) {
+ while (<IN>) {
+ if (/#ifdef\s+WGL_WGLEXT_PROTOTYPES/) {
+
+ $extension = $line[1];
+
+ # function prototypes
+ @functions = ();
+ while (<IN>) {
+ last if (/#endif/);
+ ($func) = /(wgl\w+)/;
+ push(@functions, $func);
+ }
+
+ # typedefs
+ @typedefs = ();
+ while (<IN>) {
+ last if (/#endif/);
+ chomp;
+ push(@typedefs, $_);
+ }
+
+ generate_code();
+
+ last;
+
+ } elsif (/#endif/) {
+ last;
+ }
+ }
+ }
+ }
+ }
+
+ close(IN);
+}
+
+#---------------
+print <<EOF;
+G_END_DECLS
+
+#endif /* __GDK_GL_WGLEXT_H__ */
+EOF
+#---------------
+
+# code generator
+sub generate_code {
+ print "/*\n";
+ print " * $extension\n";
+ print " */\n\n";
+
+ $i = 0;
+ foreach $func (@functions) {
+ print "/* $func */\n";
+
+ $type = $typedefs[$i++];
+ $type =~ s/PFN\w+/GdkGLProc_$func/;
+ print "$type\n";
+
+ print "GdkGLProc gdk_gl_get_$func (void);\n";
+
+ $_ = $type;
+ ($args) = /\(.*\)\s+\((.*)\)/;
+ @args_list = split(/,\s+/, $args);
+ foreach (@args_list) {
+ ($_) = /.*\s+\**(\w+)$/;
+ $_ = "" if (!$_);
+ }
+ $args = join(", ", @args_list);
+
+ if ($args eq "") {
+ print "#define gdk_gl_$func(proc) \\\n";
+ print " ( ((GdkGLProc_$func) (proc)) () )\n";
+ } else {
+ print "#define gdk_gl_$func(proc, $args) \\\n";
+ print " ( ((GdkGLProc_$func) (proc)) ($args) )\n";
+ }
+
+ print "\n";
+ }
+
+ print "/* proc struct */\n\n";
+
+ print "typedef struct _GdkGL_$extension GdkGL_$extension;\n\n";
+
+ print "struct _GdkGL_$extension\n";
+ print "{\n";
+ foreach $func (@functions) {
+ print " GdkGLProc_$func $func;\n";
+ }
+ print "};\n\n";
+
+ print "GdkGL_$extension *gdk_gl_get_$extension (GdkGLConfig *glconfig);\n\n";
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/glext-extra.h b/plugins/gtkui/gtkglext-gtk2/gdk/glext/glext-extra.h
new file mode 100644
index 00000000..50ef94fa
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/glext-extra.h
@@ -0,0 +1,892 @@
+/* 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.
+ */
+
+/*
+ * Additional OpenGL extensions.
+ */
+
+#ifndef __glext_extra_h_
+#define __glext_extra_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+/*
+ * 3DFX
+ */
+
+/*
+ * APPLE
+ */
+
+#ifndef GL_APPLE_texture_range
+#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
+#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
+#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
+#endif
+#if !defined(GL_APPLE_vertex_array_range) && !defined(GL_APPLE_texture_range)
+#define GL_STORAGE_PRIVATE_APPLE 0x85BD
+#define GL_STORAGE_CACHED_APPLE 0x85BE
+#define GL_STORAGE_SHARED_APPLE 0x85BF
+#endif
+
+#ifndef GL_APPLE_float_pixels
+#define GL_COLOR_FLOAT_APPLE 0x8A0F
+#define GL_RGBA_FLOAT32_APPLE 0x8814
+#define GL_RGB_FLOAT32_APPLE 0x8815
+#define GL_ALPHA_FLOAT32_APPLE 0x8816
+#define GL_INTENSITY_FLOAT32_APPLE 0x8817
+#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
+#define GL_RGBA_FLOAT16_APPLE 0x881A
+#define GL_RGB_FLOAT16_APPLE 0x881B
+#define GL_ALPHA_FLOAT16_APPLE 0x881C
+#define GL_INTENSITY_FLOAT16_APPLE 0x881D
+#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
+#endif
+
+#ifndef GL_APPLE_vertex_program_evaluators
+#define GL_VERTEX_ATTRIB_MAP1_ARB 0x8A00
+#define GL_VERTEX_ATTRIB_MAP2_ARB 0x8A01
+#define GL_VERTEX_ATTRIB_MAP1_SIZE_ARB 0x8A02
+#define GL_VERTEX_ATTRIB_MAP1_COEFF_ARB 0x8A03
+#define GL_VERTEX_ATTRIB_MAP1_ORDER_ARB 0x8A04
+#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_ARB 0x8A05
+#define GL_VERTEX_ATTRIB_MAP2_SIZE_ARB 0x8A06
+#define GL_VERTEX_ATTRIB_MAP2_COEFF_ARB 0x8A07
+#define GL_VERTEX_ATTRIB_MAP2_ORDER_ARB 0x8A08
+#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_ARB 0x8A09
+#endif
+
+#ifndef GL_APPLE_packed_pixels
+#define GL_APPLE_packed_pixels 1
+#endif
+
+#ifndef GL_APPLE_texture_range
+#define GL_APPLE_texture_range 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTextureRangeAPPLE (GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum, GLenum, GLvoid **);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params);
+#endif
+
+#ifndef GL_APPLE_float_pixels
+#define GL_APPLE_float_pixels 1
+#endif
+
+#ifndef GL_APPLE_vertex_program_evaluators
+#define GL_APPLE_vertex_program_evaluators 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint index, GLenum pname);
+GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint index, GLenum pname);
+GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname);
+GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
+GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
+GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
+GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
+typedef void (APIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
+typedef GLboolean (APIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname);
+typedef void (APIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
+typedef void (APIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
+typedef void (APIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
+typedef void (APIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
+#endif
+
+/*
+ * ARB
+ */
+
+/*
+ * ATI
+ */
+
+#ifndef GL_ATI_blend_equation_separate
+#define GL_ALPHA_BLEND_EQUATION_ATI 0x883D
+#endif
+
+#ifndef GL_ATI_blend_weighted_minmax
+#define GL_MIN_WEIGHTED_ATI 0x877D
+#define GL_MAX_WEIGHTED_ATI 0x877E
+#endif
+
+#ifndef GL_ATI_point_cull_mode
+#define GL_POINT_CULL_MODE_ATI 0x60B3
+#define GL_POINT_CULL_CENTER_ATI 0x60B4
+#define GL_POINT_CULL_CLIP_ATI 0x60B5
+#endif
+
+#ifndef GL_ATI_blend_equation_separate
+#define GL_ATI_blend_equation_separate 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendEquationSeparateATI (GLenum, GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum equationRGB, GLenum equationAlpha);
+#endif
+
+#ifndef GL_ATI_blend_weighted_minmax
+#define GL_ATI_blend_weighted_minmax 1
+#endif
+
+#ifndef GL_ATI_point_cull_mode
+#define GL_ATI_point_cull_mode 1
+#endif
+
+/*
+ * ATIX
+ */
+
+#ifndef GL_ATIX_pn_triangles
+#define GL_PN_TRIANGLES_ATIX 0x6090
+#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATIX 0x6091
+#define GL_PN_TRIANGLES_POINT_MODE_ATIX 0x6092
+#define GL_PN_TRIANGLES_NORMAL_MODE_ATIX 0x6093
+#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATIX 0x6094
+#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATIX 0x6095
+#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATIX 0x6096
+#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATIX 0x6097
+#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATIX 0x6098
+#endif
+
+#ifndef GL_ATIX_texture_env_combine3
+#define GL_MODULATE_ADD_ATIX 0x8744
+#define GL_MODULATE_SIGNED_ADD_ATIX 0x8745
+#define GL_MODULATE_SUBTRACT_ATIX 0x8746
+#endif
+
+#ifndef GL_ATIX_texture_env_route
+#define GL_SECONDARY_COLOR_ATIX 0x8747
+#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748
+#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749
+#endif
+
+#ifndef GL_ATIX_vertex_shader_output_point_size
+#define GL_OUTPUT_POINT_SIZE_ATIX 0x610E
+#endif
+
+#ifndef GL_ATIX_point_sprites
+#define GL_ATIX_point_sprites 1
+#endif
+
+#ifndef GL_ATIX_pn_triangles
+#define GL_ATIX_pn_triangles 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPNTrianglesiATIX (GLenum, GLint);
+GLAPI void APIENTRY glPNTrianglesfATIX (GLenum, GLfloat);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPNTRIANGLESIATIXPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLPNTRIANGLESFATIXPROC) (GLenum pname, GLfloat param);
+#endif
+
+#ifndef GL_ATIX_texture_env_combine3
+#define GL_ATIX_texture_env_combine3 1
+#endif
+
+#ifndef GL_ATIX_texture_env_route
+#define GL_ATIX_texture_env_route 1
+#endif
+
+#ifndef GL_ATIX_vertex_shader_output_point_size
+#define GL_ATIX_vertex_shader_output_point_size 1
+#endif
+
+/*
+ * Autodesk
+ */
+
+#ifndef GL_Autodesk_facet_normal
+#define GL_FACET_NORMAL 0x85D0
+#endif
+
+#ifndef GL_Autodesk_facet_normal
+#define GL_Autodesk_facet_normal 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFacetNormal3b (GLbyte, GLbyte, GLbyte);
+GLAPI void APIENTRY glFacetNormal3d (GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glFacetNormal3f (GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glFacetNormal3i (GLint, GLint, GLint);
+GLAPI void APIENTRY glFacetNormal3s (GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glFacetNormal3bv (const GLbyte *);
+GLAPI void APIENTRY glFacetNormal3dv (const GLdouble *);
+GLAPI void APIENTRY glFacetNormal3fv (const GLfloat *);
+GLAPI void APIENTRY glFacetNormal3iv (const GLint *);
+GLAPI void APIENTRY glFacetNormal3sv (const GLshort *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLFACETNORMAL3BPROC) (GLbyte nx, GLbyte ny, GLbyte nz);
+typedef void (APIENTRY * PFNGLFACETNORMAL3DPROC) (GLdouble nx, GLdouble ny, GLdouble nz);
+typedef void (APIENTRY * PFNGLFACETNORMAL3FPROC) (GLfloat nx, GLfloat ny, GLfloat nz);
+typedef void (APIENTRY * PFNGLFACETNORMAL3IPROC) (GLint nx, GLint ny, GLint nz);
+typedef void (APIENTRY * PFNGLFACETNORMAL3SPROC) (GLshort nx, GLshort ny, GLshort nz);
+typedef void (APIENTRY * PFNGLFACETNORMAL3BVPROC) (const GLbyte *v);
+typedef void (APIENTRY * PFNGLFACETNORMAL3DVPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLFACETNORMAL3FVPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLFACETNORMAL3IVPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLFACETNORMAL3SVPROC) (const GLshort *v);
+#endif
+
+#ifndef GL_Autodesk_valid_back_buffer_hint
+#define GL_Autodesk_valid_back_buffer_hint 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glWindowBackBufferHint (void);
+GLAPI GLboolean APIENTRY glValidBackBufferHint (GLint, GLint, GLsizei, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLWINDOWBACKBUFFERHINTPROC) (void);
+typedef GLboolean (APIENTRY * PFNGLVALIDBACKBUFFERHINTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
+#endif
+
+/*
+ * EXT
+ */
+
+#ifndef GL_EXT_depth_bounds_test
+#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890
+#define GL_DEPTH_BOUNDS_EXT 0x8891
+#endif
+
+#ifndef GL_EXT_fragment_lighting
+#define GL_FRAGMENT_LIGHTING_EXT 0x8400
+#define GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401
+#define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402
+#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403
+#define GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404
+#define GL_MAX_ACTIVE_LIGHTS_EXT 0x8405
+#define GL_CURRENT_RASTER_NORMAL_EXT 0x8406
+#define GL_LIGHT_ENV_MODE_EXT 0x8407
+#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408
+#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409
+#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A
+#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B
+#define GL_FRAGMENT_LIGHT0_EXT 0x840C
+#define GL_FRAGMENT_LIGHT1_EXT 0x840D
+#define GL_FRAGMENT_LIGHT2_EXT 0x840E
+#define GL_FRAGMENT_LIGHT3_EXT 0x840F
+#define GL_FRAGMENT_LIGHT4_EXT 0x8410
+#define GL_FRAGMENT_LIGHT5_EXT 0x8411
+#define GL_FRAGMENT_LIGHT6_EXT 0x8412
+#define GL_FRAGMENT_LIGHT7_EXT 0x8413
+#endif
+
+#ifndef GL_EXT_multitexture
+#define GL_SELECTED_TEXTURE_EXT 0x83C0
+#define GL_SELECTED_TEXTURE_COORD_SET_EXT 0x83C1
+#define GL_SELECTED_TEXTURE_TRANSFORM_EXT 0x83C2
+#define GL_MAX_TEXTURES_EXT 0x83C3
+#define GL_MAX_TEXTURE_COORD_SETS_EXT 0x83C4
+#define GL_TEXTURE_ENV_COORD_SET_EXT 0x83C5
+#define GL_TEXTURE0_EXT 0x83C6
+#define GL_TEXTURE1_EXT 0x83C7
+#define GL_TEXTURE2_EXT 0x83C8
+#define GL_TEXTURE3_EXT 0x83C9
+#define GL_TEXTURE4_EXT 0x83CA
+#define GL_TEXTURE5_EXT 0x83CB
+#define GL_TEXTURE6_EXT 0x83CC
+#define GL_TEXTURE7_EXT 0x83CD
+#define GL_TEXTURE8_EXT 0x83CE
+#define GL_TEXTURE9_EXT 0x83CF
+#define GL_TEXTURE10_EXT 0x83D0
+#define GL_TEXTURE11_EXT 0x83D1
+#define GL_TEXTURE12_EXT 0x83D2
+#define GL_TEXTURE13_EXT 0x83D3
+#define GL_TEXTURE14_EXT 0x83D4
+#define GL_TEXTURE15_EXT 0x83D5
+#define GL_TEXTURE16_EXT 0x83D6
+#define GL_TEXTURE17_EXT 0x83D7
+#define GL_TEXTURE18_EXT 0x83D8
+#define GL_TEXTURE19_EXT 0x83D9
+#define GL_TEXTURE20_EXT 0x83DA
+#define GL_TEXTURE21_EXT 0x83DB
+#define GL_TEXTURE22_EXT 0x83DC
+#define GL_TEXTURE23_EXT 0x83DD
+#define GL_TEXTURE24_EXT 0x83DE
+#define GL_TEXTURE25_EXT 0x83DF
+#define GL_TEXTURE26_EXT 0x83E0
+#define GL_TEXTURE27_EXT 0x83E1
+#define GL_TEXTURE28_EXT 0x83E2
+#define GL_TEXTURE29_EXT 0x83E3
+#define GL_TEXTURE30_EXT 0x83E4
+#define GL_TEXTURE31_EXT 0x83E5
+#endif
+
+/* unknown */
+#ifndef GL_EXT_scene_marker
+/*
+#define GL_SCENE_REQUIRED_EXT 0
+*/
+#endif
+
+#ifndef GL_EXT_texgen_reflection
+#define GL_NORMAL_MAP_EXT 0x8511
+#define GL_REFLECTION_MAP_EXT 0x8512
+#endif
+
+#ifndef GL_EXT_texture_edge_clamp
+#define GL_CLAMP_TO_EDGE_EXT 0x812F
+#endif
+
+#ifndef GL_EXT_texture_rectangle
+#define GL_TEXTURE_RECTANGLE_EXT 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
+#endif
+
+#ifndef GL_EXT_depth_bounds_test
+#define GL_EXT_depth_bounds_test 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDepthBoundsEXT (GLclampd, GLclampd);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax);
+#endif
+
+#ifndef GL_EXT_fragment_lighting
+#define GL_EXT_fragment_lighting 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFragmentLightModelfEXT (GLenum, GLfloat);
+GLAPI void APIENTRY glFragmentLightModelfvEXT (GLenum, GLfloat *);
+GLAPI void APIENTRY glFragmentLightModeliEXT (GLenum, GLint);
+GLAPI void APIENTRY glFragmentLightModelivEXT (GLenum, GLint *);
+GLAPI void APIENTRY glFragmentLightfEXT (GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glFragmentLightfvEXT (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glFragmentLightiEXT (GLenum, GLenum, GLint);
+GLAPI void APIENTRY glFragmentLightivEXT (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetFragmentLightfvEXT (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetFragmentLightivEXT (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glFragmentMaterialfEXT (GLenum, GLenum, const GLfloat);
+GLAPI void APIENTRY glFragmentMaterialfvEXT (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glFragmentMaterialiEXT (GLenum, GLenum, const GLint);
+GLAPI void APIENTRY glFragmentMaterialivEXT (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glFragmentColorMaterialEXT (GLenum, GLenum);
+GLAPI void APIENTRY glGetFragmentMaterialfvEXT (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glGetFragmentMaterialivEXT (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glLightEnviEXT (GLenum, GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode);
+typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param);
+#endif
+
+#ifndef GL_EXT_multitexture
+#define GL_EXT_multitexture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiTexCoord1dEXT (GLenum, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord1dvEXT (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord1fEXT (GLenum, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord1fvEXT (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord1iEXT (GLenum, GLint);
+GLAPI void APIENTRY glMultiTexCoord1ivEXT (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord1sEXT (GLenum, GLshort);
+GLAPI void APIENTRY glMultiTexCoord1svEXT (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord2dEXT (GLenum, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord2dvEXT (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord2fEXT (GLenum, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord2fvEXT (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord2iEXT (GLenum, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord2ivEXT (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord2sEXT (GLenum, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord2svEXT (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord3dEXT (GLenum, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord3dvEXT (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord3fEXT (GLenum, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord3fvEXT (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord3iEXT (GLenum, GLint, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord3ivEXT (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord3sEXT (GLenum, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord3svEXT (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord4dEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord4dvEXT (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord4fEXT (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord4fvEXT (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord4iEXT (GLenum, GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord4ivEXT (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord4sEXT (GLenum, GLshort, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord4svEXT (GLenum, const GLshort *);
+GLAPI void APIENTRY glInterleavedTextureCoordSetsEXT (GLint);
+GLAPI void APIENTRY glSelectTextureEXT (GLenum);
+GLAPI void APIENTRY glSelectTextureCoordSetEXT (GLenum);
+GLAPI void APIENTRY glSelectTextureTransformEXT (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1DEXTPROC) (GLenum target, GLdouble s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVEXTPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1FEXTPROC) (GLenum target, GLfloat s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVEXTPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1IEXTPROC) (GLenum target, GLint s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVEXTPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1SEXTPROC) (GLenum target, GLshort s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVEXTPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2DEXTPROC) (GLenum target, GLdouble s, GLdouble t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVEXTPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2FEXTPROC) (GLenum target, GLfloat s, GLfloat t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVEXTPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2IEXTPROC) (GLenum target, GLint s, GLint t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVEXTPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2SEXTPROC) (GLenum target, GLshort s, GLshort t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVEXTPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3DEXTPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVEXTPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3FEXTPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVEXTPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3IEXTPROC) (GLenum target, GLint s, GLint t, GLint r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVEXTPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3SEXTPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVEXTPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4DEXTPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVEXTPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4FEXTPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVEXTPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4IEXTPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVEXTPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4SEXTPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVEXTPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLINTERLEAVEDTEXTURECOORDSETSEXTPROC) (GLint factor);
+typedef void (APIENTRY * PFNGLSELECTTEXTUREEXTPROC) (GLenum target);
+typedef void (APIENTRY * PFNGLSELECTTEXTURECOORDSETEXTPROC) (GLenum target);
+typedef void (APIENTRY * PFNGLSELECTTEXTURETRANSFORMEXTPROC) (GLenum target);
+#endif
+
+/* unknown */
+#ifndef GL_EXT_scene_marker
+/* #define GL_EXT_scene_marker 1 */
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginSceneEXT (void);
+GLAPI void APIENTRY glEndSceneEXT (void);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBEGINSCENEEXTPROC) (void);
+typedef void (APIENTRY * PFNGLENDSCENEEXTPROC) (void);
+#endif
+
+#ifndef GL_EXT_texgen_reflection
+#define GL_EXT_texgen_reflection 1
+#endif
+
+#ifndef GL_EXT_texture_edge_clamp
+#define GL_EXT_texture_edge_clamp 1
+#endif
+
+#ifndef GL_EXT_texture_rectangle
+#define GL_EXT_texture_rectangle 1
+#endif
+
+/*
+ * HP
+ */
+
+/*
+ * IBM
+ */
+
+#ifndef GL_IBM_static_data
+#define GL_ALL_STATIC_DATA_IBM 103060
+#define GL_STATIC_VERTEX_ARRAY_IBM 103061
+#endif
+
+#ifndef GL_IBM_static_data
+#define GL_IBM_static_data 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFlushStaticDataIBM (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLFLUSHSTATICDATAIBMPROC) (GLenum target);
+#endif
+
+/*
+ * INGR
+ */
+
+/*
+ * INTEL
+ */
+
+/*
+ * KTX
+ */
+
+#ifndef GL_KTX_buffer_region
+#define GL_KTX_FRONT_REGION 0x0
+#define GL_KTX_BACK_REGION 0x1
+#define GL_KTX_Z_REGION 0x2
+#define GL_KTX_STENCIL_REGION 0x3
+#endif
+
+#ifndef GL_KTX_buffer_region
+#define GL_KTX_buffer_region 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLuint APIENTRY glBufferRegionEnabled (void);
+GLAPI GLuint APIENTRY glNewBufferRegion (GLenum);
+GLAPI void APIENTRY glDeleteBufferRegion (GLenum);
+GLAPI void APIENTRY glReadBufferRegion (GLuint, GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glDrawBufferRegion (GLuint, GLint, GLint, GLsizei, GLsizei, GLint, GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef GLuint (APIENTRY * PFNGLBUFFERREGIONENABLEDPROC) (void);
+typedef GLuint (APIENTRY * PFNGLNEWBUFFERREGIONPROC) (GLenum region);
+typedef void (APIENTRY * PFNGLDELETEBUFFERREGIONPROC) (GLenum region);
+typedef void (APIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRY * PFNGLDRAWBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest);
+#endif
+
+/*
+ * MESA
+ */
+
+/*
+ * NV
+ */
+
+#ifndef GL_NV_element_array
+#define GL_ELEMENT_ARRAY_TYPE_NV 0x8769
+#define GL_ELEMENT_ARRAY_POINTER_NV 0x876A
+#endif
+
+#ifndef GL_NV_stencil_two_side
+#define GL_STENCIL_TEST_TWO_SIDE_NV 0x8910
+#define GL_ACTIVE_STENCIL_FACE_NV 0x8911
+#endif
+
+#ifndef GL_NV_element_array
+#define GL_NV_element_array 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glElementPointerNV (GLenum, const GLvoid *);
+GLAPI void APIENTRY glDrawElementArrayNV (GLenum, GLint, GLsizei);
+GLAPI void APIENTRY glDrawRangeElementArrayNV (GLenum, GLuint, GLuint, GLint, GLsizei);
+GLAPI void APIENTRY glMultiDrawElementArrayNV (GLenum, const GLint *, const GLsizei *, GLsizei);
+GLAPI void APIENTRY glMultiDrawRangeElementArrayNV (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLELEMENTPOINTERNVPROC) (GLenum type, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLDRAWELEMENTARRAYNVPROC) (GLenum mode, GLint first, GLsizei count);
+typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTARRAYNVPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
+typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTARRAYNVPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
+typedef void (APIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYNVPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
+#endif
+
+#ifndef GL_NV_stencil_two_side
+#define GL_NV_stencil_two_side 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glActiveStencilFaceNV (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLACTIVESTENCILFACENVPROC) (GLenum face);
+#endif
+
+/*
+ * OML
+ */
+
+/*
+ * PGI
+ */
+
+/*
+ * REND
+ */
+
+/*
+ * S3
+ */
+
+/*
+ * SGI
+ */
+
+#ifndef GL_SGI_texture_edge_clamp
+#define GL_CLAMP_TO_EDGE_SGI 0x812F
+#endif
+
+#ifndef GL_SGI_texture_edge_clamp
+#define GL_SGI_texture_edge_clamp 1
+#endif
+
+/*
+ * SGIS
+ */
+
+#ifndef GL_SGIS_color_range
+#define EXTENDED_RANGE_SGIS 0x85A5
+#define MIN_RED_SGIS 0x85A6
+#define MAX_RED_SGIS 0x85A7
+#define MIN_GREEN_SGIS 0x85A8
+#define MAX_GREEN_SGIS 0x85A9
+#define MIN_BLUE_SGIS 0x85AA
+#define MAX_BLUE_SGIS 0x85AB
+#define MIN_ALPHA_SGIS 0x85AC
+#define MAX_ALPHA_SGIS 0x85AD
+#endif
+
+#ifndef GL_SGIS_multitexture
+#define GL_SELECTED_TEXTURE_SGIS 0x835C
+#define GL_SELECTED_TEXTURE_COORD_SET_SGIS 0x835D
+#define GL_MAX_TEXTURES_SGIS 0x835E
+#define GL_TEXTURE0_SGIS 0x835F
+#define GL_TEXTURE1_SGIS 0x8360
+#define GL_TEXTURE2_SGIS 0x8361
+#define GL_TEXTURE3_SGIS 0x8362
+#define GL_TEXTURE4_SGIS 0x8363
+#define GL_TEXTURE5_SGIS 0x8364
+#define GL_TEXTURE6_SGIS 0x8365
+#define GL_TEXTURE7_SGIS 0x8366
+#define GL_TEXTURE8_SGIS 0x8367
+#define GL_TEXTURE9_SGIS 0x8368
+#define GL_TEXTURE10_SGIS 0x8369
+#define GL_TEXTURE11_SGIS 0x836A
+#define GL_TEXTURE12_SGIS 0x836B
+#define GL_TEXTURE13_SGIS 0x836C
+#define GL_TEXTURE14_SGIS 0x836D
+#define GL_TEXTURE15_SGIS 0x836E
+#define GL_TEXTURE16_SGIS 0x836F
+#define GL_TEXTURE17_SGIS 0x8370
+#define GL_TEXTURE18_SGIS 0x8371
+#define GL_TEXTURE19_SGIS 0x8372
+#define GL_TEXTURE20_SGIS 0x8373
+#define GL_TEXTURE21_SGIS 0x8374
+#define GL_TEXTURE22_SGIS 0x8375
+#define GL_TEXTURE23_SGIS 0x8376
+#define GL_TEXTURE24_SGIS 0x8377
+#define GL_TEXTURE25_SGIS 0x8378
+#define GL_TEXTURE26_SGIS 0x8379
+#define GL_TEXTURE27_SGIS 0x837A
+#define GL_TEXTURE28_SGIS 0x837B
+#define GL_TEXTURE29_SGIS 0x837C
+#define GL_TEXTURE30_SGIS 0x837D
+#define GL_TEXTURE31_SGIS 0x837E
+#define GL_TEXTURE_COORD_SET_SOURCE_SGIS 0x8363
+#endif
+
+#ifndef GL_SGIS_color_range
+#define GL_SGIS_color_range 1
+#endif
+
+#ifndef GL_SGIS_multitexture
+#define GL_SGIS_multitexture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiTexCoord1dSGIS (GLenum, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord1dvSGIS (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord1fSGIS (GLenum, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord1fvSGIS (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord1iSGIS (GLenum, GLint);
+GLAPI void APIENTRY glMultiTexCoord1ivSGIS (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord1sSGIS (GLenum, GLshort);
+GLAPI void APIENTRY glMultiTexCoord1svSGIS (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord2dSGIS (GLenum, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord2dvSGIS (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord2fSGIS (GLenum, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord2fvSGIS (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord2iSGIS (GLenum, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord2ivSGIS (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord2sSGIS (GLenum, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord2svSGIS (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord3dSGIS (GLenum, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord3dvSGIS (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord3fSGIS (GLenum, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord3fvSGIS (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord3iSGIS (GLenum, GLint, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord3ivSGIS (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord3sSGIS (GLenum, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord3svSGIS (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord4dSGIS (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord4dvSGIS (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord4fSGIS (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord4fvSGIS (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord4iSGIS (GLenum, GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord4ivSGIS (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord4sSGIS (GLenum, GLshort, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord4svSGIS (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoordPointerSGIS (GLenum, GLint, GLenum, GLsizei, const void *);
+GLAPI void APIENTRY glSelectTextureSGIS (GLenum);
+GLAPI void APIENTRY glSelectTextureCoordSetSGIS (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1DSGISPROC) (GLenum target, GLdouble s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVSGISPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1FSGISPROC) (GLenum target, GLfloat s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVSGISPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1ISGISPROC) (GLenum target, GLint s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVSGISPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1SSGISPROC) (GLenum target, GLshort s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVSGISPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2DSGISPROC) (GLenum target, GLdouble s, GLdouble t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVSGISPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2FSGISPROC) (GLenum target, GLfloat s, GLfloat t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVSGISPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2ISGISPROC) (GLenum target, GLint s, GLint t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVSGISPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2SSGISPROC) (GLenum target, GLshort s, GLshort t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVSGISPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3DSGISPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVSGISPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3FSGISPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVSGISPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3ISGISPROC) (GLenum target, GLint s, GLint t, GLint r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVSGISPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3SSGISPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVSGISPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4DSGISPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVSGISPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4FSGISPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVSGISPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4ISGISPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVSGISPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4SSGISPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVSGISPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORDPOINTERSGISPROC) (GLenum target, GLint size, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRY * PFNGLSELECTTEXTURESGISPROC) (GLenum target);
+typedef void (APIENTRY * PFNGLSELECTTEXTURECOORDSETSGISPROC) (GLenum target);
+#endif
+
+/*
+ * SGIX
+ */
+
+/* unknown */
+#ifndef GL_SGIX_fog_texture
+/*
+#define GL_FRAGMENT_FOG_SGIX 0
+#define GL_TEXTURE_FOG_SGIX 0
+#define GL_FOG_PATCHY_FACTOR_SGIX 0
+*/
+#endif
+
+/* unknown */
+#ifndef GL_SGIX_pixel_texture_bits
+/*
+#define GL_COLOR_TO_TEXTURE_COORD_SGIX 0
+#define GL_COLOR_BIT_PATTERN_SGIX 0
+#define GL_COLOR_VALUE_SGIX 0
+*/
+#endif
+
+#ifndef GL_SGIX_texture_range
+#define GL_RGB_SIGNED_SGIX 0x85E0
+#define GL_RGBA_SIGNED_SGIX 0x85E1
+#define GL_ALPHA_SIGNED_SGIX 0x85E2
+#define GL_LUMINANCE_SIGNED_SGIX 0x85E3
+#define GL_INTENSITY_SIGNED_SGIX 0x85E4
+#define GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5
+#define GL_RGB16_SIGNED_SGIX 0x85E6
+#define GL_RGBA16_SIGNED_SGIX 0x85E7
+#define GL_ALPHA16_SIGNED_SGIX 0x85E8
+#define GL_LUMINANCE16_SIGNED_SGIX 0x85E9
+#define GL_INTENSITY16_SIGNED_SGIX 0x85EA
+#define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB
+#define GL_RGB_EXTENDED_RANGE_SGIX 0x85EC
+#define GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED
+#define GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE
+#define GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF
+#define GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0
+#define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1
+#define GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2
+#define GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3
+#define GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4
+#define GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5
+#define GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6
+#define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7
+#define GL_MIN_LUMINANCE_SGIS 0x85F8
+#define GL_MAX_LUMINANCE_SGIS 0x85F9
+#define GL_MIN_INTENSITY_SGIS 0x85FA
+#define GL_MAX_INTENSITY_SGIS 0x85FB
+#endif
+
+#ifndef GL_SGIX_vertex_preclip_hint
+/* defined in glext.h
+#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
+*/
+#endif
+
+/* unknown */
+#ifndef GL_SGIX_fog_texture
+/* #define GL_SGIX_fog_texture 1 */
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTextureFogSGIX (GLenum pname);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname);
+#endif
+
+/* unknown */
+#ifndef GL_SGIX_pixel_texture_bits
+/* #define GL_SGIX_pixel_texture_bits 1 */
+#endif
+
+#ifndef GL_SGIX_texture_range
+#define GL_SGIX_texture_range 1
+#endif
+
+#ifndef GL_SGIX_vertex_preclip_hint
+#define GL_SGIX_vertex_preclip_hint 1
+#endif
+
+/*
+ * SUN
+ */
+
+#ifndef GL_SUN_multi_draw_arrays
+#define GL_SUN_multi_draw_arrays 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiDrawArraysSUN (GLenum, GLint *, GLsizei *, GLsizei);
+GLAPI void APIENTRY glMultiDrawElementsSUN (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLMULTIDRAWARRAYSSUNPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTSSUNPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
+#endif
+
+/*
+ * SUNX
+ */
+
+/*
+ * WIN
+ */
+
+#ifndef GL_WIN_swap_hint
+#define GL_WIN_swap_hint 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glAddSwapHintRectWIN (GLint, GLint, GLsizei, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __glext_extra_h_ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/glext.h b/plugins/gtkui/gtkglext-gtk2/gdk/glext/glext.h
new file mode 100644
index 00000000..ae3e0455
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/glext.h
@@ -0,0 +1,5545 @@
+#ifndef __glext_h_
+#define __glext_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** License Applicability. Except to the extent portions of this file are
+** made subject to an alternative license as permitted in the SGI Free
+** Software License B, Version 1.1 (the "License"), the contents of this
+** file are subject only to the provisions of the License. You may not use
+** this file except in compliance with the License. You may obtain a copy
+** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
+** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
+**
+** http://oss.sgi.com/projects/FreeB
+**
+** Note that, as provided in the License, the Software is distributed on an
+** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
+** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
+** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
+** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
+**
+** Original Code. The Original Code is: OpenGL Sample Implementation,
+** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
+** Inc. The Original Code is Copyright (c) 1991-2002 Silicon Graphics, Inc.
+** Copyright in any portions created by third parties is as indicated
+** elsewhere herein. All Rights Reserved.
+**
+** Additional Notice Provisions: This software was created using the
+** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
+** not been independently verified as being compliant with the OpenGL(R)
+** version 1.2.1 Specification.
+*/
+
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+/*************************************************************/
+
+/* Header file version number, required by OpenGL ABI for Linux */
+/* glext.h last updated 2003/5/9 */
+/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */
+#define GL_GLEXT_VERSION 18
+
+#ifndef GL_VERSION_1_2
+#define GL_UNSIGNED_BYTE_3_3_2 0x8032
+#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+#define GL_UNSIGNED_INT_8_8_8_8 0x8035
+#define GL_UNSIGNED_INT_10_10_10_2 0x8036
+#define GL_RESCALE_NORMAL 0x803A
+#define GL_TEXTURE_BINDING_3D 0x806A
+#define GL_PACK_SKIP_IMAGES 0x806B
+#define GL_PACK_IMAGE_HEIGHT 0x806C
+#define GL_UNPACK_SKIP_IMAGES 0x806D
+#define GL_UNPACK_IMAGE_HEIGHT 0x806E
+#define GL_TEXTURE_3D 0x806F
+#define GL_PROXY_TEXTURE_3D 0x8070
+#define GL_TEXTURE_DEPTH 0x8071
+#define GL_TEXTURE_WRAP_R 0x8072
+#define GL_MAX_3D_TEXTURE_SIZE 0x8073
+#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
+#define GL_UNSIGNED_SHORT_5_6_5 0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
+#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
+#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
+#define GL_BGR 0x80E0
+#define GL_BGRA 0x80E1
+#define GL_MAX_ELEMENTS_VERTICES 0x80E8
+#define GL_MAX_ELEMENTS_INDICES 0x80E9
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_TEXTURE_MIN_LOD 0x813A
+#define GL_TEXTURE_MAX_LOD 0x813B
+#define GL_TEXTURE_BASE_LEVEL 0x813C
+#define GL_TEXTURE_MAX_LEVEL 0x813D
+#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
+#define GL_SINGLE_COLOR 0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
+#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#endif
+
+#ifndef GL_ARB_imaging
+#define GL_CONSTANT_COLOR 0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+#define GL_CONSTANT_ALPHA 0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+#define GL_BLEND_COLOR 0x8005
+#define GL_FUNC_ADD 0x8006
+#define GL_MIN 0x8007
+#define GL_MAX 0x8008
+#define GL_BLEND_EQUATION 0x8009
+#define GL_FUNC_SUBTRACT 0x800A
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#define GL_CONVOLUTION_1D 0x8010
+#define GL_CONVOLUTION_2D 0x8011
+#define GL_SEPARABLE_2D 0x8012
+#define GL_CONVOLUTION_BORDER_MODE 0x8013
+#define GL_CONVOLUTION_FILTER_SCALE 0x8014
+#define GL_CONVOLUTION_FILTER_BIAS 0x8015
+#define GL_REDUCE 0x8016
+#define GL_CONVOLUTION_FORMAT 0x8017
+#define GL_CONVOLUTION_WIDTH 0x8018
+#define GL_CONVOLUTION_HEIGHT 0x8019
+#define GL_MAX_CONVOLUTION_WIDTH 0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT 0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE 0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS 0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
+#define GL_HISTOGRAM 0x8024
+#define GL_PROXY_HISTOGRAM 0x8025
+#define GL_HISTOGRAM_WIDTH 0x8026
+#define GL_HISTOGRAM_FORMAT 0x8027
+#define GL_HISTOGRAM_RED_SIZE 0x8028
+#define GL_HISTOGRAM_GREEN_SIZE 0x8029
+#define GL_HISTOGRAM_BLUE_SIZE 0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE 0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
+#define GL_HISTOGRAM_SINK 0x802D
+#define GL_MINMAX 0x802E
+#define GL_MINMAX_FORMAT 0x802F
+#define GL_MINMAX_SINK 0x8030
+#define GL_TABLE_TOO_LARGE 0x8031
+#define GL_COLOR_MATRIX 0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
+#define GL_COLOR_TABLE 0x80D0
+#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
+#define GL_PROXY_COLOR_TABLE 0x80D3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
+#define GL_COLOR_TABLE_SCALE 0x80D6
+#define GL_COLOR_TABLE_BIAS 0x80D7
+#define GL_COLOR_TABLE_FORMAT 0x80D8
+#define GL_COLOR_TABLE_WIDTH 0x80D9
+#define GL_COLOR_TABLE_RED_SIZE 0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
+#define GL_CONSTANT_BORDER 0x8151
+#define GL_REPLICATE_BORDER 0x8153
+#define GL_CONVOLUTION_BORDER_COLOR 0x8154
+#endif
+
+#ifndef GL_VERSION_1_3
+#define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE3 0x84C3
+#define GL_TEXTURE4 0x84C4
+#define GL_TEXTURE5 0x84C5
+#define GL_TEXTURE6 0x84C6
+#define GL_TEXTURE7 0x84C7
+#define GL_TEXTURE8 0x84C8
+#define GL_TEXTURE9 0x84C9
+#define GL_TEXTURE10 0x84CA
+#define GL_TEXTURE11 0x84CB
+#define GL_TEXTURE12 0x84CC
+#define GL_TEXTURE13 0x84CD
+#define GL_TEXTURE14 0x84CE
+#define GL_TEXTURE15 0x84CF
+#define GL_TEXTURE16 0x84D0
+#define GL_TEXTURE17 0x84D1
+#define GL_TEXTURE18 0x84D2
+#define GL_TEXTURE19 0x84D3
+#define GL_TEXTURE20 0x84D4
+#define GL_TEXTURE21 0x84D5
+#define GL_TEXTURE22 0x84D6
+#define GL_TEXTURE23 0x84D7
+#define GL_TEXTURE24 0x84D8
+#define GL_TEXTURE25 0x84D9
+#define GL_TEXTURE26 0x84DA
+#define GL_TEXTURE27 0x84DB
+#define GL_TEXTURE28 0x84DC
+#define GL_TEXTURE29 0x84DD
+#define GL_TEXTURE30 0x84DE
+#define GL_TEXTURE31 0x84DF
+#define GL_ACTIVE_TEXTURE 0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
+#define GL_MAX_TEXTURE_UNITS 0x84E2
+#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
+#define GL_MULTISAMPLE 0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
+#define GL_SAMPLE_COVERAGE 0x80A0
+#define GL_SAMPLE_BUFFERS 0x80A8
+#define GL_SAMPLES 0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
+#define GL_MULTISAMPLE_BIT 0x20000000
+#define GL_NORMAL_MAP 0x8511
+#define GL_REFLECTION_MAP 0x8512
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+#define GL_COMPRESSED_ALPHA 0x84E9
+#define GL_COMPRESSED_LUMINANCE 0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
+#define GL_COMPRESSED_INTENSITY 0x84EC
+#define GL_COMPRESSED_RGB 0x84ED
+#define GL_COMPRESSED_RGBA 0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
+#define GL_TEXTURE_COMPRESSED 0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+#define GL_CLAMP_TO_BORDER 0x812D
+#define GL_CLAMP_TO_BORDER_SGIS 0x812D
+#define GL_COMBINE 0x8570
+#define GL_COMBINE_RGB 0x8571
+#define GL_COMBINE_ALPHA 0x8572
+#define GL_SOURCE0_RGB 0x8580
+#define GL_SOURCE1_RGB 0x8581
+#define GL_SOURCE2_RGB 0x8582
+#define GL_SOURCE0_ALPHA 0x8588
+#define GL_SOURCE1_ALPHA 0x8589
+#define GL_SOURCE2_ALPHA 0x858A
+#define GL_OPERAND0_RGB 0x8590
+#define GL_OPERAND1_RGB 0x8591
+#define GL_OPERAND2_RGB 0x8592
+#define GL_OPERAND0_ALPHA 0x8598
+#define GL_OPERAND1_ALPHA 0x8599
+#define GL_OPERAND2_ALPHA 0x859A
+#define GL_RGB_SCALE 0x8573
+#define GL_ADD_SIGNED 0x8574
+#define GL_INTERPOLATE 0x8575
+#define GL_SUBTRACT 0x84E7
+#define GL_CONSTANT 0x8576
+#define GL_PRIMARY_COLOR 0x8577
+#define GL_PREVIOUS 0x8578
+#define GL_DOT3_RGB 0x86AE
+#define GL_DOT3_RGBA 0x86AF
+#endif
+
+#ifndef GL_VERSION_1_4
+#define GL_BLEND_DST_RGB 0x80C8
+#define GL_BLEND_SRC_RGB 0x80C9
+#define GL_BLEND_DST_ALPHA 0x80CA
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#define GL_POINT_SIZE_MIN 0x8126
+#define GL_POINT_SIZE_MAX 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
+#define GL_POINT_DISTANCE_ATTENUATION 0x8129
+#define GL_GENERATE_MIPMAP 0x8191
+#define GL_GENERATE_MIPMAP_HINT 0x8192
+#define GL_DEPTH_COMPONENT16 0x81A5
+#define GL_DEPTH_COMPONENT24 0x81A6
+#define GL_DEPTH_COMPONENT32 0x81A7
+#define GL_MIRRORED_REPEAT 0x8370
+#define GL_FOG_COORDINATE_SOURCE 0x8450
+#define GL_FOG_COORDINATE 0x8451
+#define GL_FRAGMENT_DEPTH 0x8452
+#define GL_CURRENT_FOG_COORDINATE 0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
+#define GL_FOG_COORDINATE_ARRAY 0x8457
+#define GL_COLOR_SUM 0x8458
+#define GL_CURRENT_SECONDARY_COLOR 0x8459
+#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
+#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
+#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
+#define GL_SECONDARY_COLOR_ARRAY 0x845E
+#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
+#define GL_TEXTURE_FILTER_CONTROL 0x8500
+#define GL_TEXTURE_LOD_BIAS 0x8501
+#define GL_INCR_WRAP 0x8507
+#define GL_DECR_WRAP 0x8508
+#define GL_TEXTURE_DEPTH_SIZE 0x884A
+#define GL_DEPTH_TEXTURE_MODE 0x884B
+#define GL_TEXTURE_COMPARE_MODE 0x884C
+#define GL_TEXTURE_COMPARE_FUNC 0x884D
+#define GL_COMPARE_R_TO_TEXTURE 0x884E
+#endif
+
+#ifndef GL_ARB_multitexture
+#define GL_TEXTURE0_ARB 0x84C0
+#define GL_TEXTURE1_ARB 0x84C1
+#define GL_TEXTURE2_ARB 0x84C2
+#define GL_TEXTURE3_ARB 0x84C3
+#define GL_TEXTURE4_ARB 0x84C4
+#define GL_TEXTURE5_ARB 0x84C5
+#define GL_TEXTURE6_ARB 0x84C6
+#define GL_TEXTURE7_ARB 0x84C7
+#define GL_TEXTURE8_ARB 0x84C8
+#define GL_TEXTURE9_ARB 0x84C9
+#define GL_TEXTURE10_ARB 0x84CA
+#define GL_TEXTURE11_ARB 0x84CB
+#define GL_TEXTURE12_ARB 0x84CC
+#define GL_TEXTURE13_ARB 0x84CD
+#define GL_TEXTURE14_ARB 0x84CE
+#define GL_TEXTURE15_ARB 0x84CF
+#define GL_TEXTURE16_ARB 0x84D0
+#define GL_TEXTURE17_ARB 0x84D1
+#define GL_TEXTURE18_ARB 0x84D2
+#define GL_TEXTURE19_ARB 0x84D3
+#define GL_TEXTURE20_ARB 0x84D4
+#define GL_TEXTURE21_ARB 0x84D5
+#define GL_TEXTURE22_ARB 0x84D6
+#define GL_TEXTURE23_ARB 0x84D7
+#define GL_TEXTURE24_ARB 0x84D8
+#define GL_TEXTURE25_ARB 0x84D9
+#define GL_TEXTURE26_ARB 0x84DA
+#define GL_TEXTURE27_ARB 0x84DB
+#define GL_TEXTURE28_ARB 0x84DC
+#define GL_TEXTURE29_ARB 0x84DD
+#define GL_TEXTURE30_ARB 0x84DE
+#define GL_TEXTURE31_ARB 0x84DF
+#define GL_ACTIVE_TEXTURE_ARB 0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
+#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
+#endif
+
+#ifndef GL_ARB_transpose_matrix
+#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
+#endif
+
+#ifndef GL_ARB_multisample
+#define GL_MULTISAMPLE_ARB 0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
+#define GL_SAMPLE_COVERAGE_ARB 0x80A0
+#define GL_SAMPLE_BUFFERS_ARB 0x80A8
+#define GL_SAMPLES_ARB 0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
+#define GL_MULTISAMPLE_BIT_ARB 0x20000000
+#endif
+
+#ifndef GL_ARB_texture_env_add
+#endif
+
+#ifndef GL_ARB_texture_cube_map
+#define GL_NORMAL_MAP_ARB 0x8511
+#define GL_REFLECTION_MAP_ARB 0x8512
+#define GL_TEXTURE_CUBE_MAP_ARB 0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
+#endif
+
+#ifndef GL_ARB_texture_compression
+#define GL_COMPRESSED_ALPHA_ARB 0x84E9
+#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
+#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
+#define GL_COMPRESSED_RGB_ARB 0x84ED
+#define GL_COMPRESSED_RGBA_ARB 0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
+#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
+#endif
+
+#ifndef GL_ARB_texture_border_clamp
+#define GL_CLAMP_TO_BORDER_ARB 0x812D
+#endif
+
+#ifndef GL_ARB_point_parameters
+#define GL_POINT_SIZE_MIN_ARB 0x8126
+#define GL_POINT_SIZE_MAX_ARB 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
+#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
+#endif
+
+#ifndef GL_ARB_vertex_blend
+#define GL_MAX_VERTEX_UNITS_ARB 0x86A4
+#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
+#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6
+#define GL_VERTEX_BLEND_ARB 0x86A7
+#define GL_CURRENT_WEIGHT_ARB 0x86A8
+#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
+#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
+#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
+#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
+#define GL_WEIGHT_ARRAY_ARB 0x86AD
+#define GL_MODELVIEW0_ARB 0x1700
+#define GL_MODELVIEW1_ARB 0x850A
+#define GL_MODELVIEW2_ARB 0x8722
+#define GL_MODELVIEW3_ARB 0x8723
+#define GL_MODELVIEW4_ARB 0x8724
+#define GL_MODELVIEW5_ARB 0x8725
+#define GL_MODELVIEW6_ARB 0x8726
+#define GL_MODELVIEW7_ARB 0x8727
+#define GL_MODELVIEW8_ARB 0x8728
+#define GL_MODELVIEW9_ARB 0x8729
+#define GL_MODELVIEW10_ARB 0x872A
+#define GL_MODELVIEW11_ARB 0x872B
+#define GL_MODELVIEW12_ARB 0x872C
+#define GL_MODELVIEW13_ARB 0x872D
+#define GL_MODELVIEW14_ARB 0x872E
+#define GL_MODELVIEW15_ARB 0x872F
+#define GL_MODELVIEW16_ARB 0x8730
+#define GL_MODELVIEW17_ARB 0x8731
+#define GL_MODELVIEW18_ARB 0x8732
+#define GL_MODELVIEW19_ARB 0x8733
+#define GL_MODELVIEW20_ARB 0x8734
+#define GL_MODELVIEW21_ARB 0x8735
+#define GL_MODELVIEW22_ARB 0x8736
+#define GL_MODELVIEW23_ARB 0x8737
+#define GL_MODELVIEW24_ARB 0x8738
+#define GL_MODELVIEW25_ARB 0x8739
+#define GL_MODELVIEW26_ARB 0x873A
+#define GL_MODELVIEW27_ARB 0x873B
+#define GL_MODELVIEW28_ARB 0x873C
+#define GL_MODELVIEW29_ARB 0x873D
+#define GL_MODELVIEW30_ARB 0x873E
+#define GL_MODELVIEW31_ARB 0x873F
+#endif
+
+#ifndef GL_ARB_matrix_palette
+#define GL_MATRIX_PALETTE_ARB 0x8840
+#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
+#define GL_MAX_PALETTE_MATRICES_ARB 0x8842
+#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
+#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844
+#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845
+#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
+#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
+#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
+#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
+#endif
+
+#ifndef GL_ARB_texture_env_combine
+#define GL_COMBINE_ARB 0x8570
+#define GL_COMBINE_RGB_ARB 0x8571
+#define GL_COMBINE_ALPHA_ARB 0x8572
+#define GL_SOURCE0_RGB_ARB 0x8580
+#define GL_SOURCE1_RGB_ARB 0x8581
+#define GL_SOURCE2_RGB_ARB 0x8582
+#define GL_SOURCE0_ALPHA_ARB 0x8588
+#define GL_SOURCE1_ALPHA_ARB 0x8589
+#define GL_SOURCE2_ALPHA_ARB 0x858A
+#define GL_OPERAND0_RGB_ARB 0x8590
+#define GL_OPERAND1_RGB_ARB 0x8591
+#define GL_OPERAND2_RGB_ARB 0x8592
+#define GL_OPERAND0_ALPHA_ARB 0x8598
+#define GL_OPERAND1_ALPHA_ARB 0x8599
+#define GL_OPERAND2_ALPHA_ARB 0x859A
+#define GL_RGB_SCALE_ARB 0x8573
+#define GL_ADD_SIGNED_ARB 0x8574
+#define GL_INTERPOLATE_ARB 0x8575
+#define GL_SUBTRACT_ARB 0x84E7
+#define GL_CONSTANT_ARB 0x8576
+#define GL_PRIMARY_COLOR_ARB 0x8577
+#define GL_PREVIOUS_ARB 0x8578
+#endif
+
+#ifndef GL_ARB_texture_env_crossbar
+#endif
+
+#ifndef GL_ARB_texture_env_dot3
+#define GL_DOT3_RGB_ARB 0x86AE
+#define GL_DOT3_RGBA_ARB 0x86AF
+#endif
+
+#ifndef GL_ARB_texture_mirrored_repeat
+#define GL_MIRRORED_REPEAT_ARB 0x8370
+#endif
+
+#ifndef GL_ARB_depth_texture
+#define GL_DEPTH_COMPONENT16_ARB 0x81A5
+#define GL_DEPTH_COMPONENT24_ARB 0x81A6
+#define GL_DEPTH_COMPONENT32_ARB 0x81A7
+#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
+#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
+#endif
+
+#ifndef GL_ARB_shadow
+#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C
+#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
+#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
+#endif
+
+#ifndef GL_ARB_shadow_ambient
+#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
+#endif
+
+#ifndef GL_ARB_window_pos
+#endif
+
+#ifndef GL_ARB_vertex_program
+#define GL_COLOR_SUM_ARB 0x8458
+#define GL_VERTEX_PROGRAM_ARB 0x8620
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
+#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
+#define GL_PROGRAM_LENGTH_ARB 0x8627
+#define GL_PROGRAM_STRING_ARB 0x8628
+#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
+#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
+#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
+#define GL_CURRENT_MATRIX_ARB 0x8641
+#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
+#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
+#define GL_PROGRAM_BINDING_ARB 0x8677
+#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
+#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
+#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
+#define GL_PROGRAM_FORMAT_ARB 0x8876
+#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
+#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
+#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
+#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
+#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
+#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
+#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
+#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
+#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
+#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
+#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
+#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
+#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
+#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
+#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
+#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
+#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
+#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
+#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
+#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
+#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
+#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
+#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
+#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
+#define GL_MATRIX0_ARB 0x88C0
+#define GL_MATRIX1_ARB 0x88C1
+#define GL_MATRIX2_ARB 0x88C2
+#define GL_MATRIX3_ARB 0x88C3
+#define GL_MATRIX4_ARB 0x88C4
+#define GL_MATRIX5_ARB 0x88C5
+#define GL_MATRIX6_ARB 0x88C6
+#define GL_MATRIX7_ARB 0x88C7
+#define GL_MATRIX8_ARB 0x88C8
+#define GL_MATRIX9_ARB 0x88C9
+#define GL_MATRIX10_ARB 0x88CA
+#define GL_MATRIX11_ARB 0x88CB
+#define GL_MATRIX12_ARB 0x88CC
+#define GL_MATRIX13_ARB 0x88CD
+#define GL_MATRIX14_ARB 0x88CE
+#define GL_MATRIX15_ARB 0x88CF
+#define GL_MATRIX16_ARB 0x88D0
+#define GL_MATRIX17_ARB 0x88D1
+#define GL_MATRIX18_ARB 0x88D2
+#define GL_MATRIX19_ARB 0x88D3
+#define GL_MATRIX20_ARB 0x88D4
+#define GL_MATRIX21_ARB 0x88D5
+#define GL_MATRIX22_ARB 0x88D6
+#define GL_MATRIX23_ARB 0x88D7
+#define GL_MATRIX24_ARB 0x88D8
+#define GL_MATRIX25_ARB 0x88D9
+#define GL_MATRIX26_ARB 0x88DA
+#define GL_MATRIX27_ARB 0x88DB
+#define GL_MATRIX28_ARB 0x88DC
+#define GL_MATRIX29_ARB 0x88DD
+#define GL_MATRIX30_ARB 0x88DE
+#define GL_MATRIX31_ARB 0x88DF
+#endif
+
+#ifndef GL_ARB_fragment_program
+#define GL_FRAGMENT_PROGRAM_ARB 0x8804
+#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
+#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
+#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
+#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
+#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
+#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
+#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
+#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
+#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
+#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
+#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
+#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
+#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
+#endif
+
+#ifndef GL_ARB_vertex_buffer_object
+#define GL_BUFFER_SIZE_ARB 0x8764
+#define GL_BUFFER_USAGE_ARB 0x8765
+#define GL_ARRAY_BUFFER_ARB 0x8892
+#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
+#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
+#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
+#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
+#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
+#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
+#define GL_READ_ONLY_ARB 0x88B8
+#define GL_WRITE_ONLY_ARB 0x88B9
+#define GL_READ_WRITE_ARB 0x88BA
+#define GL_BUFFER_ACCESS_ARB 0x88BB
+#define GL_BUFFER_MAPPED_ARB 0x88BC
+#define GL_BUFFER_MAP_POINTER_ARB 0x88BD
+#define GL_STREAM_DRAW_ARB 0x88E0
+#define GL_STREAM_READ_ARB 0x88E1
+#define GL_STREAM_COPY_ARB 0x88E2
+#define GL_STATIC_DRAW_ARB 0x88E4
+#define GL_STATIC_READ_ARB 0x88E5
+#define GL_STATIC_COPY_ARB 0x88E6
+#define GL_DYNAMIC_DRAW_ARB 0x88E8
+#define GL_DYNAMIC_READ_ARB 0x88E9
+#define GL_DYNAMIC_COPY_ARB 0x88EA
+#endif
+
+#ifndef GL_EXT_abgr
+#define GL_ABGR_EXT 0x8000
+#endif
+
+#ifndef GL_EXT_blend_color
+#define GL_CONSTANT_COLOR_EXT 0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
+#define GL_CONSTANT_ALPHA_EXT 0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
+#define GL_BLEND_COLOR_EXT 0x8005
+#endif
+
+#ifndef GL_EXT_polygon_offset
+#define GL_POLYGON_OFFSET_EXT 0x8037
+#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038
+#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039
+#endif
+
+#ifndef GL_EXT_texture
+#define GL_ALPHA4_EXT 0x803B
+#define GL_ALPHA8_EXT 0x803C
+#define GL_ALPHA12_EXT 0x803D
+#define GL_ALPHA16_EXT 0x803E
+#define GL_LUMINANCE4_EXT 0x803F
+#define GL_LUMINANCE8_EXT 0x8040
+#define GL_LUMINANCE12_EXT 0x8041
+#define GL_LUMINANCE16_EXT 0x8042
+#define GL_LUMINANCE4_ALPHA4_EXT 0x8043
+#define GL_LUMINANCE6_ALPHA2_EXT 0x8044
+#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
+#define GL_LUMINANCE12_ALPHA4_EXT 0x8046
+#define GL_LUMINANCE12_ALPHA12_EXT 0x8047
+#define GL_LUMINANCE16_ALPHA16_EXT 0x8048
+#define GL_INTENSITY_EXT 0x8049
+#define GL_INTENSITY4_EXT 0x804A
+#define GL_INTENSITY8_EXT 0x804B
+#define GL_INTENSITY12_EXT 0x804C
+#define GL_INTENSITY16_EXT 0x804D
+#define GL_RGB2_EXT 0x804E
+#define GL_RGB4_EXT 0x804F
+#define GL_RGB5_EXT 0x8050
+#define GL_RGB8_EXT 0x8051
+#define GL_RGB10_EXT 0x8052
+#define GL_RGB12_EXT 0x8053
+#define GL_RGB16_EXT 0x8054
+#define GL_RGBA2_EXT 0x8055
+#define GL_RGBA4_EXT 0x8056
+#define GL_RGB5_A1_EXT 0x8057
+#define GL_RGBA8_EXT 0x8058
+#define GL_RGB10_A2_EXT 0x8059
+#define GL_RGBA12_EXT 0x805A
+#define GL_RGBA16_EXT 0x805B
+#define GL_TEXTURE_RED_SIZE_EXT 0x805C
+#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D
+#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E
+#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F
+#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060
+#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061
+#define GL_REPLACE_EXT 0x8062
+#define GL_PROXY_TEXTURE_1D_EXT 0x8063
+#define GL_PROXY_TEXTURE_2D_EXT 0x8064
+#define GL_TEXTURE_TOO_LARGE_EXT 0x8065
+#endif
+
+#ifndef GL_EXT_texture3D
+#define GL_PACK_SKIP_IMAGES_EXT 0x806B
+#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C
+#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D
+#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E
+#define GL_TEXTURE_3D_EXT 0x806F
+#define GL_PROXY_TEXTURE_3D_EXT 0x8070
+#define GL_TEXTURE_DEPTH_EXT 0x8071
+#define GL_TEXTURE_WRAP_R_EXT 0x8072
+#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073
+#endif
+
+#ifndef GL_SGIS_texture_filter4
+#define GL_FILTER4_SGIS 0x8146
+#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147
+#endif
+
+#ifndef GL_EXT_subtexture
+#endif
+
+#ifndef GL_EXT_copy_texture
+#endif
+
+#ifndef GL_EXT_histogram
+#define GL_HISTOGRAM_EXT 0x8024
+#define GL_PROXY_HISTOGRAM_EXT 0x8025
+#define GL_HISTOGRAM_WIDTH_EXT 0x8026
+#define GL_HISTOGRAM_FORMAT_EXT 0x8027
+#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028
+#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029
+#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C
+#define GL_HISTOGRAM_SINK_EXT 0x802D
+#define GL_MINMAX_EXT 0x802E
+#define GL_MINMAX_FORMAT_EXT 0x802F
+#define GL_MINMAX_SINK_EXT 0x8030
+#define GL_TABLE_TOO_LARGE_EXT 0x8031
+#endif
+
+#ifndef GL_EXT_convolution
+#define GL_CONVOLUTION_1D_EXT 0x8010
+#define GL_CONVOLUTION_2D_EXT 0x8011
+#define GL_SEPARABLE_2D_EXT 0x8012
+#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013
+#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014
+#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015
+#define GL_REDUCE_EXT 0x8016
+#define GL_CONVOLUTION_FORMAT_EXT 0x8017
+#define GL_CONVOLUTION_WIDTH_EXT 0x8018
+#define GL_CONVOLUTION_HEIGHT_EXT 0x8019
+#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
+#endif
+
+#ifndef GL_SGI_color_matrix
+#define GL_COLOR_MATRIX_SGI 0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
+#endif
+
+#ifndef GL_SGI_color_table
+#define GL_COLOR_TABLE_SGI 0x80D0
+#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
+#define GL_PROXY_COLOR_TABLE_SGI 0x80D3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
+#define GL_COLOR_TABLE_SCALE_SGI 0x80D6
+#define GL_COLOR_TABLE_BIAS_SGI 0x80D7
+#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8
+#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9
+#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
+#endif
+
+#ifndef GL_SGIS_pixel_texture
+#define GL_PIXEL_TEXTURE_SGIS 0x8353
+#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354
+#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355
+#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356
+#endif
+
+#ifndef GL_SGIX_pixel_texture
+#define GL_PIXEL_TEX_GEN_SGIX 0x8139
+#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B
+#endif
+
+#ifndef GL_SGIS_texture4D
+#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130
+#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131
+#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132
+#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133
+#define GL_TEXTURE_4D_SGIS 0x8134
+#define GL_PROXY_TEXTURE_4D_SGIS 0x8135
+#define GL_TEXTURE_4DSIZE_SGIS 0x8136
+#define GL_TEXTURE_WRAP_Q_SGIS 0x8137
+#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138
+#define GL_TEXTURE_4D_BINDING_SGIS 0x814F
+#endif
+
+#ifndef GL_SGI_texture_color_table
+#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC
+#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD
+#endif
+
+#ifndef GL_EXT_cmyka
+#define GL_CMYK_EXT 0x800C
+#define GL_CMYKA_EXT 0x800D
+#define GL_PACK_CMYK_HINT_EXT 0x800E
+#define GL_UNPACK_CMYK_HINT_EXT 0x800F
+#endif
+
+#ifndef GL_EXT_texture_object
+#define GL_TEXTURE_PRIORITY_EXT 0x8066
+#define GL_TEXTURE_RESIDENT_EXT 0x8067
+#define GL_TEXTURE_1D_BINDING_EXT 0x8068
+#define GL_TEXTURE_2D_BINDING_EXT 0x8069
+#define GL_TEXTURE_3D_BINDING_EXT 0x806A
+#endif
+
+#ifndef GL_SGIS_detail_texture
+#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095
+#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096
+#define GL_LINEAR_DETAIL_SGIS 0x8097
+#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098
+#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099
+#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A
+#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B
+#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C
+#endif
+
+#ifndef GL_SGIS_sharpen_texture
+#define GL_LINEAR_SHARPEN_SGIS 0x80AD
+#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE
+#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF
+#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0
+#endif
+
+#ifndef GL_EXT_packed_pixels
+#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032
+#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
+#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
+#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035
+#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036
+#endif
+
+#ifndef GL_SGIS_texture_lod
+#define GL_TEXTURE_MIN_LOD_SGIS 0x813A
+#define GL_TEXTURE_MAX_LOD_SGIS 0x813B
+#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C
+#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D
+#endif
+
+#ifndef GL_SGIS_multisample
+#define GL_MULTISAMPLE_SGIS 0x809D
+#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F
+#define GL_SAMPLE_MASK_SGIS 0x80A0
+#define GL_1PASS_SGIS 0x80A1
+#define GL_2PASS_0_SGIS 0x80A2
+#define GL_2PASS_1_SGIS 0x80A3
+#define GL_4PASS_0_SGIS 0x80A4
+#define GL_4PASS_1_SGIS 0x80A5
+#define GL_4PASS_2_SGIS 0x80A6
+#define GL_4PASS_3_SGIS 0x80A7
+#define GL_SAMPLE_BUFFERS_SGIS 0x80A8
+#define GL_SAMPLES_SGIS 0x80A9
+#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA
+#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB
+#define GL_SAMPLE_PATTERN_SGIS 0x80AC
+#endif
+
+#ifndef GL_EXT_rescale_normal
+#define GL_RESCALE_NORMAL_EXT 0x803A
+#endif
+
+#ifndef GL_EXT_vertex_array
+#define GL_VERTEX_ARRAY_EXT 0x8074
+#define GL_NORMAL_ARRAY_EXT 0x8075
+#define GL_COLOR_ARRAY_EXT 0x8076
+#define GL_INDEX_ARRAY_EXT 0x8077
+#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078
+#define GL_EDGE_FLAG_ARRAY_EXT 0x8079
+#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A
+#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B
+#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
+#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D
+#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E
+#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
+#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080
+#define GL_COLOR_ARRAY_SIZE_EXT 0x8081
+#define GL_COLOR_ARRAY_TYPE_EXT 0x8082
+#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083
+#define GL_COLOR_ARRAY_COUNT_EXT 0x8084
+#define GL_INDEX_ARRAY_TYPE_EXT 0x8085
+#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086
+#define GL_INDEX_ARRAY_COUNT_EXT 0x8087
+#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
+#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
+#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
+#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
+#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
+#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
+#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E
+#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F
+#define GL_COLOR_ARRAY_POINTER_EXT 0x8090
+#define GL_INDEX_ARRAY_POINTER_EXT 0x8091
+#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
+#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
+#endif
+
+#ifndef GL_EXT_misc_attribute
+#endif
+
+#ifndef GL_SGIS_generate_mipmap
+#define GL_GENERATE_MIPMAP_SGIS 0x8191
+#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
+#endif
+
+#ifndef GL_SGIX_clipmap
+#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170
+#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171
+#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172
+#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173
+#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174
+#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175
+#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176
+#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177
+#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178
+#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D
+#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E
+#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F
+#endif
+
+#ifndef GL_SGIX_shadow
+#define GL_TEXTURE_COMPARE_SGIX 0x819A
+#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
+#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C
+#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D
+#endif
+
+#ifndef GL_SGIS_texture_edge_clamp
+#define GL_CLAMP_TO_EDGE_SGIS 0x812F
+#endif
+
+#ifndef GL_EXT_blend_minmax
+#define GL_FUNC_ADD_EXT 0x8006
+#define GL_MIN_EXT 0x8007
+#define GL_MAX_EXT 0x8008
+#define GL_BLEND_EQUATION_EXT 0x8009
+#endif
+
+#ifndef GL_EXT_blend_subtract
+#define GL_FUNC_SUBTRACT_EXT 0x800A
+#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
+#endif
+
+#ifndef GL_EXT_blend_logic_op
+#endif
+
+#ifndef GL_SGIX_interlace
+#define GL_INTERLACE_SGIX 0x8094
+#endif
+
+#ifndef GL_SGIX_pixel_tiles
+#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E
+#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F
+#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140
+#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141
+#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142
+#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143
+#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144
+#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145
+#endif
+
+#ifndef GL_SGIS_texture_select
+#define GL_DUAL_ALPHA4_SGIS 0x8110
+#define GL_DUAL_ALPHA8_SGIS 0x8111
+#define GL_DUAL_ALPHA12_SGIS 0x8112
+#define GL_DUAL_ALPHA16_SGIS 0x8113
+#define GL_DUAL_LUMINANCE4_SGIS 0x8114
+#define GL_DUAL_LUMINANCE8_SGIS 0x8115
+#define GL_DUAL_LUMINANCE12_SGIS 0x8116
+#define GL_DUAL_LUMINANCE16_SGIS 0x8117
+#define GL_DUAL_INTENSITY4_SGIS 0x8118
+#define GL_DUAL_INTENSITY8_SGIS 0x8119
+#define GL_DUAL_INTENSITY12_SGIS 0x811A
+#define GL_DUAL_INTENSITY16_SGIS 0x811B
+#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C
+#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D
+#define GL_QUAD_ALPHA4_SGIS 0x811E
+#define GL_QUAD_ALPHA8_SGIS 0x811F
+#define GL_QUAD_LUMINANCE4_SGIS 0x8120
+#define GL_QUAD_LUMINANCE8_SGIS 0x8121
+#define GL_QUAD_INTENSITY4_SGIS 0x8122
+#define GL_QUAD_INTENSITY8_SGIS 0x8123
+#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124
+#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125
+#endif
+
+#ifndef GL_SGIX_sprite
+#define GL_SPRITE_SGIX 0x8148
+#define GL_SPRITE_MODE_SGIX 0x8149
+#define GL_SPRITE_AXIS_SGIX 0x814A
+#define GL_SPRITE_TRANSLATION_SGIX 0x814B
+#define GL_SPRITE_AXIAL_SGIX 0x814C
+#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D
+#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E
+#endif
+
+#ifndef GL_SGIX_texture_multi_buffer
+#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
+#endif
+
+#ifndef GL_EXT_point_parameters
+#define GL_POINT_SIZE_MIN_EXT 0x8126
+#define GL_POINT_SIZE_MAX_EXT 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
+#define GL_DISTANCE_ATTENUATION_EXT 0x8129
+#endif
+
+#ifndef GL_SGIS_point_parameters
+#define GL_POINT_SIZE_MIN_SGIS 0x8126
+#define GL_POINT_SIZE_MAX_SGIS 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128
+#define GL_DISTANCE_ATTENUATION_SGIS 0x8129
+#endif
+
+#ifndef GL_SGIX_instruments
+#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180
+#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181
+#endif
+
+#ifndef GL_SGIX_texture_scale_bias
+#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179
+#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
+#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
+#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
+#endif
+
+#ifndef GL_SGIX_framezoom
+#define GL_FRAMEZOOM_SGIX 0x818B
+#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C
+#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D
+#endif
+
+#ifndef GL_SGIX_tag_sample_buffer
+#endif
+
+#ifndef GL_FfdMaskSGIX
+#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001
+#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002
+#endif
+
+#ifndef GL_SGIX_polynomial_ffd
+#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194
+#define GL_TEXTURE_DEFORMATION_SGIX 0x8195
+#define GL_DEFORMATIONS_MASK_SGIX 0x8196
+#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197
+#endif
+
+#ifndef GL_SGIX_reference_plane
+#define GL_REFERENCE_PLANE_SGIX 0x817D
+#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E
+#endif
+
+#ifndef GL_SGIX_flush_raster
+#endif
+
+#ifndef GL_SGIX_depth_texture
+#define GL_DEPTH_COMPONENT16_SGIX 0x81A5
+#define GL_DEPTH_COMPONENT24_SGIX 0x81A6
+#define GL_DEPTH_COMPONENT32_SGIX 0x81A7
+#endif
+
+#ifndef GL_SGIS_fog_function
+#define GL_FOG_FUNC_SGIS 0x812A
+#define GL_FOG_FUNC_POINTS_SGIS 0x812B
+#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C
+#endif
+
+#ifndef GL_SGIX_fog_offset
+#define GL_FOG_OFFSET_SGIX 0x8198
+#define GL_FOG_OFFSET_VALUE_SGIX 0x8199
+#endif
+
+#ifndef GL_HP_image_transform
+#define GL_IMAGE_SCALE_X_HP 0x8155
+#define GL_IMAGE_SCALE_Y_HP 0x8156
+#define GL_IMAGE_TRANSLATE_X_HP 0x8157
+#define GL_IMAGE_TRANSLATE_Y_HP 0x8158
+#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159
+#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A
+#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B
+#define GL_IMAGE_MAG_FILTER_HP 0x815C
+#define GL_IMAGE_MIN_FILTER_HP 0x815D
+#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E
+#define GL_CUBIC_HP 0x815F
+#define GL_AVERAGE_HP 0x8160
+#define GL_IMAGE_TRANSFORM_2D_HP 0x8161
+#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162
+#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163
+#endif
+
+#ifndef GL_HP_convolution_border_modes
+#define GL_IGNORE_BORDER_HP 0x8150
+#define GL_CONSTANT_BORDER_HP 0x8151
+#define GL_REPLICATE_BORDER_HP 0x8153
+#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154
+#endif
+
+#ifndef GL_INGR_palette_buffer
+#endif
+
+#ifndef GL_SGIX_texture_add_env
+#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE
+#endif
+
+#ifndef GL_EXT_color_subtable
+#endif
+
+#ifndef GL_PGI_vertex_hints
+#define GL_VERTEX_DATA_HINT_PGI 0x1A22A
+#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B
+#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C
+#define GL_MAX_VERTEX_HINT_PGI 0x1A22D
+#define GL_COLOR3_BIT_PGI 0x00010000
+#define GL_COLOR4_BIT_PGI 0x00020000
+#define GL_EDGEFLAG_BIT_PGI 0x00040000
+#define GL_INDEX_BIT_PGI 0x00080000
+#define GL_MAT_AMBIENT_BIT_PGI 0x00100000
+#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
+#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000
+#define GL_MAT_EMISSION_BIT_PGI 0x00800000
+#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000
+#define GL_MAT_SHININESS_BIT_PGI 0x02000000
+#define GL_MAT_SPECULAR_BIT_PGI 0x04000000
+#define GL_NORMAL_BIT_PGI 0x08000000
+#define GL_TEXCOORD1_BIT_PGI 0x10000000
+#define GL_TEXCOORD2_BIT_PGI 0x20000000
+#define GL_TEXCOORD3_BIT_PGI 0x40000000
+#define GL_TEXCOORD4_BIT_PGI 0x80000000
+#define GL_VERTEX23_BIT_PGI 0x00000004
+#define GL_VERTEX4_BIT_PGI 0x00000008
+#endif
+
+#ifndef GL_PGI_misc_hints
+#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8
+#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD
+#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE
+#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202
+#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203
+#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204
+#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C
+#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D
+#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E
+#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F
+#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210
+#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211
+#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216
+#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217
+#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218
+#define GL_FULL_STIPPLE_HINT_PGI 0x1A219
+#define GL_CLIP_NEAR_HINT_PGI 0x1A220
+#define GL_CLIP_FAR_HINT_PGI 0x1A221
+#define GL_WIDE_LINE_HINT_PGI 0x1A222
+#define GL_BACK_NORMALS_HINT_PGI 0x1A223
+#endif
+
+#ifndef GL_EXT_paletted_texture
+#define GL_COLOR_INDEX1_EXT 0x80E2
+#define GL_COLOR_INDEX2_EXT 0x80E3
+#define GL_COLOR_INDEX4_EXT 0x80E4
+#define GL_COLOR_INDEX8_EXT 0x80E5
+#define GL_COLOR_INDEX12_EXT 0x80E6
+#define GL_COLOR_INDEX16_EXT 0x80E7
+#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
+#endif
+
+#ifndef GL_EXT_clip_volume_hint
+#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0
+#endif
+
+#ifndef GL_SGIX_list_priority
+#define GL_LIST_PRIORITY_SGIX 0x8182
+#endif
+
+#ifndef GL_SGIX_ir_instrument1
+#define GL_IR_INSTRUMENT1_SGIX 0x817F
+#endif
+
+#ifndef GL_SGIX_calligraphic_fragment
+#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183
+#endif
+
+#ifndef GL_SGIX_texture_lod_bias
+#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E
+#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F
+#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190
+#endif
+
+#ifndef GL_SGIX_shadow_ambient
+#define GL_SHADOW_AMBIENT_SGIX 0x80BF
+#endif
+
+#ifndef GL_EXT_index_texture
+#endif
+
+#ifndef GL_EXT_index_material
+#define GL_INDEX_MATERIAL_EXT 0x81B8
+#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9
+#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA
+#endif
+
+#ifndef GL_EXT_index_func
+#define GL_INDEX_TEST_EXT 0x81B5
+#define GL_INDEX_TEST_FUNC_EXT 0x81B6
+#define GL_INDEX_TEST_REF_EXT 0x81B7
+#endif
+
+#ifndef GL_EXT_index_array_formats
+#define GL_IUI_V2F_EXT 0x81AD
+#define GL_IUI_V3F_EXT 0x81AE
+#define GL_IUI_N3F_V2F_EXT 0x81AF
+#define GL_IUI_N3F_V3F_EXT 0x81B0
+#define GL_T2F_IUI_V2F_EXT 0x81B1
+#define GL_T2F_IUI_V3F_EXT 0x81B2
+#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3
+#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4
+#endif
+
+#ifndef GL_EXT_compiled_vertex_array
+#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
+#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
+#endif
+
+#ifndef GL_EXT_cull_vertex
+#define GL_CULL_VERTEX_EXT 0x81AA
+#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
+#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
+#endif
+
+#ifndef GL_SGIX_ycrcb
+#define GL_YCRCB_422_SGIX 0x81BB
+#define GL_YCRCB_444_SGIX 0x81BC
+#endif
+
+#ifndef GL_SGIX_fragment_lighting
+#define GL_FRAGMENT_LIGHTING_SGIX 0x8400
+#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401
+#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402
+#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403
+#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404
+#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405
+#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406
+#define GL_LIGHT_ENV_MODE_SGIX 0x8407
+#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408
+#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409
+#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A
+#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B
+#define GL_FRAGMENT_LIGHT0_SGIX 0x840C
+#define GL_FRAGMENT_LIGHT1_SGIX 0x840D
+#define GL_FRAGMENT_LIGHT2_SGIX 0x840E
+#define GL_FRAGMENT_LIGHT3_SGIX 0x840F
+#define GL_FRAGMENT_LIGHT4_SGIX 0x8410
+#define GL_FRAGMENT_LIGHT5_SGIX 0x8411
+#define GL_FRAGMENT_LIGHT6_SGIX 0x8412
+#define GL_FRAGMENT_LIGHT7_SGIX 0x8413
+#endif
+
+#ifndef GL_IBM_rasterpos_clip
+#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262
+#endif
+
+#ifndef GL_HP_texture_lighting
+#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167
+#define GL_TEXTURE_POST_SPECULAR_HP 0x8168
+#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169
+#endif
+
+#ifndef GL_EXT_draw_range_elements
+#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
+#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
+#endif
+
+#ifndef GL_WIN_phong_shading
+#define GL_PHONG_WIN 0x80EA
+#define GL_PHONG_HINT_WIN 0x80EB
+#endif
+
+#ifndef GL_WIN_specular_fog
+#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC
+#endif
+
+#ifndef GL_EXT_light_texture
+#define GL_FRAGMENT_MATERIAL_EXT 0x8349
+#define GL_FRAGMENT_NORMAL_EXT 0x834A
+#define GL_FRAGMENT_COLOR_EXT 0x834C
+#define GL_ATTENUATION_EXT 0x834D
+#define GL_SHADOW_ATTENUATION_EXT 0x834E
+#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F
+#define GL_TEXTURE_LIGHT_EXT 0x8350
+#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351
+#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352
+/* reuse GL_FRAGMENT_DEPTH_EXT */
+#endif
+
+#ifndef GL_SGIX_blend_alpha_minmax
+#define GL_ALPHA_MIN_SGIX 0x8320
+#define GL_ALPHA_MAX_SGIX 0x8321
+#endif
+
+#ifndef GL_SGIX_impact_pixel_texture
+#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184
+#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185
+#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186
+#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187
+#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188
+#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189
+#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A
+#endif
+
+#ifndef GL_EXT_bgra
+#define GL_BGR_EXT 0x80E0
+#define GL_BGRA_EXT 0x80E1
+#endif
+
+#ifndef GL_SGIX_async
+#define GL_ASYNC_MARKER_SGIX 0x8329
+#endif
+
+#ifndef GL_SGIX_async_pixel
+#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C
+#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D
+#define GL_ASYNC_READ_PIXELS_SGIX 0x835E
+#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
+#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
+#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361
+#endif
+
+#ifndef GL_SGIX_async_histogram
+#define GL_ASYNC_HISTOGRAM_SGIX 0x832C
+#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D
+#endif
+
+#ifndef GL_INTEL_texture_scissor
+#endif
+
+#ifndef GL_INTEL_parallel_arrays
+#define GL_PARALLEL_ARRAYS_INTEL 0x83F4
+#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5
+#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6
+#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7
+#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8
+#endif
+
+#ifndef GL_HP_occlusion_test
+#define GL_OCCLUSION_TEST_HP 0x8165
+#define GL_OCCLUSION_TEST_RESULT_HP 0x8166
+#endif
+
+#ifndef GL_EXT_pixel_transform
+#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330
+#define GL_PIXEL_MAG_FILTER_EXT 0x8331
+#define GL_PIXEL_MIN_FILTER_EXT 0x8332
+#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333
+#define GL_CUBIC_EXT 0x8334
+#define GL_AVERAGE_EXT 0x8335
+#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336
+#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337
+#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338
+#endif
+
+#ifndef GL_EXT_pixel_transform_color_table
+#endif
+
+#ifndef GL_EXT_shared_texture_palette
+#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
+#endif
+
+#ifndef GL_EXT_separate_specular_color
+#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
+#define GL_SINGLE_COLOR_EXT 0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
+#endif
+
+#ifndef GL_EXT_secondary_color
+#define GL_COLOR_SUM_EXT 0x8458
+#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
+#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
+#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
+#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
+#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
+#endif
+
+#ifndef GL_EXT_texture_perturb_normal
+#define GL_PERTURB_EXT 0x85AE
+#define GL_TEXTURE_NORMAL_EXT 0x85AF
+#endif
+
+#ifndef GL_EXT_multi_draw_arrays
+#endif
+
+#ifndef GL_EXT_fog_coord
+#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
+#define GL_FOG_COORDINATE_EXT 0x8451
+#define GL_FRAGMENT_DEPTH_EXT 0x8452
+#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
+#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
+#endif
+
+#ifndef GL_REND_screen_coordinates
+#define GL_SCREEN_COORDINATES_REND 0x8490
+#define GL_INVERTED_SCREEN_W_REND 0x8491
+#endif
+
+#ifndef GL_EXT_coordinate_frame
+#define GL_TANGENT_ARRAY_EXT 0x8439
+#define GL_BINORMAL_ARRAY_EXT 0x843A
+#define GL_CURRENT_TANGENT_EXT 0x843B
+#define GL_CURRENT_BINORMAL_EXT 0x843C
+#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E
+#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F
+#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440
+#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441
+#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442
+#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443
+#define GL_MAP1_TANGENT_EXT 0x8444
+#define GL_MAP2_TANGENT_EXT 0x8445
+#define GL_MAP1_BINORMAL_EXT 0x8446
+#define GL_MAP2_BINORMAL_EXT 0x8447
+#endif
+
+#ifndef GL_EXT_texture_env_combine
+#define GL_COMBINE_EXT 0x8570
+#define GL_COMBINE_RGB_EXT 0x8571
+#define GL_COMBINE_ALPHA_EXT 0x8572
+#define GL_RGB_SCALE_EXT 0x8573
+#define GL_ADD_SIGNED_EXT 0x8574
+#define GL_INTERPOLATE_EXT 0x8575
+#define GL_CONSTANT_EXT 0x8576
+#define GL_PRIMARY_COLOR_EXT 0x8577
+#define GL_PREVIOUS_EXT 0x8578
+#define GL_SOURCE0_RGB_EXT 0x8580
+#define GL_SOURCE1_RGB_EXT 0x8581
+#define GL_SOURCE2_RGB_EXT 0x8582
+#define GL_SOURCE0_ALPHA_EXT 0x8588
+#define GL_SOURCE1_ALPHA_EXT 0x8589
+#define GL_SOURCE2_ALPHA_EXT 0x858A
+#define GL_OPERAND0_RGB_EXT 0x8590
+#define GL_OPERAND1_RGB_EXT 0x8591
+#define GL_OPERAND2_RGB_EXT 0x8592
+#define GL_OPERAND0_ALPHA_EXT 0x8598
+#define GL_OPERAND1_ALPHA_EXT 0x8599
+#define GL_OPERAND2_ALPHA_EXT 0x859A
+#endif
+
+#ifndef GL_APPLE_specular_vector
+#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
+#endif
+
+#ifndef GL_APPLE_transform_hint
+#define GL_TRANSFORM_HINT_APPLE 0x85B1
+#endif
+
+#ifndef GL_SGIX_fog_scale
+#define GL_FOG_SCALE_SGIX 0x81FC
+#define GL_FOG_SCALE_VALUE_SGIX 0x81FD
+#endif
+
+#ifndef GL_SUNX_constant_data
+#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5
+#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6
+#endif
+
+#ifndef GL_SUN_global_alpha
+#define GL_GLOBAL_ALPHA_SUN 0x81D9
+#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA
+#endif
+
+#ifndef GL_SUN_triangle_list
+#define GL_RESTART_SUN 0x0001
+#define GL_REPLACE_MIDDLE_SUN 0x0002
+#define GL_REPLACE_OLDEST_SUN 0x0003
+#define GL_TRIANGLE_LIST_SUN 0x81D7
+#define GL_REPLACEMENT_CODE_SUN 0x81D8
+#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0
+#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1
+#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2
+#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3
+#define GL_R1UI_V3F_SUN 0x85C4
+#define GL_R1UI_C4UB_V3F_SUN 0x85C5
+#define GL_R1UI_C3F_V3F_SUN 0x85C6
+#define GL_R1UI_N3F_V3F_SUN 0x85C7
+#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8
+#define GL_R1UI_T2F_V3F_SUN 0x85C9
+#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA
+#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB
+#endif
+
+#ifndef GL_SUN_vertex
+#endif
+
+#ifndef GL_EXT_blend_func_separate
+#define GL_BLEND_DST_RGB_EXT 0x80C8
+#define GL_BLEND_SRC_RGB_EXT 0x80C9
+#define GL_BLEND_DST_ALPHA_EXT 0x80CA
+#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
+#endif
+
+#ifndef GL_INGR_color_clamp
+#define GL_RED_MIN_CLAMP_INGR 0x8560
+#define GL_GREEN_MIN_CLAMP_INGR 0x8561
+#define GL_BLUE_MIN_CLAMP_INGR 0x8562
+#define GL_ALPHA_MIN_CLAMP_INGR 0x8563
+#define GL_RED_MAX_CLAMP_INGR 0x8564
+#define GL_GREEN_MAX_CLAMP_INGR 0x8565
+#define GL_BLUE_MAX_CLAMP_INGR 0x8566
+#define GL_ALPHA_MAX_CLAMP_INGR 0x8567
+#endif
+
+#ifndef GL_INGR_interlace_read
+#define GL_INTERLACE_READ_INGR 0x8568
+#endif
+
+#ifndef GL_EXT_stencil_wrap
+#define GL_INCR_WRAP_EXT 0x8507
+#define GL_DECR_WRAP_EXT 0x8508
+#endif
+
+#ifndef GL_EXT_422_pixels
+#define GL_422_EXT 0x80CC
+#define GL_422_REV_EXT 0x80CD
+#define GL_422_AVERAGE_EXT 0x80CE
+#define GL_422_REV_AVERAGE_EXT 0x80CF
+#endif
+
+#ifndef GL_NV_texgen_reflection
+#define GL_NORMAL_MAP_NV 0x8511
+#define GL_REFLECTION_MAP_NV 0x8512
+#endif
+
+#ifndef GL_EXT_texture_cube_map
+#define GL_NORMAL_MAP_EXT 0x8511
+#define GL_REFLECTION_MAP_EXT 0x8512
+#define GL_TEXTURE_CUBE_MAP_EXT 0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C
+#endif
+
+#ifndef GL_SUN_convolution_border_modes
+#define GL_WRAP_BORDER_SUN 0x81D4
+#endif
+
+#ifndef GL_EXT_texture_env_add
+#endif
+
+#ifndef GL_EXT_texture_lod_bias
+#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
+#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
+#define GL_TEXTURE_LOD_BIAS_EXT 0x8501
+#endif
+
+#ifndef GL_EXT_texture_filter_anisotropic
+#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+#endif
+
+#ifndef GL_EXT_vertex_weighting
+#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH
+#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
+#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX
+#define GL_MODELVIEW1_MATRIX_EXT 0x8506
+#define GL_VERTEX_WEIGHTING_EXT 0x8509
+#define GL_MODELVIEW0_EXT GL_MODELVIEW
+#define GL_MODELVIEW1_EXT 0x850A
+#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B
+#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C
+#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D
+#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E
+#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
+#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
+#endif
+
+#ifndef GL_NV_light_max_exponent
+#define GL_MAX_SHININESS_NV 0x8504
+#define GL_MAX_SPOT_EXPONENT_NV 0x8505
+#endif
+
+#ifndef GL_NV_vertex_array_range
+#define GL_VERTEX_ARRAY_RANGE_NV 0x851D
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E
+#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F
+#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
+#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521
+#endif
+
+#ifndef GL_NV_register_combiners
+#define GL_REGISTER_COMBINERS_NV 0x8522
+#define GL_VARIABLE_A_NV 0x8523
+#define GL_VARIABLE_B_NV 0x8524
+#define GL_VARIABLE_C_NV 0x8525
+#define GL_VARIABLE_D_NV 0x8526
+#define GL_VARIABLE_E_NV 0x8527
+#define GL_VARIABLE_F_NV 0x8528
+#define GL_VARIABLE_G_NV 0x8529
+#define GL_CONSTANT_COLOR0_NV 0x852A
+#define GL_CONSTANT_COLOR1_NV 0x852B
+#define GL_PRIMARY_COLOR_NV 0x852C
+#define GL_SECONDARY_COLOR_NV 0x852D
+#define GL_SPARE0_NV 0x852E
+#define GL_SPARE1_NV 0x852F
+#define GL_DISCARD_NV 0x8530
+#define GL_E_TIMES_F_NV 0x8531
+#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
+#define GL_UNSIGNED_IDENTITY_NV 0x8536
+#define GL_UNSIGNED_INVERT_NV 0x8537
+#define GL_EXPAND_NORMAL_NV 0x8538
+#define GL_EXPAND_NEGATE_NV 0x8539
+#define GL_HALF_BIAS_NORMAL_NV 0x853A
+#define GL_HALF_BIAS_NEGATE_NV 0x853B
+#define GL_SIGNED_IDENTITY_NV 0x853C
+#define GL_SIGNED_NEGATE_NV 0x853D
+#define GL_SCALE_BY_TWO_NV 0x853E
+#define GL_SCALE_BY_FOUR_NV 0x853F
+#define GL_SCALE_BY_ONE_HALF_NV 0x8540
+#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541
+#define GL_COMBINER_INPUT_NV 0x8542
+#define GL_COMBINER_MAPPING_NV 0x8543
+#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544
+#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545
+#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546
+#define GL_COMBINER_MUX_SUM_NV 0x8547
+#define GL_COMBINER_SCALE_NV 0x8548
+#define GL_COMBINER_BIAS_NV 0x8549
+#define GL_COMBINER_AB_OUTPUT_NV 0x854A
+#define GL_COMBINER_CD_OUTPUT_NV 0x854B
+#define GL_COMBINER_SUM_OUTPUT_NV 0x854C
+#define GL_MAX_GENERAL_COMBINERS_NV 0x854D
+#define GL_NUM_GENERAL_COMBINERS_NV 0x854E
+#define GL_COLOR_SUM_CLAMP_NV 0x854F
+#define GL_COMBINER0_NV 0x8550
+#define GL_COMBINER1_NV 0x8551
+#define GL_COMBINER2_NV 0x8552
+#define GL_COMBINER3_NV 0x8553
+#define GL_COMBINER4_NV 0x8554
+#define GL_COMBINER5_NV 0x8555
+#define GL_COMBINER6_NV 0x8556
+#define GL_COMBINER7_NV 0x8557
+/* reuse GL_TEXTURE0_ARB */
+/* reuse GL_TEXTURE1_ARB */
+/* reuse GL_ZERO */
+/* reuse GL_NONE */
+/* reuse GL_FOG */
+#endif
+
+#ifndef GL_NV_fog_distance
+#define GL_FOG_DISTANCE_MODE_NV 0x855A
+#define GL_EYE_RADIAL_NV 0x855B
+#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
+/* reuse GL_EYE_PLANE */
+#endif
+
+#ifndef GL_NV_texgen_emboss
+#define GL_EMBOSS_LIGHT_NV 0x855D
+#define GL_EMBOSS_CONSTANT_NV 0x855E
+#define GL_EMBOSS_MAP_NV 0x855F
+#endif
+
+#ifndef GL_NV_blend_square
+#endif
+
+#ifndef GL_NV_texture_env_combine4
+#define GL_COMBINE4_NV 0x8503
+#define GL_SOURCE3_RGB_NV 0x8583
+#define GL_SOURCE3_ALPHA_NV 0x858B
+#define GL_OPERAND3_RGB_NV 0x8593
+#define GL_OPERAND3_ALPHA_NV 0x859B
+#endif
+
+#ifndef GL_MESA_resize_buffers
+#endif
+
+#ifndef GL_MESA_window_pos
+#endif
+
+#ifndef GL_EXT_texture_compression_s3tc
+#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
+#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
+#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
+#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
+#endif
+
+#ifndef GL_IBM_cull_vertex
+#define GL_CULL_VERTEX_IBM 103050
+#endif
+
+#ifndef GL_IBM_multimode_draw_arrays
+#endif
+
+#ifndef GL_IBM_vertex_array_lists
+#define GL_VERTEX_ARRAY_LIST_IBM 103070
+#define GL_NORMAL_ARRAY_LIST_IBM 103071
+#define GL_COLOR_ARRAY_LIST_IBM 103072
+#define GL_INDEX_ARRAY_LIST_IBM 103073
+#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074
+#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075
+#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076
+#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077
+#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080
+#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081
+#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082
+#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083
+#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084
+#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085
+#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086
+#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087
+#endif
+
+#ifndef GL_SGIX_subsample
+#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0
+#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1
+#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2
+#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3
+#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4
+#endif
+
+#ifndef GL_SGIX_ycrcb_subsample
+#endif
+
+#ifndef GL_SGIX_ycrcba
+#define GL_YCRCB_SGIX 0x8318
+#define GL_YCRCBA_SGIX 0x8319
+#endif
+
+#ifndef GL_SGI_depth_pass_instrument
+#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310
+#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311
+#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312
+#endif
+
+#ifndef GL_3DFX_texture_compression_FXT1
+#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0
+#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1
+#endif
+
+#ifndef GL_3DFX_multisample
+#define GL_MULTISAMPLE_3DFX 0x86B2
+#define GL_SAMPLE_BUFFERS_3DFX 0x86B3
+#define GL_SAMPLES_3DFX 0x86B4
+#define GL_MULTISAMPLE_BIT_3DFX 0x20000000
+#endif
+
+#ifndef GL_3DFX_tbuffer
+#endif
+
+#ifndef GL_EXT_multisample
+#define GL_MULTISAMPLE_EXT 0x809D
+#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
+#define GL_SAMPLE_MASK_EXT 0x80A0
+#define GL_1PASS_EXT 0x80A1
+#define GL_2PASS_0_EXT 0x80A2
+#define GL_2PASS_1_EXT 0x80A3
+#define GL_4PASS_0_EXT 0x80A4
+#define GL_4PASS_1_EXT 0x80A5
+#define GL_4PASS_2_EXT 0x80A6
+#define GL_4PASS_3_EXT 0x80A7
+#define GL_SAMPLE_BUFFERS_EXT 0x80A8
+#define GL_SAMPLES_EXT 0x80A9
+#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA
+#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB
+#define GL_SAMPLE_PATTERN_EXT 0x80AC
+#define GL_MULTISAMPLE_BIT_EXT 0x20000000
+#endif
+
+#ifndef GL_SGIX_vertex_preclip
+#define GL_VERTEX_PRECLIP_SGIX 0x83EE
+#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
+#endif
+
+#ifndef GL_SGIX_convolution_accuracy
+#define GL_CONVOLUTION_HINT_SGIX 0x8316
+#endif
+
+#ifndef GL_SGIX_resample
+#define GL_PACK_RESAMPLE_SGIX 0x842C
+#define GL_UNPACK_RESAMPLE_SGIX 0x842D
+#define GL_RESAMPLE_REPLICATE_SGIX 0x842E
+#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F
+#define GL_RESAMPLE_DECIMATE_SGIX 0x8430
+#endif
+
+#ifndef GL_SGIS_point_line_texgen
+#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0
+#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1
+#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2
+#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3
+#define GL_EYE_POINT_SGIS 0x81F4
+#define GL_OBJECT_POINT_SGIS 0x81F5
+#define GL_EYE_LINE_SGIS 0x81F6
+#define GL_OBJECT_LINE_SGIS 0x81F7
+#endif
+
+#ifndef GL_SGIS_texture_color_mask
+#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF
+#endif
+
+#ifndef GL_EXT_texture_env_dot3
+#define GL_DOT3_RGB_EXT 0x8740
+#define GL_DOT3_RGBA_EXT 0x8741
+#endif
+
+#ifndef GL_ATI_texture_mirror_once
+#define GL_MIRROR_CLAMP_ATI 0x8742
+#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
+#endif
+
+#ifndef GL_NV_fence
+#define GL_ALL_COMPLETED_NV 0x84F2
+#define GL_FENCE_STATUS_NV 0x84F3
+#define GL_FENCE_CONDITION_NV 0x84F4
+#endif
+
+#ifndef GL_IBM_texture_mirrored_repeat
+#define GL_MIRRORED_REPEAT_IBM 0x8370
+#endif
+
+#ifndef GL_NV_evaluators
+#define GL_EVAL_2D_NV 0x86C0
+#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1
+#define GL_MAP_TESSELLATION_NV 0x86C2
+#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3
+#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4
+#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
+#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6
+#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7
+#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8
+#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9
+#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA
+#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB
+#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC
+#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD
+#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE
+#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF
+#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0
+#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1
+#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2
+#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3
+#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4
+#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5
+#define GL_MAX_MAP_TESSELLATION_NV 0x86D6
+#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7
+#endif
+
+#ifndef GL_NV_packed_depth_stencil
+#define GL_DEPTH_STENCIL_NV 0x84F9
+#define GL_UNSIGNED_INT_24_8_NV 0x84FA
+#endif
+
+#ifndef GL_NV_register_combiners2
+#define GL_PER_STAGE_CONSTANTS_NV 0x8535
+#endif
+
+#ifndef GL_NV_texture_compression_vtc
+#endif
+
+#ifndef GL_NV_texture_rectangle
+#define GL_TEXTURE_RECTANGLE_NV 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
+#endif
+
+#ifndef GL_NV_texture_shader
+#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
+#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
+#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
+#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
+#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
+#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
+#define GL_DSDT_MAG_INTENSITY_NV 0x86DC
+#define GL_SHADER_CONSISTENT_NV 0x86DD
+#define GL_TEXTURE_SHADER_NV 0x86DE
+#define GL_SHADER_OPERATION_NV 0x86DF
+#define GL_CULL_MODES_NV 0x86E0
+#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1
+#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2
+#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3
+#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV
+#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV
+#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV
+#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4
+#define GL_CONST_EYE_NV 0x86E5
+#define GL_PASS_THROUGH_NV 0x86E6
+#define GL_CULL_FRAGMENT_NV 0x86E7
+#define GL_OFFSET_TEXTURE_2D_NV 0x86E8
+#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9
+#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA
+#define GL_DOT_PRODUCT_NV 0x86EC
+#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED
+#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE
+#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
+#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
+#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
+#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
+#define GL_HILO_NV 0x86F4
+#define GL_DSDT_NV 0x86F5
+#define GL_DSDT_MAG_NV 0x86F6
+#define GL_DSDT_MAG_VIB_NV 0x86F7
+#define GL_HILO16_NV 0x86F8
+#define GL_SIGNED_HILO_NV 0x86F9
+#define GL_SIGNED_HILO16_NV 0x86FA
+#define GL_SIGNED_RGBA_NV 0x86FB
+#define GL_SIGNED_RGBA8_NV 0x86FC
+#define GL_SIGNED_RGB_NV 0x86FE
+#define GL_SIGNED_RGB8_NV 0x86FF
+#define GL_SIGNED_LUMINANCE_NV 0x8701
+#define GL_SIGNED_LUMINANCE8_NV 0x8702
+#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
+#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
+#define GL_SIGNED_ALPHA_NV 0x8705
+#define GL_SIGNED_ALPHA8_NV 0x8706
+#define GL_SIGNED_INTENSITY_NV 0x8707
+#define GL_SIGNED_INTENSITY8_NV 0x8708
+#define GL_DSDT8_NV 0x8709
+#define GL_DSDT8_MAG8_NV 0x870A
+#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
+#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
+#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
+#define GL_HI_SCALE_NV 0x870E
+#define GL_LO_SCALE_NV 0x870F
+#define GL_DS_SCALE_NV 0x8710
+#define GL_DT_SCALE_NV 0x8711
+#define GL_MAGNITUDE_SCALE_NV 0x8712
+#define GL_VIBRANCE_SCALE_NV 0x8713
+#define GL_HI_BIAS_NV 0x8714
+#define GL_LO_BIAS_NV 0x8715
+#define GL_DS_BIAS_NV 0x8716
+#define GL_DT_BIAS_NV 0x8717
+#define GL_MAGNITUDE_BIAS_NV 0x8718
+#define GL_VIBRANCE_BIAS_NV 0x8719
+#define GL_TEXTURE_BORDER_VALUES_NV 0x871A
+#define GL_TEXTURE_HI_SIZE_NV 0x871B
+#define GL_TEXTURE_LO_SIZE_NV 0x871C
+#define GL_TEXTURE_DS_SIZE_NV 0x871D
+#define GL_TEXTURE_DT_SIZE_NV 0x871E
+#define GL_TEXTURE_MAG_SIZE_NV 0x871F
+#endif
+
+#ifndef GL_NV_texture_shader2
+#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF
+#endif
+
+#ifndef GL_NV_vertex_array_range2
+#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
+#endif
+
+#ifndef GL_NV_vertex_program
+#define GL_VERTEX_PROGRAM_NV 0x8620
+#define GL_VERTEX_STATE_PROGRAM_NV 0x8621
+#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623
+#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624
+#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625
+#define GL_CURRENT_ATTRIB_NV 0x8626
+#define GL_PROGRAM_LENGTH_NV 0x8627
+#define GL_PROGRAM_STRING_NV 0x8628
+#define GL_MODELVIEW_PROJECTION_NV 0x8629
+#define GL_IDENTITY_NV 0x862A
+#define GL_INVERSE_NV 0x862B
+#define GL_TRANSPOSE_NV 0x862C
+#define GL_INVERSE_TRANSPOSE_NV 0x862D
+#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
+#define GL_MAX_TRACK_MATRICES_NV 0x862F
+#define GL_MATRIX0_NV 0x8630
+#define GL_MATRIX1_NV 0x8631
+#define GL_MATRIX2_NV 0x8632
+#define GL_MATRIX3_NV 0x8633
+#define GL_MATRIX4_NV 0x8634
+#define GL_MATRIX5_NV 0x8635
+#define GL_MATRIX6_NV 0x8636
+#define GL_MATRIX7_NV 0x8637
+#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640
+#define GL_CURRENT_MATRIX_NV 0x8641
+#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643
+#define GL_PROGRAM_PARAMETER_NV 0x8644
+#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645
+#define GL_PROGRAM_TARGET_NV 0x8646
+#define GL_PROGRAM_RESIDENT_NV 0x8647
+#define GL_TRACK_MATRIX_NV 0x8648
+#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649
+#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A
+#define GL_PROGRAM_ERROR_POSITION_NV 0x864B
+#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650
+#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651
+#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652
+#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653
+#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654
+#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655
+#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656
+#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657
+#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658
+#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659
+#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A
+#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B
+#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C
+#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D
+#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E
+#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
+#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660
+#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661
+#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662
+#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663
+#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664
+#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665
+#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666
+#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667
+#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668
+#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669
+#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A
+#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B
+#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C
+#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D
+#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E
+#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F
+#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670
+#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671
+#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672
+#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673
+#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674
+#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675
+#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676
+#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677
+#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678
+#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679
+#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A
+#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B
+#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C
+#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D
+#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E
+#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F
+#endif
+
+#ifndef GL_SGIX_texture_coordinate_clamp
+#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369
+#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A
+#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B
+#endif
+
+#ifndef GL_SGIX_scalebias_hint
+#define GL_SCALEBIAS_HINT_SGIX 0x8322
+#endif
+
+#ifndef GL_OML_interlace
+#define GL_INTERLACE_OML 0x8980
+#define GL_INTERLACE_READ_OML 0x8981
+#endif
+
+#ifndef GL_OML_subsample
+#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982
+#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983
+#endif
+
+#ifndef GL_OML_resample
+#define GL_PACK_RESAMPLE_OML 0x8984
+#define GL_UNPACK_RESAMPLE_OML 0x8985
+#define GL_RESAMPLE_REPLICATE_OML 0x8986
+#define GL_RESAMPLE_ZERO_FILL_OML 0x8987
+#define GL_RESAMPLE_AVERAGE_OML 0x8988
+#define GL_RESAMPLE_DECIMATE_OML 0x8989
+#endif
+
+#ifndef GL_NV_copy_depth_to_color
+#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
+#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F
+#endif
+
+#ifndef GL_ATI_envmap_bumpmap
+#define GL_BUMP_ROT_MATRIX_ATI 0x8775
+#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
+#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
+#define GL_BUMP_TEX_UNITS_ATI 0x8778
+#define GL_DUDV_ATI 0x8779
+#define GL_DU8DV8_ATI 0x877A
+#define GL_BUMP_ENVMAP_ATI 0x877B
+#define GL_BUMP_TARGET_ATI 0x877C
+#endif
+
+#ifndef GL_ATI_fragment_shader
+#define GL_FRAGMENT_SHADER_ATI 0x8920
+#define GL_REG_0_ATI 0x8921
+#define GL_REG_1_ATI 0x8922
+#define GL_REG_2_ATI 0x8923
+#define GL_REG_3_ATI 0x8924
+#define GL_REG_4_ATI 0x8925
+#define GL_REG_5_ATI 0x8926
+#define GL_REG_6_ATI 0x8927
+#define GL_REG_7_ATI 0x8928
+#define GL_REG_8_ATI 0x8929
+#define GL_REG_9_ATI 0x892A
+#define GL_REG_10_ATI 0x892B
+#define GL_REG_11_ATI 0x892C
+#define GL_REG_12_ATI 0x892D
+#define GL_REG_13_ATI 0x892E
+#define GL_REG_14_ATI 0x892F
+#define GL_REG_15_ATI 0x8930
+#define GL_REG_16_ATI 0x8931
+#define GL_REG_17_ATI 0x8932
+#define GL_REG_18_ATI 0x8933
+#define GL_REG_19_ATI 0x8934
+#define GL_REG_20_ATI 0x8935
+#define GL_REG_21_ATI 0x8936
+#define GL_REG_22_ATI 0x8937
+#define GL_REG_23_ATI 0x8938
+#define GL_REG_24_ATI 0x8939
+#define GL_REG_25_ATI 0x893A
+#define GL_REG_26_ATI 0x893B
+#define GL_REG_27_ATI 0x893C
+#define GL_REG_28_ATI 0x893D
+#define GL_REG_29_ATI 0x893E
+#define GL_REG_30_ATI 0x893F
+#define GL_REG_31_ATI 0x8940
+#define GL_CON_0_ATI 0x8941
+#define GL_CON_1_ATI 0x8942
+#define GL_CON_2_ATI 0x8943
+#define GL_CON_3_ATI 0x8944
+#define GL_CON_4_ATI 0x8945
+#define GL_CON_5_ATI 0x8946
+#define GL_CON_6_ATI 0x8947
+#define GL_CON_7_ATI 0x8948
+#define GL_CON_8_ATI 0x8949
+#define GL_CON_9_ATI 0x894A
+#define GL_CON_10_ATI 0x894B
+#define GL_CON_11_ATI 0x894C
+#define GL_CON_12_ATI 0x894D
+#define GL_CON_13_ATI 0x894E
+#define GL_CON_14_ATI 0x894F
+#define GL_CON_15_ATI 0x8950
+#define GL_CON_16_ATI 0x8951
+#define GL_CON_17_ATI 0x8952
+#define GL_CON_18_ATI 0x8953
+#define GL_CON_19_ATI 0x8954
+#define GL_CON_20_ATI 0x8955
+#define GL_CON_21_ATI 0x8956
+#define GL_CON_22_ATI 0x8957
+#define GL_CON_23_ATI 0x8958
+#define GL_CON_24_ATI 0x8959
+#define GL_CON_25_ATI 0x895A
+#define GL_CON_26_ATI 0x895B
+#define GL_CON_27_ATI 0x895C
+#define GL_CON_28_ATI 0x895D
+#define GL_CON_29_ATI 0x895E
+#define GL_CON_30_ATI 0x895F
+#define GL_CON_31_ATI 0x8960
+#define GL_MOV_ATI 0x8961
+#define GL_ADD_ATI 0x8963
+#define GL_MUL_ATI 0x8964
+#define GL_SUB_ATI 0x8965
+#define GL_DOT3_ATI 0x8966
+#define GL_DOT4_ATI 0x8967
+#define GL_MAD_ATI 0x8968
+#define GL_LERP_ATI 0x8969
+#define GL_CND_ATI 0x896A
+#define GL_CND0_ATI 0x896B
+#define GL_DOT2_ADD_ATI 0x896C
+#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D
+#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
+#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
+#define GL_NUM_PASSES_ATI 0x8970
+#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
+#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
+#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
+#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
+#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975
+#define GL_SWIZZLE_STR_ATI 0x8976
+#define GL_SWIZZLE_STQ_ATI 0x8977
+#define GL_SWIZZLE_STR_DR_ATI 0x8978
+#define GL_SWIZZLE_STQ_DQ_ATI 0x8979
+#define GL_SWIZZLE_STRQ_ATI 0x897A
+#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B
+#define GL_RED_BIT_ATI 0x00000001
+#define GL_GREEN_BIT_ATI 0x00000002
+#define GL_BLUE_BIT_ATI 0x00000004
+#define GL_2X_BIT_ATI 0x00000001
+#define GL_4X_BIT_ATI 0x00000002
+#define GL_8X_BIT_ATI 0x00000004
+#define GL_HALF_BIT_ATI 0x00000008
+#define GL_QUARTER_BIT_ATI 0x00000010
+#define GL_EIGHTH_BIT_ATI 0x00000020
+#define GL_SATURATE_BIT_ATI 0x00000040
+#define GL_COMP_BIT_ATI 0x00000002
+#define GL_NEGATE_BIT_ATI 0x00000004
+#define GL_BIAS_BIT_ATI 0x00000008
+#endif
+
+#ifndef GL_ATI_pn_triangles
+#define GL_PN_TRIANGLES_ATI 0x87F0
+#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
+#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
+#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
+#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
+#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
+#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
+#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
+#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
+#endif
+
+#ifndef GL_ATI_vertex_array_object
+#define GL_STATIC_ATI 0x8760
+#define GL_DYNAMIC_ATI 0x8761
+#define GL_PRESERVE_ATI 0x8762
+#define GL_DISCARD_ATI 0x8763
+#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764
+#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765
+#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
+#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
+#endif
+
+#ifndef GL_EXT_vertex_shader
+#define GL_VERTEX_SHADER_EXT 0x8780
+#define GL_VERTEX_SHADER_BINDING_EXT 0x8781
+#define GL_OP_INDEX_EXT 0x8782
+#define GL_OP_NEGATE_EXT 0x8783
+#define GL_OP_DOT3_EXT 0x8784
+#define GL_OP_DOT4_EXT 0x8785
+#define GL_OP_MUL_EXT 0x8786
+#define GL_OP_ADD_EXT 0x8787
+#define GL_OP_MADD_EXT 0x8788
+#define GL_OP_FRAC_EXT 0x8789
+#define GL_OP_MAX_EXT 0x878A
+#define GL_OP_MIN_EXT 0x878B
+#define GL_OP_SET_GE_EXT 0x878C
+#define GL_OP_SET_LT_EXT 0x878D
+#define GL_OP_CLAMP_EXT 0x878E
+#define GL_OP_FLOOR_EXT 0x878F
+#define GL_OP_ROUND_EXT 0x8790
+#define GL_OP_EXP_BASE_2_EXT 0x8791
+#define GL_OP_LOG_BASE_2_EXT 0x8792
+#define GL_OP_POWER_EXT 0x8793
+#define GL_OP_RECIP_EXT 0x8794
+#define GL_OP_RECIP_SQRT_EXT 0x8795
+#define GL_OP_SUB_EXT 0x8796
+#define GL_OP_CROSS_PRODUCT_EXT 0x8797
+#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798
+#define GL_OP_MOV_EXT 0x8799
+#define GL_OUTPUT_VERTEX_EXT 0x879A
+#define GL_OUTPUT_COLOR0_EXT 0x879B
+#define GL_OUTPUT_COLOR1_EXT 0x879C
+#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
+#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
+#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
+#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
+#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
+#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
+#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
+#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
+#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
+#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
+#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
+#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
+#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
+#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
+#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
+#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
+#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
+#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
+#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
+#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
+#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
+#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
+#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
+#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
+#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
+#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
+#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
+#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
+#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
+#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
+#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
+#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
+#define GL_OUTPUT_FOG_EXT 0x87BD
+#define GL_SCALAR_EXT 0x87BE
+#define GL_VECTOR_EXT 0x87BF
+#define GL_MATRIX_EXT 0x87C0
+#define GL_VARIANT_EXT 0x87C1
+#define GL_INVARIANT_EXT 0x87C2
+#define GL_LOCAL_CONSTANT_EXT 0x87C3
+#define GL_LOCAL_EXT 0x87C4
+#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
+#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
+#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
+#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
+#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
+#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
+#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
+#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
+#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
+#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
+#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
+#define GL_X_EXT 0x87D5
+#define GL_Y_EXT 0x87D6
+#define GL_Z_EXT 0x87D7
+#define GL_W_EXT 0x87D8
+#define GL_NEGATIVE_X_EXT 0x87D9
+#define GL_NEGATIVE_Y_EXT 0x87DA
+#define GL_NEGATIVE_Z_EXT 0x87DB
+#define GL_NEGATIVE_W_EXT 0x87DC
+#define GL_ZERO_EXT 0x87DD
+#define GL_ONE_EXT 0x87DE
+#define GL_NEGATIVE_ONE_EXT 0x87DF
+#define GL_NORMALIZED_RANGE_EXT 0x87E0
+#define GL_FULL_RANGE_EXT 0x87E1
+#define GL_CURRENT_VERTEX_EXT 0x87E2
+#define GL_MVP_MATRIX_EXT 0x87E3
+#define GL_VARIANT_VALUE_EXT 0x87E4
+#define GL_VARIANT_DATATYPE_EXT 0x87E5
+#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
+#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
+#define GL_VARIANT_ARRAY_EXT 0x87E8
+#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
+#define GL_INVARIANT_VALUE_EXT 0x87EA
+#define GL_INVARIANT_DATATYPE_EXT 0x87EB
+#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
+#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
+#endif
+
+#ifndef GL_ATI_vertex_streams
+#define GL_MAX_VERTEX_STREAMS_ATI 0x876B
+#define GL_VERTEX_STREAM0_ATI 0x876C
+#define GL_VERTEX_STREAM1_ATI 0x876D
+#define GL_VERTEX_STREAM2_ATI 0x876E
+#define GL_VERTEX_STREAM3_ATI 0x876F
+#define GL_VERTEX_STREAM4_ATI 0x8770
+#define GL_VERTEX_STREAM5_ATI 0x8771
+#define GL_VERTEX_STREAM6_ATI 0x8772
+#define GL_VERTEX_STREAM7_ATI 0x8773
+#define GL_VERTEX_SOURCE_ATI 0x8774
+#endif
+
+#ifndef GL_ATI_element_array
+#define GL_ELEMENT_ARRAY_ATI 0x8768
+#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
+#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
+#endif
+
+#ifndef GL_SUN_mesh_array
+#define GL_QUAD_MESH_SUN 0x8614
+#define GL_TRIANGLE_MESH_SUN 0x8615
+#endif
+
+#ifndef GL_SUN_slice_accum
+#define GL_SLICE_ACCUM_SUN 0x85CC
+#endif
+
+#ifndef GL_NV_multisample_filter_hint
+#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534
+#endif
+
+#ifndef GL_NV_depth_clamp
+#define GL_DEPTH_CLAMP_NV 0x864F
+#endif
+
+#ifndef GL_NV_occlusion_query
+#define GL_PIXEL_COUNTER_BITS_NV 0x8864
+#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
+#define GL_PIXEL_COUNT_NV 0x8866
+#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
+#endif
+
+#ifndef GL_NV_point_sprite
+#define GL_POINT_SPRITE_NV 0x8861
+#define GL_COORD_REPLACE_NV 0x8862
+#define GL_POINT_SPRITE_R_MODE_NV 0x8863
+#endif
+
+#ifndef GL_NV_texture_shader3
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
+#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854
+#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
+#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858
+#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859
+#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
+#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B
+#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C
+#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
+#define GL_HILO8_NV 0x885E
+#define GL_SIGNED_HILO8_NV 0x885F
+#define GL_FORCE_BLUE_TO_ONE_NV 0x8860
+#endif
+
+#ifndef GL_NV_vertex_program1_1
+#endif
+
+#ifndef GL_EXT_shadow_funcs
+#endif
+
+#ifndef GL_EXT_stencil_two_side
+#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
+#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911
+#endif
+
+#ifndef GL_ATI_text_fragment_shader
+#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
+#endif
+
+#ifndef GL_APPLE_client_storage
+#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
+#endif
+
+#ifndef GL_APPLE_element_array
+#define GL_ELEMENT_ARRAY_APPLE 0x8768
+#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8769
+#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x876A
+#endif
+
+#ifndef GL_APPLE_fence
+#define GL_DRAW_PIXELS_APPLE 0x8A0A
+#define GL_FENCE_APPLE 0x8A0B
+#endif
+
+#ifndef GL_APPLE_vertex_array_object
+#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
+#endif
+
+#ifndef GL_APPLE_vertex_array_range
+#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
+#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
+#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
+#define GL_STORAGE_CACHED_APPLE 0x85BE
+#define GL_STORAGE_SHARED_APPLE 0x85BF
+#endif
+
+#ifndef GL_APPLE_ycbcr_422
+#define GL_YCBCR_422_APPLE 0x85B9
+#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
+#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
+#endif
+
+#ifndef GL_S3_s3tc
+#define GL_RGB_S3TC 0x83A0
+#define GL_RGB4_S3TC 0x83A1
+#define GL_RGBA_S3TC 0x83A2
+#define GL_RGBA4_S3TC 0x83A3
+#endif
+
+#ifndef GL_ATI_draw_buffers
+#define GL_MAX_DRAW_BUFFERS_ATI 0x8824
+#define GL_DRAW_BUFFER0_ATI 0x8825
+#define GL_DRAW_BUFFER1_ATI 0x8826
+#define GL_DRAW_BUFFER2_ATI 0x8827
+#define GL_DRAW_BUFFER3_ATI 0x8828
+#define GL_DRAW_BUFFER4_ATI 0x8829
+#define GL_DRAW_BUFFER5_ATI 0x882A
+#define GL_DRAW_BUFFER6_ATI 0x882B
+#define GL_DRAW_BUFFER7_ATI 0x882C
+#define GL_DRAW_BUFFER8_ATI 0x882D
+#define GL_DRAW_BUFFER9_ATI 0x882E
+#define GL_DRAW_BUFFER10_ATI 0x882F
+#define GL_DRAW_BUFFER11_ATI 0x8830
+#define GL_DRAW_BUFFER12_ATI 0x8831
+#define GL_DRAW_BUFFER13_ATI 0x8832
+#define GL_DRAW_BUFFER14_ATI 0x8833
+#define GL_DRAW_BUFFER15_ATI 0x8834
+#endif
+
+#ifndef GL_ATI_texture_env_combine3
+#define GL_MODULATE_ADD_ATI 0x8744
+#define GL_MODULATE_SIGNED_ADD_ATI 0x8745
+#define GL_MODULATE_SUBTRACT_ATI 0x8746
+#endif
+
+#ifndef GL_ATI_texture_float
+#define GL_RGBA_FLOAT32_ATI 0x8814
+#define GL_RGB_FLOAT32_ATI 0x8815
+#define GL_ALPHA_FLOAT32_ATI 0x8816
+#define GL_INTENSITY_FLOAT32_ATI 0x8817
+#define GL_LUMINANCE_FLOAT32_ATI 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
+#define GL_RGBA_FLOAT16_ATI 0x881A
+#define GL_RGB_FLOAT16_ATI 0x881B
+#define GL_ALPHA_FLOAT16_ATI 0x881C
+#define GL_INTENSITY_FLOAT16_ATI 0x881D
+#define GL_LUMINANCE_FLOAT16_ATI 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
+#endif
+
+#ifndef GL_NV_float_buffer
+#define GL_FLOAT_R_NV 0x8880
+#define GL_FLOAT_RG_NV 0x8881
+#define GL_FLOAT_RGB_NV 0x8882
+#define GL_FLOAT_RGBA_NV 0x8883
+#define GL_FLOAT_R16_NV 0x8884
+#define GL_FLOAT_R32_NV 0x8885
+#define GL_FLOAT_RG16_NV 0x8886
+#define GL_FLOAT_RG32_NV 0x8887
+#define GL_FLOAT_RGB16_NV 0x8888
+#define GL_FLOAT_RGB32_NV 0x8889
+#define GL_FLOAT_RGBA16_NV 0x888A
+#define GL_FLOAT_RGBA32_NV 0x888B
+#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
+#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
+#define GL_FLOAT_RGBA_MODE_NV 0x888E
+#endif
+
+#ifndef GL_NV_fragment_program
+#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
+#define GL_FRAGMENT_PROGRAM_NV 0x8870
+#define GL_MAX_TEXTURE_COORDS_NV 0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
+#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873
+#define GL_PROGRAM_ERROR_STRING_NV 0x8874
+#endif
+
+#ifndef GL_NV_half_float
+#define GL_HALF_FLOAT_NV 0x140B
+#endif
+
+#ifndef GL_NV_pixel_data_range
+#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878
+#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879
+#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A
+#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B
+#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C
+#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D
+#endif
+
+#ifndef GL_NV_primitive_restart
+#define GL_PRIMITIVE_RESTART_NV 0x8558
+#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
+#endif
+
+#ifndef GL_NV_texture_expand_normal
+#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F
+#endif
+
+#ifndef GL_NV_vertex_program2
+#endif
+
+#ifndef GL_ATI_map_object_buffer
+#endif
+
+#ifndef GL_ATI_separate_stencil
+#define GL_STENCIL_BACK_FUNC_ATI 0x8800
+#define GL_STENCIL_BACK_FAIL_ATI 0x8801
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
+#endif
+
+#ifndef GL_ATI_vertex_attrib_array_object
+#endif
+
+
+/*************************************************************/
+
+#ifndef GL_VERSION_1_2
+#define GL_VERSION_1_2 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf);
+GLAPI void APIENTRY glBlendEquation (GLenum);
+GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
+GLAPI void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei);
+GLAPI void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei);
+GLAPI void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint);
+GLAPI void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei);
+GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *);
+GLAPI void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *);
+GLAPI void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean);
+GLAPI void APIENTRY glMinmax (GLenum, GLenum, GLboolean);
+GLAPI void APIENTRY glResetHistogram (GLenum);
+GLAPI void APIENTRY glResetMinmax (GLenum);
+GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+typedef void (APIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode);
+typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
+typedef void (APIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
+typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
+typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
+typedef void (APIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
+typedef void (APIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target);
+typedef void (APIENTRY * PFNGLRESETMINMAXPROC) (GLenum target);
+typedef void (APIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+#endif
+
+#ifndef GL_VERSION_1_3
+#define GL_VERSION_1_3 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glActiveTexture (GLenum);
+GLAPI void APIENTRY glClientActiveTexture (GLenum);
+GLAPI void APIENTRY glMultiTexCoord1d (GLenum, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord1dv (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord1f (GLenum, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord1fv (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord1i (GLenum, GLint);
+GLAPI void APIENTRY glMultiTexCoord1iv (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord1s (GLenum, GLshort);
+GLAPI void APIENTRY glMultiTexCoord1sv (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord2d (GLenum, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord2dv (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord2f (GLenum, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord2fv (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord2i (GLenum, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord2iv (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord2s (GLenum, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord2sv (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord3d (GLenum, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord3dv (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord3f (GLenum, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord3fv (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord3i (GLenum, GLint, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord3iv (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord3s (GLenum, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord3sv (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord4d (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord4dv (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord4f (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord4fv (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord4i (GLenum, GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord4iv (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord4s (GLenum, GLshort, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord4sv (GLenum, const GLshort *);
+GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *);
+GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *);
+GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *);
+GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *);
+GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean);
+GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture);
+typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m);
+typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m);
+typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m);
+typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m);
+typedef void (APIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img);
+#endif
+
+#ifndef GL_VERSION_1_4
+#define GL_VERSION_1_4 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum);
+GLAPI void APIENTRY glFogCoordf (GLfloat);
+GLAPI void APIENTRY glFogCoordfv (const GLfloat *);
+GLAPI void APIENTRY glFogCoordd (GLdouble);
+GLAPI void APIENTRY glFogCoorddv (const GLdouble *);
+GLAPI void APIENTRY glFogCoordPointer (GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei);
+GLAPI void APIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
+GLAPI void APIENTRY glPointParameterf (GLenum, GLfloat);
+GLAPI void APIENTRY glPointParameterfv (GLenum, const GLfloat *);
+GLAPI void APIENTRY glPointParameteri (GLenum, GLint);
+GLAPI void APIENTRY glPointParameteriv (GLenum, const GLint *);
+GLAPI void APIENTRY glSecondaryColor3b (GLbyte, GLbyte, GLbyte);
+GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *);
+GLAPI void APIENTRY glSecondaryColor3d (GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *);
+GLAPI void APIENTRY glSecondaryColor3f (GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *);
+GLAPI void APIENTRY glSecondaryColor3i (GLint, GLint, GLint);
+GLAPI void APIENTRY glSecondaryColor3iv (const GLint *);
+GLAPI void APIENTRY glSecondaryColor3s (GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *);
+GLAPI void APIENTRY glSecondaryColor3ub (GLubyte, GLubyte, GLubyte);
+GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *);
+GLAPI void APIENTRY glSecondaryColor3ui (GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *);
+GLAPI void APIENTRY glSecondaryColor3us (GLushort, GLushort, GLushort);
+GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *);
+GLAPI void APIENTRY glSecondaryColorPointer (GLint, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glWindowPos2d (GLdouble, GLdouble);
+GLAPI void APIENTRY glWindowPos2dv (const GLdouble *);
+GLAPI void APIENTRY glWindowPos2f (GLfloat, GLfloat);
+GLAPI void APIENTRY glWindowPos2fv (const GLfloat *);
+GLAPI void APIENTRY glWindowPos2i (GLint, GLint);
+GLAPI void APIENTRY glWindowPos2iv (const GLint *);
+GLAPI void APIENTRY glWindowPos2s (GLshort, GLshort);
+GLAPI void APIENTRY glWindowPos2sv (const GLshort *);
+GLAPI void APIENTRY glWindowPos3d (GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glWindowPos3dv (const GLdouble *);
+GLAPI void APIENTRY glWindowPos3f (GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glWindowPos3fv (const GLfloat *);
+GLAPI void APIENTRY glWindowPos3i (GLint, GLint, GLint);
+GLAPI void APIENTRY glWindowPos3iv (const GLint *);
+GLAPI void APIENTRY glWindowPos3s (GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glWindowPos3sv (const GLshort *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (APIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord);
+typedef void (APIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
+typedef void (APIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord);
+typedef void (APIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
+typedef void (APIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
+typedef void (APIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *v);
+#endif
+
+#ifndef GL_ARB_multitexture
+#define GL_ARB_multitexture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glActiveTextureARB (GLenum);
+GLAPI void APIENTRY glClientActiveTextureARB (GLenum);
+GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum, GLint);
+GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort);
+GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *);
+GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *);
+GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *);
+GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *);
+GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
+typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
+#endif
+
+#ifndef GL_ARB_transpose_matrix
+#define GL_ARB_transpose_matrix 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *);
+GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *);
+GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *);
+GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
+typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
+typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
+typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
+#endif
+
+#ifndef GL_ARB_multisample
+#define GL_ARB_multisample 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSampleCoverageARB (GLclampf, GLboolean);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert);
+#endif
+
+#ifndef GL_ARB_texture_env_add
+#define GL_ARB_texture_env_add 1
+#endif
+
+#ifndef GL_ARB_texture_cube_map
+#define GL_ARB_texture_cube_map 1
+#endif
+
+#ifndef GL_ARB_texture_compression
+#define GL_ARB_texture_compression 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img);
+#endif
+
+#ifndef GL_ARB_texture_border_clamp
+#define GL_ARB_texture_border_clamp 1
+#endif
+
+#ifndef GL_ARB_point_parameters
+#define GL_ARB_point_parameters 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPointParameterfARB (GLenum, GLfloat);
+GLAPI void APIENTRY glPointParameterfvARB (GLenum, const GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params);
+#endif
+
+#ifndef GL_ARB_vertex_blend
+#define GL_ARB_vertex_blend 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glWeightbvARB (GLint, const GLbyte *);
+GLAPI void APIENTRY glWeightsvARB (GLint, const GLshort *);
+GLAPI void APIENTRY glWeightivARB (GLint, const GLint *);
+GLAPI void APIENTRY glWeightfvARB (GLint, const GLfloat *);
+GLAPI void APIENTRY glWeightdvARB (GLint, const GLdouble *);
+GLAPI void APIENTRY glWeightubvARB (GLint, const GLubyte *);
+GLAPI void APIENTRY glWeightusvARB (GLint, const GLushort *);
+GLAPI void APIENTRY glWeightuivARB (GLint, const GLuint *);
+GLAPI void APIENTRY glWeightPointerARB (GLint, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glVertexBlendARB (GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights);
+typedef void (APIENTRY * PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights);
+typedef void (APIENTRY * PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights);
+typedef void (APIENTRY * PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights);
+typedef void (APIENTRY * PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights);
+typedef void (APIENTRY * PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights);
+typedef void (APIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights);
+typedef void (APIENTRY * PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights);
+typedef void (APIENTRY * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLVERTEXBLENDARBPROC) (GLint count);
+#endif
+
+#ifndef GL_ARB_matrix_palette
+#define GL_ARB_matrix_palette 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint);
+GLAPI void APIENTRY glMatrixIndexubvARB (GLint, const GLubyte *);
+GLAPI void APIENTRY glMatrixIndexusvARB (GLint, const GLushort *);
+GLAPI void APIENTRY glMatrixIndexuivARB (GLint, const GLuint *);
+GLAPI void APIENTRY glMatrixIndexPointerARB (GLint, GLenum, GLsizei, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index);
+typedef void (APIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices);
+typedef void (APIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices);
+typedef void (APIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices);
+typedef void (APIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+#endif
+
+#ifndef GL_ARB_texture_env_combine
+#define GL_ARB_texture_env_combine 1
+#endif
+
+#ifndef GL_ARB_texture_env_crossbar
+#define GL_ARB_texture_env_crossbar 1
+#endif
+
+#ifndef GL_ARB_texture_env_dot3
+#define GL_ARB_texture_env_dot3 1
+#endif
+
+#ifndef GL_ARB_texture_mirrored_repeat
+#define GL_ARB_texture_mirrored_repeat 1
+#endif
+
+#ifndef GL_ARB_depth_texture
+#define GL_ARB_depth_texture 1
+#endif
+
+#ifndef GL_ARB_shadow
+#define GL_ARB_shadow 1
+#endif
+
+#ifndef GL_ARB_shadow_ambient
+#define GL_ARB_shadow_ambient 1
+#endif
+
+#ifndef GL_ARB_window_pos
+#define GL_ARB_window_pos 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glWindowPos2dARB (GLdouble, GLdouble);
+GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *);
+GLAPI void APIENTRY glWindowPos2fARB (GLfloat, GLfloat);
+GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *);
+GLAPI void APIENTRY glWindowPos2iARB (GLint, GLint);
+GLAPI void APIENTRY glWindowPos2ivARB (const GLint *);
+GLAPI void APIENTRY glWindowPos2sARB (GLshort, GLshort);
+GLAPI void APIENTRY glWindowPos2svARB (const GLshort *);
+GLAPI void APIENTRY glWindowPos3dARB (GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *);
+GLAPI void APIENTRY glWindowPos3fARB (GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *);
+GLAPI void APIENTRY glWindowPos3iARB (GLint, GLint, GLint);
+GLAPI void APIENTRY glWindowPos3ivARB (const GLint *);
+GLAPI void APIENTRY glWindowPos3sARB (GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glWindowPos3svARB (const GLshort *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v);
+#endif
+
+#ifndef GL_ARB_vertex_program
+#define GL_ARB_vertex_program 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexAttrib1dARB (GLuint, GLdouble);
+GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib1fARB (GLuint, GLfloat);
+GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib1sARB (GLuint, GLshort);
+GLAPI void APIENTRY glVertexAttrib1svARB (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib2dARB (GLuint, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib2fARB (GLuint, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib2sARB (GLuint, GLshort, GLshort);
+GLAPI void APIENTRY glVertexAttrib2svARB (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib3dARB (GLuint, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib3fARB (GLuint, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib3sARB (GLuint, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glVertexAttrib3svARB (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint, const GLbyte *);
+GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint, const GLint *);
+GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
+GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint, const GLubyte *);
+GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint, const GLuint *);
+GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint, const GLushort *);
+GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint, const GLbyte *);
+GLAPI void APIENTRY glVertexAttrib4dARB (GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib4fARB (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint, const GLint *);
+GLAPI void APIENTRY glVertexAttrib4sARB (GLuint, GLshort, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glVertexAttrib4svARB (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint, const GLubyte *);
+GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint, const GLuint *);
+GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint, const GLushort *);
+GLAPI void APIENTRY glVertexAttribPointerARB (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint);
+GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint);
+GLAPI void APIENTRY glProgramStringARB (GLenum, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glBindProgramARB (GLenum, GLuint);
+GLAPI void APIENTRY glDeleteProgramsARB (GLsizei, const GLuint *);
+GLAPI void APIENTRY glGenProgramsARB (GLsizei, GLuint *);
+GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum, GLuint, const GLdouble *);
+GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum, GLuint, const GLfloat *);
+GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum, GLuint, const GLdouble *);
+GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum, GLuint, const GLfloat *);
+GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum, GLuint, GLdouble *);
+GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum, GLuint, GLfloat *);
+GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum, GLuint, GLdouble *);
+GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum, GLuint, GLfloat *);
+GLAPI void APIENTRY glGetProgramivARB (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetProgramStringARB (GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint, GLenum, GLdouble *);
+GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetVertexAttribivARB (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint, GLenum, GLvoid* *);
+GLAPI GLboolean APIENTRY glIsProgramARB (GLuint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
+typedef void (APIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
+typedef void (APIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
+typedef void (APIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
+typedef void (APIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
+typedef void (APIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
+typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
+typedef void (APIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
+typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string);
+typedef void (APIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
+typedef GLboolean (APIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program);
+#endif
+
+#ifndef GL_ARB_fragment_program
+#define GL_ARB_fragment_program 1
+/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */
+#endif
+
+#ifndef GL_ARB_vertex_buffer_object
+#define GL_ARB_vertex_buffer_object 1
+/* GL types for handling large vertex buffer objects */
+/* Only used by this extension for now; later needs to be moved earlier in glext.h */
+#include <stddef.h>
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBindBufferARB (GLenum, GLuint);
+GLAPI void APIENTRY glDeleteBuffersARB (GLsizei, const GLuint *);
+GLAPI void APIENTRY glGenBuffersARB (GLsizei, GLuint *);
+GLAPI GLboolean APIENTRY glIsBufferARB (GLuint);
+GLAPI void APIENTRY glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum);
+GLAPI void APIENTRY glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *);
+GLAPI void APIENTRY glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *);
+GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum, GLenum);
+GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum);
+GLAPI void APIENTRY glGetBufferParameterivARB (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetBufferPointervARB (GLenum, GLenum, GLvoid* *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
+typedef void (APIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
+typedef void (APIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
+typedef GLboolean (APIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer);
+typedef void (APIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
+typedef void (APIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
+typedef void (APIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
+typedef GLvoid* (APIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access);
+typedef GLboolean (APIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target);
+typedef void (APIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params);
+#endif
+
+#ifndef GL_EXT_abgr
+#define GL_EXT_abgr 1
+#endif
+
+#ifndef GL_EXT_blend_color
+#define GL_EXT_blend_color 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+#endif
+
+#ifndef GL_EXT_polygon_offset
+#define GL_EXT_polygon_offset 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias);
+#endif
+
+#ifndef GL_EXT_texture
+#define GL_EXT_texture 1
+#endif
+
+#ifndef GL_EXT_texture3D
+#define GL_EXT_texture3D 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+#endif
+
+#ifndef GL_SGIS_texture_filter4
+#define GL_SGIS_texture_filter4 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights);
+typedef void (APIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
+#endif
+
+#ifndef GL_EXT_subtexture
+#define GL_EXT_subtexture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+#endif
+
+#ifndef GL_EXT_copy_texture
+#define GL_EXT_copy_texture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
+GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
+GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei);
+GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (APIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+#endif
+
+#ifndef GL_EXT_histogram
+#define GL_EXT_histogram 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean);
+GLAPI void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean);
+GLAPI void APIENTRY glResetHistogramEXT (GLenum);
+GLAPI void APIENTRY glResetMinmaxEXT (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target);
+typedef void (APIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target);
+#endif
+
+#ifndef GL_EXT_convolution
+#define GL_EXT_convolution 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint);
+GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei);
+GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei);
+GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *);
+GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
+typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
+typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
+typedef void (APIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
+#endif
+
+#ifndef GL_EXT_color_matrix
+#define GL_EXT_color_matrix 1
+#endif
+
+#ifndef GL_SGI_color_table
+#define GL_SGI_color_table 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei);
+GLAPI void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params);
+#endif
+
+#ifndef GL_SGIX_pixel_texture
+#define GL_SGIX_pixel_texture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPixelTexGenSGIX (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode);
+#endif
+
+#ifndef GL_SGIS_pixel_texture
+#define GL_SGIS_pixel_texture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint);
+GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *);
+GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat);
+GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *);
+GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *);
+GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params);
+#endif
+
+#ifndef GL_SGIS_texture4D
+#define GL_SGIS_texture4D 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels);
+#endif
+
+#ifndef GL_SGI_texture_color_table
+#define GL_SGI_texture_color_table 1
+#endif
+
+#ifndef GL_EXT_cmyka
+#define GL_EXT_cmyka 1
+#endif
+
+#ifndef GL_EXT_texture_object
+#define GL_EXT_texture_object 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *);
+GLAPI void APIENTRY glBindTextureEXT (GLenum, GLuint);
+GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *);
+GLAPI void APIENTRY glGenTexturesEXT (GLsizei, GLuint *);
+GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint);
+GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef GLboolean (APIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences);
+typedef void (APIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture);
+typedef void (APIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures);
+typedef void (APIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures);
+typedef GLboolean (APIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture);
+typedef void (APIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
+#endif
+
+#ifndef GL_SGIS_detail_texture
+#define GL_SGIS_detail_texture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
+typedef void (APIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
+#endif
+
+#ifndef GL_SGIS_sharpen_texture
+#define GL_SGIS_sharpen_texture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
+typedef void (APIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
+#endif
+
+#ifndef GL_EXT_packed_pixels
+#define GL_EXT_packed_pixels 1
+#endif
+
+#ifndef GL_SGIS_texture_lod
+#define GL_SGIS_texture_lod 1
+#endif
+
+#ifndef GL_SGIS_multisample
+#define GL_SGIS_multisample 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean);
+GLAPI void APIENTRY glSamplePatternSGIS (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert);
+typedef void (APIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern);
+#endif
+
+#ifndef GL_EXT_rescale_normal
+#define GL_EXT_rescale_normal 1
+#endif
+
+#ifndef GL_EXT_vertex_array
+#define GL_EXT_vertex_array 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glArrayElementEXT (GLint);
+GLAPI void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei);
+GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *);
+GLAPI void APIENTRY glGetPointervEXT (GLenum, GLvoid* *);
+GLAPI void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i);
+typedef void (APIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
+typedef void (APIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer);
+typedef void (APIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params);
+typedef void (APIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+#endif
+
+#ifndef GL_EXT_misc_attribute
+#define GL_EXT_misc_attribute 1
+#endif
+
+#ifndef GL_SGIS_generate_mipmap
+#define GL_SGIS_generate_mipmap 1
+#endif
+
+#ifndef GL_SGIX_clipmap
+#define GL_SGIX_clipmap 1
+#endif
+
+#ifndef GL_SGIX_shadow
+#define GL_SGIX_shadow 1
+#endif
+
+#ifndef GL_SGIS_texture_edge_clamp
+#define GL_SGIS_texture_edge_clamp 1
+#endif
+
+#ifndef GL_SGIS_texture_border_clamp
+#define GL_SGIS_texture_border_clamp 1
+#endif
+
+#ifndef GL_EXT_blend_minmax
+#define GL_EXT_blend_minmax 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendEquationEXT (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
+#endif
+
+#ifndef GL_EXT_blend_subtract
+#define GL_EXT_blend_subtract 1
+#endif
+
+#ifndef GL_EXT_blend_logic_op
+#define GL_EXT_blend_logic_op 1
+#endif
+
+#ifndef GL_SGIX_interlace
+#define GL_SGIX_interlace 1
+#endif
+
+#ifndef GL_SGIX_pixel_tiles
+#define GL_SGIX_pixel_tiles 1
+#endif
+
+#ifndef GL_SGIX_texture_select
+#define GL_SGIX_texture_select 1
+#endif
+
+#ifndef GL_SGIX_sprite
+#define GL_SGIX_sprite 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat);
+GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *);
+GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum, GLint);
+GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params);
+#endif
+
+#ifndef GL_SGIX_texture_multi_buffer
+#define GL_SGIX_texture_multi_buffer 1
+#endif
+
+#ifndef GL_EXT_point_parameters
+#define GL_EXT_point_parameters 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPointParameterfEXT (GLenum, GLfloat);
+GLAPI void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params);
+#endif
+
+#ifndef GL_SGIS_point_parameters
+#define GL_SGIS_point_parameters 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPointParameterfSGIS (GLenum, GLfloat);
+GLAPI void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
+#endif
+
+#ifndef GL_SGIX_instruments
+#define GL_SGIX_instruments 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLint APIENTRY glGetInstrumentsSGIX (void);
+GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *);
+GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *);
+GLAPI void APIENTRY glReadInstrumentsSGIX (GLint);
+GLAPI void APIENTRY glStartInstrumentsSGIX (void);
+GLAPI void APIENTRY glStopInstrumentsSGIX (GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef GLint (APIENTRY * PFNGLGETINSTRUMENTSSGIXPROC) (void);
+typedef void (APIENTRY * PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer);
+typedef GLint (APIENTRY * PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p);
+typedef void (APIENTRY * PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker);
+typedef void (APIENTRY * PFNGLSTARTINSTRUMENTSSGIXPROC) (void);
+typedef void (APIENTRY * PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker);
+#endif
+
+#ifndef GL_SGIX_texture_scale_bias
+#define GL_SGIX_texture_scale_bias 1
+#endif
+
+#ifndef GL_SGIX_framezoom
+#define GL_SGIX_framezoom 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFrameZoomSGIX (GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor);
+#endif
+
+#ifndef GL_SGIX_tag_sample_buffer
+#define GL_SGIX_tag_sample_buffer 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTagSampleBufferSGIX (void);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void);
+#endif
+
+#ifndef GL_SGIX_polynomial_ffd
+#define GL_SGIX_polynomial_ffd 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
+GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
+GLAPI void APIENTRY glDeformSGIX (GLbitfield);
+GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
+typedef void (APIENTRY * PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
+typedef void (APIENTRY * PFNGLDEFORMSGIXPROC) (GLbitfield mask);
+typedef void (APIENTRY * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask);
+#endif
+
+#ifndef GL_SGIX_reference_plane
+#define GL_SGIX_reference_plane 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation);
+#endif
+
+#ifndef GL_SGIX_flush_raster
+#define GL_SGIX_flush_raster 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFlushRasterSGIX (void);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void);
+#endif
+
+#ifndef GL_SGIX_depth_texture
+#define GL_SGIX_depth_texture 1
+#endif
+
+#ifndef GL_SGIS_fog_function
+#define GL_SGIS_fog_function 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *);
+GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points);
+typedef void (APIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat *points);
+#endif
+
+#ifndef GL_SGIX_fog_offset
+#define GL_SGIX_fog_offset 1
+#endif
+
+#ifndef GL_HP_image_transform
+#define GL_HP_image_transform 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint);
+GLAPI void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params);
+#endif
+
+#ifndef GL_HP_convolution_border_modes
+#define GL_HP_convolution_border_modes 1
+#endif
+
+#ifndef GL_SGIX_texture_add_env
+#define GL_SGIX_texture_add_env 1
+#endif
+
+#ifndef GL_EXT_color_subtable
+#define GL_EXT_color_subtable 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
+typedef void (APIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+#endif
+
+#ifndef GL_PGI_vertex_hints
+#define GL_PGI_vertex_hints 1
+#endif
+
+#ifndef GL_PGI_misc_hints
+#define GL_PGI_misc_hints 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glHintPGI (GLenum, GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLHINTPGIPROC) (GLenum target, GLint mode);
+#endif
+
+#ifndef GL_EXT_paletted_texture
+#define GL_EXT_paletted_texture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
+GLAPI void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *);
+GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+#endif
+
+#ifndef GL_EXT_clip_volume_hint
+#define GL_EXT_clip_volume_hint 1
+#endif
+
+#ifndef GL_SGIX_list_priority
+#define GL_SGIX_list_priority 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat);
+GLAPI void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *);
+GLAPI void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint);
+GLAPI void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params);
+#endif
+
+#ifndef GL_SGIX_ir_instrument1
+#define GL_SGIX_ir_instrument1 1
+#endif
+
+#ifndef GL_SGIX_calligraphic_fragment
+#define GL_SGIX_calligraphic_fragment 1
+#endif
+
+#ifndef GL_SGIX_texture_lod_bias
+#define GL_SGIX_texture_lod_bias 1
+#endif
+
+#ifndef GL_SGIX_shadow_ambient
+#define GL_SGIX_shadow_ambient 1
+#endif
+
+#ifndef GL_EXT_index_texture
+#define GL_EXT_index_texture 1
+#endif
+
+#ifndef GL_EXT_index_material
+#define GL_EXT_index_material 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glIndexMaterialEXT (GLenum, GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode);
+#endif
+
+#ifndef GL_EXT_index_func
+#define GL_EXT_index_func 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glIndexFuncEXT (GLenum, GLclampf);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref);
+#endif
+
+#ifndef GL_EXT_index_array_formats
+#define GL_EXT_index_array_formats 1
+#endif
+
+#ifndef GL_EXT_compiled_vertex_array
+#define GL_EXT_compiled_vertex_array 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glLockArraysEXT (GLint, GLsizei);
+GLAPI void APIENTRY glUnlockArraysEXT (void);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
+typedef void (APIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void);
+#endif
+
+#ifndef GL_EXT_cull_vertex
+#define GL_EXT_cull_vertex 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *);
+GLAPI void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params);
+typedef void (APIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params);
+#endif
+
+#ifndef GL_SGIX_ycrcb
+#define GL_SGIX_ycrcb 1
+#endif
+
+#ifndef GL_SGIX_fragment_lighting
+#define GL_SGIX_fragment_lighting 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum);
+GLAPI void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint);
+GLAPI void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat);
+GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *);
+GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint);
+GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *);
+GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint);
+GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glLightEnviSGIX (GLenum, GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param);
+#endif
+
+#ifndef GL_IBM_rasterpos_clip
+#define GL_IBM_rasterpos_clip 1
+#endif
+
+#ifndef GL_HP_texture_lighting
+#define GL_HP_texture_lighting 1
+#endif
+
+#ifndef GL_EXT_draw_range_elements
+#define GL_EXT_draw_range_elements 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
+#endif
+
+#ifndef GL_WIN_phong_shading
+#define GL_WIN_phong_shading 1
+#endif
+
+#ifndef GL_WIN_specular_fog
+#define GL_WIN_specular_fog 1
+#endif
+
+#ifndef GL_EXT_light_texture
+#define GL_EXT_light_texture 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glApplyTextureEXT (GLenum);
+GLAPI void APIENTRY glTextureLightEXT (GLenum);
+GLAPI void APIENTRY glTextureMaterialEXT (GLenum, GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode);
+typedef void (APIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname);
+typedef void (APIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode);
+#endif
+
+#ifndef GL_SGIX_blend_alpha_minmax
+#define GL_SGIX_blend_alpha_minmax 1
+#endif
+
+#ifndef GL_EXT_bgra
+#define GL_EXT_bgra 1
+#endif
+
+#ifndef GL_SGIX_async
+#define GL_SGIX_async 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint);
+GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *);
+GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *);
+GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei);
+GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei);
+GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker);
+typedef GLint (APIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp);
+typedef GLint (APIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp);
+typedef GLuint (APIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range);
+typedef void (APIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range);
+typedef GLboolean (APIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker);
+#endif
+
+#ifndef GL_SGIX_async_pixel
+#define GL_SGIX_async_pixel 1
+#endif
+
+#ifndef GL_SGIX_async_histogram
+#define GL_SGIX_async_histogram 1
+#endif
+
+#ifndef GL_INTEL_parallel_arrays
+#define GL_INTEL_parallel_arrays 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *);
+GLAPI void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *);
+GLAPI void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *);
+GLAPI void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
+typedef void (APIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer);
+typedef void (APIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
+typedef void (APIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
+#endif
+
+#ifndef GL_HP_occlusion_test
+#define GL_HP_occlusion_test 1
+#endif
+
+#ifndef GL_EXT_pixel_transform
+#define GL_EXT_pixel_transform 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint);
+GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat);
+GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
+#endif
+
+#ifndef GL_EXT_pixel_transform_color_table
+#define GL_EXT_pixel_transform_color_table 1
+#endif
+
+#ifndef GL_EXT_shared_texture_palette
+#define GL_EXT_shared_texture_palette 1
+#endif
+
+#ifndef GL_EXT_separate_specular_color
+#define GL_EXT_separate_specular_color 1
+#endif
+
+#ifndef GL_EXT_secondary_color
+#define GL_EXT_secondary_color 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte);
+GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *);
+GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *);
+GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *);
+GLAPI void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint);
+GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *);
+GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *);
+GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte);
+GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *);
+GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *);
+GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort);
+GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *);
+GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v);
+typedef void (APIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+#endif
+
+#ifndef GL_EXT_texture_perturb_normal
+#define GL_EXT_texture_perturb_normal 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTextureNormalEXT (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode);
+#endif
+
+#ifndef GL_EXT_multi_draw_arrays
+#define GL_EXT_multi_draw_arrays 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
+GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
+#endif
+
+#ifndef GL_EXT_fog_coord
+#define GL_EXT_fog_coord 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFogCoordfEXT (GLfloat);
+GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *);
+GLAPI void APIENTRY glFogCoorddEXT (GLdouble);
+GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *);
+GLAPI void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord);
+typedef void (APIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord);
+typedef void (APIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord);
+typedef void (APIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord);
+typedef void (APIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
+#endif
+
+#ifndef GL_REND_screen_coordinates
+#define GL_REND_screen_coordinates 1
+#endif
+
+#ifndef GL_EXT_coordinate_frame
+#define GL_EXT_coordinate_frame 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte);
+GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *);
+GLAPI void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *);
+GLAPI void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *);
+GLAPI void APIENTRY glTangent3iEXT (GLint, GLint, GLint);
+GLAPI void APIENTRY glTangent3ivEXT (const GLint *);
+GLAPI void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glTangent3svEXT (const GLshort *);
+GLAPI void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte);
+GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *);
+GLAPI void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *);
+GLAPI void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *);
+GLAPI void APIENTRY glBinormal3iEXT (GLint, GLint, GLint);
+GLAPI void APIENTRY glBinormal3ivEXT (const GLint *);
+GLAPI void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glBinormal3svEXT (const GLshort *);
+GLAPI void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz);
+typedef void (APIENTRY * PFNGLTANGENT3BVEXTPROC) (const GLbyte *v);
+typedef void (APIENTRY * PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz);
+typedef void (APIENTRY * PFNGLTANGENT3DVEXTPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz);
+typedef void (APIENTRY * PFNGLTANGENT3FVEXTPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz);
+typedef void (APIENTRY * PFNGLTANGENT3IVEXTPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz);
+typedef void (APIENTRY * PFNGLTANGENT3SVEXTPROC) (const GLshort *v);
+typedef void (APIENTRY * PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz);
+typedef void (APIENTRY * PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v);
+typedef void (APIENTRY * PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz);
+typedef void (APIENTRY * PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz);
+typedef void (APIENTRY * PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz);
+typedef void (APIENTRY * PFNGLBINORMAL3IVEXTPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz);
+typedef void (APIENTRY * PFNGLBINORMAL3SVEXTPROC) (const GLshort *v);
+typedef void (APIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
+#endif
+
+#ifndef GL_EXT_texture_env_combine
+#define GL_EXT_texture_env_combine 1
+#endif
+
+#ifndef GL_APPLE_specular_vector
+#define GL_APPLE_specular_vector 1
+#endif
+
+#ifndef GL_APPLE_transform_hint
+#define GL_APPLE_transform_hint 1
+#endif
+
+#ifndef GL_SGIX_fog_scale
+#define GL_SGIX_fog_scale 1
+#endif
+
+#ifndef GL_SUNX_constant_data
+#define GL_SUNX_constant_data 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFinishTextureSUNX (void);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void);
+#endif
+
+#ifndef GL_SUN_global_alpha
+#define GL_SUN_global_alpha 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte);
+GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort);
+GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint);
+GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat);
+GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble);
+GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte);
+GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort);
+GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor);
+typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor);
+typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor);
+typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor);
+typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor);
+typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor);
+typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor);
+typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor);
+#endif
+
+#ifndef GL_SUN_triangle_list
+#define GL_SUN_triangle_list 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint);
+GLAPI void APIENTRY glReplacementCodeusSUN (GLushort);
+GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte);
+GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *);
+GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *);
+GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *);
+GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer);
+#endif
+
+#ifndef GL_SUN_vertex
+#define GL_SUN_vertex 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat);
+GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *);
+GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *);
+GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *);
+GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *, const GLfloat *);
+GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *, const GLubyte *, const GLfloat *);
+GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
+typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v);
+typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v);
+typedef void (APIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v);
+typedef void (APIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
+typedef void (APIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
+typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v);
+typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v);
+typedef void (APIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+#endif
+
+#ifndef GL_EXT_blend_func_separate
+#define GL_EXT_blend_func_separate 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+#endif
+
+#ifndef GL_INGR_blend_func_separate
+#define GL_INGR_blend_func_separate 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum, GLenum, GLenum, GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+#endif
+
+#ifndef GL_INGR_color_clamp
+#define GL_INGR_color_clamp 1
+#endif
+
+#ifndef GL_INGR_interlace_read
+#define GL_INGR_interlace_read 1
+#endif
+
+#ifndef GL_EXT_stencil_wrap
+#define GL_EXT_stencil_wrap 1
+#endif
+
+#ifndef GL_EXT_422_pixels
+#define GL_EXT_422_pixels 1
+#endif
+
+#ifndef GL_NV_texgen_reflection
+#define GL_NV_texgen_reflection 1
+#endif
+
+#ifndef GL_SUN_convolution_border_modes
+#define GL_SUN_convolution_border_modes 1
+#endif
+
+#ifndef GL_EXT_texture_env_add
+#define GL_EXT_texture_env_add 1
+#endif
+
+#ifndef GL_EXT_texture_lod_bias
+#define GL_EXT_texture_lod_bias 1
+#endif
+
+#ifndef GL_EXT_texture_filter_anisotropic
+#define GL_EXT_texture_filter_anisotropic 1
+#endif
+
+#ifndef GL_EXT_vertex_weighting
+#define GL_EXT_vertex_weighting 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexWeightfEXT (GLfloat);
+GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *);
+GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight);
+typedef void (APIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight);
+typedef void (APIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
+#endif
+
+#ifndef GL_NV_light_max_exponent
+#define GL_NV_light_max_exponent 1
+#endif
+
+#ifndef GL_NV_vertex_array_range
+#define GL_NV_vertex_array_range 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFlushVertexArrayRangeNV (void);
+GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void);
+typedef void (APIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer);
+#endif
+
+#ifndef GL_NV_register_combiners
+#define GL_NV_register_combiners 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *);
+GLAPI void APIENTRY glCombinerParameterfNV (GLenum, GLfloat);
+GLAPI void APIENTRY glCombinerParameterivNV (GLenum, const GLint *);
+GLAPI void APIENTRY glCombinerParameteriNV (GLenum, GLint);
+GLAPI void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum);
+GLAPI void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean);
+GLAPI void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum);
+GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (APIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+typedef void (APIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params);
+#endif
+
+#ifndef GL_NV_fog_distance
+#define GL_NV_fog_distance 1
+#endif
+
+#ifndef GL_NV_texgen_emboss
+#define GL_NV_texgen_emboss 1
+#endif
+
+#ifndef GL_NV_blend_square
+#define GL_NV_blend_square 1
+#endif
+
+#ifndef GL_NV_texture_env_combine4
+#define GL_NV_texture_env_combine4 1
+#endif
+
+#ifndef GL_MESA_resize_buffers
+#define GL_MESA_resize_buffers 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glResizeBuffersMESA (void);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void);
+#endif
+
+#ifndef GL_MESA_window_pos
+#define GL_MESA_window_pos 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble);
+GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *);
+GLAPI void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat);
+GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *);
+GLAPI void APIENTRY glWindowPos2iMESA (GLint, GLint);
+GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *);
+GLAPI void APIENTRY glWindowPos2sMESA (GLshort, GLshort);
+GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *);
+GLAPI void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *);
+GLAPI void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *);
+GLAPI void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint);
+GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *);
+GLAPI void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *);
+GLAPI void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *);
+GLAPI void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *);
+GLAPI void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *);
+GLAPI void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v);
+typedef void (APIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v);
+#endif
+
+#ifndef GL_IBM_cull_vertex
+#define GL_IBM_cull_vertex 1
+#endif
+
+#ifndef GL_IBM_multimode_draw_arrays
+#define GL_IBM_multimode_draw_arrays 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiModeDrawArraysIBM (GLenum, const GLint *, const GLsizei *, GLsizei, GLint);
+GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* *, GLsizei, GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
+typedef void (APIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, GLint modestride);
+#endif
+
+#ifndef GL_IBM_vertex_array_lists
+#define GL_IBM_vertex_array_lists 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
+GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
+GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint);
+GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint);
+GLAPI void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint);
+GLAPI void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint);
+GLAPI void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
+GLAPI void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+typedef void (APIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+typedef void (APIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride);
+typedef void (APIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+typedef void (APIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+typedef void (APIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+typedef void (APIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+typedef void (APIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
+#endif
+
+#ifndef GL_SGIX_subsample
+#define GL_SGIX_subsample 1
+#endif
+
+#ifndef GL_SGIX_ycrcba
+#define GL_SGIX_ycrcba 1
+#endif
+
+#ifndef GL_SGIX_ycrcb_subsample
+#define GL_SGIX_ycrcb_subsample 1
+#endif
+
+#ifndef GL_SGIX_depth_pass_instrument
+#define GL_SGIX_depth_pass_instrument 1
+#endif
+
+#ifndef GL_3DFX_texture_compression_FXT1
+#define GL_3DFX_texture_compression_FXT1 1
+#endif
+
+#ifndef GL_3DFX_multisample
+#define GL_3DFX_multisample 1
+#endif
+
+#ifndef GL_3DFX_tbuffer
+#define GL_3DFX_tbuffer 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTbufferMask3DFX (GLuint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask);
+#endif
+
+#ifndef GL_EXT_multisample
+#define GL_EXT_multisample 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSampleMaskEXT (GLclampf, GLboolean);
+GLAPI void APIENTRY glSamplePatternEXT (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert);
+typedef void (APIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern);
+#endif
+
+#ifndef GL_SGIX_vertex_preclip
+#define GL_SGIX_vertex_preclip 1
+#endif
+
+#ifndef GL_SGIX_convolution_accuracy
+#define GL_SGIX_convolution_accuracy 1
+#endif
+
+#ifndef GL_SGIX_resample
+#define GL_SGIX_resample 1
+#endif
+
+#ifndef GL_SGIS_point_line_texgen
+#define GL_SGIS_point_line_texgen 1
+#endif
+
+#ifndef GL_SGIS_texture_color_mask
+#define GL_SGIS_texture_color_mask 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+#endif
+
+#ifndef GL_SGIX_igloo_interface
+#define GL_SGIX_igloo_interface 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params);
+#endif
+
+#ifndef GL_EXT_texture_env_dot3
+#define GL_EXT_texture_env_dot3 1
+#endif
+
+#ifndef GL_ATI_texture_mirror_once
+#define GL_ATI_texture_mirror_once 1
+#endif
+
+#ifndef GL_NV_fence
+#define GL_NV_fence 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
+GLAPI void APIENTRY glGenFencesNV (GLsizei, GLuint *);
+GLAPI GLboolean APIENTRY glIsFenceNV (GLuint);
+GLAPI GLboolean APIENTRY glTestFenceNV (GLuint);
+GLAPI void APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glFinishFenceNV (GLuint);
+GLAPI void APIENTRY glSetFenceNV (GLuint, GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
+typedef void (APIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
+typedef GLboolean (APIENTRY * PFNGLISFENCENVPROC) (GLuint fence);
+typedef GLboolean (APIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence);
+typedef void (APIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence);
+typedef void (APIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
+#endif
+
+#ifndef GL_NV_evaluators
+#define GL_NV_evaluators 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, const GLvoid *);
+GLAPI void APIENTRY glMapParameterivNV (GLenum, GLenum, const GLint *);
+GLAPI void APIENTRY glMapParameterfvNV (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glGetMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid *);
+GLAPI void APIENTRY glGetMapParameterivNV (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glGetMapParameterfvNV (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum, GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum, GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glEvalMapsNV (GLenum, GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
+typedef void (APIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
+typedef void (APIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode);
+#endif
+
+#ifndef GL_NV_packed_depth_stencil
+#define GL_NV_packed_depth_stencil 1
+#endif
+
+#ifndef GL_NV_register_combiners2
+#define GL_NV_register_combiners2 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *);
+GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
+#endif
+
+#ifndef GL_NV_texture_compression_vtc
+#define GL_NV_texture_compression_vtc 1
+#endif
+
+#ifndef GL_NV_texture_rectangle
+#define GL_NV_texture_rectangle 1
+#endif
+
+#ifndef GL_NV_texture_shader
+#define GL_NV_texture_shader 1
+#endif
+
+#ifndef GL_NV_texture_shader2
+#define GL_NV_texture_shader2 1
+#endif
+
+#ifndef GL_NV_vertex_array_range2
+#define GL_NV_vertex_array_range2 1
+#endif
+
+#ifndef GL_NV_vertex_program
+#define GL_NV_vertex_program 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei, const GLuint *, GLboolean *);
+GLAPI void APIENTRY glBindProgramNV (GLenum, GLuint);
+GLAPI void APIENTRY glDeleteProgramsNV (GLsizei, const GLuint *);
+GLAPI void APIENTRY glExecuteProgramNV (GLenum, GLuint, const GLfloat *);
+GLAPI void APIENTRY glGenProgramsNV (GLsizei, GLuint *);
+GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum, GLuint, GLenum, GLdouble *);
+GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum, GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetProgramivNV (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetProgramStringNV (GLuint, GLenum, GLubyte *);
+GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum, GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint, GLenum, GLdouble *);
+GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetVertexAttribivNV (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint, GLenum, GLvoid* *);
+GLAPI GLboolean APIENTRY glIsProgramNV (GLuint);
+GLAPI void APIENTRY glLoadProgramNV (GLenum, GLuint, GLsizei, const GLubyte *);
+GLAPI void APIENTRY glProgramParameter4dNV (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glProgramParameter4dvNV (GLenum, GLuint, const GLdouble *);
+GLAPI void APIENTRY glProgramParameter4fNV (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glProgramParameter4fvNV (GLenum, GLuint, const GLfloat *);
+GLAPI void APIENTRY glProgramParameters4dvNV (GLenum, GLuint, GLuint, const GLdouble *);
+GLAPI void APIENTRY glProgramParameters4fvNV (GLenum, GLuint, GLuint, const GLfloat *);
+GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei, const GLuint *);
+GLAPI void APIENTRY glTrackMatrixNV (GLenum, GLuint, GLenum, GLenum);
+GLAPI void APIENTRY glVertexAttribPointerNV (GLuint, GLint, GLenum, GLsizei, const GLvoid *);
+GLAPI void APIENTRY glVertexAttrib1dNV (GLuint, GLdouble);
+GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib1fNV (GLuint, GLfloat);
+GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib1sNV (GLuint, GLshort);
+GLAPI void APIENTRY glVertexAttrib1svNV (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib2dNV (GLuint, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib2fNV (GLuint, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib2sNV (GLuint, GLshort, GLshort);
+GLAPI void APIENTRY glVertexAttrib2svNV (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib3dNV (GLuint, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib3fNV (GLuint, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib3sNV (GLuint, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glVertexAttrib3svNV (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib4dNV (GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVertexAttrib4fNV (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVertexAttrib4sNV (GLuint, GLshort, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glVertexAttrib4svNV (GLuint, const GLshort *);
+GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
+GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint, const GLubyte *);
+GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint, GLsizei, const GLdouble *);
+GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glVertexAttribs1svNV (GLuint, GLsizei, const GLshort *);
+GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint, GLsizei, const GLdouble *);
+GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glVertexAttribs2svNV (GLuint, GLsizei, const GLshort *);
+GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint, GLsizei, const GLdouble *);
+GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glVertexAttribs3svNV (GLuint, GLsizei, const GLshort *);
+GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint, GLsizei, const GLdouble *);
+GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint, GLsizei, const GLfloat *);
+GLAPI void APIENTRY glVertexAttribs4svNV (GLuint, GLsizei, const GLshort *);
+GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint, GLsizei, const GLubyte *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef GLboolean (APIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences);
+typedef void (APIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id);
+typedef void (APIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
+typedef void (APIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params);
+typedef void (APIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs);
+typedef void (APIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program);
+typedef void (APIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
+typedef GLboolean (APIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id);
+typedef void (APIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
+typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v);
+typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v);
+typedef void (APIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v);
+typedef void (APIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v);
+typedef void (APIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
+typedef void (APIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v);
+#endif
+
+#ifndef GL_SGIX_texture_coordinate_clamp
+#define GL_SGIX_texture_coordinate_clamp 1
+#endif
+
+#ifndef GL_SGIX_scalebias_hint
+#define GL_SGIX_scalebias_hint 1
+#endif
+
+#ifndef GL_OML_interlace
+#define GL_OML_interlace 1
+#endif
+
+#ifndef GL_OML_subsample
+#define GL_OML_subsample 1
+#endif
+
+#ifndef GL_OML_resample
+#define GL_OML_resample 1
+#endif
+
+#ifndef GL_NV_copy_depth_to_color
+#define GL_NV_copy_depth_to_color 1
+#endif
+
+#ifndef GL_ATI_envmap_bumpmap
+#define GL_ATI_envmap_bumpmap 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexBumpParameterivATI (GLenum, const GLint *);
+GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum, const GLfloat *);
+GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum, GLint *);
+GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum, GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param);
+typedef void (APIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param);
+typedef void (APIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param);
+typedef void (APIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param);
+#endif
+
+#ifndef GL_ATI_fragment_shader
+#define GL_ATI_fragment_shader 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint);
+GLAPI void APIENTRY glBindFragmentShaderATI (GLuint);
+GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint);
+GLAPI void APIENTRY glBeginFragmentShaderATI (void);
+GLAPI void APIENTRY glEndFragmentShaderATI (void);
+GLAPI void APIENTRY glPassTexCoordATI (GLuint, GLuint, GLenum);
+GLAPI void APIENTRY glSampleMapATI (GLuint, GLuint, GLenum);
+GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint, const GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef GLuint (APIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range);
+typedef void (APIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id);
+typedef void (APIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id);
+typedef void (APIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC) (void);
+typedef void (APIENTRY * PFNGLENDFRAGMENTSHADERATIPROC) (void);
+typedef void (APIENTRY * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);
+typedef void (APIENTRY * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);
+typedef void (APIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (APIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (APIENTRY * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (APIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (APIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (APIENTRY * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (APIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value);
+#endif
+
+#ifndef GL_ATI_pn_triangles
+#define GL_ATI_pn_triangles 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPNTrianglesiATI (GLenum, GLint);
+GLAPI void APIENTRY glPNTrianglesfATI (GLenum, GLfloat);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param);
+#endif
+
+#ifndef GL_ATI_vertex_array_object
+#define GL_ATI_vertex_array_object 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei, const GLvoid *, GLenum);
+GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint);
+GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint, GLuint, GLsizei, const GLvoid *, GLenum);
+GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetObjectBufferivATI (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glFreeObjectBufferATI (GLuint);
+GLAPI void APIENTRY glArrayObjectATI (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint);
+GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetArrayObjectivATI (GLenum, GLenum, GLint *);
+GLAPI void APIENTRY glVariantArrayObjectATI (GLuint, GLenum, GLsizei, GLuint, GLuint);
+GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint, GLenum, GLint *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef GLuint (APIENTRY * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage);
+typedef GLboolean (APIENTRY * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer);
+typedef void (APIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
+typedef void (APIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer);
+typedef void (APIENTRY * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (APIENTRY * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (APIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params);
+#endif
+
+#ifndef GL_EXT_vertex_shader
+#define GL_EXT_vertex_shader 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginVertexShaderEXT (void);
+GLAPI void APIENTRY glEndVertexShaderEXT (void);
+GLAPI void APIENTRY glBindVertexShaderEXT (GLuint);
+GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint);
+GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint);
+GLAPI void APIENTRY glShaderOp1EXT (GLenum, GLuint, GLuint);
+GLAPI void APIENTRY glShaderOp2EXT (GLenum, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glShaderOp3EXT (GLenum, GLuint, GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glSwizzleEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum);
+GLAPI void APIENTRY glWriteMaskEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum);
+GLAPI void APIENTRY glInsertComponentEXT (GLuint, GLuint, GLuint);
+GLAPI void APIENTRY glExtractComponentEXT (GLuint, GLuint, GLuint);
+GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum, GLenum, GLenum, GLuint);
+GLAPI void APIENTRY glSetInvariantEXT (GLuint, GLenum, const GLvoid *);
+GLAPI void APIENTRY glSetLocalConstantEXT (GLuint, GLenum, const GLvoid *);
+GLAPI void APIENTRY glVariantbvEXT (GLuint, const GLbyte *);
+GLAPI void APIENTRY glVariantsvEXT (GLuint, const GLshort *);
+GLAPI void APIENTRY glVariantivEXT (GLuint, const GLint *);
+GLAPI void APIENTRY glVariantfvEXT (GLuint, const GLfloat *);
+GLAPI void APIENTRY glVariantdvEXT (GLuint, const GLdouble *);
+GLAPI void APIENTRY glVariantubvEXT (GLuint, const GLubyte *);
+GLAPI void APIENTRY glVariantusvEXT (GLuint, const GLushort *);
+GLAPI void APIENTRY glVariantuivEXT (GLuint, const GLuint *);
+GLAPI void APIENTRY glVariantPointerEXT (GLuint, GLenum, GLuint, const GLvoid *);
+GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint);
+GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint);
+GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum, GLenum);
+GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum, GLenum);
+GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum, GLenum, GLenum);
+GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum, GLenum);
+GLAPI GLuint APIENTRY glBindParameterEXT (GLenum);
+GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint, GLenum);
+GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint, GLenum, GLboolean *);
+GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetVariantPointervEXT (GLuint, GLenum, GLvoid* *);
+GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint, GLenum, GLboolean *);
+GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint, GLenum, GLboolean *);
+GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint, GLenum, GLfloat *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void);
+typedef void (APIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void);
+typedef void (APIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id);
+typedef GLuint (APIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range);
+typedef void (APIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id);
+typedef void (APIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
+typedef void (APIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
+typedef void (APIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
+typedef void (APIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+typedef void (APIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+typedef void (APIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
+typedef void (APIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
+typedef GLuint (APIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
+typedef void (APIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr);
+typedef void (APIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr);
+typedef void (APIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr);
+typedef void (APIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr);
+typedef void (APIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr);
+typedef void (APIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr);
+typedef void (APIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr);
+typedef void (APIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr);
+typedef void (APIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr);
+typedef void (APIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr);
+typedef void (APIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr);
+typedef void (APIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
+typedef void (APIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
+typedef GLuint (APIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value);
+typedef GLuint (APIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value);
+typedef GLuint (APIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value);
+typedef GLuint (APIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value);
+typedef GLuint (APIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value);
+typedef GLboolean (APIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap);
+typedef void (APIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+typedef void (APIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data);
+typedef void (APIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+typedef void (APIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+#endif
+
+#ifndef GL_ATI_vertex_streams
+#define GL_ATI_vertex_streams 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexStream1sATI (GLenum, GLshort);
+GLAPI void APIENTRY glVertexStream1svATI (GLenum, const GLshort *);
+GLAPI void APIENTRY glVertexStream1iATI (GLenum, GLint);
+GLAPI void APIENTRY glVertexStream1ivATI (GLenum, const GLint *);
+GLAPI void APIENTRY glVertexStream1fATI (GLenum, GLfloat);
+GLAPI void APIENTRY glVertexStream1fvATI (GLenum, const GLfloat *);
+GLAPI void APIENTRY glVertexStream1dATI (GLenum, GLdouble);
+GLAPI void APIENTRY glVertexStream1dvATI (GLenum, const GLdouble *);
+GLAPI void APIENTRY glVertexStream2sATI (GLenum, GLshort, GLshort);
+GLAPI void APIENTRY glVertexStream2svATI (GLenum, const GLshort *);
+GLAPI void APIENTRY glVertexStream2iATI (GLenum, GLint, GLint);
+GLAPI void APIENTRY glVertexStream2ivATI (GLenum, const GLint *);
+GLAPI void APIENTRY glVertexStream2fATI (GLenum, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexStream2fvATI (GLenum, const GLfloat *);
+GLAPI void APIENTRY glVertexStream2dATI (GLenum, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexStream2dvATI (GLenum, const GLdouble *);
+GLAPI void APIENTRY glVertexStream3sATI (GLenum, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glVertexStream3svATI (GLenum, const GLshort *);
+GLAPI void APIENTRY glVertexStream3iATI (GLenum, GLint, GLint, GLint);
+GLAPI void APIENTRY glVertexStream3ivATI (GLenum, const GLint *);
+GLAPI void APIENTRY glVertexStream3fATI (GLenum, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexStream3fvATI (GLenum, const GLfloat *);
+GLAPI void APIENTRY glVertexStream3dATI (GLenum, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexStream3dvATI (GLenum, const GLdouble *);
+GLAPI void APIENTRY glVertexStream4sATI (GLenum, GLshort, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glVertexStream4svATI (GLenum, const GLshort *);
+GLAPI void APIENTRY glVertexStream4iATI (GLenum, GLint, GLint, GLint, GLint);
+GLAPI void APIENTRY glVertexStream4ivATI (GLenum, const GLint *);
+GLAPI void APIENTRY glVertexStream4fATI (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glVertexStream4fvATI (GLenum, const GLfloat *);
+GLAPI void APIENTRY glVertexStream4dATI (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glVertexStream4dvATI (GLenum, const GLdouble *);
+GLAPI void APIENTRY glNormalStream3bATI (GLenum, GLbyte, GLbyte, GLbyte);
+GLAPI void APIENTRY glNormalStream3bvATI (GLenum, const GLbyte *);
+GLAPI void APIENTRY glNormalStream3sATI (GLenum, GLshort, GLshort, GLshort);
+GLAPI void APIENTRY glNormalStream3svATI (GLenum, const GLshort *);
+GLAPI void APIENTRY glNormalStream3iATI (GLenum, GLint, GLint, GLint);
+GLAPI void APIENTRY glNormalStream3ivATI (GLenum, const GLint *);
+GLAPI void APIENTRY glNormalStream3fATI (GLenum, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glNormalStream3fvATI (GLenum, const GLfloat *);
+GLAPI void APIENTRY glNormalStream3dATI (GLenum, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glNormalStream3dvATI (GLenum, const GLdouble *);
+GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum);
+GLAPI void APIENTRY glVertexBlendEnviATI (GLenum, GLint);
+GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum, GLfloat);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords);
+typedef void (APIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
+typedef void (APIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords);
+typedef void (APIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz);
+typedef void (APIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
+typedef void (APIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz);
+typedef void (APIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
+typedef void (APIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
+typedef void (APIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
+typedef void (APIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
+typedef void (APIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
+typedef void (APIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream);
+typedef void (APIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param);
+#endif
+
+#ifndef GL_ATI_element_array
+#define GL_ATI_element_array 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glElementPointerATI (GLenum, const GLvoid *);
+GLAPI void APIENTRY glDrawElementArrayATI (GLenum, GLsizei);
+GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum, GLuint, GLuint, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count);
+typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);
+#endif
+
+#ifndef GL_SUN_mesh_array
+#define GL_SUN_mesh_array 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum, GLint, GLsizei, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width);
+#endif
+
+#ifndef GL_SUN_slice_accum
+#define GL_SUN_slice_accum 1
+#endif
+
+#ifndef GL_NV_multisample_filter_hint
+#define GL_NV_multisample_filter_hint 1
+#endif
+
+#ifndef GL_NV_depth_clamp
+#define GL_NV_depth_clamp 1
+#endif
+
+#ifndef GL_NV_occlusion_query
+#define GL_NV_occlusion_query 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei, GLuint *);
+GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei, const GLuint *);
+GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint);
+GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint);
+GLAPI void APIENTRY glEndOcclusionQueryNV (void);
+GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint, GLenum, GLint *);
+GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint, GLenum, GLuint *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids);
+typedef GLboolean (APIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id);
+typedef void (APIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
+typedef void (APIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void);
+typedef void (APIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params);
+#endif
+
+#ifndef GL_NV_point_sprite
+#define GL_NV_point_sprite 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPointParameteriNV (GLenum, GLint);
+GLAPI void APIENTRY glPointParameterivNV (GLenum, const GLint *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
+#endif
+
+#ifndef GL_NV_texture_shader3
+#define GL_NV_texture_shader3 1
+#endif
+
+#ifndef GL_NV_vertex_program1_1
+#define GL_NV_vertex_program1_1 1
+#endif
+
+#ifndef GL_EXT_shadow_funcs
+#define GL_EXT_shadow_funcs 1
+#endif
+
+#ifndef GL_EXT_stencil_two_side
+#define GL_EXT_stencil_two_side 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
+#endif
+
+#ifndef GL_ATI_text_fragment_shader
+#define GL_ATI_text_fragment_shader 1
+#endif
+
+#ifndef GL_APPLE_client_storage
+#define GL_APPLE_client_storage 1
+#endif
+
+#ifndef GL_APPLE_element_array
+#define GL_APPLE_element_array 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glElementPointerAPPLE (GLenum, const GLvoid *);
+GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum, GLint, GLsizei);
+GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, GLint, GLsizei);
+GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum, const GLint *, const GLsizei *, GLsizei);
+GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count);
+typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
+typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
+typedef void (APIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
+#endif
+
+#ifndef GL_APPLE_fence
+#define GL_APPLE_fence 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGenFencesAPPLE (GLsizei, GLuint *);
+GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei, const GLuint *);
+GLAPI void APIENTRY glSetFenceAPPLE (GLuint);
+GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint);
+GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint);
+GLAPI void APIENTRY glFinishFenceAPPLE (GLuint);
+GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum, GLuint);
+GLAPI void APIENTRY glFinishObjectAPPLE (GLenum, GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences);
+typedef void (APIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences);
+typedef void (APIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence);
+typedef GLboolean (APIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence);
+typedef GLboolean (APIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence);
+typedef void (APIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence);
+typedef GLboolean (APIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name);
+typedef void (APIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name);
+#endif
+
+#ifndef GL_APPLE_vertex_array_object
+#define GL_APPLE_vertex_array_object 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint);
+GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei, const GLuint *);
+GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei, const GLuint *);
+GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
+typedef void (APIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays);
+typedef void (APIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays);
+typedef GLboolean (APIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
+#endif
+
+#ifndef GL_APPLE_vertex_array_range
+#define GL_APPLE_vertex_array_range 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei, GLvoid *);
+GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei, GLvoid *);
+GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum, GLint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer);
+typedef void (APIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer);
+typedef void (APIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param);
+#endif
+
+#ifndef GL_APPLE_ycbcr_422
+#define GL_APPLE_ycbcr_422 1
+#endif
+
+#ifndef GL_S3_s3tc
+#define GL_S3_s3tc 1
+#endif
+
+#ifndef GL_ATI_draw_buffers
+#define GL_ATI_draw_buffers 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawBuffersATI (GLsizei, const GLenum *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs);
+#endif
+
+#ifndef GL_ATI_texture_env_combine3
+#define GL_ATI_texture_env_combine3 1
+#endif
+
+#ifndef GL_ATI_texture_float
+#define GL_ATI_texture_float 1
+#endif
+
+#ifndef GL_NV_float_buffer
+#define GL_NV_float_buffer 1
+#endif
+
+#ifndef GL_NV_fragment_program
+#define GL_NV_fragment_program 1
+/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat);
+GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble);
+GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint, GLsizei, const GLubyte *, const GLfloat *);
+GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint, GLsizei, const GLubyte *, const GLdouble *);
+GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint, GLsizei, const GLubyte *, GLfloat *);
+GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint, GLsizei, const GLubyte *, GLdouble *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
+typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
+typedef void (APIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
+#endif
+
+#ifndef GL_NV_half_float
+#define GL_NV_half_float 1
+/* GL type for representing NVIDIA "half" floating point type in host memory */
+/* Only used by this extension for now; later needs to be moved earlier in glext.h */
+typedef unsigned short GLhalfNV;
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertex2hNV (GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glVertex3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glVertex4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glNormal3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glColor4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV);
+GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum, GLhalfNV);
+GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum, const GLhalfNV *);
+GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum, const GLhalfNV *);
+GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum, const GLhalfNV *);
+GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum, const GLhalfNV *);
+GLAPI void APIENTRY glFogCoordhNV (GLhalfNV);
+GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *);
+GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *);
+GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV);
+GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *);
+GLAPI void APIENTRY glVertexAttrib1hNV (GLuint, GLhalfNV);
+GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint, const GLhalfNV *);
+GLAPI void APIENTRY glVertexAttrib2hNV (GLuint, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint, const GLhalfNV *);
+GLAPI void APIENTRY glVertexAttrib3hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint, const GLhalfNV *);
+GLAPI void APIENTRY glVertexAttrib4hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV);
+GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint, const GLhalfNV *);
+GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint, GLsizei, const GLhalfNV *);
+GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint, GLsizei, const GLhalfNV *);
+GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint, GLsizei, const GLhalfNV *);
+GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint, GLsizei, const GLhalfNV *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y);
+typedef void (APIENTRY * PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void (APIENTRY * PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void (APIENTRY * PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
+typedef void (APIENTRY * PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void (APIENTRY * PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
+typedef void (APIENTRY * PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLTEXCOORD1HNVPROC) (GLhalfNV s);
+typedef void (APIENTRY * PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t);
+typedef void (APIENTRY * PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void (APIENTRY * PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void (APIENTRY * PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLFOGCOORDHNVPROC) (GLhalfNV fog);
+typedef void (APIENTRY * PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void (APIENTRY * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight);
+typedef void (APIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void (APIENTRY * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (APIENTRY * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+#endif
+
+#ifndef GL_NV_pixel_data_range
+#define GL_NV_pixel_data_range 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPixelDataRangeNV (GLenum, GLsizei, GLvoid *);
+GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer);
+typedef void (APIENTRY * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target);
+#endif
+
+#ifndef GL_NV_primitive_restart
+#define GL_NV_primitive_restart 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPrimitiveRestartNV (void);
+GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void);
+typedef void (APIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index);
+#endif
+
+#ifndef GL_NV_texture_expand_normal
+#define GL_NV_texture_expand_normal 1
+#endif
+
+#ifndef GL_NV_vertex_program2
+#define GL_NV_vertex_program2 1
+#endif
+
+#ifndef GL_ATI_map_object_buffer
+#define GL_ATI_map_object_buffer 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint);
+GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef GLvoid* (APIENTRY * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer);
+typedef void (APIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer);
+#endif
+
+#ifndef GL_ATI_separate_stencil
+#define GL_ATI_separate_stencil 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glStencilOpSeparateATI (GLenum, GLenum, GLenum, GLenum);
+GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum, GLenum, GLint, GLuint);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (APIENTRY * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+#endif
+
+#ifndef GL_ATI_vertex_attrib_array_object
+#define GL_ATI_vertex_attrib_array_object 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint);
+GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint, GLenum, GLfloat *);
+GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint, GLenum, GLint *);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (APIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params);
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext-extra.h b/plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext-extra.h
new file mode 100644
index 00000000..17a8c9ee
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext-extra.h
@@ -0,0 +1,144 @@
+/* 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.
+ */
+
+/*
+ * Additional GLX extensions.
+ */
+
+#ifndef __glxext_extra_h_
+#define __glxext_extra_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+/*
+ * 3DFX
+ */
+
+/*
+ * ARB
+ */
+
+/*
+ * EXT
+ */
+
+/* unknown */
+#ifndef GLX_EXT_scene_marker
+/*
+#define GLX_SCENE_REQUIRED_EXT 0
+*/
+#endif
+
+/* unknown */
+#ifndef GLX_EXT_scene_marker
+/* #define GLX_EXT_scene_marker 1 */
+#endif
+
+/*
+ * MESA
+ */
+
+#ifndef GLX_MESA_agp_offset
+#define GLX_MESA_agp_offset 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern GLuint glXGetAGPOffsetMESA (const GLvoid *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef GLuint ( * PFNGLXGETAGPOFFSETMESAPROC) (const GLvoid *pointer);
+#endif
+
+/*
+ * NV
+ */
+
+#ifndef GLX_NV_float_buffer
+#define GLX_FLOAT_COMPONENTS_NV 0x20B0
+#endif
+
+#ifndef GLX_NV_float_buffer
+#define GLX_NV_float_buffer 1
+#endif
+
+#ifndef GLX_NV_vertex_array_range
+#define GLX_NV_vertex_array_range 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern void *glXAllocateMemoryNV (GLsizei, GLfloat, GLfloat, GLfloat);
+extern void glXFreeMemoryNV (void *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer);
+#endif
+
+/*
+ * OML
+ */
+
+/*
+ * SGI
+ */
+
+/*
+ * SGIS
+ */
+
+/* unknown */
+#ifndef GLX_SGIS_color_range
+/*
+#define GLX_EXTENDED_RANGE_SGIS 0
+#define GLX_MIN_RED_SGIS 0
+#define GLX_MAX_RED_SGIS 0
+#define GLX_MIN_GREEN_SGIS 0
+#define GLX_MAX_GREEN_SGIS 0
+#define GLX_MIN_BLUE_SGIS 0
+#define GLX_MAX_BLUE_SGIS 0
+#define GLX_MIN_ALPHA_SGIS 0
+#define GLX_MAX_ALPHA_SGIS 0
+*/
+#endif
+
+/* unknown */
+#ifndef GLX_SGIS_color_range
+/* #define GLX_SGIS_color_range 1 */
+#endif
+
+/*
+ * SGIX
+ */
+
+/*
+ * SUN
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __glxext_extra_h_ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext.h b/plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext.h
new file mode 100644
index 00000000..39b8ad6d
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext.h
@@ -0,0 +1,607 @@
+#ifndef __glxext_h_
+#define __glxext_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** License Applicability. Except to the extent portions of this file are
+** made subject to an alternative license as permitted in the SGI Free
+** Software License B, Version 1.1 (the "License"), the contents of this
+** file are subject only to the provisions of the License. You may not use
+** this file except in compliance with the License. You may obtain a copy
+** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
+** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
+**
+** http://oss.sgi.com/projects/FreeB
+**
+** Note that, as provided in the License, the Software is distributed on an
+** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
+** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
+** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
+** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
+**
+** Original Code. The Original Code is: OpenGL Sample Implementation,
+** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
+** Inc. The Original Code is Copyright (c) 1991-2002 Silicon Graphics, Inc.
+** Copyright in any portions created by third parties is as indicated
+** elsewhere herein. All Rights Reserved.
+**
+** Additional Notice Provisions: This software was created using the
+** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
+** not been independently verified as being compliant with the OpenGL(R)
+** version 1.2.1 Specification.
+*/
+
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+/*************************************************************/
+
+/* Header file version number, required by OpenGL ABI for Linux */
+/* glxext.h last updated 2002/03/22 */
+/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */
+#define GLX_GLXEXT_VERSION 5
+
+#ifndef GLX_VERSION_1_3
+#define GLX_WINDOW_BIT 0x00000001
+#define GLX_PIXMAP_BIT 0x00000002
+#define GLX_PBUFFER_BIT 0x00000004
+#define GLX_RGBA_BIT 0x00000001
+#define GLX_COLOR_INDEX_BIT 0x00000002
+#define GLX_PBUFFER_CLOBBER_MASK 0x08000000
+#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
+#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
+#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
+#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
+#define GLX_AUX_BUFFERS_BIT 0x00000010
+#define GLX_DEPTH_BUFFER_BIT 0x00000020
+#define GLX_STENCIL_BUFFER_BIT 0x00000040
+#define GLX_ACCUM_BUFFER_BIT 0x00000080
+#define GLX_CONFIG_CAVEAT 0x20
+#define GLX_X_VISUAL_TYPE 0x22
+#define GLX_TRANSPARENT_TYPE 0x23
+#define GLX_TRANSPARENT_INDEX_VALUE 0x24
+#define GLX_TRANSPARENT_RED_VALUE 0x25
+#define GLX_TRANSPARENT_GREEN_VALUE 0x26
+#define GLX_TRANSPARENT_BLUE_VALUE 0x27
+#define GLX_TRANSPARENT_ALPHA_VALUE 0x28
+#define GLX_DONT_CARE 0xFFFFFFFF
+#define GLX_NONE 0x8000
+#define GLX_SLOW_CONFIG 0x8001
+#define GLX_TRUE_COLOR 0x8002
+#define GLX_DIRECT_COLOR 0x8003
+#define GLX_PSEUDO_COLOR 0x8004
+#define GLX_STATIC_COLOR 0x8005
+#define GLX_GRAY_SCALE 0x8006
+#define GLX_STATIC_GRAY 0x8007
+#define GLX_TRANSPARENT_RGB 0x8008
+#define GLX_TRANSPARENT_INDEX 0x8009
+#define GLX_VISUAL_ID 0x800B
+#define GLX_SCREEN 0x800C
+#define GLX_NON_CONFORMANT_CONFIG 0x800D
+#define GLX_DRAWABLE_TYPE 0x8010
+#define GLX_RENDER_TYPE 0x8011
+#define GLX_X_RENDERABLE 0x8012
+#define GLX_FBCONFIG_ID 0x8013
+#define GLX_RGBA_TYPE 0x8014
+#define GLX_COLOR_INDEX_TYPE 0x8015
+#define GLX_MAX_PBUFFER_WIDTH 0x8016
+#define GLX_MAX_PBUFFER_HEIGHT 0x8017
+#define GLX_MAX_PBUFFER_PIXELS 0x8018
+#define GLX_PRESERVED_CONTENTS 0x801B
+#define GLX_LARGEST_PBUFFER 0x801C
+#define GLX_WIDTH 0x801D
+#define GLX_HEIGHT 0x801E
+#define GLX_EVENT_MASK 0x801F
+#define GLX_DAMAGED 0x8020
+#define GLX_SAVED 0x8021
+#define GLX_WINDOW 0x8022
+#define GLX_PBUFFER 0x8023
+#define GLX_PBUFFER_HEIGHT 0x8040
+#define GLX_PBUFFER_WIDTH 0x8041
+#endif
+
+#ifndef GLX_VERSION_1_4
+#define GLX_SAMPLE_BUFFERS 100000
+#define GLX_SAMPLES 100001
+#endif
+
+#ifndef GLX_ARB_get_proc_address
+#endif
+
+#ifndef GLX_ARB_multisample
+#define GLX_SAMPLE_BUFFERS_ARB 100000
+#define GLX_SAMPLES_ARB 100001
+#endif
+
+#ifndef GLX_SGIS_multisample
+#define GLX_SAMPLE_BUFFERS_SGIS 100000
+#define GLX_SAMPLES_SGIS 100001
+#endif
+
+#ifndef GLX_EXT_visual_info
+#define GLX_X_VISUAL_TYPE_EXT 0x22
+#define GLX_TRANSPARENT_TYPE_EXT 0x23
+#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
+#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
+#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
+#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
+#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
+#define GLX_NONE_EXT 0x8000
+#define GLX_TRUE_COLOR_EXT 0x8002
+#define GLX_DIRECT_COLOR_EXT 0x8003
+#define GLX_PSEUDO_COLOR_EXT 0x8004
+#define GLX_STATIC_COLOR_EXT 0x8005
+#define GLX_GRAY_SCALE_EXT 0x8006
+#define GLX_STATIC_GRAY_EXT 0x8007
+#define GLX_TRANSPARENT_RGB_EXT 0x8008
+#define GLX_TRANSPARENT_INDEX_EXT 0x8009
+#endif
+
+#ifndef GLX_SGI_swap_control
+#endif
+
+#ifndef GLX_SGI_video_sync
+#endif
+
+#ifndef GLX_SGI_make_current_read
+#endif
+
+#ifndef GLX_SGIX_video_source
+#endif
+
+#ifndef GLX_EXT_visual_rating
+#define GLX_VISUAL_CAVEAT_EXT 0x20
+#define GLX_SLOW_VISUAL_EXT 0x8001
+#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
+/* reuse GLX_NONE_EXT */
+#endif
+
+#ifndef GLX_EXT_import_context
+#define GLX_SHARE_CONTEXT_EXT 0x800A
+#define GLX_VISUAL_ID_EXT 0x800B
+#define GLX_SCREEN_EXT 0x800C
+#endif
+
+#ifndef GLX_SGIX_fbconfig
+#define GLX_WINDOW_BIT_SGIX 0x00000001
+#define GLX_PIXMAP_BIT_SGIX 0x00000002
+#define GLX_RGBA_BIT_SGIX 0x00000001
+#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
+#define GLX_DRAWABLE_TYPE_SGIX 0x8010
+#define GLX_RENDER_TYPE_SGIX 0x8011
+#define GLX_X_RENDERABLE_SGIX 0x8012
+#define GLX_FBCONFIG_ID_SGIX 0x8013
+#define GLX_RGBA_TYPE_SGIX 0x8014
+#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
+/* reuse GLX_SCREEN_EXT */
+#endif
+
+#ifndef GLX_SGIX_pbuffer
+#define GLX_PBUFFER_BIT_SGIX 0x00000004
+#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
+#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
+#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
+#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
+#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
+#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
+#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
+#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
+#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
+#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
+#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
+#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
+#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
+#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
+#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
+#define GLX_PRESERVED_CONTENTS_SGIX 0x801B
+#define GLX_LARGEST_PBUFFER_SGIX 0x801C
+#define GLX_WIDTH_SGIX 0x801D
+#define GLX_HEIGHT_SGIX 0x801E
+#define GLX_EVENT_MASK_SGIX 0x801F
+#define GLX_DAMAGED_SGIX 0x8020
+#define GLX_SAVED_SGIX 0x8021
+#define GLX_WINDOW_SGIX 0x8022
+#define GLX_PBUFFER_SGIX 0x8023
+#endif
+
+#ifndef GLX_SGI_cushion
+#endif
+
+#ifndef GLX_SGIX_video_resize
+#define GLX_SYNC_FRAME_SGIX 0x00000000
+#define GLX_SYNC_SWAP_SGIX 0x00000001
+#endif
+
+#ifndef GLX_SGIX_dmbuffer
+#define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024
+#endif
+
+#ifndef GLX_SGIX_swap_group
+#endif
+
+#ifndef GLX_SGIX_swap_barrier
+#endif
+
+#ifndef GLX_SGIS_blended_overlay
+#define GLX_BLENDED_RGBA_SGIS 0x8025
+#endif
+
+#ifndef GLX_SGIS_shared_multisample
+#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
+#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
+#endif
+
+#ifndef GLX_SUN_get_transparent_index
+#endif
+
+#ifndef GLX_3DFX_multisample
+#define GLX_SAMPLE_BUFFERS_3DFX 0x8050
+#define GLX_SAMPLES_3DFX 0x8051
+#endif
+
+#ifndef GLX_MESA_copy_sub_buffer
+#endif
+
+#ifndef GLX_MESA_pixmap_colormap
+#endif
+
+#ifndef GLX_MESA_release_buffers
+#endif
+
+#ifndef GLX_MESA_set_3dfx_mode
+#define GLX_3DFX_WINDOW_MODE_MESA 0x1
+#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
+#endif
+
+#ifndef GLX_SGIX_visual_select_group
+#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028
+#endif
+
+#ifndef GLX_OML_swap_method
+#define GLX_SWAP_METHOD_OML 0x8060
+#define GLX_SWAP_EXCHANGE_OML 0x8061
+#define GLX_SWAP_COPY_OML 0x8062
+#define GLX_SWAP_UNDEFINED_OML 0x8063
+#endif
+
+#ifndef GLX_OML_sync_control
+#endif
+
+
+/*************************************************************/
+
+#ifndef GLX_ARB_get_proc_address
+typedef void (*__GLXextFuncPtr)(void);
+#endif
+
+#ifndef GLX_SGIX_video_source
+typedef XID GLXVideoSourceSGIX;
+#endif
+
+#ifndef GLX_SGIX_fbconfig
+typedef XID GLXFBConfigIDSGIX;
+typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
+#endif
+
+#ifndef GLX_SGIX_pbuffer
+typedef XID GLXPbufferSGIX;
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came for SendEvent request */
+ Display *display; /* display the event was read from */
+ GLXDrawable drawable; /* i.d. of Drawable */
+ int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
+ int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
+ unsigned int mask; /* mask indicating which buffers are affected*/
+ int x, y;
+ int width, height;
+ int count; /* if nonzero, at least this many more */
+} GLXBufferClobberEventSGIX;
+#endif
+
+#ifndef GLX_VERSION_1_3
+#define GLX_VERSION_1_3 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *);
+extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *);
+extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *);
+extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig);
+extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *);
+extern void glXDestroyWindow (Display *, GLXWindow);
+extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *);
+extern void glXDestroyPixmap (Display *, GLXPixmap);
+extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *);
+extern void glXDestroyPbuffer (Display *, GLXPbuffer);
+extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *);
+extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool);
+extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext);
+extern GLXDrawable glXGetCurrentReadDrawable (void);
+extern Display * glXGetCurrentDisplay (void);
+extern int glXQueryContext (Display *, GLXContext, int, int *);
+extern void glXSelectEvent (Display *, GLXDrawable, unsigned long);
+extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
+typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
+typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
+typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
+typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
+typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
+typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
+typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
+typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
+typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
+typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
+typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
+typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
+typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void);
+typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
+typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
+typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
+#endif
+
+#ifndef GLX_VERSION_1_4
+#define GLX_VERSION_1_4 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
+#endif
+
+#ifndef GLX_ARB_get_proc_address
+#define GLX_ARB_get_proc_address 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName);
+#endif
+
+#ifndef GLX_ARB_multisample
+#define GLX_ARB_multisample 1
+#endif
+
+#ifndef GLX_SGIS_multisample
+#define GLX_SGIS_multisample 1
+#endif
+
+#ifndef GLX_EXT_visual_info
+#define GLX_EXT_visual_info 1
+#endif
+
+#ifndef GLX_SGI_swap_control
+#define GLX_SGI_swap_control 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern int glXSwapIntervalSGI (int);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval);
+#endif
+
+#ifndef GLX_SGI_video_sync
+#define GLX_SGI_video_sync 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern int glXGetVideoSyncSGI (unsigned int *);
+extern int glXWaitVideoSyncSGI (int, int, unsigned int *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count);
+typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count);
+#endif
+
+#ifndef GLX_SGI_make_current_read
+#define GLX_SGI_make_current_read 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext);
+extern GLXDrawable glXGetCurrentReadDrawableSGI (void);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
+#endif
+
+#ifndef GLX_SGIX_video_source
+#define GLX_SGIX_video_source 1
+#ifdef _VL_H
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode);
+extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode);
+typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource);
+#endif
+
+#endif /* _VL_H */
+#ifndef GLX_EXT_visual_rating
+#define GLX_EXT_visual_rating 1
+#endif
+
+#ifndef GLX_EXT_import_context
+#define GLX_EXT_import_context 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern Display * glXGetCurrentDisplayEXT (void);
+extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *);
+extern GLXContextID glXGetContextIDEXT (const GLXContext);
+extern GLXContext glXImportContextEXT (Display *, GLXContextID);
+extern void glXFreeContextEXT (Display *, GLXContext);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void);
+typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value);
+typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
+typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID);
+typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context);
+#endif
+
+#ifndef GLX_SGIX_fbconfig
+#define GLX_SGIX_fbconfig 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *);
+extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *);
+extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap);
+extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool);
+extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX);
+extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
+typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements);
+typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap);
+typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
+typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config);
+typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis);
+#endif
+
+#ifndef GLX_SGIX_pbuffer
+#define GLX_SGIX_pbuffer 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *);
+extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX);
+extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *);
+extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long);
+extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
+typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf);
+typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
+typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask);
+typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask);
+#endif
+
+#ifndef GLX_SGI_cushion
+#define GLX_SGI_cushion 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern void glXCushionSGI (Display *, Window, float);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion);
+#endif
+
+#ifndef GLX_SGIX_video_resize
+#define GLX_SGIX_video_resize 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern int glXBindChannelToWindowSGIX (Display *, int, int, Window);
+extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int);
+extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *);
+extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *);
+extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window);
+typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h);
+typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
+typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
+typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype);
+#endif
+
+#ifndef GLX_SGIX_dmbuffer
+#define GLX_SGIX_dmbuffer 1
+#ifdef _DM_BUFFER_H_
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer);
+#endif
+
+#endif /* _DM_BUFFER_H_ */
+#ifndef GLX_SGIX_swap_group
+#define GLX_SGIX_swap_group 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
+#endif
+
+#ifndef GLX_SGIX_swap_barrier
+#define GLX_SGIX_swap_barrier 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int);
+extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier);
+typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max);
+#endif
+
+#ifndef GLX_SUN_get_transparent_index
+#define GLX_SUN_get_transparent_index 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex);
+#endif
+
+#ifndef GLX_MESA_copy_sub_buffer
+#define GLX_MESA_copy_sub_buffer 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
+#endif
+
+#ifndef GLX_MESA_pixmap_colormap
+#define GLX_MESA_pixmap_colormap 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
+#endif
+
+#ifndef GLX_MESA_release_buffers
+#define GLX_MESA_release_buffers 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable);
+#endif
+
+#ifndef GLX_MESA_set_3dfx_mode
+#define GLX_MESA_set_3dfx_mode 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern Bool glXSet3DfxModeMESA (int);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode);
+#endif
+
+#ifndef GLX_SGIX_visual_select_group
+#define GLX_SGIX_visual_select_group 1
+#endif
+
+#ifndef GLX_OML_swap_method
+#define GLX_OML_swap_method 1
+#endif
+
+#ifndef GLX_OML_sync_control
+#define GLX_OML_sync_control 1
+#if defined(__STDC_VERSION__)
+#if __STDC_VERSION__ >= 199901L
+/* Include ISO C99 integer types for OML_sync_control; need a better test */
+#include <inttypes.h>
+
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern Bool glXGetSyncValuesOML (Display *, GLXDrawable, int64_t *, int64_t *, int64_t *);
+extern Bool glXGetMscRateOML (Display *, GLXDrawable, int32_t *, int32_t *);
+extern int64_t glXSwapBuffersMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t);
+extern Bool glXWaitForMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *);
+extern Bool glXWaitForSbcOML (Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *);
+#endif /* GLX_GLXEXT_PROTOTYPES */
+typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
+typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
+typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
+typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc);
+typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
+#endif
+
+#endif /* C99 version test */
+#endif /* STDC test */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/list-ext.pl b/plugins/gtkui/gtkglext-gtk2/gdk/glext/list-ext.pl
new file mode 100755
index 00000000..80ada4e7
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/list-ext.pl
@@ -0,0 +1,42 @@
+#!/usr/bin/perl -w
+#
+# list-ext.pl
+#
+# list OpenGL extensions.
+#
+# written by Naofumi Yasufuku <naofumi@users.sourceforge.net>
+#
+
+@glext_headers = ("glext.h", "glext-extra.h");
+@glxext_headers = ("glxext.h", "glxext-extra.h");
+@wglext_headers = ("wglext.h", "wglext-extra.h");
+
+if (!@ARGV) {
+ @input_headers = (@glext_headers, @glxext_headers, @wglext_headers);
+} elsif ($ARGV[0] eq "--gl") {
+ @input_headers = @glext_headers;
+} elsif ($ARGV[0] eq "--glx") {
+ @input_headers = @glxext_headers;
+} elsif ($ARGV[0] eq "--wgl") {
+ @input_headers = @wglext_headers;
+}
+
+foreach $in (@input_headers) {
+ open(IN, $in) || die "cannot open $in";
+ while (<IN>) {
+ chomp;
+ if (/#ifndef\s+(GL|GLX|WGL)_[a-zA-Z0-9]+_[a-z0-9_]+/) {
+ @line = split;
+ push(@tmp_exts, $line[1]);
+ }
+ }
+ close(IN);
+}
+
+@exts = sort(@tmp_exts);
+print "$exts[0]\n";
+for ($i = 1; $i <= $#exts; $i++) {
+ if ($exts[$i] ne $exts[$i-1]) {
+ print "$exts[$i]\n";
+ }
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext-extra.h b/plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext-extra.h
new file mode 100644
index 00000000..ceba3275
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext-extra.h
@@ -0,0 +1,116 @@
+/* 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.
+ */
+
+/*
+ * Additional WGL extensions.
+ */
+
+#ifndef __wglext_extra_h_
+#define __wglext_extra_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+/*
+ * 3DFX
+ */
+
+/*
+ * ARB
+ */
+
+/*
+ * ATI
+ */
+
+#ifndef WGL_ATI_pixel_format_float
+#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
+#define GL_TYPE_RGBA_FLOAT_ATI 0x8820
+#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
+#endif
+
+#ifndef WGL_ATI_pixel_format_float
+#define WGL_ATI_pixel_format_float 1
+#endif
+
+/*
+ * 3DFX
+ */
+
+/*
+ * ARB
+ */
+
+/*
+ * EXT
+ */
+
+/*
+ * I3D
+ */
+
+#ifndef WGL_I3D_unknown_genlock_extension_name
+#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
+#define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045
+#define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046
+#define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047
+#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
+#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
+#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
+#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
+#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
+#endif
+
+#ifndef WGL_I3D_unknown_gamma_extension_name
+#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
+#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
+#endif
+
+#ifndef WGL_I3D_unknown_digital_video_cursor_extension_name
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
+#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
+#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
+#endif
+
+/*
+ * NV
+ */
+
+/*
+ * OML
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __wglext_extra_h_ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext.h b/plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext.h
new file mode 100644
index 00000000..44746870
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext.h
@@ -0,0 +1,608 @@
+#ifndef __wglext_h_
+#define __wglext_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** License Applicability. Except to the extent portions of this file are
+** made subject to an alternative license as permitted in the SGI Free
+** Software License B, Version 1.1 (the "License"), the contents of this
+** file are subject only to the provisions of the License. You may not use
+** this file except in compliance with the License. You may obtain a copy
+** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
+** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
+**
+** http://oss.sgi.com/projects/FreeB
+**
+** Note that, as provided in the License, the Software is distributed on an
+** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
+** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
+** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
+** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
+**
+** Original Code. The Original Code is: OpenGL Sample Implementation,
+** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
+** Inc. The Original Code is Copyright (c) 1991-2002 Silicon Graphics, Inc.
+** Copyright in any portions created by third parties is as indicated
+** elsewhere herein. All Rights Reserved.
+**
+** Additional Notice Provisions: This software was created using the
+** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
+** not been independently verified as being compliant with the OpenGL(R)
+** version 1.2.1 Specification.
+*/
+
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+/*************************************************************/
+
+/* Header file version number */
+/* wglext.h last updated 2002/03/22 */
+/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */
+#define WGL_WGLEXT_VERSION 4
+
+#ifndef WGL_ARB_buffer_region
+#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
+#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
+#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
+#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
+#endif
+
+#ifndef WGL_ARB_multisample
+#define WGL_SAMPLE_BUFFERS_ARB 0x2041
+#define WGL_SAMPLES_ARB 0x2042
+#endif
+
+#ifndef WGL_ARB_extensions_string
+#endif
+
+#ifndef WGL_ARB_pixel_format
+#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
+#define WGL_DRAW_TO_WINDOW_ARB 0x2001
+#define WGL_DRAW_TO_BITMAP_ARB 0x2002
+#define WGL_ACCELERATION_ARB 0x2003
+#define WGL_NEED_PALETTE_ARB 0x2004
+#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
+#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
+#define WGL_SWAP_METHOD_ARB 0x2007
+#define WGL_NUMBER_OVERLAYS_ARB 0x2008
+#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
+#define WGL_TRANSPARENT_ARB 0x200A
+#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
+#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
+#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
+#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
+#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
+#define WGL_SHARE_DEPTH_ARB 0x200C
+#define WGL_SHARE_STENCIL_ARB 0x200D
+#define WGL_SHARE_ACCUM_ARB 0x200E
+#define WGL_SUPPORT_GDI_ARB 0x200F
+#define WGL_SUPPORT_OPENGL_ARB 0x2010
+#define WGL_DOUBLE_BUFFER_ARB 0x2011
+#define WGL_STEREO_ARB 0x2012
+#define WGL_PIXEL_TYPE_ARB 0x2013
+#define WGL_COLOR_BITS_ARB 0x2014
+#define WGL_RED_BITS_ARB 0x2015
+#define WGL_RED_SHIFT_ARB 0x2016
+#define WGL_GREEN_BITS_ARB 0x2017
+#define WGL_GREEN_SHIFT_ARB 0x2018
+#define WGL_BLUE_BITS_ARB 0x2019
+#define WGL_BLUE_SHIFT_ARB 0x201A
+#define WGL_ALPHA_BITS_ARB 0x201B
+#define WGL_ALPHA_SHIFT_ARB 0x201C
+#define WGL_ACCUM_BITS_ARB 0x201D
+#define WGL_ACCUM_RED_BITS_ARB 0x201E
+#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
+#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
+#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
+#define WGL_DEPTH_BITS_ARB 0x2022
+#define WGL_STENCIL_BITS_ARB 0x2023
+#define WGL_AUX_BUFFERS_ARB 0x2024
+#define WGL_NO_ACCELERATION_ARB 0x2025
+#define WGL_GENERIC_ACCELERATION_ARB 0x2026
+#define WGL_FULL_ACCELERATION_ARB 0x2027
+#define WGL_SWAP_EXCHANGE_ARB 0x2028
+#define WGL_SWAP_COPY_ARB 0x2029
+#define WGL_SWAP_UNDEFINED_ARB 0x202A
+#define WGL_TYPE_RGBA_ARB 0x202B
+#define WGL_TYPE_COLORINDEX_ARB 0x202C
+#endif
+
+#ifndef WGL_ARB_make_current_read
+#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
+#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
+#endif
+
+#ifndef WGL_ARB_pbuffer
+#define WGL_DRAW_TO_PBUFFER_ARB 0x202D
+#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
+#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
+#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
+#define WGL_PBUFFER_LARGEST_ARB 0x2033
+#define WGL_PBUFFER_WIDTH_ARB 0x2034
+#define WGL_PBUFFER_HEIGHT_ARB 0x2035
+#define WGL_PBUFFER_LOST_ARB 0x2036
+#endif
+
+#ifndef WGL_ARB_render_texture
+#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
+#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
+#define WGL_TEXTURE_FORMAT_ARB 0x2072
+#define WGL_TEXTURE_TARGET_ARB 0x2073
+#define WGL_MIPMAP_TEXTURE_ARB 0x2074
+#define WGL_TEXTURE_RGB_ARB 0x2075
+#define WGL_TEXTURE_RGBA_ARB 0x2076
+#define WGL_NO_TEXTURE_ARB 0x2077
+#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
+#define WGL_TEXTURE_1D_ARB 0x2079
+#define WGL_TEXTURE_2D_ARB 0x207A
+#define WGL_MIPMAP_LEVEL_ARB 0x207B
+#define WGL_CUBE_MAP_FACE_ARB 0x207C
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
+#define WGL_FRONT_LEFT_ARB 0x2083
+#define WGL_FRONT_RIGHT_ARB 0x2084
+#define WGL_BACK_LEFT_ARB 0x2085
+#define WGL_BACK_RIGHT_ARB 0x2086
+#define WGL_AUX0_ARB 0x2087
+#define WGL_AUX1_ARB 0x2088
+#define WGL_AUX2_ARB 0x2089
+#define WGL_AUX3_ARB 0x208A
+#define WGL_AUX4_ARB 0x208B
+#define WGL_AUX5_ARB 0x208C
+#define WGL_AUX6_ARB 0x208D
+#define WGL_AUX7_ARB 0x208E
+#define WGL_AUX8_ARB 0x208F
+#define WGL_AUX9_ARB 0x2090
+#endif
+
+#ifndef WGL_EXT_make_current_read
+#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
+#endif
+
+#ifndef WGL_EXT_pixel_format
+#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
+#define WGL_DRAW_TO_WINDOW_EXT 0x2001
+#define WGL_DRAW_TO_BITMAP_EXT 0x2002
+#define WGL_ACCELERATION_EXT 0x2003
+#define WGL_NEED_PALETTE_EXT 0x2004
+#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
+#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
+#define WGL_SWAP_METHOD_EXT 0x2007
+#define WGL_NUMBER_OVERLAYS_EXT 0x2008
+#define WGL_NUMBER_UNDERLAYS_EXT 0x2009
+#define WGL_TRANSPARENT_EXT 0x200A
+#define WGL_TRANSPARENT_VALUE_EXT 0x200B
+#define WGL_SHARE_DEPTH_EXT 0x200C
+#define WGL_SHARE_STENCIL_EXT 0x200D
+#define WGL_SHARE_ACCUM_EXT 0x200E
+#define WGL_SUPPORT_GDI_EXT 0x200F
+#define WGL_SUPPORT_OPENGL_EXT 0x2010
+#define WGL_DOUBLE_BUFFER_EXT 0x2011
+#define WGL_STEREO_EXT 0x2012
+#define WGL_PIXEL_TYPE_EXT 0x2013
+#define WGL_COLOR_BITS_EXT 0x2014
+#define WGL_RED_BITS_EXT 0x2015
+#define WGL_RED_SHIFT_EXT 0x2016
+#define WGL_GREEN_BITS_EXT 0x2017
+#define WGL_GREEN_SHIFT_EXT 0x2018
+#define WGL_BLUE_BITS_EXT 0x2019
+#define WGL_BLUE_SHIFT_EXT 0x201A
+#define WGL_ALPHA_BITS_EXT 0x201B
+#define WGL_ALPHA_SHIFT_EXT 0x201C
+#define WGL_ACCUM_BITS_EXT 0x201D
+#define WGL_ACCUM_RED_BITS_EXT 0x201E
+#define WGL_ACCUM_GREEN_BITS_EXT 0x201F
+#define WGL_ACCUM_BLUE_BITS_EXT 0x2020
+#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
+#define WGL_DEPTH_BITS_EXT 0x2022
+#define WGL_STENCIL_BITS_EXT 0x2023
+#define WGL_AUX_BUFFERS_EXT 0x2024
+#define WGL_NO_ACCELERATION_EXT 0x2025
+#define WGL_GENERIC_ACCELERATION_EXT 0x2026
+#define WGL_FULL_ACCELERATION_EXT 0x2027
+#define WGL_SWAP_EXCHANGE_EXT 0x2028
+#define WGL_SWAP_COPY_EXT 0x2029
+#define WGL_SWAP_UNDEFINED_EXT 0x202A
+#define WGL_TYPE_RGBA_EXT 0x202B
+#define WGL_TYPE_COLORINDEX_EXT 0x202C
+#endif
+
+#ifndef WGL_EXT_pbuffer
+#define WGL_DRAW_TO_PBUFFER_EXT 0x202D
+#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
+#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
+#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
+#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
+#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
+#define WGL_PBUFFER_LARGEST_EXT 0x2033
+#define WGL_PBUFFER_WIDTH_EXT 0x2034
+#define WGL_PBUFFER_HEIGHT_EXT 0x2035
+#endif
+
+#ifndef WGL_EXT_depth_float
+#define WGL_DEPTH_FLOAT_EXT 0x2040
+#endif
+
+#ifndef WGL_3DFX_multisample
+#define WGL_SAMPLE_BUFFERS_3DFX 0x2060
+#define WGL_SAMPLES_3DFX 0x2061
+#endif
+
+#ifndef WGL_EXT_multisample
+#define WGL_SAMPLE_BUFFERS_EXT 0x2041
+#define WGL_SAMPLES_EXT 0x2042
+#endif
+
+#ifndef WGL_I3D_digital_video_control
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
+#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
+#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
+#endif
+
+#ifndef WGL_I3D_gamma
+#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
+#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
+#endif
+
+#ifndef WGL_I3D_genlock
+#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
+#define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045
+#define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046
+#define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047
+#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
+#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
+#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
+#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
+#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
+#endif
+
+#ifndef WGL_I3D_image_buffer
+#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
+#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
+#endif
+
+#ifndef WGL_I3D_swap_frame_lock
+#endif
+
+#ifndef WGL_NV_render_depth_texture
+#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
+#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
+#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
+#define WGL_DEPTH_COMPONENT_NV 0x20A7
+#endif
+
+#ifndef WGL_NV_render_texture_rectangle
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
+#define WGL_TEXTURE_RECTANGLE_NV 0x20A2
+#endif
+
+#ifndef WGL_NV_float_buffer
+#define WGL_FLOAT_COMPONENTS_NV 0x20B0
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
+#define WGL_TEXTURE_FLOAT_R_NV 0x20B5
+#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
+#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
+#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
+#endif
+
+
+/*************************************************************/
+
+#ifndef WGL_ARB_pbuffer
+DECLARE_HANDLE(HPBUFFERARB);
+#endif
+#ifndef WGL_EXT_pbuffer
+DECLARE_HANDLE(HPBUFFEREXT);
+#endif
+
+#ifndef WGL_ARB_buffer_region
+#define WGL_ARB_buffer_region 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern HANDLE WINAPI wglCreateBufferRegionARB (HDC, int, UINT);
+extern VOID WINAPI wglDeleteBufferRegionARB (HANDLE);
+extern BOOL WINAPI wglSaveBufferRegionARB (HANDLE, int, int, int, int);
+extern BOOL WINAPI wglRestoreBufferRegionARB (HANDLE, int, int, int, int, int, int);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
+typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
+typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
+typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
+#endif
+
+#ifndef WGL_ARB_multisample
+#define WGL_ARB_multisample 1
+#endif
+
+#ifndef WGL_ARB_extensions_string
+#define WGL_ARB_extensions_string 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern const char * WINAPI wglGetExtensionsStringARB (HDC);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
+#endif
+
+#ifndef WGL_ARB_pixel_format
+#define WGL_ARB_pixel_format 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglGetPixelFormatAttribivARB (HDC, int, int, UINT, const int *, int *);
+extern BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC, int, int, UINT, const int *, FLOAT *);
+extern BOOL WINAPI wglChoosePixelFormatARB (HDC, const int *, const FLOAT *, UINT, int *, UINT *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
+typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
+typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+#endif
+
+#ifndef WGL_ARB_make_current_read
+#define WGL_ARB_make_current_read 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglMakeContextCurrentARB (HDC, HDC, HGLRC);
+extern HDC WINAPI wglGetCurrentReadDCARB (void);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void);
+#endif
+
+#ifndef WGL_ARB_pbuffer
+#define WGL_ARB_pbuffer 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern HPBUFFERARB WINAPI wglCreatePbufferARB (HDC, int, int, int, const int *);
+extern HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB);
+extern int WINAPI wglReleasePbufferDCARB (HPBUFFERARB, HDC);
+extern BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB);
+extern BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB, int, int *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
+typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
+typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
+typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
+#endif
+
+#ifndef WGL_ARB_render_texture
+#define WGL_ARB_render_texture 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglBindTexImageARB (HPBUFFERARB, int);
+extern BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB, int);
+extern BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB, const int *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);
+#endif
+
+#ifndef WGL_EXT_display_color_table
+#define WGL_EXT_display_color_table 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort);
+extern GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *, GLuint);
+extern GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort);
+extern VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id);
+typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length);
+typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id);
+typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id);
+#endif
+
+#ifndef WGL_EXT_extensions_string
+#define WGL_EXT_extensions_string 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern const char * WINAPI wglGetExtensionsStringEXT (void);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
+#endif
+
+#ifndef WGL_EXT_make_current_read
+#define WGL_EXT_make_current_read 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglMakeContextCurrentEXT (HDC, HDC, HGLRC);
+extern HDC WINAPI wglGetCurrentReadDCEXT (void);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void);
+#endif
+
+#ifndef WGL_EXT_pbuffer
+#define WGL_EXT_pbuffer 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC, int, int, int, const int *);
+extern HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT);
+extern int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT, HDC);
+extern BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT);
+extern BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT, int, int *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer);
+typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC);
+typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer);
+typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
+#endif
+
+#ifndef WGL_EXT_pixel_format
+#define WGL_EXT_pixel_format 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC, int, int, UINT, int *, int *);
+extern BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC, int, int, UINT, int *, FLOAT *);
+extern BOOL WINAPI wglChoosePixelFormatEXT (HDC, const int *, const FLOAT *, UINT, int *, UINT *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
+typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
+typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+#endif
+
+#ifndef WGL_EXT_swap_control
+#define WGL_EXT_swap_control 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglSwapIntervalEXT (int);
+extern int WINAPI wglGetSwapIntervalEXT (void);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
+typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
+#endif
+
+#ifndef WGL_EXT_depth_float
+#define WGL_EXT_depth_float 1
+#endif
+
+#ifndef WGL_NV_vertex_array_range
+#define WGL_NV_vertex_array_range 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern void* WINAPI wglAllocateMemoryNV (GLsizei, GLfloat, GLfloat, GLfloat);
+extern void WINAPI wglFreeMemoryNV (void *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
+#endif
+
+#ifndef WGL_3DFX_multisample
+#define WGL_3DFX_multisample 1
+#endif
+
+#ifndef WGL_EXT_multisample
+#define WGL_EXT_multisample 1
+#endif
+
+#ifndef WGL_OML_sync_control
+#define WGL_OML_sync_control 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglGetSyncValuesOML (HDC, INT64 *, INT64 *, INT64 *);
+extern BOOL WINAPI wglGetMscRateOML (HDC, INT32 *, INT32 *);
+extern INT64 WINAPI wglSwapBuffersMscOML (HDC, INT64, INT64, INT64);
+extern INT64 WINAPI wglSwapLayerBuffersMscOML (HDC, int, INT64, INT64, INT64);
+extern BOOL WINAPI wglWaitForMscOML (HDC, INT64, INT64, INT64, INT64 *, INT64 *, INT64 *);
+extern BOOL WINAPI wglWaitForSbcOML (HDC, INT64, INT64 *, INT64 *, INT64 *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator);
+typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
+typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
+typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
+#endif
+
+#ifndef WGL_I3D_digital_video_control
+#define WGL_I3D_digital_video_control 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC, int, int *);
+extern BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC, int, const int *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
+typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
+#endif
+
+#ifndef WGL_I3D_gamma
+#define WGL_I3D_gamma 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglGetGammaTableParametersI3D (HDC, int, int *);
+extern BOOL WINAPI wglSetGammaTableParametersI3D (HDC, int, const int *);
+extern BOOL WINAPI wglGetGammaTableI3D (HDC, int, USHORT *, USHORT *, USHORT *);
+extern BOOL WINAPI wglSetGammaTableI3D (HDC, int, const USHORT *, const USHORT *, const USHORT *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
+typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
+typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
+typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
+#endif
+
+#ifndef WGL_I3D_genlock
+#define WGL_I3D_genlock 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglEnableGenlockI3D (HDC);
+extern BOOL WINAPI wglDisableGenlockI3D (HDC);
+extern BOOL WINAPI wglIsEnabledGenlockI3D (HDC, BOOL *);
+extern BOOL WINAPI wglGenlockSourceI3D (HDC, UINT);
+extern BOOL WINAPI wglGetGenlockSourceI3D (HDC, UINT *);
+extern BOOL WINAPI wglGenlockSourceEdgeI3D (HDC, UINT);
+extern BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC, UINT *);
+extern BOOL WINAPI wglGenlockSampleRateI3D (HDC, UINT);
+extern BOOL WINAPI wglGetGenlockSampleRateI3D (HDC, UINT *);
+extern BOOL WINAPI wglGenlockSourceDelayI3D (HDC, UINT);
+extern BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC, UINT *);
+extern BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC, UINT *, UINT *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC);
+typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC);
+typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag);
+typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource);
+typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT *uSource);
+typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge);
+typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT *uEdge);
+typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate);
+typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate);
+typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay);
+typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay);
+typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
+#endif
+
+#ifndef WGL_I3D_image_buffer
+#define WGL_I3D_image_buffer 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern LPVOID WINAPI wglCreateImageBufferI3D (HDC, DWORD, UINT);
+extern BOOL WINAPI wglDestroyImageBufferI3D (HDC, LPVOID);
+extern BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC, const HANDLE *, const LPVOID *, const DWORD *, UINT);
+extern BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC, const LPVOID *, UINT);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags);
+typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress);
+typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
+typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count);
+#endif
+
+#ifndef WGL_I3D_swap_frame_lock
+#define WGL_I3D_swap_frame_lock 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglEnableFrameLockI3D (void);
+extern BOOL WINAPI wglDisableFrameLockI3D (void);
+extern BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *);
+extern BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void);
+typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void);
+typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag);
+typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag);
+#endif
+
+#ifndef WGL_I3D_swap_frame_usage
+#define WGL_I3D_swap_frame_usage 1
+#ifdef WGL_WGLEXT_PROTOTYPES
+extern BOOL WINAPI wglGetFrameUsageI3D (float *);
+extern BOOL WINAPI wglBeginFrameTrackingI3D (void);
+extern BOOL WINAPI wglEndFrameTrackingI3D (void);
+extern BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *, DWORD *, float *);
+#endif /* WGL_WGLEXT_PROTOTYPES */
+typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage);
+typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void);
+typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void);
+typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglconfig-win32.c b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglconfig-win32.c
new file mode 100644
index 00000000..50c1fbfe
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglconfig-win32.c
@@ -0,0 +1,908 @@
+/* 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.
+ */
+
+#include "gdkglwin32.h"
+#include "gdkglprivate-win32.h"
+#include "gdkglconfig-win32.h"
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+#include <gdk/gdkscreen.h>
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+static void gdk_gl_config_impl_win32_class_init (GdkGLConfigImplWin32Class *klass);
+static void gdk_gl_config_impl_win32_finalize (GObject *object);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_config_impl_win32_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLConfigImplWin32Class),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_config_impl_win32_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLConfigImplWin32),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+
+ type = g_type_register_static (GDK_TYPE_GL_CONFIG,
+ "GdkGLConfigImplWin32",
+ &type_info, 0);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_config_impl_win32_class_init (GdkGLConfigImplWin32Class *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_config_impl_win32_finalize;
+}
+
+static void
+gdk_gl_config_impl_win32_finalize (GObject *object)
+{
+ GdkGLConfigImplWin32 *impl = GDK_GL_CONFIG_IMPL_WIN32 (object);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ g_object_unref (G_OBJECT (impl->colormap));
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/*
+ * This code is based on lib/glut/win32_glx.c of GLUT by Nate Robins.
+ */
+static void
+gdk_gl_config_parse_attrib_list (const int *attrib_list,
+ PIXELFORMATDESCRIPTOR *pfd)
+{
+ int *p;
+ gboolean buffer_size_is_specified = FALSE;
+ BYTE buffer_size;
+ int layer_plane;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ memset (pfd, 0, sizeof (PIXELFORMATDESCRIPTOR));
+
+ /* Specifies the size of this data structure. */
+ pfd->nSize = sizeof (PIXELFORMATDESCRIPTOR);
+ /* Specifies the version of this data structure. This value should be set to 1. */
+ pfd->nVersion = 1;
+
+ /* Defaults. */
+
+ /* A set of bit flags that specify properties of the pixel buffer.
+ PFD_SUPPORT_GDI and PFD_DOUBLEBUFFER are mutually exclusive in
+ the current generic implementation. */
+ /* PFD_DRAW_TO_WINDOW or PFD_DRAW_TO_BITMAP is not specified at this stage.
+ The flag is set by gdk_gl_(window|pixmap)_new(). */
+ pfd->dwFlags = PFD_SUPPORT_OPENGL |
+ PFD_SUPPORT_GDI;
+
+ /* Specifies the type of pixel data. */
+ pfd->iPixelType = PFD_TYPE_COLORINDEX;
+
+ /* Specifies the number of color bitplanes in each color buffer.
+ For RGBA pixel types, it is the size of the color buffer, excluding the alpha bitplanes.
+ For color-index pixels, it is the size of the color-index buffer. */
+ pfd->cColorBits = 32; /* Max */
+
+ /* Ignored. Earlier implementations of OpenGL used this member,
+ but it is no longer used. */
+ layer_plane = 0;
+ pfd->iLayerType = PFD_MAIN_PLANE;
+
+ p = (int *) attrib_list;
+ while (*p != GDK_GL_ATTRIB_LIST_NONE)
+ {
+ switch (*p)
+ {
+ case GDK_GL_USE_GL:
+ /* The buffer supports OpenGL drawing. */
+ pfd->dwFlags |= PFD_SUPPORT_OPENGL;
+ break;
+ case GDK_GL_BUFFER_SIZE:
+ /* Specifies the number of color bitplanes in each color buffer. */
+ pfd->cColorBits = *(++p);
+ buffer_size_is_specified = TRUE;
+ break;
+ case GDK_GL_LEVEL:
+ layer_plane = *(++p);
+ /* Ignored. Earlier implementations of OpenGL used this member,
+ but it is no longer used. */
+ if (layer_plane > 0)
+ pfd->iLayerType = PFD_OVERLAY_PLANE;
+ else if (layer_plane < 0)
+ pfd->iLayerType = PFD_UNDERLAY_PLANE;
+ break;
+ case GDK_GL_RGBA:
+ /* RGBA pixels. */
+ pfd->iPixelType = PFD_TYPE_RGBA;
+ break;
+ case GDK_GL_DOUBLEBUFFER:
+ /* The buffer is double-buffered. */
+ pfd->dwFlags &= ~PFD_SUPPORT_GDI;
+ pfd->dwFlags |= PFD_DOUBLEBUFFER;
+ break;
+ case GDK_GL_STEREO:
+ /* The buffer is stereoscopic.
+ This flag is not supported in the current generic implementation. */
+ pfd->dwFlags |= PFD_STEREO;
+ break;
+ case GDK_GL_AUX_BUFFERS:
+ /* Specifies the number of auxiliary buffers.
+ Auxiliary buffers are not supported. */
+ pfd->cAuxBuffers = *(++p);
+ break;
+ case GDK_GL_RED_SIZE:
+ /* Specifies the number of red bitplanes in each RGBA color buffer.
+ Not used by ChoosePixelFormat. */
+ pfd->cRedBits = *(++p);
+ break;
+ case GDK_GL_GREEN_SIZE:
+ /* Specifies the number of green bitplanes in each RGBA color buffer.
+ Not used by ChoosePixelFormat. */
+ pfd->cGreenBits = *(++p);
+ break;
+ case GDK_GL_BLUE_SIZE:
+ /* Specifies the number of blue bitplanes in each RGBA color buffer.
+ Not used by ChoosePixelFormat. */
+ pfd->cBlueBits = *(++p);
+ break;
+ case GDK_GL_ALPHA_SIZE:
+ /* Specifies the number of alpha bitplanes in each RGBA color buffer.
+ Alpha bitplanes are not supported. */
+ pfd->cAlphaBits = *(++p);
+ break;
+ case GDK_GL_DEPTH_SIZE:
+ /* Specifies the depth of the depth (z-axis) buffer. */
+ pfd->cDepthBits = *(++p);
+ break;
+ case GDK_GL_STENCIL_SIZE:
+ /* Specifies the depth of the stencil buffer. */
+ pfd->cStencilBits = *(++p);
+ break;
+ case GDK_GL_ACCUM_RED_SIZE:
+ /* Specifies the number of red bitplanes in the accumulation buffer.
+ Not used by ChoosePixelFormat. */
+ pfd->cAccumRedBits = *(++p);
+ break;
+ case GDK_GL_ACCUM_GREEN_SIZE:
+ /* Specifies the number of green bitplanes in the accumulation buffer.
+ Not used by ChoosePixelFormat. */
+ pfd->cAccumGreenBits = *(++p);
+ break;
+ case GDK_GL_ACCUM_BLUE_SIZE:
+ /* Specifies the number of blue bitplanes in the accumulation buffer.
+ Not used by ChoosePixelFormat. */
+ pfd->cAccumBlueBits = *(++p);
+ break;
+ case GDK_GL_ACCUM_ALPHA_SIZE:
+ /* Specifies the number of alpha bitplanes in the accumulation buffer.
+ Not used by ChoosePixelFormat.*/
+ pfd->cAccumAlphaBits = *(++p);
+ break;
+ }
+ ++p;
+ }
+
+ /* If GDK_GL_BUFFER_SIZE is not specified. */
+ if (!buffer_size_is_specified)
+ {
+ buffer_size = pfd->cRedBits + pfd->cGreenBits + pfd->cBlueBits;
+ if (buffer_size != 0)
+ pfd->cColorBits = buffer_size;
+ }
+
+ /* Specifies the total number of bitplanes in the accumulation buffer. */
+ /* Nate Robins says ...
+ I believe that WGL only used the cAccumRedBits,
+ cAccumBlueBits, cAccumGreenBits, and cAccumAlphaBits fields
+ when returning info about the accumulation buffer precision.
+ Only cAccumBits is used for requesting an accumulation buffer. */
+ pfd->cAccumBits = pfd->cAccumRedBits +
+ pfd->cAccumGreenBits +
+ pfd->cAccumBlueBits +
+ pfd->cAccumAlphaBits;
+}
+
+/*
+ * Find an appropriate pixel format.
+ * Basic idea of this code is ripped from FLTK.
+ */
+/*< private >*/
+int
+_gdk_win32_gl_config_find_pixel_format (HDC hdc,
+ CONST PIXELFORMATDESCRIPTOR *req_pfd,
+ PIXELFORMATDESCRIPTOR *found_pfd)
+{
+ PIXELFORMATDESCRIPTOR pfd, chosen_pfd;
+ int pixel_format = 0;
+ int i;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ memset (&chosen_pfd, 0, sizeof (chosen_pfd));
+
+ for (i = 1; ; i++)
+ {
+ if (DescribePixelFormat (hdc, i, sizeof (pfd), &pfd) == 0)
+ break;
+
+ if (~(pfd.dwFlags) & req_pfd->dwFlags) continue;
+ if (pfd.iPixelType != req_pfd->iPixelType) continue;
+ if (pfd.cColorBits < req_pfd->cColorBits) continue;
+ if (pfd.cAlphaBits < req_pfd->cAlphaBits) continue;
+ if (pfd.cAccumBits < req_pfd->cAccumBits) continue;
+ if (pfd.cDepthBits < req_pfd->cDepthBits) continue;
+ if (pfd.cStencilBits < req_pfd->cStencilBits) continue;
+ if (pfd.cAuxBuffers < req_pfd->cAuxBuffers) continue;
+ /* if (pfd.iLayerType != req_pfd->iLayerType) continue; */
+
+ /* Check whether pfd is better than chosen_pfd. */
+ if (pixel_format != 0)
+ {
+ /* Offering overlay is better. */
+ if ((pfd.bReserved & 0x0f) && !(chosen_pfd.bReserved & 0x0f)) {}
+ /* More color bitplanes is better. */
+ else if (pfd.cColorBits > chosen_pfd.cColorBits) {}
+ /* pfd is not better than chosen_pfd. */
+ else continue;
+ }
+
+ pixel_format = i;
+ chosen_pfd = pfd;
+ }
+
+ *found_pfd = chosen_pfd;
+
+ return pixel_format;
+}
+
+/*
+ * Setup PFD.
+ */
+
+static gboolean
+gdk_gl_config_setup_pfd (CONST PIXELFORMATDESCRIPTOR *req_pfd,
+ PIXELFORMATDESCRIPTOR *pfd)
+{
+ HDC hdc;
+ PIXELFORMATDESCRIPTOR temp_pfd;
+ PIXELFORMATDESCRIPTOR w_pfd, b_pfd;
+ int w_pf, b_pf;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ /* Get DC. */
+ hdc = GetDC (NULL);
+ if (hdc == NULL)
+ {
+ g_warning ("cannot get DC");
+ return FALSE;
+ }
+
+ w_pfd = *req_pfd;
+ w_pfd.dwFlags &= ~PFD_DRAW_TO_BITMAP;
+ w_pfd.dwFlags |= PFD_DRAW_TO_WINDOW;
+ w_pf = _gdk_win32_gl_config_find_pixel_format (hdc, &w_pfd, &w_pfd);
+
+ GDK_GL_NOTE (MISC, g_message (" -- pixel format for windows = 0x%x", w_pf));
+ GDK_GL_NOTE (MISC, _gdk_win32_gl_print_pfd (&w_pfd));
+
+ b_pfd = *req_pfd;
+ b_pfd.dwFlags &= ~PFD_DRAW_TO_WINDOW;
+ b_pfd.dwFlags |= PFD_DRAW_TO_BITMAP;
+ b_pf = _gdk_win32_gl_config_find_pixel_format (hdc, &b_pfd, &b_pfd);
+
+ GDK_GL_NOTE (MISC, g_message (" -- pixel format for bitmaps = 0x%x", b_pf));
+ GDK_GL_NOTE (MISC, _gdk_win32_gl_print_pfd (&b_pfd));
+
+ /* Release DC. */
+ ReleaseDC (NULL, hdc);
+
+ if (w_pf == 0 && b_pf == 0)
+ return FALSE;
+
+ if (w_pf == 0)
+ {
+ temp_pfd = b_pfd;
+ temp_pfd.dwFlags = req_pfd->dwFlags;
+ }
+ else if (b_pf == 0)
+ {
+ temp_pfd = w_pfd;
+ temp_pfd.dwFlags = req_pfd->dwFlags;
+ }
+ else
+ {
+ temp_pfd = w_pfd;
+ temp_pfd.dwFlags = req_pfd->dwFlags;
+ if (temp_pfd.cColorBits > b_pfd.cColorBits)
+ {
+ temp_pfd.cColorBits = b_pfd.cColorBits;
+ temp_pfd.cRedBits = b_pfd.cRedBits;
+ temp_pfd.cRedShift = b_pfd.cRedShift;
+ temp_pfd.cGreenBits = b_pfd.cGreenBits;
+ temp_pfd.cGreenShift = b_pfd.cGreenShift;
+ temp_pfd.cBlueBits = b_pfd.cBlueBits;
+ temp_pfd.cBlueShift = b_pfd.cBlueShift;
+ }
+ if (temp_pfd.cAlphaBits > b_pfd.cAlphaBits)
+ {
+ temp_pfd.cAlphaBits = b_pfd.cAlphaBits;
+ temp_pfd.cAlphaShift = b_pfd.cAlphaShift;
+ }
+ if (temp_pfd.cAccumBits > b_pfd.cAccumBits)
+ {
+ temp_pfd.cAccumBits = b_pfd.cAccumBits;
+ temp_pfd.cAccumRedBits = b_pfd.cAccumRedBits;
+ temp_pfd.cAccumGreenBits = b_pfd.cAccumGreenBits;
+ temp_pfd.cAccumBlueBits = b_pfd.cAccumBlueBits;
+ temp_pfd.cAccumAlphaBits = b_pfd.cAccumAlphaBits;
+ }
+ temp_pfd.cDepthBits = MIN (temp_pfd.cDepthBits, b_pfd.cDepthBits);
+ temp_pfd.cStencilBits = MIN (temp_pfd.cStencilBits, b_pfd.cStencilBits);
+ temp_pfd.cAuxBuffers = MIN (temp_pfd.cAuxBuffers, b_pfd.cAuxBuffers);
+ }
+
+ *pfd = temp_pfd;
+
+ return TRUE;
+}
+
+/*
+ * Setup colormap.
+ */
+
+/*
+ * !!! RGB palette management should be implemented...
+ */
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+static GdkColormap *
+gdk_gl_config_setup_colormap (GdkScreen *screen,
+ PIXELFORMATDESCRIPTOR *pfd,
+ gboolean is_rgba)
+{
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (is_rgba)
+ {
+ /*
+ * For RGBA mode.
+ */
+
+ /* System default colormap. */
+
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: system default"));
+
+ return g_object_ref (G_OBJECT (gdk_screen_get_system_colormap (screen)));
+ }
+ else
+ {
+ /*
+ * For color index mode.
+ */
+
+ /* New private colormap. */
+
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: new allocated writable"));
+
+ return gdk_colormap_new (gdk_screen_get_system_visual (screen), TRUE);
+ }
+
+ /* not reached */
+ return NULL;
+}
+
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+static GdkColormap *
+gdk_gl_config_setup_colormap (GdkScreen *screen,
+ PIXELFORMATDESCRIPTOR *pfd,
+ gboolean is_rgba)
+{
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (is_rgba)
+ {
+ /*
+ * For RGBA mode.
+ */
+
+ /* Default colormap. */
+
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: system default"));
+
+ return g_object_ref (G_OBJECT (gdk_colormap_get_system ()));
+ }
+ else
+ {
+ /*
+ * For color index mode.
+ */
+
+ /* New private colormap. */
+
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: new allocated writable"));
+
+ return gdk_colormap_new (gdk_visual_get_system (), TRUE);
+ }
+
+ /* not reached */
+ return NULL;
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+static void
+gdk_gl_config_init_attrib (GdkGLConfig *glconfig)
+{
+ PIXELFORMATDESCRIPTOR *pfd;
+
+ pfd = GDK_GL_CONFIG_PFD (glconfig);
+
+ /* RGBA mode? */
+ glconfig->is_rgba = (pfd->iPixelType == PFD_TYPE_RGBA) ? TRUE : FALSE;
+
+ /* Layer plane. */
+ if (pfd->bReserved != 0)
+ {
+ glconfig->layer_plane = pfd->bReserved & 0x0f;
+ if (glconfig->layer_plane == 0)
+ glconfig->layer_plane = -1 * ((pfd->bReserved & 0xf0) >> 4);
+ }
+ else
+ {
+ glconfig->layer_plane = 0;
+ }
+
+ /* Double buffering is supported? */
+ glconfig->is_double_buffered = (pfd->dwFlags & PFD_DOUBLEBUFFER) ? TRUE : FALSE;
+
+ /* Stereo is supported? (not work on Windows) */
+ glconfig->is_stereo = (pfd->dwFlags & PFD_STEREO) ? TRUE : FALSE;
+
+ /* Number of aux buffers */
+ glconfig->n_aux_buffers = pfd->cAuxBuffers;
+
+ /* Has alpha bits? */
+ glconfig->has_alpha = pfd->cAlphaBits ? TRUE : FALSE;
+
+ /* Has depth buffer? */
+ glconfig->has_depth_buffer = pfd->cDepthBits ? TRUE : FALSE;
+
+ /* Has stencil buffer? */
+ glconfig->has_stencil_buffer = pfd->cStencilBits ? TRUE : FALSE;
+
+ /* Has accumulation buffer? */
+ glconfig->has_accum_buffer = pfd->cAccumBits ? TRUE : FALSE;
+
+ /* Number of multisample buffers (not supported yet) */
+ glconfig->n_sample_buffers = 0;
+}
+
+static GdkGLConfig *
+gdk_gl_config_new_common (GdkScreen *screen,
+ const int *attrib_list)
+{
+ GdkGLConfig *glconfig;
+ GdkGLConfigImplWin32 *impl;
+ PIXELFORMATDESCRIPTOR pfd;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ /*
+ * Parse GLX style attrib_list.
+ */
+
+ gdk_gl_config_parse_attrib_list (attrib_list, &pfd);
+
+ GDK_GL_NOTE (MISC, _gdk_win32_gl_print_pfd (&pfd));
+
+ /*
+ * Setup PFD.
+ */
+
+ if (!gdk_gl_config_setup_pfd (&pfd, &pfd))
+ return NULL;
+
+ GDK_GL_NOTE (MISC, g_message (" -- created PFD"));
+ GDK_GL_NOTE (MISC, _gdk_win32_gl_print_pfd (&pfd));
+
+ /*
+ * Instantiate the GdkGLConfigImplWin32 object.
+ */
+
+ glconfig = g_object_new (GDK_TYPE_GL_CONFIG_IMPL_WIN32, NULL);
+ impl = GDK_GL_CONFIG_IMPL_WIN32 (glconfig);
+
+ impl->pfd = pfd;
+
+ impl->screen = screen;
+
+ /*
+ * Get an appropriate colormap.
+ */
+
+ impl->colormap = gdk_gl_config_setup_colormap (screen,
+ &pfd,
+ (pfd.iPixelType == PFD_TYPE_RGBA));
+
+ /*
+ * Set depth (number of bits per pixel).
+ */
+
+ impl->depth = pfd.cRedBits + pfd.cGreenBits + pfd.cBlueBits;
+
+ /*
+ * Init configuration attributes.
+ */
+
+ gdk_gl_config_init_attrib (glconfig);
+
+ return glconfig;
+}
+
+GdkGLConfig *
+gdk_gl_config_new (const int *attrib_list)
+{
+ GdkScreen *screen;
+
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (attrib_list != NULL, NULL);
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ screen = gdk_screen_get_default ();
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ screen = NULL;
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ return gdk_gl_config_new_common (screen, attrib_list);
+}
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+GdkGLConfig *
+gdk_gl_config_new_for_screen (GdkScreen *screen,
+ const int *attrib_list)
+{
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
+ g_return_val_if_fail (attrib_list != NULL, NULL);
+
+ return gdk_gl_config_new_common (screen, attrib_list);
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+GdkGLConfig *
+gdk_win32_gl_config_new_from_pixel_format (int pixel_format)
+{
+ GdkGLConfig *glconfig;
+ GdkGLConfigImplWin32 *impl;
+
+ HDC hdc;
+ PIXELFORMATDESCRIPTOR pfd;
+ int result;
+
+ GDK_GL_NOTE_FUNC ();
+
+ /*
+ * Get PFD.
+ */
+
+ /* Get DC. */
+ hdc = GetDC (NULL);
+ if (hdc == NULL)
+ {
+ g_warning ("cannot get DC");
+ return NULL;
+ }
+
+ result = DescribePixelFormat (hdc, pixel_format, sizeof (pfd), &pfd);
+
+ /* Release DC. */
+ ReleaseDC (NULL, hdc);
+
+ if (result == 0)
+ return NULL;
+
+ GDK_GL_NOTE (MISC, g_message (" -- pixel_format = 0x%x", pixel_format));
+
+ GDK_GL_NOTE (MISC, _gdk_win32_gl_print_pfd (&pfd));
+
+ /*
+ * Instantiate the GdkGLConfigImplWin32 object.
+ */
+
+ glconfig = g_object_new (GDK_TYPE_GL_CONFIG_IMPL_WIN32, NULL);
+ impl = GDK_GL_CONFIG_IMPL_WIN32 (glconfig);
+
+ impl->pfd = pfd;
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ impl->screen = gdk_screen_get_default ();
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ impl->screen = NULL;
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ /*
+ * Get an appropriate colormap.
+ */
+
+ impl->colormap = gdk_gl_config_setup_colormap (impl->screen,
+ &pfd,
+ (pfd.iPixelType == PFD_TYPE_RGBA));
+
+ /*
+ * Set depth (number of bits per pixel).
+ */
+
+ impl->depth = pfd.cRedBits + pfd.cGreenBits + pfd.cBlueBits;
+
+ /*
+ * Init configuration attributes.
+ */
+
+ gdk_gl_config_init_attrib (glconfig);
+
+ return glconfig;
+}
+
+GdkScreen *
+gdk_gl_config_get_screen (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_WIN32 (glconfig), NULL);
+
+ return GDK_GL_CONFIG_IMPL_WIN32 (glconfig)->screen;
+}
+
+/*
+ * This code is based on lib/glut/win32_glx.c of GLUT by Nate Robins.
+ */
+gboolean
+gdk_gl_config_get_attrib (GdkGLConfig *glconfig,
+ int attribute,
+ int *value)
+{
+ GdkGLConfigImplWin32 *impl;
+
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_WIN32 (glconfig), FALSE);
+
+ impl = GDK_GL_CONFIG_IMPL_WIN32 (glconfig);
+
+ switch (attribute)
+ {
+ case GDK_GL_USE_GL:
+ if (impl->pfd.dwFlags & PFD_SUPPORT_OPENGL)
+ {
+ *value = 1;
+
+ /* Mark J. Kilgard says ...
+ XXX Brad's Matrox Millenium II has problems creating
+ color index windows in 24-bit mode (lead to GDI crash)
+ and 32-bit mode (lead to black window). The cColorBits
+ filed of the PIXELFORMATDESCRIPTOR returned claims to
+ have 24 and 32 bits respectively of color indices. 2^24
+ and 2^32 are ridiculously huge writable colormaps.
+ Assume that if we get back a color index
+ PIXELFORMATDESCRIPTOR with 24 or more bits, the
+ PIXELFORMATDESCRIPTOR doesn't really work and skip it.
+ -mjk */
+#if 0
+ if (impl->pfd.iPixelType == PFD_TYPE_COLORINDEX &&
+ impl->pfd.cColorBits >= 24)
+ *value = 0;
+ else
+ *value = 1;
+#endif
+ }
+ else
+ {
+ *value = 0;
+ }
+ break;
+ case GDK_GL_BUFFER_SIZE:
+ /* Nate Robins says ...
+ KLUDGE: if we're RGBA, return the number of bits/pixel,
+ otherwise, return 8 (we guessed at 256 colors in CI mode). */
+ if (impl->pfd.iPixelType == PFD_TYPE_RGBA)
+ *value = impl->pfd.cColorBits;
+ else
+ *value = 8;
+ break;
+ case GDK_GL_LEVEL:
+ *value = glconfig->layer_plane;
+ break;
+ case GDK_GL_RGBA:
+ *value = impl->pfd.iPixelType == PFD_TYPE_RGBA;
+ break;
+ case GDK_GL_DOUBLEBUFFER:
+ *value = impl->pfd.dwFlags & PFD_DOUBLEBUFFER;
+ break;
+ case GDK_GL_STEREO:
+ *value = impl->pfd.dwFlags & PFD_STEREO;
+ break;
+ case GDK_GL_AUX_BUFFERS:
+ *value = impl->pfd.cAuxBuffers;
+ break;
+ case GDK_GL_RED_SIZE:
+ *value = impl->pfd.cRedBits;
+ break;
+ case GDK_GL_GREEN_SIZE:
+ *value = impl->pfd.cGreenBits;
+ break;
+ case GDK_GL_BLUE_SIZE:
+ *value = impl->pfd.cBlueBits;
+ break;
+ case GDK_GL_ALPHA_SIZE:
+ *value = impl->pfd.cAlphaBits;
+ break;
+ case GDK_GL_DEPTH_SIZE:
+ *value = impl->pfd.cDepthBits;
+ break;
+ case GDK_GL_STENCIL_SIZE:
+ *value = impl->pfd.cStencilBits;
+ break;
+ case GDK_GL_ACCUM_RED_SIZE:
+ *value = impl->pfd.cAccumRedBits;
+ break;
+ case GDK_GL_ACCUM_GREEN_SIZE:
+ *value = impl->pfd.cAccumGreenBits;
+ break;
+ case GDK_GL_ACCUM_BLUE_SIZE:
+ *value = impl->pfd.cAccumBlueBits;
+ break;
+ case GDK_GL_ACCUM_ALPHA_SIZE:
+ *value = impl->pfd.cAccumAlphaBits;
+ break;
+ default:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+GdkColormap *
+gdk_gl_config_get_colormap (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_WIN32 (glconfig), NULL);
+
+ return GDK_GL_CONFIG_IMPL_WIN32 (glconfig)->colormap;
+}
+
+GdkVisual *
+gdk_gl_config_get_visual (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_WIN32 (glconfig), NULL);
+
+ return gdk_colormap_get_visual (GDK_GL_CONFIG_IMPL_WIN32 (glconfig)->colormap);
+}
+
+gint
+gdk_gl_config_get_depth (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_WIN32 (glconfig), 0);
+
+ return GDK_GL_CONFIG_IMPL_WIN32 (glconfig)->depth;
+}
+
+PIXELFORMATDESCRIPTOR *
+gdk_win32_gl_config_get_pfd (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_WIN32 (glconfig), NULL);
+
+ return &(GDK_GL_CONFIG_IMPL_WIN32 (glconfig)->pfd);
+}
+
+/*< private >*/
+void
+_gdk_win32_gl_print_pfd (PIXELFORMATDESCRIPTOR *pfd)
+{
+ g_message (" -- pfd->dwFlags & PFD_DRAW_TO_WINDOW = %s",
+ (pfd->dwFlags & PFD_DRAW_TO_WINDOW) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_DRAW_TO_BITMAP = %s",
+ (pfd->dwFlags & PFD_DRAW_TO_BITMAP) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_SUPPORT_GDI = %s",
+ (pfd->dwFlags & PFD_SUPPORT_GDI) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_SUPPORT_OPENGL = %s",
+ (pfd->dwFlags & PFD_SUPPORT_OPENGL) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_GENERIC_ACCELERATED = %s",
+ (pfd->dwFlags & PFD_GENERIC_ACCELERATED) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_GENERIC_FORMAT = %s",
+ (pfd->dwFlags & PFD_GENERIC_FORMAT) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_NEED_PALETTE = %s",
+ (pfd->dwFlags & PFD_NEED_PALETTE) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_NEED_SYSTEM_PALETTE = %s",
+ (pfd->dwFlags & PFD_NEED_SYSTEM_PALETTE) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_DOUBLEBUFFER = %s",
+ (pfd->dwFlags & PFD_DOUBLEBUFFER) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_STEREO = %s",
+ (pfd->dwFlags & PFD_STEREO) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_SWAP_LAYER_BUFFERS = %s",
+ (pfd->dwFlags & PFD_SWAP_LAYER_BUFFERS) ? "TRUE" : "FALSE");
+
+ g_message (" -- pfd->dwFlags & PFD_DEPTH_DONTCARE = %s",
+ (pfd->dwFlags & PFD_DEPTH_DONTCARE) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_DOUBLEBUFFER_DONTCARE = %s",
+ (pfd->dwFlags & PFD_DOUBLEBUFFER_DONTCARE) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_STEREO_DONTCARE = %s",
+ (pfd->dwFlags & PFD_STEREO_DONTCARE) ? "TRUE" : "FALSE");
+
+ g_message (" -- pfd->dwFlags & PFD_SWAP_COPY = %s",
+ (pfd->dwFlags & PFD_SWAP_COPY) ? "TRUE" : "FALSE");
+ g_message (" -- pfd->dwFlags & PFD_SWAP_EXCHANGE = %s",
+ (pfd->dwFlags & PFD_SWAP_EXCHANGE) ? "TRUE" : "FALSE");
+
+ g_message (" -- pfd->iPixelType = %d (%s)",
+ pfd->iPixelType,
+ (pfd->iPixelType == PFD_TYPE_RGBA) ? "PFD_TYPE_RGBA" : "PFD_TYPE_COLORINDEX");
+
+ g_message (" -- pfd->cColorBits = %d", pfd->cColorBits);
+ g_message (" -- pfd->cRedBits = %d", pfd->cRedBits);
+ g_message (" -- pfd->cRedShift = %d", pfd->cRedShift);
+ g_message (" -- pfd->cGreenBits = %d", pfd->cGreenBits);
+ g_message (" -- pfd->cGreenShift = %d", pfd->cGreenShift);
+ g_message (" -- pfd->cBlueBits = %d", pfd->cBlueBits);
+ g_message (" -- pfd->cBlueShift = %d", pfd->cBlueShift);
+ g_message (" -- pfd->cAlphaBits = %d", pfd->cAlphaBits);
+ g_message (" -- pfd->cAlphaShift = %d", pfd->cAlphaShift);
+ g_message (" -- pfd->cAccumBits = %d", pfd->cAccumBits);
+ g_message (" -- pfd->cAccumRedBits = %d", pfd->cAccumRedBits);
+ g_message (" -- pfd->cAccumGreenBits = %d", pfd->cAccumGreenBits);
+ g_message (" -- pfd->cAccumBlueBits = %d", pfd->cAccumBlueBits);
+ g_message (" -- pfd->cAccumAlphaBits = %d", pfd->cAccumAlphaBits);
+ g_message (" -- pfd->cDepthBits = %d", pfd->cDepthBits);
+ g_message (" -- pfd->cStencilBits = %d", pfd->cStencilBits);
+ g_message (" -- pfd->cAuxBuffers = %d", pfd->cAuxBuffers);
+
+ /* Ignored */
+ g_message (" -- pfd->iLayerType = %d", pfd->iLayerType);
+
+ g_message (" -- pfd->bReserved & 0x0f = %d", pfd->bReserved & 0x0f);
+ g_message (" -- (pfd->bReserved & 0xf0) >> 4 = %d", (pfd->bReserved & 0xf0) >> 4);
+
+ /* Ignored */
+ g_message (" -- pfd->dwLayerMask = 0x%lx", pfd->dwLayerMask);
+
+ g_message (" -- pfd->dwVisibleMask = 0x%lx", pfd->dwVisibleMask);
+
+ g_message (" -- pfd->dwDamageMask = 0x%lx", pfd->dwDamageMask);
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglconfig-win32.h b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglconfig-win32.h
new file mode 100644
index 00000000..a9eee140
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglconfig-win32.h
@@ -0,0 +1,59 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_CONFIG_WIN32_H__
+#define __GDK_GL_CONFIG_WIN32_H__
+
+#include <gdk/gdkglconfig.h>
+#include <gdk/win32/gdkglwin32.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLConfigImplWin32 GdkGLConfigImplWin32;
+typedef struct _GdkGLConfigImplWin32Class GdkGLConfigImplWin32Class;
+
+#define GDK_TYPE_GL_CONFIG_IMPL_WIN32 (gdk_gl_config_impl_win32_get_type ())
+#define GDK_GL_CONFIG_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_CONFIG_IMPL_WIN32, GdkGLConfigImplWin32))
+#define GDK_GL_CONFIG_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_CONFIG_IMPL_WIN32, GdkGLConfigImplWin32Class))
+#define GDK_IS_GL_CONFIG_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_CONFIG_IMPL_WIN32))
+#define GDK_IS_GL_CONFIG_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_CONFIG_IMPL_WIN32))
+#define GDK_GL_CONFIG_IMPL_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_CONFIG_IMPL_WIN32, GdkGLConfigImplWin32Class))
+
+struct _GdkGLConfigImplWin32
+{
+ GdkGLConfig parent_instance;
+
+ PIXELFORMATDESCRIPTOR pfd;
+
+ GdkScreen *screen;
+
+ GdkColormap *colormap;
+
+ gint depth;
+};
+
+struct _GdkGLConfigImplWin32Class
+{
+ GdkGLConfigClass parent_class;
+};
+
+GType gdk_gl_config_impl_win32_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_CONFIG_WIN32_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglcontext-win32.c b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglcontext-win32.c
new file mode 100644
index 00000000..408e080a
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglcontext-win32.c
@@ -0,0 +1,490 @@
+/* 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.
+ */
+
+#include "gdkglwin32.h"
+#include "gdkglprivate-win32.h"
+#include "gdkglconfig-win32.h"
+#include "gdkglcontext-win32.h"
+
+static void gdk_gl_context_insert (GdkGLContext *glcontext);
+static void gdk_gl_context_remove (GdkGLContext *glcontext);
+static GdkGLContext *gdk_gl_context_lookup (HGLRC hglrc);
+static guint gdk_gl_context_hash (HGLRC *hglrc);
+static gboolean gdk_gl_context_equal (HGLRC *a,
+ HGLRC *b);
+
+static void gdk_gl_context_impl_win32_class_init (GdkGLContextImplWin32Class *klass);
+static void gdk_gl_context_impl_win32_finalize (GObject *object);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_context_impl_win32_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLContextImplWin32Class),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_context_impl_win32_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLContextImplWin32),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+
+ type = g_type_register_static (GDK_TYPE_GL_CONTEXT,
+ "GdkGLContextImplWin32",
+ &type_info, 0);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_context_impl_win32_class_init (GdkGLContextImplWin32Class *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_context_impl_win32_finalize;
+}
+
+void
+_gdk_gl_context_destroy (GdkGLContext *glcontext)
+{
+ GdkGLContextImplWin32 *impl = GDK_GL_CONTEXT_IMPL_WIN32 (glcontext);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (impl->is_destroyed)
+ return;
+
+ gdk_gl_context_remove (glcontext);
+
+ if (impl->hglrc == wglGetCurrentContext ())
+ {
+ glFinish ();
+
+ GDK_GL_NOTE_FUNC_IMPL ("wglMakeCurrent");
+ wglMakeCurrent (NULL, NULL);
+ }
+
+ if (!impl->is_foreign)
+ {
+ GDK_GL_NOTE_FUNC_IMPL ("wglDeleteContext");
+ wglDeleteContext (impl->hglrc);
+ impl->hglrc = NULL;
+ }
+
+ if (impl->gldrawable != NULL)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (impl->gldrawable),
+ (gpointer *) &(impl->gldrawable));
+ impl->gldrawable = NULL;
+ }
+
+ /* currently unused. */
+ /*
+ if (impl->gldrawable_read != NULL)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (impl->gldrawable_read),
+ (gpointer *) &(impl->gldrawable_read));
+ impl->gldrawable_read = NULL;
+ }
+ */
+
+ impl->is_destroyed = TRUE;
+}
+
+static void
+gdk_gl_context_impl_win32_finalize (GObject *object)
+{
+ GdkGLContextImplWin32 *impl = GDK_GL_CONTEXT_IMPL_WIN32 (object);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ _gdk_gl_context_destroy (GDK_GL_CONTEXT (object));
+
+ g_object_unref (G_OBJECT (impl->glconfig));
+
+ if (impl->share_list != NULL)
+ g_object_unref (G_OBJECT (impl->share_list));
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static GdkGLContext *
+gdk_gl_context_new_common (GdkGLConfig *glconfig,
+ GdkGLContext *share_list,
+ int render_type,
+ HGLRC hglrc,
+ gboolean is_foreign)
+{
+ GdkGLContext *glcontext;
+ GdkGLContextImplWin32 *impl;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ /*
+ * Instantiate the GdkGLContextImplWin32 object.
+ */
+
+ glcontext = g_object_new (GDK_TYPE_GL_CONTEXT_IMPL_WIN32, NULL);
+ impl = GDK_GL_CONTEXT_IMPL_WIN32 (glcontext);
+
+ impl->hglrc = hglrc;
+
+ if (share_list != NULL && GDK_IS_GL_CONTEXT (share_list))
+ {
+ impl->share_list = share_list;
+ g_object_ref (G_OBJECT (impl->share_list));
+ }
+ else
+ {
+ impl->share_list = NULL;
+ }
+
+ impl->render_type = render_type;
+
+ impl->glconfig = glconfig;
+ g_object_ref (G_OBJECT (impl->glconfig));
+
+ impl->gldrawable = NULL;
+ impl->gldrawable_read = NULL;
+
+ impl->is_foreign = is_foreign;
+
+ impl->is_destroyed = FALSE;
+
+ /*
+ * Insert into the GL context hash table.
+ */
+
+ gdk_gl_context_insert (glcontext);
+
+ return glcontext;
+}
+
+/*< private >*/
+GdkGLContext *
+_gdk_win32_gl_context_new (GdkGLDrawable *gldrawable,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type)
+{
+ GdkGLConfig *glconfig;
+ HDC hdc;
+ HGLRC hglrc;
+ GdkGLContextImplWin32 *share_impl = NULL;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ /*
+ * Create an OpenGL rendering context.
+ */
+
+ glconfig = gdk_gl_drawable_get_gl_config (gldrawable);
+
+ /* Get DC. */
+ hdc = gdk_win32_gl_drawable_hdc_get (gldrawable);
+ if (hdc == NULL)
+ return NULL;
+
+ GDK_GL_NOTE_FUNC_IMPL ("wglCreateContext");
+
+ hglrc = wglCreateContext (hdc);
+
+ /* Release DC. */
+ gdk_win32_gl_drawable_hdc_release (gldrawable);
+
+ if (hglrc == NULL)
+ return NULL;
+
+ if (share_list != NULL && GDK_IS_GL_CONTEXT (share_list))
+ {
+ GDK_GL_NOTE_FUNC_IMPL ("wglShareLists");
+
+ share_impl = GDK_GL_CONTEXT_IMPL_WIN32 (share_list);
+ if (!wglShareLists (share_impl->hglrc, hglrc))
+ {
+ wglDeleteContext (hglrc);
+ return NULL;
+ }
+ }
+
+ /*
+ * Instantiate the GdkGLContextImplWin32 object.
+ */
+
+ return gdk_gl_context_new_common (glconfig,
+ share_list,
+ render_type,
+ hglrc,
+ FALSE);
+}
+
+GdkGLContext *
+gdk_win32_gl_context_foreign_new (GdkGLConfig *glconfig,
+ GdkGLContext *share_list,
+ HGLRC hglrc)
+{
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_WIN32 (glconfig), NULL);
+ g_return_val_if_fail (hglrc != NULL, NULL);
+
+ /*
+ * Instantiate the GdkGLContextImplWin32 object.
+ */
+
+ return gdk_gl_context_new_common (glconfig,
+ share_list,
+ (glconfig->is_rgba) ? GDK_GL_RGBA_TYPE : GDK_GL_COLOR_INDEX_TYPE,
+ hglrc,
+ TRUE);
+}
+
+gboolean
+gdk_gl_context_copy (GdkGLContext *glcontext,
+ GdkGLContext *src,
+ unsigned long mask)
+{
+ HGLRC dst_hglrc, src_hglrc;
+
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (glcontext), FALSE);
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (src), FALSE);
+
+ dst_hglrc = GDK_GL_CONTEXT_HGLRC (glcontext);
+ if (dst_hglrc == NULL)
+ return FALSE;
+
+ src_hglrc = GDK_GL_CONTEXT_HGLRC (src);
+ if (src_hglrc == NULL)
+ return FALSE;
+
+ GDK_GL_NOTE_FUNC_IMPL ("wglCopyContext");
+
+ return wglCopyContext (src_hglrc, dst_hglrc, mask);
+}
+
+/*< private >*/
+void
+_gdk_gl_context_set_gl_drawable (GdkGLContext *glcontext,
+ GdkGLDrawable *gldrawable)
+{
+ GdkGLContextImplWin32 *impl = GDK_GL_CONTEXT_IMPL_WIN32 (glcontext);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (impl->gldrawable == gldrawable)
+ return;
+
+ if (impl->gldrawable != NULL)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (impl->gldrawable),
+ (gpointer *) &(impl->gldrawable));
+ impl->gldrawable = NULL;
+ }
+
+ if (gldrawable != NULL && GDK_IS_GL_DRAWABLE (gldrawable))
+ {
+ impl->gldrawable = gldrawable;
+ g_object_add_weak_pointer (G_OBJECT (impl->gldrawable),
+ (gpointer *) &(impl->gldrawable));
+ }
+}
+
+/*< private >*/
+/* currently unused. */
+/*
+void
+_gdk_gl_context_set_gl_drawable_read (GdkGLContext *glcontext,
+ GdkGLDrawable *gldrawable_read)
+{
+ GdkGLContextImplWin32 *impl = GDK_GL_CONTEXT_IMPL_WIN32 (glcontext);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (impl->gldrawable_read == gldrawable_read)
+ return;
+
+ if (impl->gldrawable_read != NULL)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (impl->gldrawable_read),
+ (gpointer *) &(impl->gldrawable_read));
+ impl->gldrawable_read = NULL;
+ }
+
+ if (gldrawable_read != NULL && GDK_IS_GL_DRAWABLE (gldrawable_read))
+ {
+ impl->gldrawable_read = gldrawable_read;
+ g_object_add_weak_pointer (G_OBJECT (impl->gldrawable_read),
+ (gpointer *) &(impl->gldrawable_read));
+ }
+}
+*/
+
+GdkGLDrawable *
+gdk_gl_context_get_gl_drawable (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (glcontext), NULL);
+
+ return GDK_GL_CONTEXT_IMPL_WIN32 (glcontext)->gldrawable;
+}
+
+GdkGLConfig *
+gdk_gl_context_get_gl_config (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (glcontext), NULL);
+
+ return GDK_GL_CONTEXT_IMPL_WIN32 (glcontext)->glconfig;
+}
+
+GdkGLContext *
+gdk_gl_context_get_share_list (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (glcontext), NULL);
+
+ return GDK_GL_CONTEXT_IMPL_WIN32 (glcontext)->share_list;
+}
+
+gboolean
+gdk_gl_context_is_direct (GdkGLContext *glcontext)
+{
+ return FALSE;
+}
+
+int
+gdk_gl_context_get_render_type (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (glcontext), 0);
+
+ return GDK_GL_CONTEXT_IMPL_WIN32 (glcontext)->render_type;
+}
+
+GdkGLContext *
+gdk_gl_context_get_current (void)
+{
+ static GdkGLContext *current = NULL;
+ HGLRC hglrc;
+
+ GDK_GL_NOTE_FUNC ();
+
+ hglrc = wglGetCurrentContext ();
+
+ if (hglrc == NULL)
+ return NULL;
+
+ if (current && GDK_GL_CONTEXT_HGLRC (current) == hglrc)
+ return current;
+
+ current = gdk_gl_context_lookup (hglrc);
+
+ return current;
+}
+
+HGLRC
+gdk_win32_gl_context_get_hglrc (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (glcontext), NULL);
+
+ return GDK_GL_CONTEXT_IMPL_WIN32 (glcontext)->hglrc;
+}
+
+/*
+ * GdkGLContext hash table.
+ */
+
+static GHashTable *gl_context_ht = NULL;
+
+static void
+gdk_gl_context_insert (GdkGLContext *glcontext)
+{
+ GdkGLContextImplWin32 *impl;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ g_return_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (glcontext));
+
+ if (gl_context_ht == NULL)
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- Create GL context hash table."));
+ gl_context_ht = g_hash_table_new ((GHashFunc) gdk_gl_context_hash,
+ (GEqualFunc) gdk_gl_context_equal);
+ }
+
+ impl = GDK_GL_CONTEXT_IMPL_WIN32 (glcontext);
+
+ g_hash_table_insert (gl_context_ht, &(impl->hglrc), glcontext);
+}
+
+static void
+gdk_gl_context_remove (GdkGLContext *glcontext)
+{
+ GdkGLContextImplWin32 *impl;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ g_return_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (glcontext));
+
+ if (gl_context_ht == NULL)
+ return;
+
+ impl = GDK_GL_CONTEXT_IMPL_WIN32 (glcontext);
+
+ g_hash_table_remove (gl_context_ht, &(impl->hglrc));
+
+ if (g_hash_table_size (gl_context_ht) == 0)
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- Destroy GL context hash table."));
+ g_hash_table_destroy (gl_context_ht);
+ gl_context_ht = NULL;
+ }
+}
+
+static GdkGLContext *
+gdk_gl_context_lookup (HGLRC hglrc)
+{
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (gl_context_ht == NULL)
+ return NULL;
+
+ return g_hash_table_lookup (gl_context_ht, &hglrc);
+}
+
+static guint
+gdk_gl_context_hash (HGLRC *hglrc)
+{
+ return (guint) *hglrc;
+}
+
+static gboolean
+gdk_gl_context_equal (HGLRC *a,
+ HGLRC *b)
+{
+ return (*a == *b);
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglcontext-win32.h b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglcontext-win32.h
new file mode 100644
index 00000000..3473ec06
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglcontext-win32.h
@@ -0,0 +1,63 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_CONTEXT_WIN32_H__
+#define __GDK_GL_CONTEXT_WIN32_H__
+
+#include <gdk/gdkglcontext.h>
+#include <gdk/win32/gdkglwin32.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLContextImplWin32 GdkGLContextImplWin32;
+typedef struct _GdkGLContextImplWin32Class GdkGLContextImplWin32Class;
+
+#define GDK_TYPE_GL_CONTEXT_IMPL_WIN32 (gdk_gl_context_impl_win32_get_type ())
+#define GDK_GL_CONTEXT_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_CONTEXT_IMPL_WIN32, GdkGLContextImplWin32))
+#define GDK_GL_CONTEXT_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_CONTEXT_IMPL_WIN32, GdkGLContextImplWin32Class))
+#define GDK_IS_GL_CONTEXT_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_CONTEXT_IMPL_WIN32))
+#define GDK_IS_GL_CONTEXT_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_CONTEXT_IMPL_WIN32))
+#define GDK_GL_CONTEXT_IMPL_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_CONTEXT_IMPL_WIN32, GdkGLContextImplWin32Class))
+
+struct _GdkGLContextImplWin32
+{
+ GdkGLContext parent_instance;
+
+ HGLRC hglrc;
+ GdkGLContext *share_list;
+ int render_type;
+
+ GdkGLConfig *glconfig;
+
+ GdkGLDrawable *gldrawable;
+ GdkGLDrawable *gldrawable_read; /* currently unused. */
+
+ guint is_destroyed : 1;
+ guint is_foreign : 1;
+};
+
+struct _GdkGLContextImplWin32Class
+{
+ GdkGLContextClass parent_class;
+};
+
+GType gdk_gl_context_impl_win32_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_CONTEXT_WIN32_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkgldrawable-win32.c b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkgldrawable-win32.c
new file mode 100644
index 00000000..20f50cf5
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkgldrawable-win32.c
@@ -0,0 +1,63 @@
+/* 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.
+ */
+
+#include "gdkglwin32.h"
+#include "gdkglprivate-win32.h"
+#include "gdkglpixmap-win32.h"
+#include "gdkglwindow-win32.h"
+#include "gdkgldrawable.h"
+
+HDC
+gdk_win32_gl_drawable_hdc_get (GdkGLDrawable *gldrawable)
+{
+ if (GDK_IS_GL_PIXMAP (gldrawable))
+ {
+ GdkGLPixmapImplWin32 *impl = GDK_GL_PIXMAP_IMPL_WIN32 (gldrawable);
+ return GDK_GL_PIXMAP_IMPL_WIN32_HDC_GET (impl);
+ }
+ else if (GDK_IS_GL_WINDOW (gldrawable))
+ {
+ GdkGLWindowImplWin32 *impl = GDK_GL_WINDOW_IMPL_WIN32 (gldrawable);
+ return GDK_GL_WINDOW_IMPL_WIN32_HDC_GET (impl);
+ }
+ else
+ g_warning ("GLDrawable should be GLPixmap or GLWindow");
+
+ return NULL;
+}
+
+void
+gdk_win32_gl_drawable_hdc_release (GdkGLDrawable *gldrawable)
+{
+ if (GDK_IS_GL_PIXMAP (gldrawable))
+ {
+ /* GLPixmap's memory DC doesn't need to be released. */
+ /*
+ GdkGLPixmapImplWin32 *impl = GDK_GL_PIXMAP_IMPL_WIN32 (gldrawable);
+ GDK_GL_PIXMAP_IMPL_WIN32_HDC_RELEASE (impl);
+ */
+ return;
+ }
+ else if (GDK_IS_GL_WINDOW (gldrawable))
+ {
+ GdkGLWindowImplWin32 *impl = GDK_GL_WINDOW_IMPL_WIN32 (gldrawable);
+ GDK_GL_WINDOW_IMPL_WIN32_HDC_RELEASE (impl);
+ }
+ else
+ g_warning ("GLDrawable should be GLPixmap or GLWindow");
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglfont-win32.c b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglfont-win32.c
new file mode 100644
index 00000000..880715b2
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglfont-win32.c
@@ -0,0 +1,109 @@
+/* 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.
+ */
+
+#include <pango/pangowin32.h>
+
+#include "gdkglwin32.h"
+#include "gdkglprivate-win32.h"
+#include "gdkglfont.h"
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+#include <gdk/gdkdisplay.h>
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+PangoFont *
+gdk_gl_font_use_pango_font (const PangoFontDescription *font_desc,
+ int first,
+ int count,
+ int list_base)
+{
+ PangoFontMap *font_map;
+ PangoFont *font = NULL;
+ LOGFONT *logfont = NULL;
+ PangoWin32FontCache *font_cache;
+ HFONT hfont;
+ HDC hdc;
+
+ g_return_val_if_fail (font_desc != NULL, NULL);
+
+ GDK_GL_NOTE_FUNC ();
+
+ font_map = pango_win32_font_map_for_display ();
+
+ font = pango_font_map_load_font (font_map, NULL, font_desc);
+ if (font == NULL)
+ {
+ g_warning ("cannot load PangoFont");
+ goto FAIL;
+ }
+
+ logfont = pango_win32_font_logfont (font);
+ if (logfont == NULL)
+ {
+ g_warning ("cannot get LOGFONT struct");
+ font = NULL;
+ goto FAIL;
+ }
+
+ font_cache = pango_win32_font_map_get_font_cache (font_map);
+
+ hfont = pango_win32_font_cache_load (font_cache, logfont);
+
+ hdc = CreateCompatibleDC (NULL);
+ if (hdc == NULL)
+ {
+ g_warning ("cannot create a memory DC");
+ font = NULL;
+ goto FAIL;
+ }
+
+ SelectObject (hdc, hfont);
+
+ if (!wglUseFontBitmaps (hdc, first, count, list_base))
+ {
+ g_warning ("cannot create the font display lists");
+ font = NULL;
+ goto FAIL;
+ }
+
+ if (!DeleteDC (hdc))
+ g_warning ("cannot delete the memory DC");
+
+ pango_win32_font_cache_unload (font_cache, hfont);
+
+ FAIL:
+
+ if (logfont != NULL)
+ g_free (logfont);
+
+ return font;
+}
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+PangoFont *
+gdk_gl_font_use_pango_font_for_display (GdkDisplay *display,
+ const PangoFontDescription *font_desc,
+ int first,
+ int count,
+ int list_base)
+{
+ return gdk_gl_font_use_pango_font (font_desc, first, count, list_base);
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.c b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.c
new file mode 100644
index 00000000..093297f6
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.c
@@ -0,0 +1,532 @@
+/* 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.
+ */
+
+#include "gdkglwin32.h"
+#include "gdkglprivate-win32.h"
+#include "gdkglconfig-win32.h"
+#include "gdkglcontext-win32.h"
+#include "gdkglpixmap-win32.h"
+
+static void gdk_gl_pixmap_sync_gl (GdkGLPixmap *glpixmap);
+static void gdk_gl_pixmap_sync_gdk (GdkGLPixmap *glpixmap);
+
+static gboolean gdk_gl_pixmap_impl_win32_make_context_current (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext);
+static gboolean gdk_gl_pixmap_impl_win32_is_double_buffered (GdkGLDrawable *gldrawable);
+static void gdk_gl_pixmap_impl_win32_swap_buffers (GdkGLDrawable *gldrawable);
+static void gdk_gl_pixmap_impl_win32_wait_gl (GdkGLDrawable *gldrawable);
+static void gdk_gl_pixmap_impl_win32_wait_gdk (GdkGLDrawable *gldrawable);
+static gboolean gdk_gl_pixmap_impl_win32_gl_begin (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext);
+static void gdk_gl_pixmap_impl_win32_gl_end (GdkGLDrawable *gldrawable);
+static GdkGLConfig *gdk_gl_pixmap_impl_win32_get_gl_config (GdkGLDrawable *gldrawable);
+
+static void gdk_gl_pixmap_impl_win32_class_init (GdkGLPixmapImplWin32Class *klass);
+static void gdk_gl_pixmap_impl_win32_finalize (GObject *object);
+static void gdk_gl_pixmap_impl_win32_gl_drawable_interface_init (GdkGLDrawableClass *iface);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_pixmap_impl_win32_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLPixmapImplWin32Class),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_pixmap_impl_win32_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLPixmapImplWin32),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+ static const GInterfaceInfo gl_drawable_interface_info = {
+ (GInterfaceInitFunc) gdk_gl_pixmap_impl_win32_gl_drawable_interface_init,
+ (GInterfaceFinalizeFunc) NULL,
+ NULL /* interface_data */
+ };
+
+ type = g_type_register_static (GDK_TYPE_GL_PIXMAP,
+ "GdkGLPixmapImplWin32",
+ &type_info, 0);
+ g_type_add_interface_static (type,
+ GDK_TYPE_GL_DRAWABLE,
+ &gl_drawable_interface_info);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_pixmap_impl_win32_class_init (GdkGLPixmapImplWin32Class *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_pixmap_impl_win32_finalize;
+}
+
+void
+_gdk_gl_pixmap_destroy (GdkGLPixmap *glpixmap)
+{
+ GdkGLPixmapImplWin32 *impl = GDK_GL_PIXMAP_IMPL_WIN32 (glpixmap);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (impl->is_destroyed)
+ return;
+
+ if (impl->hdc_gl == wglGetCurrentDC ())
+ {
+ glFinish ();
+
+ GDK_GL_NOTE_FUNC_IMPL ("wglMakeCurrent");
+ wglMakeCurrent (NULL, NULL);
+ }
+
+ DeleteDC (impl->hdc_gl);
+ impl->hdc_gl = NULL;
+
+ DeleteDC (impl->hdc_gdk);
+ impl->hdc_gdk = NULL;
+
+ g_object_unref (G_OBJECT (impl->pixmap_gl));
+ impl->pixmap_gl = NULL;
+
+ impl->is_destroyed = TRUE;
+}
+
+static void
+gdk_gl_pixmap_impl_win32_finalize (GObject *object)
+{
+ GdkGLPixmapImplWin32 *impl = GDK_GL_PIXMAP_IMPL_WIN32 (object);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ _gdk_gl_pixmap_destroy (GDK_GL_PIXMAP (object));
+
+ g_object_unref (G_OBJECT (impl->glconfig));
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gdk_gl_pixmap_impl_win32_gl_drawable_interface_init (GdkGLDrawableClass *iface)
+{
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ iface->create_new_context = _gdk_win32_gl_context_new;
+ iface->make_context_current = gdk_gl_pixmap_impl_win32_make_context_current;
+ iface->is_double_buffered = gdk_gl_pixmap_impl_win32_is_double_buffered;
+ iface->swap_buffers = gdk_gl_pixmap_impl_win32_swap_buffers;
+ iface->wait_gl = gdk_gl_pixmap_impl_win32_wait_gl;
+ iface->wait_gdk = gdk_gl_pixmap_impl_win32_wait_gdk;
+ iface->gl_begin = gdk_gl_pixmap_impl_win32_gl_begin;
+ iface->gl_end = gdk_gl_pixmap_impl_win32_gl_end;
+ iface->get_gl_config = gdk_gl_pixmap_impl_win32_get_gl_config;
+ iface->get_size = _gdk_gl_pixmap_get_size;
+}
+
+/*
+ * attrib_list is currently unused. This must be set to NULL or empty
+ * (first attribute of None). See GLX 1.3 spec.
+ */
+GdkGLPixmap *
+gdk_gl_pixmap_new (GdkGLConfig *glconfig,
+ GdkPixmap *pixmap,
+ const int *attrib_list)
+{
+ GdkGLPixmap *glpixmap;
+ GdkGLPixmapImplWin32 *impl;
+
+ gint width, height;
+ gint depth;
+ GdkPixmap *pixmap_gl = NULL;
+
+ HBITMAP hbitmap_gl;
+ HDC hdc_gl = NULL;
+ PIXELFORMATDESCRIPTOR pfd;
+ int pixel_format;
+
+ HBITMAP hbitmap_gdk;
+ HDC hdc_gdk = NULL;
+
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_WIN32 (glconfig), NULL);
+ g_return_val_if_fail (GDK_IS_PIXMAP (pixmap), NULL);
+
+ /*
+ * Create offscreen rendering area.
+ */
+
+ gdk_drawable_get_size (GDK_DRAWABLE (pixmap), &width, &height);
+ depth = gdk_drawable_get_depth (GDK_DRAWABLE (pixmap));
+
+ pixmap_gl = gdk_pixmap_new (NULL, width, height, depth);
+ if (pixmap_gl == NULL)
+ goto FAIL;
+
+ /*
+ * Source (OpenGL) DIB
+ */
+
+ hbitmap_gl = (HBITMAP) gdk_win32_drawable_get_handle (GDK_DRAWABLE (pixmap_gl));
+
+ /* Create a memory DC. */
+ hdc_gl = CreateCompatibleDC (NULL);
+ if (hdc_gl == NULL)
+ {
+ g_warning ("cannot create a memory DC");
+ goto FAIL;
+ }
+
+ /* Select the bitmap. */
+ if (SelectObject (hdc_gl, hbitmap_gl) == NULL)
+ {
+ g_warning ("cannot select DIB");
+ goto FAIL;
+ }
+
+ /*
+ * Choose pixel format.
+ */
+
+ pfd = *(GDK_GL_CONFIG_PFD (glconfig));
+ /* Draw to bitmap */
+ pfd.dwFlags &= ~PFD_DRAW_TO_WINDOW;
+ pfd.dwFlags |= PFD_DRAW_TO_BITMAP;
+
+ /* Request pfd.cColorBits should exclude alpha bitplanes. */
+ pfd.cColorBits = pfd.cRedBits + pfd.cGreenBits + pfd.cBlueBits;
+
+ GDK_GL_NOTE_FUNC_IMPL ("ChoosePixelFormat");
+
+ pixel_format = ChoosePixelFormat (hdc_gl, &pfd);
+ if (pixel_format == 0)
+ {
+ g_warning ("cannot choose pixel format");
+ goto FAIL;
+ }
+
+ /*
+ * Set pixel format.
+ */
+
+ GDK_GL_NOTE_FUNC_IMPL ("SetPixelFormat");
+
+ if (!SetPixelFormat (hdc_gl, pixel_format, &pfd))
+ {
+ g_warning ("cannot set pixel format");
+ goto FAIL;
+ }
+
+ DescribePixelFormat (hdc_gl, pixel_format, sizeof (pfd), &pfd);
+
+ GDK_GL_NOTE (MISC, g_message (" -- impl->pixel_format = 0x%x", pixel_format));
+ GDK_GL_NOTE (MISC, _gdk_win32_gl_print_pfd (&pfd));
+
+ /*
+ * Destination (GDK) DIB
+ */
+
+ hbitmap_gdk = (HBITMAP) gdk_win32_drawable_get_handle (GDK_DRAWABLE (pixmap));
+
+ /* Create a memory DC. */
+ hdc_gdk = CreateCompatibleDC (hdc_gl);
+ if (hdc_gdk == NULL)
+ {
+ g_warning ("cannot create a memory DC");
+ goto FAIL;
+ }
+
+ /*
+ * Instantiate the GdkGLPixmapImplWin32 object.
+ */
+
+ glpixmap = g_object_new (GDK_TYPE_GL_PIXMAP_IMPL_WIN32, NULL);
+ impl = GDK_GL_PIXMAP_IMPL_WIN32 (glpixmap);
+
+ glpixmap->drawable = GDK_DRAWABLE (pixmap);
+ g_object_add_weak_pointer (G_OBJECT (glpixmap->drawable),
+ (gpointer *) &(glpixmap->drawable));
+
+ impl->pixmap_gl = pixmap_gl;
+
+ impl->width = width;
+ impl->height = height;
+
+ impl->pfd = pfd;
+ impl->pixel_format = pixel_format;
+
+ impl->glconfig = glconfig;
+ g_object_ref (G_OBJECT (impl->glconfig));
+
+ impl->hdc_gl = hdc_gl;
+
+ impl->hdc_gdk = hdc_gdk;
+ impl->hbitmap_gdk = hbitmap_gdk;
+
+ impl->is_destroyed = FALSE;
+
+ return glpixmap;
+
+ FAIL:
+
+ if (hdc_gdk != NULL)
+ DeleteDC (hdc_gdk);
+
+ if (hdc_gl != NULL)
+ DeleteDC (hdc_gl);
+
+ if (pixmap_gl != NULL)
+ g_object_unref (G_OBJECT (pixmap_gl));
+
+ return NULL;
+}
+
+static void
+gdk_gl_pixmap_sync_gl (GdkGLPixmap *glpixmap)
+{
+ GdkGLPixmapImplWin32 *impl;
+ int width, height;
+ HBITMAP hbitmap_old;
+
+ g_return_if_fail (GDK_IS_GL_PIXMAP_IMPL_WIN32 (glpixmap));
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ impl = GDK_GL_PIXMAP_IMPL_WIN32 (glpixmap);
+
+ width = impl->width;
+ height = impl->height;
+
+ /*
+ * Copy OpenGL bitmap to GDK bitmap.
+ */
+
+ hbitmap_old = SelectObject (impl->hdc_gdk, impl->hbitmap_gdk);
+ if (hbitmap_old == NULL)
+ {
+ g_warning ("cannot select DIB");
+ return;
+ }
+
+ if (!StretchBlt (impl->hdc_gdk, 0, 0, width, height,
+ impl->hdc_gl, 0, height, width, -height,
+ SRCCOPY))
+ g_warning ("StretchBlt() failed");
+
+ SelectObject (impl->hdc_gdk, hbitmap_old);
+}
+
+static void
+gdk_gl_pixmap_sync_gdk (GdkGLPixmap *glpixmap)
+{
+ GdkGLPixmapImplWin32 *impl;
+ int width, height;
+ HBITMAP hbitmap_old;
+
+ g_return_if_fail (GDK_IS_GL_PIXMAP_IMPL_WIN32 (glpixmap));
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ impl = GDK_GL_PIXMAP_IMPL_WIN32 (glpixmap);
+
+ width = impl->width;
+ height = impl->height;
+
+ /*
+ * Copy GDK bitmap to OpenGL bitmap.
+ */
+
+ hbitmap_old = SelectObject (impl->hdc_gdk, impl->hbitmap_gdk);
+ if (hbitmap_old == NULL)
+ {
+ g_warning ("cannot select DIB");
+ return;
+ }
+
+ if (!StretchBlt (impl->hdc_gl, 0, 0, width, height,
+ impl->hdc_gdk, 0, height, width, -height,
+ SRCCOPY))
+ g_warning ("StretchBlt() failed");
+
+ SelectObject (impl->hdc_gdk, hbitmap_old);
+}
+
+static gboolean
+gdk_gl_pixmap_impl_win32_make_context_current (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext)
+{
+ GdkGLPixmapImplWin32 *impl;
+ HDC hdc;
+ HGLRC hglrc;
+
+ g_return_val_if_fail (GDK_IS_GL_PIXMAP_IMPL_WIN32 (draw), FALSE);
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (glcontext), FALSE);
+
+ if (GDK_GL_PIXMAP_IS_DESTROYED (draw) ||
+ GDK_GL_CONTEXT_IS_DESTROYED (glcontext))
+ return FALSE;
+
+ impl = GDK_GL_PIXMAP_IMPL_WIN32 (draw);
+
+ /* Get DC. */
+ hdc = GDK_GL_PIXMAP_IMPL_WIN32_HDC_GET (impl);
+
+ /* Get GLRC. */
+ hglrc = GDK_GL_CONTEXT_HGLRC (glcontext);
+
+ GDK_GL_NOTE_FUNC_IMPL ("wglMakeCurrent");
+
+ if (!wglMakeCurrent (hdc, hglrc))
+ {
+ _gdk_gl_context_set_gl_drawable (glcontext, NULL);
+ /* currently unused. */
+ /* _gdk_gl_context_set_gl_drawable_read (glcontext, NULL); */
+ return FALSE;
+ }
+
+ _gdk_gl_context_set_gl_drawable (glcontext, draw);
+ /* currently unused. */
+ /* _gdk_gl_context_set_gl_drawable_read (glcontext, read); */
+
+ if (_GDK_GL_CONFIG_AS_SINGLE_MODE (impl->glconfig))
+ {
+ /* We do this because we are treating a double-buffered frame
+ buffer as a single-buffered frame buffer because the system
+ does not appear to export any suitable single-buffered
+ visuals (in which the following are necessary). */
+ glDrawBuffer (GL_FRONT);
+ glReadBuffer (GL_FRONT);
+ }
+
+ GDK_GL_NOTE (MISC, _gdk_gl_print_gl_info ());
+
+ /* Do *NOT* release DC. */
+
+ return TRUE;
+}
+
+static gboolean
+gdk_gl_pixmap_impl_win32_is_double_buffered (GdkGLDrawable *gldrawable)
+{
+ g_return_val_if_fail (GDK_IS_GL_PIXMAP_IMPL_WIN32 (gldrawable), FALSE);
+
+ return gdk_gl_config_is_double_buffered (GDK_GL_PIXMAP_IMPL_WIN32 (gldrawable)->glconfig);
+}
+
+static void
+gdk_gl_pixmap_impl_win32_swap_buffers (GdkGLDrawable *gldrawable)
+{
+ GdkGLPixmapImplWin32 *impl;
+ HDC hdc;
+
+ g_return_if_fail (GDK_IS_GL_PIXMAP_IMPL_WIN32 (gldrawable));
+
+ if (GDK_GL_PIXMAP_IS_DESTROYED (gldrawable))
+ return;
+
+ impl = GDK_GL_PIXMAP_IMPL_WIN32 (gldrawable);
+
+ /* Get DC. */
+ hdc = GDK_GL_PIXMAP_IMPL_WIN32_HDC_GET (impl);
+
+ GDK_GL_NOTE_FUNC_IMPL ("SwapBuffers");
+
+ SwapBuffers (hdc);
+
+ /* Release DC. */
+ /* GDK_GL_PIXMAP_IMPL_WIN32_HDC_RELEASE (impl); */
+}
+
+static void
+gdk_gl_pixmap_impl_win32_wait_gl (GdkGLDrawable *gldrawable)
+{
+ glFinish ();
+
+ /* Sync. */
+ gdk_gl_pixmap_sync_gl (GDK_GL_PIXMAP (gldrawable));
+}
+
+static void
+gdk_gl_pixmap_impl_win32_wait_gdk (GdkGLDrawable *gldrawable)
+{
+ GdiFlush ();
+
+ /* Sync. */
+ gdk_gl_pixmap_sync_gdk (GDK_GL_PIXMAP (gldrawable));
+}
+
+static gboolean
+gdk_gl_pixmap_impl_win32_gl_begin (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext)
+{
+ gboolean ret;
+
+ ret = gdk_gl_pixmap_impl_win32_make_context_current (draw, read, glcontext);
+ if (!ret)
+ return FALSE;
+
+ gdk_gl_pixmap_impl_win32_wait_gdk (draw);
+
+ return TRUE;
+}
+
+static void
+gdk_gl_pixmap_impl_win32_gl_end (GdkGLDrawable *gldrawable)
+{
+ gdk_gl_pixmap_impl_win32_wait_gl (gldrawable);
+}
+
+static GdkGLConfig *
+gdk_gl_pixmap_impl_win32_get_gl_config (GdkGLDrawable *gldrawable)
+{
+ g_return_val_if_fail (GDK_IS_GL_PIXMAP_IMPL_WIN32 (gldrawable), NULL);
+
+ return GDK_GL_PIXMAP_IMPL_WIN32 (gldrawable)->glconfig;
+}
+
+PIXELFORMATDESCRIPTOR *
+gdk_win32_gl_pixmap_get_pfd (GdkGLPixmap *glpixmap)
+{
+ g_return_val_if_fail (GDK_IS_GL_PIXMAP_IMPL_WIN32 (glpixmap), NULL);
+
+ return &(GDK_GL_PIXMAP_IMPL_WIN32 (glpixmap)->pfd);
+}
+
+int
+gdk_win32_gl_pixmap_get_pixel_format (GdkGLPixmap *glpixmap)
+{
+ g_return_val_if_fail (GDK_IS_GL_PIXMAP_IMPL_WIN32 (glpixmap), 0);
+
+ return GDK_GL_PIXMAP_IMPL_WIN32 (glpixmap)->pixel_format;
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.h b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.h
new file mode 100644
index 00000000..9d808a55
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.h
@@ -0,0 +1,75 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_PIXMAP_WIN32_H__
+#define __GDK_GL_PIXMAP_WIN32_H__
+
+#include <gdk/gdkglpixmap.h>
+#include <gdk/win32/gdkglwin32.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLPixmapImplWin32 GdkGLPixmapImplWin32;
+typedef struct _GdkGLPixmapImplWin32Class GdkGLPixmapImplWin32Class;
+
+#define GDK_TYPE_GL_PIXMAP_IMPL_WIN32 (gdk_gl_pixmap_impl_win32_get_type ())
+#define GDK_GL_PIXMAP_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_PIXMAP_IMPL_WIN32, GdkGLPixmapImplWin32))
+#define GDK_GL_PIXMAP_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_PIXMAP_IMPL_WIN32, GdkGLPixmapImplWin32Class))
+#define GDK_IS_GL_PIXMAP_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_PIXMAP_IMPL_WIN32))
+#define GDK_IS_GL_PIXMAP_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_PIXMAP_IMPL_WIN32))
+#define GDK_GL_PIXMAP_IMPL_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_PIXMAP_IMPL_WIN32, GdkGLPixmapImplWin32Class))
+
+struct _GdkGLPixmapImplWin32
+{
+ GdkGLPixmap parent_instance;
+
+ GdkPixmap *pixmap_gl;
+
+ int width;
+ int height;
+
+ PIXELFORMATDESCRIPTOR pfd;
+ int pixel_format;
+
+ GdkGLConfig *glconfig;
+
+ /*< private >*/
+ HDC hdc_gl;
+
+ HDC hdc_gdk;
+ HBITMAP hbitmap_gdk;
+
+ guint is_destroyed : 1;
+};
+
+struct _GdkGLPixmapImplWin32Class
+{
+ GdkGLPixmapClass parent_class;
+};
+
+GType gdk_gl_pixmap_impl_win32_get_type (void);
+
+#define GDK_GL_PIXMAP_IMPL_WIN32_HDC_GET(impl) \
+ ( (impl)->hdc_gl )
+
+#define GDK_GL_PIXMAP_IMPL_WIN32_HDC_RELEASE(impl) \
+ ( (void) 0 )
+
+G_END_DECLS
+
+#endif /* __GDK_GL_PIXMAP_WIN32_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglprivate-win32.h b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglprivate-win32.h
new file mode 100644
index 00000000..da681ce5
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglprivate-win32.h
@@ -0,0 +1,59 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_PRIVATE_WIN32_H__
+#define __GDK_GL_PRIVATE_WIN32_H__
+
+#include <gdk/gdkprivate.h>
+
+#include <gdk/gdkglprivate.h>
+#include <gdk/win32/gdkglwin32.h>
+
+G_BEGIN_DECLS
+
+int _gdk_win32_gl_config_find_pixel_format (HDC hdc,
+ CONST PIXELFORMATDESCRIPTOR* req_pfd,
+ PIXELFORMATDESCRIPTOR* found_pfd);
+
+void _gdk_win32_gl_print_pfd (PIXELFORMATDESCRIPTOR *pfd);
+
+GdkGLContext *_gdk_win32_gl_context_new (GdkGLDrawable *gldrawable,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type);
+
+void _gdk_gl_context_set_gl_drawable (GdkGLContext *glcontext,
+ GdkGLDrawable *gldrawable);
+/* currently unused. */
+/*
+void _gdk_gl_context_set_gl_drawable_read (GdkGLContext *glcontext,
+ GdkGLDrawable *gldrawable_read);
+*/
+
+#define GDK_GL_CONTEXT_IS_DESTROYED(glcontext) \
+ ( ((GdkGLContextImplWin32 *) (glcontext))->is_destroyed )
+
+#define GDK_GL_PIXMAP_IS_DESTROYED(glpixmap) \
+ ( ((GdkGLPixmapImplWin32 *) (glpixmap))->is_destroyed )
+
+#define GDK_GL_WINDOW_IS_DESTROYED(glwindow) \
+ ( ((GdkGLWindowImplWin32 *) (glwindow))->is_destroyed )
+
+G_END_DECLS
+
+#endif /* __GDK_GL_PRIVATE_WIN32_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglquery-win32.c b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglquery-win32.c
new file mode 100644
index 00000000..97e4e63a
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglquery-win32.c
@@ -0,0 +1,252 @@
+/* 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.
+ */
+
+#include <string.h>
+
+#include "gdkglwin32.h"
+#include "gdkglprivate-win32.h"
+#include "gdkglquery.h"
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+#include <gdk/gdkdisplay.h>
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+gboolean
+gdk_gl_query_extension (void)
+{
+ return TRUE;
+
+#if 0
+ DWORD version = GetVersion ();
+ DWORD major = (DWORD) (LOBYTE (LOWORD (version)));
+
+ if (version < 0x80000000) /* Windows NT/2000/XP */
+ {
+ if (major >= 3)
+ return TRUE;
+ }
+ else /* Windows 95/98/Me */
+ {
+ if (major >= 4)
+ return TRUE;
+ }
+
+ return FALSE;
+#endif
+}
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+gboolean
+gdk_gl_query_extension_for_display (GdkDisplay *display)
+{
+ g_return_val_if_fail (display == gdk_display_get_default (), FALSE);
+
+ return TRUE;
+
+#if 0
+ DWORD version = GetVersion ();
+ DWORD major = (DWORD) (LOBYTE (LOWORD (version)));
+
+ if (version < 0x80000000) /* Windows NT/2000/XP */
+ {
+ if (major >= 3)
+ return TRUE;
+ }
+ else /* Windows 95/98/Me */
+ {
+ if (major >= 4)
+ return TRUE;
+ }
+
+ return FALSE;
+#endif
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+gboolean
+gdk_gl_query_version (int *major,
+ int *minor)
+{
+ DWORD version = GetVersion ();
+
+ /* return Windows version. */
+ *major = (int) (LOBYTE (LOWORD (version)));
+ *minor = (int) (HIBYTE (LOWORD (version)));
+
+ return TRUE;
+}
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+gboolean
+gdk_gl_query_version_for_display (GdkDisplay *display,
+ int *major,
+ int *minor)
+{
+ DWORD version;
+
+ g_return_val_if_fail (display == gdk_display_get_default (), FALSE);
+
+ version = GetVersion ();
+
+ /* return Windows version. */
+ *major = (int) (LOBYTE (LOWORD (version)));
+ *minor = (int) (HIBYTE (LOWORD (version)));
+
+ return TRUE;
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+gboolean
+gdk_win32_gl_query_wgl_extension (GdkGLConfig *glconfig,
+ const char *extension)
+{
+ typedef const char * (WINAPI * __wglGetExtensionsStringARBProc) (HDC);
+ typedef const char * (WINAPI * __wglGetExtensionsStringEXTProc) (void);
+ __wglGetExtensionsStringARBProc wgl_get_extensions_string_arb;
+ __wglGetExtensionsStringEXTProc wgl_get_extensions_string_ext;
+
+ static const char *extensions = NULL;
+ const char *start;
+ char *where, *terminator;
+ HDC hdc;
+
+ /* Extension names should not have spaces. */
+ where = strchr (extension, ' ');
+ if (where || *extension == '\0')
+ return FALSE;
+
+ if (extensions == NULL)
+ {
+ /* Try wglGetExtensionsStringARB. */
+
+ wgl_get_extensions_string_arb =
+ (__wglGetExtensionsStringARBProc) gdk_gl_get_proc_address ("wglGetExtensionsStringARB");
+
+ if (wgl_get_extensions_string_arb)
+ {
+ hdc = GetDC (NULL);
+ if (hdc == NULL)
+ {
+ g_warning ("cannot get DC");
+ }
+ else
+ {
+ extensions = wgl_get_extensions_string_arb (hdc);
+ ReleaseDC (NULL, hdc);
+ }
+ }
+
+ if (extensions == NULL)
+ {
+ /* Try wglGetExtensionsStringEXT. */
+
+ wgl_get_extensions_string_ext =
+ (__wglGetExtensionsStringEXTProc) gdk_gl_get_proc_address ("wglGetExtensionsStringEXT");
+
+ if (wgl_get_extensions_string_ext)
+ extensions = wgl_get_extensions_string_ext ();
+ }
+
+ if (extensions == NULL)
+ return FALSE;
+ }
+
+ /* It takes a bit of care to be fool-proof about parsing
+ the WGL extensions string. Don't be fooled by
+ sub-strings, etc. */
+ start = extensions;
+ for (;;)
+ {
+ where = strstr (start, extension);
+ if (where == NULL)
+ break;
+
+ terminator = where + strlen (extension);
+
+ if (where == start || *(where - 1) == ' ')
+ if (*terminator == ' ' || *terminator == '\0')
+ {
+ GDK_GL_NOTE (MISC, g_message (" - %s - supported", extension));
+ return TRUE;
+ }
+
+ start = terminator;
+ }
+
+ GDK_GL_NOTE (MISC, g_message (" - %s - not supported", extension));
+
+ return FALSE;
+}
+
+GdkGLProc
+gdk_gl_get_proc_address (const char *proc_name)
+{
+ GdkGLProc proc_address = NULL;
+ HMODULE hmodule;
+
+ GDK_GL_NOTE_FUNC ();
+
+ if (strncmp ("glu", proc_name, 3) != 0)
+ {
+ /* Try wglGetProcAddress () */
+
+ proc_address = (GdkGLProc) wglGetProcAddress (proc_name);
+
+ GDK_GL_NOTE (IMPL, g_message (" ** wglGetProcAddress () - %s",
+ proc_address ? "succeeded" : "failed"));
+
+ if (proc_address != NULL)
+ return proc_address;
+
+ /* Try GetProcAddress () */
+
+ /* opengl32.dll */
+
+ GDK_GL_NOTE (MISC, g_message (" - Get opengl32.dll module handle"));
+
+ hmodule = GetModuleHandle ("opengl32.dll");
+ if (hmodule == NULL)
+ g_warning ("Cannot get opengl32.dll module handle");
+ else
+ proc_address = (GdkGLProc) GetProcAddress (hmodule, proc_name);
+
+ GDK_GL_NOTE (IMPL, g_message (" ** GetProcAddress () - %s",
+ proc_address ? "succeeded" : "failed"));
+ }
+ else
+ {
+ /* glu32.dll */
+
+ GDK_GL_NOTE (MISC, g_message (" - Get glu32.dll module handle"));
+
+ hmodule = GetModuleHandle ("glu32.dll");
+ if (hmodule == NULL)
+ g_warning ("Cannot get glu32.dll module handle");
+ else
+ proc_address = (GdkGLProc) GetProcAddress (hmodule, proc_name);
+
+ GDK_GL_NOTE (IMPL, g_message (" ** GetProcAddress () - %s",
+ proc_address ? "succeeded" : "failed"));
+ }
+
+ return proc_address;
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.c b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.c
new file mode 100644
index 00000000..757857f9
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.c
@@ -0,0 +1,2186 @@
+/* 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-gdkglwglext-c.pl".
+ */
+
+#include "gdkglwin32.h"
+#include "gdkglprivate-win32.h"
+#include "gdkglwglext.h"
+
+/*
+ * WGL_ARB_buffer_region
+ */
+
+static GdkGL_WGL_ARB_buffer_region _procs_WGL_ARB_buffer_region = {
+ (GdkGLProc_wglCreateBufferRegionARB) -1,
+ (GdkGLProc_wglDeleteBufferRegionARB) -1,
+ (GdkGLProc_wglSaveBufferRegionARB) -1,
+ (GdkGLProc_wglRestoreBufferRegionARB) -1
+};
+
+/* wglCreateBufferRegionARB */
+GdkGLProc
+gdk_gl_get_wglCreateBufferRegionARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_buffer_region.wglCreateBufferRegionARB == (GdkGLProc_wglCreateBufferRegionARB) -1)
+ _procs_WGL_ARB_buffer_region.wglCreateBufferRegionARB =
+ (GdkGLProc_wglCreateBufferRegionARB) gdk_gl_get_proc_address ("wglCreateBufferRegionARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglCreateBufferRegionARB () - %s",
+ (_procs_WGL_ARB_buffer_region.wglCreateBufferRegionARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_buffer_region.wglCreateBufferRegionARB);
+}
+
+/* wglDeleteBufferRegionARB */
+GdkGLProc
+gdk_gl_get_wglDeleteBufferRegionARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_buffer_region.wglDeleteBufferRegionARB == (GdkGLProc_wglDeleteBufferRegionARB) -1)
+ _procs_WGL_ARB_buffer_region.wglDeleteBufferRegionARB =
+ (GdkGLProc_wglDeleteBufferRegionARB) gdk_gl_get_proc_address ("wglDeleteBufferRegionARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglDeleteBufferRegionARB () - %s",
+ (_procs_WGL_ARB_buffer_region.wglDeleteBufferRegionARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_buffer_region.wglDeleteBufferRegionARB);
+}
+
+/* wglSaveBufferRegionARB */
+GdkGLProc
+gdk_gl_get_wglSaveBufferRegionARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_buffer_region.wglSaveBufferRegionARB == (GdkGLProc_wglSaveBufferRegionARB) -1)
+ _procs_WGL_ARB_buffer_region.wglSaveBufferRegionARB =
+ (GdkGLProc_wglSaveBufferRegionARB) gdk_gl_get_proc_address ("wglSaveBufferRegionARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglSaveBufferRegionARB () - %s",
+ (_procs_WGL_ARB_buffer_region.wglSaveBufferRegionARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_buffer_region.wglSaveBufferRegionARB);
+}
+
+/* wglRestoreBufferRegionARB */
+GdkGLProc
+gdk_gl_get_wglRestoreBufferRegionARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_buffer_region.wglRestoreBufferRegionARB == (GdkGLProc_wglRestoreBufferRegionARB) -1)
+ _procs_WGL_ARB_buffer_region.wglRestoreBufferRegionARB =
+ (GdkGLProc_wglRestoreBufferRegionARB) gdk_gl_get_proc_address ("wglRestoreBufferRegionARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglRestoreBufferRegionARB () - %s",
+ (_procs_WGL_ARB_buffer_region.wglRestoreBufferRegionARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_buffer_region.wglRestoreBufferRegionARB);
+}
+
+/* Get WGL_ARB_buffer_region functions */
+GdkGL_WGL_ARB_buffer_region *
+gdk_gl_get_WGL_ARB_buffer_region (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_ARB_buffer_region");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglCreateBufferRegionARB () != NULL);
+ supported &= (gdk_gl_get_wglDeleteBufferRegionARB () != NULL);
+ supported &= (gdk_gl_get_wglSaveBufferRegionARB () != NULL);
+ supported &= (gdk_gl_get_wglRestoreBufferRegionARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_ARB_buffer_region () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_ARB_buffer_region;
+}
+
+/*
+ * WGL_ARB_extensions_string
+ */
+
+static GdkGL_WGL_ARB_extensions_string _procs_WGL_ARB_extensions_string = {
+ (GdkGLProc_wglGetExtensionsStringARB) -1
+};
+
+/* wglGetExtensionsStringARB */
+GdkGLProc
+gdk_gl_get_wglGetExtensionsStringARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_extensions_string.wglGetExtensionsStringARB == (GdkGLProc_wglGetExtensionsStringARB) -1)
+ _procs_WGL_ARB_extensions_string.wglGetExtensionsStringARB =
+ (GdkGLProc_wglGetExtensionsStringARB) gdk_gl_get_proc_address ("wglGetExtensionsStringARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetExtensionsStringARB () - %s",
+ (_procs_WGL_ARB_extensions_string.wglGetExtensionsStringARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_extensions_string.wglGetExtensionsStringARB);
+}
+
+/* Get WGL_ARB_extensions_string functions */
+GdkGL_WGL_ARB_extensions_string *
+gdk_gl_get_WGL_ARB_extensions_string (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_ARB_extensions_string");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglGetExtensionsStringARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_ARB_extensions_string () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_ARB_extensions_string;
+}
+
+/*
+ * WGL_ARB_pixel_format
+ */
+
+static GdkGL_WGL_ARB_pixel_format _procs_WGL_ARB_pixel_format = {
+ (GdkGLProc_wglGetPixelFormatAttribivARB) -1,
+ (GdkGLProc_wglGetPixelFormatAttribfvARB) -1,
+ (GdkGLProc_wglChoosePixelFormatARB) -1
+};
+
+/* wglGetPixelFormatAttribivARB */
+GdkGLProc
+gdk_gl_get_wglGetPixelFormatAttribivARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_pixel_format.wglGetPixelFormatAttribivARB == (GdkGLProc_wglGetPixelFormatAttribivARB) -1)
+ _procs_WGL_ARB_pixel_format.wglGetPixelFormatAttribivARB =
+ (GdkGLProc_wglGetPixelFormatAttribivARB) gdk_gl_get_proc_address ("wglGetPixelFormatAttribivARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetPixelFormatAttribivARB () - %s",
+ (_procs_WGL_ARB_pixel_format.wglGetPixelFormatAttribivARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_pixel_format.wglGetPixelFormatAttribivARB);
+}
+
+/* wglGetPixelFormatAttribfvARB */
+GdkGLProc
+gdk_gl_get_wglGetPixelFormatAttribfvARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_pixel_format.wglGetPixelFormatAttribfvARB == (GdkGLProc_wglGetPixelFormatAttribfvARB) -1)
+ _procs_WGL_ARB_pixel_format.wglGetPixelFormatAttribfvARB =
+ (GdkGLProc_wglGetPixelFormatAttribfvARB) gdk_gl_get_proc_address ("wglGetPixelFormatAttribfvARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetPixelFormatAttribfvARB () - %s",
+ (_procs_WGL_ARB_pixel_format.wglGetPixelFormatAttribfvARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_pixel_format.wglGetPixelFormatAttribfvARB);
+}
+
+/* wglChoosePixelFormatARB */
+GdkGLProc
+gdk_gl_get_wglChoosePixelFormatARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_pixel_format.wglChoosePixelFormatARB == (GdkGLProc_wglChoosePixelFormatARB) -1)
+ _procs_WGL_ARB_pixel_format.wglChoosePixelFormatARB =
+ (GdkGLProc_wglChoosePixelFormatARB) gdk_gl_get_proc_address ("wglChoosePixelFormatARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglChoosePixelFormatARB () - %s",
+ (_procs_WGL_ARB_pixel_format.wglChoosePixelFormatARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_pixel_format.wglChoosePixelFormatARB);
+}
+
+/* Get WGL_ARB_pixel_format functions */
+GdkGL_WGL_ARB_pixel_format *
+gdk_gl_get_WGL_ARB_pixel_format (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_ARB_pixel_format");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglGetPixelFormatAttribivARB () != NULL);
+ supported &= (gdk_gl_get_wglGetPixelFormatAttribfvARB () != NULL);
+ supported &= (gdk_gl_get_wglChoosePixelFormatARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_ARB_pixel_format () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_ARB_pixel_format;
+}
+
+/*
+ * WGL_ARB_make_current_read
+ */
+
+static GdkGL_WGL_ARB_make_current_read _procs_WGL_ARB_make_current_read = {
+ (GdkGLProc_wglMakeContextCurrentARB) -1,
+ (GdkGLProc_wglGetCurrentReadDCARB) -1
+};
+
+/* wglMakeContextCurrentARB */
+GdkGLProc
+gdk_gl_get_wglMakeContextCurrentARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_make_current_read.wglMakeContextCurrentARB == (GdkGLProc_wglMakeContextCurrentARB) -1)
+ _procs_WGL_ARB_make_current_read.wglMakeContextCurrentARB =
+ (GdkGLProc_wglMakeContextCurrentARB) gdk_gl_get_proc_address ("wglMakeContextCurrentARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglMakeContextCurrentARB () - %s",
+ (_procs_WGL_ARB_make_current_read.wglMakeContextCurrentARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_make_current_read.wglMakeContextCurrentARB);
+}
+
+/* wglGetCurrentReadDCARB */
+GdkGLProc
+gdk_gl_get_wglGetCurrentReadDCARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_make_current_read.wglGetCurrentReadDCARB == (GdkGLProc_wglGetCurrentReadDCARB) -1)
+ _procs_WGL_ARB_make_current_read.wglGetCurrentReadDCARB =
+ (GdkGLProc_wglGetCurrentReadDCARB) gdk_gl_get_proc_address ("wglGetCurrentReadDCARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetCurrentReadDCARB () - %s",
+ (_procs_WGL_ARB_make_current_read.wglGetCurrentReadDCARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_make_current_read.wglGetCurrentReadDCARB);
+}
+
+/* Get WGL_ARB_make_current_read functions */
+GdkGL_WGL_ARB_make_current_read *
+gdk_gl_get_WGL_ARB_make_current_read (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_ARB_make_current_read");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglMakeContextCurrentARB () != NULL);
+ supported &= (gdk_gl_get_wglGetCurrentReadDCARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_ARB_make_current_read () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_ARB_make_current_read;
+}
+
+/*
+ * WGL_ARB_pbuffer
+ */
+
+static GdkGL_WGL_ARB_pbuffer _procs_WGL_ARB_pbuffer = {
+ (GdkGLProc_wglCreatePbufferARB) -1,
+ (GdkGLProc_wglGetPbufferDCARB) -1,
+ (GdkGLProc_wglReleasePbufferDCARB) -1,
+ (GdkGLProc_wglDestroyPbufferARB) -1,
+ (GdkGLProc_wglQueryPbufferARB) -1
+};
+
+/* wglCreatePbufferARB */
+GdkGLProc
+gdk_gl_get_wglCreatePbufferARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_pbuffer.wglCreatePbufferARB == (GdkGLProc_wglCreatePbufferARB) -1)
+ _procs_WGL_ARB_pbuffer.wglCreatePbufferARB =
+ (GdkGLProc_wglCreatePbufferARB) gdk_gl_get_proc_address ("wglCreatePbufferARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglCreatePbufferARB () - %s",
+ (_procs_WGL_ARB_pbuffer.wglCreatePbufferARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_pbuffer.wglCreatePbufferARB);
+}
+
+/* wglGetPbufferDCARB */
+GdkGLProc
+gdk_gl_get_wglGetPbufferDCARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_pbuffer.wglGetPbufferDCARB == (GdkGLProc_wglGetPbufferDCARB) -1)
+ _procs_WGL_ARB_pbuffer.wglGetPbufferDCARB =
+ (GdkGLProc_wglGetPbufferDCARB) gdk_gl_get_proc_address ("wglGetPbufferDCARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetPbufferDCARB () - %s",
+ (_procs_WGL_ARB_pbuffer.wglGetPbufferDCARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_pbuffer.wglGetPbufferDCARB);
+}
+
+/* wglReleasePbufferDCARB */
+GdkGLProc
+gdk_gl_get_wglReleasePbufferDCARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_pbuffer.wglReleasePbufferDCARB == (GdkGLProc_wglReleasePbufferDCARB) -1)
+ _procs_WGL_ARB_pbuffer.wglReleasePbufferDCARB =
+ (GdkGLProc_wglReleasePbufferDCARB) gdk_gl_get_proc_address ("wglReleasePbufferDCARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglReleasePbufferDCARB () - %s",
+ (_procs_WGL_ARB_pbuffer.wglReleasePbufferDCARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_pbuffer.wglReleasePbufferDCARB);
+}
+
+/* wglDestroyPbufferARB */
+GdkGLProc
+gdk_gl_get_wglDestroyPbufferARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_pbuffer.wglDestroyPbufferARB == (GdkGLProc_wglDestroyPbufferARB) -1)
+ _procs_WGL_ARB_pbuffer.wglDestroyPbufferARB =
+ (GdkGLProc_wglDestroyPbufferARB) gdk_gl_get_proc_address ("wglDestroyPbufferARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglDestroyPbufferARB () - %s",
+ (_procs_WGL_ARB_pbuffer.wglDestroyPbufferARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_pbuffer.wglDestroyPbufferARB);
+}
+
+/* wglQueryPbufferARB */
+GdkGLProc
+gdk_gl_get_wglQueryPbufferARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_pbuffer.wglQueryPbufferARB == (GdkGLProc_wglQueryPbufferARB) -1)
+ _procs_WGL_ARB_pbuffer.wglQueryPbufferARB =
+ (GdkGLProc_wglQueryPbufferARB) gdk_gl_get_proc_address ("wglQueryPbufferARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglQueryPbufferARB () - %s",
+ (_procs_WGL_ARB_pbuffer.wglQueryPbufferARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_pbuffer.wglQueryPbufferARB);
+}
+
+/* Get WGL_ARB_pbuffer functions */
+GdkGL_WGL_ARB_pbuffer *
+gdk_gl_get_WGL_ARB_pbuffer (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_ARB_pbuffer");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglCreatePbufferARB () != NULL);
+ supported &= (gdk_gl_get_wglGetPbufferDCARB () != NULL);
+ supported &= (gdk_gl_get_wglReleasePbufferDCARB () != NULL);
+ supported &= (gdk_gl_get_wglDestroyPbufferARB () != NULL);
+ supported &= (gdk_gl_get_wglQueryPbufferARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_ARB_pbuffer () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_ARB_pbuffer;
+}
+
+/*
+ * WGL_ARB_render_texture
+ */
+
+static GdkGL_WGL_ARB_render_texture _procs_WGL_ARB_render_texture = {
+ (GdkGLProc_wglBindTexImageARB) -1,
+ (GdkGLProc_wglReleaseTexImageARB) -1,
+ (GdkGLProc_wglSetPbufferAttribARB) -1
+};
+
+/* wglBindTexImageARB */
+GdkGLProc
+gdk_gl_get_wglBindTexImageARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_render_texture.wglBindTexImageARB == (GdkGLProc_wglBindTexImageARB) -1)
+ _procs_WGL_ARB_render_texture.wglBindTexImageARB =
+ (GdkGLProc_wglBindTexImageARB) gdk_gl_get_proc_address ("wglBindTexImageARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglBindTexImageARB () - %s",
+ (_procs_WGL_ARB_render_texture.wglBindTexImageARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_render_texture.wglBindTexImageARB);
+}
+
+/* wglReleaseTexImageARB */
+GdkGLProc
+gdk_gl_get_wglReleaseTexImageARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_render_texture.wglReleaseTexImageARB == (GdkGLProc_wglReleaseTexImageARB) -1)
+ _procs_WGL_ARB_render_texture.wglReleaseTexImageARB =
+ (GdkGLProc_wglReleaseTexImageARB) gdk_gl_get_proc_address ("wglReleaseTexImageARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglReleaseTexImageARB () - %s",
+ (_procs_WGL_ARB_render_texture.wglReleaseTexImageARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_render_texture.wglReleaseTexImageARB);
+}
+
+/* wglSetPbufferAttribARB */
+GdkGLProc
+gdk_gl_get_wglSetPbufferAttribARB (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_ARB_render_texture.wglSetPbufferAttribARB == (GdkGLProc_wglSetPbufferAttribARB) -1)
+ _procs_WGL_ARB_render_texture.wglSetPbufferAttribARB =
+ (GdkGLProc_wglSetPbufferAttribARB) gdk_gl_get_proc_address ("wglSetPbufferAttribARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglSetPbufferAttribARB () - %s",
+ (_procs_WGL_ARB_render_texture.wglSetPbufferAttribARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_ARB_render_texture.wglSetPbufferAttribARB);
+}
+
+/* Get WGL_ARB_render_texture functions */
+GdkGL_WGL_ARB_render_texture *
+gdk_gl_get_WGL_ARB_render_texture (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_ARB_render_texture");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglBindTexImageARB () != NULL);
+ supported &= (gdk_gl_get_wglReleaseTexImageARB () != NULL);
+ supported &= (gdk_gl_get_wglSetPbufferAttribARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_ARB_render_texture () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_ARB_render_texture;
+}
+
+/*
+ * WGL_EXT_display_color_table
+ */
+
+static GdkGL_WGL_EXT_display_color_table _procs_WGL_EXT_display_color_table = {
+ (GdkGLProc_wglCreateDisplayColorTableEXT) -1,
+ (GdkGLProc_wglLoadDisplayColorTableEXT) -1,
+ (GdkGLProc_wglBindDisplayColorTableEXT) -1,
+ (GdkGLProc_wglDestroyDisplayColorTableEXT) -1
+};
+
+/* wglCreateDisplayColorTableEXT */
+GdkGLProc
+gdk_gl_get_wglCreateDisplayColorTableEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_display_color_table.wglCreateDisplayColorTableEXT == (GdkGLProc_wglCreateDisplayColorTableEXT) -1)
+ _procs_WGL_EXT_display_color_table.wglCreateDisplayColorTableEXT =
+ (GdkGLProc_wglCreateDisplayColorTableEXT) gdk_gl_get_proc_address ("wglCreateDisplayColorTableEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglCreateDisplayColorTableEXT () - %s",
+ (_procs_WGL_EXT_display_color_table.wglCreateDisplayColorTableEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_display_color_table.wglCreateDisplayColorTableEXT);
+}
+
+/* wglLoadDisplayColorTableEXT */
+GdkGLProc
+gdk_gl_get_wglLoadDisplayColorTableEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_display_color_table.wglLoadDisplayColorTableEXT == (GdkGLProc_wglLoadDisplayColorTableEXT) -1)
+ _procs_WGL_EXT_display_color_table.wglLoadDisplayColorTableEXT =
+ (GdkGLProc_wglLoadDisplayColorTableEXT) gdk_gl_get_proc_address ("wglLoadDisplayColorTableEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglLoadDisplayColorTableEXT () - %s",
+ (_procs_WGL_EXT_display_color_table.wglLoadDisplayColorTableEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_display_color_table.wglLoadDisplayColorTableEXT);
+}
+
+/* wglBindDisplayColorTableEXT */
+GdkGLProc
+gdk_gl_get_wglBindDisplayColorTableEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_display_color_table.wglBindDisplayColorTableEXT == (GdkGLProc_wglBindDisplayColorTableEXT) -1)
+ _procs_WGL_EXT_display_color_table.wglBindDisplayColorTableEXT =
+ (GdkGLProc_wglBindDisplayColorTableEXT) gdk_gl_get_proc_address ("wglBindDisplayColorTableEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglBindDisplayColorTableEXT () - %s",
+ (_procs_WGL_EXT_display_color_table.wglBindDisplayColorTableEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_display_color_table.wglBindDisplayColorTableEXT);
+}
+
+/* wglDestroyDisplayColorTableEXT */
+GdkGLProc
+gdk_gl_get_wglDestroyDisplayColorTableEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_display_color_table.wglDestroyDisplayColorTableEXT == (GdkGLProc_wglDestroyDisplayColorTableEXT) -1)
+ _procs_WGL_EXT_display_color_table.wglDestroyDisplayColorTableEXT =
+ (GdkGLProc_wglDestroyDisplayColorTableEXT) gdk_gl_get_proc_address ("wglDestroyDisplayColorTableEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglDestroyDisplayColorTableEXT () - %s",
+ (_procs_WGL_EXT_display_color_table.wglDestroyDisplayColorTableEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_display_color_table.wglDestroyDisplayColorTableEXT);
+}
+
+/* Get WGL_EXT_display_color_table functions */
+GdkGL_WGL_EXT_display_color_table *
+gdk_gl_get_WGL_EXT_display_color_table (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_EXT_display_color_table");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglCreateDisplayColorTableEXT () != NULL);
+ supported &= (gdk_gl_get_wglLoadDisplayColorTableEXT () != NULL);
+ supported &= (gdk_gl_get_wglBindDisplayColorTableEXT () != NULL);
+ supported &= (gdk_gl_get_wglDestroyDisplayColorTableEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_EXT_display_color_table () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_EXT_display_color_table;
+}
+
+/*
+ * WGL_EXT_extensions_string
+ */
+
+static GdkGL_WGL_EXT_extensions_string _procs_WGL_EXT_extensions_string = {
+ (GdkGLProc_wglGetExtensionsStringEXT) -1
+};
+
+/* wglGetExtensionsStringEXT */
+GdkGLProc
+gdk_gl_get_wglGetExtensionsStringEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_extensions_string.wglGetExtensionsStringEXT == (GdkGLProc_wglGetExtensionsStringEXT) -1)
+ _procs_WGL_EXT_extensions_string.wglGetExtensionsStringEXT =
+ (GdkGLProc_wglGetExtensionsStringEXT) gdk_gl_get_proc_address ("wglGetExtensionsStringEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetExtensionsStringEXT () - %s",
+ (_procs_WGL_EXT_extensions_string.wglGetExtensionsStringEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_extensions_string.wglGetExtensionsStringEXT);
+}
+
+/* Get WGL_EXT_extensions_string functions */
+GdkGL_WGL_EXT_extensions_string *
+gdk_gl_get_WGL_EXT_extensions_string (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_EXT_extensions_string");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglGetExtensionsStringEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_EXT_extensions_string () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_EXT_extensions_string;
+}
+
+/*
+ * WGL_EXT_make_current_read
+ */
+
+static GdkGL_WGL_EXT_make_current_read _procs_WGL_EXT_make_current_read = {
+ (GdkGLProc_wglMakeContextCurrentEXT) -1,
+ (GdkGLProc_wglGetCurrentReadDCEXT) -1
+};
+
+/* wglMakeContextCurrentEXT */
+GdkGLProc
+gdk_gl_get_wglMakeContextCurrentEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_make_current_read.wglMakeContextCurrentEXT == (GdkGLProc_wglMakeContextCurrentEXT) -1)
+ _procs_WGL_EXT_make_current_read.wglMakeContextCurrentEXT =
+ (GdkGLProc_wglMakeContextCurrentEXT) gdk_gl_get_proc_address ("wglMakeContextCurrentEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglMakeContextCurrentEXT () - %s",
+ (_procs_WGL_EXT_make_current_read.wglMakeContextCurrentEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_make_current_read.wglMakeContextCurrentEXT);
+}
+
+/* wglGetCurrentReadDCEXT */
+GdkGLProc
+gdk_gl_get_wglGetCurrentReadDCEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_make_current_read.wglGetCurrentReadDCEXT == (GdkGLProc_wglGetCurrentReadDCEXT) -1)
+ _procs_WGL_EXT_make_current_read.wglGetCurrentReadDCEXT =
+ (GdkGLProc_wglGetCurrentReadDCEXT) gdk_gl_get_proc_address ("wglGetCurrentReadDCEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetCurrentReadDCEXT () - %s",
+ (_procs_WGL_EXT_make_current_read.wglGetCurrentReadDCEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_make_current_read.wglGetCurrentReadDCEXT);
+}
+
+/* Get WGL_EXT_make_current_read functions */
+GdkGL_WGL_EXT_make_current_read *
+gdk_gl_get_WGL_EXT_make_current_read (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_EXT_make_current_read");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglMakeContextCurrentEXT () != NULL);
+ supported &= (gdk_gl_get_wglGetCurrentReadDCEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_EXT_make_current_read () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_EXT_make_current_read;
+}
+
+/*
+ * WGL_EXT_pbuffer
+ */
+
+static GdkGL_WGL_EXT_pbuffer _procs_WGL_EXT_pbuffer = {
+ (GdkGLProc_wglCreatePbufferEXT) -1,
+ (GdkGLProc_wglGetPbufferDCEXT) -1,
+ (GdkGLProc_wglReleasePbufferDCEXT) -1,
+ (GdkGLProc_wglDestroyPbufferEXT) -1,
+ (GdkGLProc_wglQueryPbufferEXT) -1
+};
+
+/* wglCreatePbufferEXT */
+GdkGLProc
+gdk_gl_get_wglCreatePbufferEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_pbuffer.wglCreatePbufferEXT == (GdkGLProc_wglCreatePbufferEXT) -1)
+ _procs_WGL_EXT_pbuffer.wglCreatePbufferEXT =
+ (GdkGLProc_wglCreatePbufferEXT) gdk_gl_get_proc_address ("wglCreatePbufferEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglCreatePbufferEXT () - %s",
+ (_procs_WGL_EXT_pbuffer.wglCreatePbufferEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_pbuffer.wglCreatePbufferEXT);
+}
+
+/* wglGetPbufferDCEXT */
+GdkGLProc
+gdk_gl_get_wglGetPbufferDCEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_pbuffer.wglGetPbufferDCEXT == (GdkGLProc_wglGetPbufferDCEXT) -1)
+ _procs_WGL_EXT_pbuffer.wglGetPbufferDCEXT =
+ (GdkGLProc_wglGetPbufferDCEXT) gdk_gl_get_proc_address ("wglGetPbufferDCEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetPbufferDCEXT () - %s",
+ (_procs_WGL_EXT_pbuffer.wglGetPbufferDCEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_pbuffer.wglGetPbufferDCEXT);
+}
+
+/* wglReleasePbufferDCEXT */
+GdkGLProc
+gdk_gl_get_wglReleasePbufferDCEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_pbuffer.wglReleasePbufferDCEXT == (GdkGLProc_wglReleasePbufferDCEXT) -1)
+ _procs_WGL_EXT_pbuffer.wglReleasePbufferDCEXT =
+ (GdkGLProc_wglReleasePbufferDCEXT) gdk_gl_get_proc_address ("wglReleasePbufferDCEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglReleasePbufferDCEXT () - %s",
+ (_procs_WGL_EXT_pbuffer.wglReleasePbufferDCEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_pbuffer.wglReleasePbufferDCEXT);
+}
+
+/* wglDestroyPbufferEXT */
+GdkGLProc
+gdk_gl_get_wglDestroyPbufferEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_pbuffer.wglDestroyPbufferEXT == (GdkGLProc_wglDestroyPbufferEXT) -1)
+ _procs_WGL_EXT_pbuffer.wglDestroyPbufferEXT =
+ (GdkGLProc_wglDestroyPbufferEXT) gdk_gl_get_proc_address ("wglDestroyPbufferEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglDestroyPbufferEXT () - %s",
+ (_procs_WGL_EXT_pbuffer.wglDestroyPbufferEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_pbuffer.wglDestroyPbufferEXT);
+}
+
+/* wglQueryPbufferEXT */
+GdkGLProc
+gdk_gl_get_wglQueryPbufferEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_pbuffer.wglQueryPbufferEXT == (GdkGLProc_wglQueryPbufferEXT) -1)
+ _procs_WGL_EXT_pbuffer.wglQueryPbufferEXT =
+ (GdkGLProc_wglQueryPbufferEXT) gdk_gl_get_proc_address ("wglQueryPbufferEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglQueryPbufferEXT () - %s",
+ (_procs_WGL_EXT_pbuffer.wglQueryPbufferEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_pbuffer.wglQueryPbufferEXT);
+}
+
+/* Get WGL_EXT_pbuffer functions */
+GdkGL_WGL_EXT_pbuffer *
+gdk_gl_get_WGL_EXT_pbuffer (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_EXT_pbuffer");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglCreatePbufferEXT () != NULL);
+ supported &= (gdk_gl_get_wglGetPbufferDCEXT () != NULL);
+ supported &= (gdk_gl_get_wglReleasePbufferDCEXT () != NULL);
+ supported &= (gdk_gl_get_wglDestroyPbufferEXT () != NULL);
+ supported &= (gdk_gl_get_wglQueryPbufferEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_EXT_pbuffer () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_EXT_pbuffer;
+}
+
+/*
+ * WGL_EXT_pixel_format
+ */
+
+static GdkGL_WGL_EXT_pixel_format _procs_WGL_EXT_pixel_format = {
+ (GdkGLProc_wglGetPixelFormatAttribivEXT) -1,
+ (GdkGLProc_wglGetPixelFormatAttribfvEXT) -1,
+ (GdkGLProc_wglChoosePixelFormatEXT) -1
+};
+
+/* wglGetPixelFormatAttribivEXT */
+GdkGLProc
+gdk_gl_get_wglGetPixelFormatAttribivEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_pixel_format.wglGetPixelFormatAttribivEXT == (GdkGLProc_wglGetPixelFormatAttribivEXT) -1)
+ _procs_WGL_EXT_pixel_format.wglGetPixelFormatAttribivEXT =
+ (GdkGLProc_wglGetPixelFormatAttribivEXT) gdk_gl_get_proc_address ("wglGetPixelFormatAttribivEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetPixelFormatAttribivEXT () - %s",
+ (_procs_WGL_EXT_pixel_format.wglGetPixelFormatAttribivEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_pixel_format.wglGetPixelFormatAttribivEXT);
+}
+
+/* wglGetPixelFormatAttribfvEXT */
+GdkGLProc
+gdk_gl_get_wglGetPixelFormatAttribfvEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_pixel_format.wglGetPixelFormatAttribfvEXT == (GdkGLProc_wglGetPixelFormatAttribfvEXT) -1)
+ _procs_WGL_EXT_pixel_format.wglGetPixelFormatAttribfvEXT =
+ (GdkGLProc_wglGetPixelFormatAttribfvEXT) gdk_gl_get_proc_address ("wglGetPixelFormatAttribfvEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetPixelFormatAttribfvEXT () - %s",
+ (_procs_WGL_EXT_pixel_format.wglGetPixelFormatAttribfvEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_pixel_format.wglGetPixelFormatAttribfvEXT);
+}
+
+/* wglChoosePixelFormatEXT */
+GdkGLProc
+gdk_gl_get_wglChoosePixelFormatEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_pixel_format.wglChoosePixelFormatEXT == (GdkGLProc_wglChoosePixelFormatEXT) -1)
+ _procs_WGL_EXT_pixel_format.wglChoosePixelFormatEXT =
+ (GdkGLProc_wglChoosePixelFormatEXT) gdk_gl_get_proc_address ("wglChoosePixelFormatEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglChoosePixelFormatEXT () - %s",
+ (_procs_WGL_EXT_pixel_format.wglChoosePixelFormatEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_pixel_format.wglChoosePixelFormatEXT);
+}
+
+/* Get WGL_EXT_pixel_format functions */
+GdkGL_WGL_EXT_pixel_format *
+gdk_gl_get_WGL_EXT_pixel_format (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_EXT_pixel_format");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglGetPixelFormatAttribivEXT () != NULL);
+ supported &= (gdk_gl_get_wglGetPixelFormatAttribfvEXT () != NULL);
+ supported &= (gdk_gl_get_wglChoosePixelFormatEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_EXT_pixel_format () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_EXT_pixel_format;
+}
+
+/*
+ * WGL_EXT_swap_control
+ */
+
+static GdkGL_WGL_EXT_swap_control _procs_WGL_EXT_swap_control = {
+ (GdkGLProc_wglSwapIntervalEXT) -1,
+ (GdkGLProc_wglGetSwapIntervalEXT) -1
+};
+
+/* wglSwapIntervalEXT */
+GdkGLProc
+gdk_gl_get_wglSwapIntervalEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_swap_control.wglSwapIntervalEXT == (GdkGLProc_wglSwapIntervalEXT) -1)
+ _procs_WGL_EXT_swap_control.wglSwapIntervalEXT =
+ (GdkGLProc_wglSwapIntervalEXT) gdk_gl_get_proc_address ("wglSwapIntervalEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglSwapIntervalEXT () - %s",
+ (_procs_WGL_EXT_swap_control.wglSwapIntervalEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_swap_control.wglSwapIntervalEXT);
+}
+
+/* wglGetSwapIntervalEXT */
+GdkGLProc
+gdk_gl_get_wglGetSwapIntervalEXT (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_EXT_swap_control.wglGetSwapIntervalEXT == (GdkGLProc_wglGetSwapIntervalEXT) -1)
+ _procs_WGL_EXT_swap_control.wglGetSwapIntervalEXT =
+ (GdkGLProc_wglGetSwapIntervalEXT) gdk_gl_get_proc_address ("wglGetSwapIntervalEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetSwapIntervalEXT () - %s",
+ (_procs_WGL_EXT_swap_control.wglGetSwapIntervalEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_EXT_swap_control.wglGetSwapIntervalEXT);
+}
+
+/* Get WGL_EXT_swap_control functions */
+GdkGL_WGL_EXT_swap_control *
+gdk_gl_get_WGL_EXT_swap_control (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_EXT_swap_control");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglSwapIntervalEXT () != NULL);
+ supported &= (gdk_gl_get_wglGetSwapIntervalEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_EXT_swap_control () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_EXT_swap_control;
+}
+
+/*
+ * WGL_NV_vertex_array_range
+ */
+
+static GdkGL_WGL_NV_vertex_array_range _procs_WGL_NV_vertex_array_range = {
+ (GdkGLProc_wglAllocateMemoryNV) -1,
+ (GdkGLProc_wglFreeMemoryNV) -1
+};
+
+/* wglAllocateMemoryNV */
+GdkGLProc
+gdk_gl_get_wglAllocateMemoryNV (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_NV_vertex_array_range.wglAllocateMemoryNV == (GdkGLProc_wglAllocateMemoryNV) -1)
+ _procs_WGL_NV_vertex_array_range.wglAllocateMemoryNV =
+ (GdkGLProc_wglAllocateMemoryNV) gdk_gl_get_proc_address ("wglAllocateMemoryNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglAllocateMemoryNV () - %s",
+ (_procs_WGL_NV_vertex_array_range.wglAllocateMemoryNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_NV_vertex_array_range.wglAllocateMemoryNV);
+}
+
+/* wglFreeMemoryNV */
+GdkGLProc
+gdk_gl_get_wglFreeMemoryNV (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_NV_vertex_array_range.wglFreeMemoryNV == (GdkGLProc_wglFreeMemoryNV) -1)
+ _procs_WGL_NV_vertex_array_range.wglFreeMemoryNV =
+ (GdkGLProc_wglFreeMemoryNV) gdk_gl_get_proc_address ("wglFreeMemoryNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglFreeMemoryNV () - %s",
+ (_procs_WGL_NV_vertex_array_range.wglFreeMemoryNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_NV_vertex_array_range.wglFreeMemoryNV);
+}
+
+/* Get WGL_NV_vertex_array_range functions */
+GdkGL_WGL_NV_vertex_array_range *
+gdk_gl_get_WGL_NV_vertex_array_range (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_NV_vertex_array_range");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglAllocateMemoryNV () != NULL);
+ supported &= (gdk_gl_get_wglFreeMemoryNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_NV_vertex_array_range () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_NV_vertex_array_range;
+}
+
+/*
+ * WGL_OML_sync_control
+ */
+
+static GdkGL_WGL_OML_sync_control _procs_WGL_OML_sync_control = {
+ (GdkGLProc_wglGetSyncValuesOML) -1,
+ (GdkGLProc_wglGetMscRateOML) -1,
+ (GdkGLProc_wglSwapBuffersMscOML) -1,
+ (GdkGLProc_wglSwapLayerBuffersMscOML) -1,
+ (GdkGLProc_wglWaitForMscOML) -1,
+ (GdkGLProc_wglWaitForSbcOML) -1
+};
+
+/* wglGetSyncValuesOML */
+GdkGLProc
+gdk_gl_get_wglGetSyncValuesOML (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_OML_sync_control.wglGetSyncValuesOML == (GdkGLProc_wglGetSyncValuesOML) -1)
+ _procs_WGL_OML_sync_control.wglGetSyncValuesOML =
+ (GdkGLProc_wglGetSyncValuesOML) gdk_gl_get_proc_address ("wglGetSyncValuesOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetSyncValuesOML () - %s",
+ (_procs_WGL_OML_sync_control.wglGetSyncValuesOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_OML_sync_control.wglGetSyncValuesOML);
+}
+
+/* wglGetMscRateOML */
+GdkGLProc
+gdk_gl_get_wglGetMscRateOML (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_OML_sync_control.wglGetMscRateOML == (GdkGLProc_wglGetMscRateOML) -1)
+ _procs_WGL_OML_sync_control.wglGetMscRateOML =
+ (GdkGLProc_wglGetMscRateOML) gdk_gl_get_proc_address ("wglGetMscRateOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetMscRateOML () - %s",
+ (_procs_WGL_OML_sync_control.wglGetMscRateOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_OML_sync_control.wglGetMscRateOML);
+}
+
+/* wglSwapBuffersMscOML */
+GdkGLProc
+gdk_gl_get_wglSwapBuffersMscOML (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_OML_sync_control.wglSwapBuffersMscOML == (GdkGLProc_wglSwapBuffersMscOML) -1)
+ _procs_WGL_OML_sync_control.wglSwapBuffersMscOML =
+ (GdkGLProc_wglSwapBuffersMscOML) gdk_gl_get_proc_address ("wglSwapBuffersMscOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglSwapBuffersMscOML () - %s",
+ (_procs_WGL_OML_sync_control.wglSwapBuffersMscOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_OML_sync_control.wglSwapBuffersMscOML);
+}
+
+/* wglSwapLayerBuffersMscOML */
+GdkGLProc
+gdk_gl_get_wglSwapLayerBuffersMscOML (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_OML_sync_control.wglSwapLayerBuffersMscOML == (GdkGLProc_wglSwapLayerBuffersMscOML) -1)
+ _procs_WGL_OML_sync_control.wglSwapLayerBuffersMscOML =
+ (GdkGLProc_wglSwapLayerBuffersMscOML) gdk_gl_get_proc_address ("wglSwapLayerBuffersMscOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglSwapLayerBuffersMscOML () - %s",
+ (_procs_WGL_OML_sync_control.wglSwapLayerBuffersMscOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_OML_sync_control.wglSwapLayerBuffersMscOML);
+}
+
+/* wglWaitForMscOML */
+GdkGLProc
+gdk_gl_get_wglWaitForMscOML (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_OML_sync_control.wglWaitForMscOML == (GdkGLProc_wglWaitForMscOML) -1)
+ _procs_WGL_OML_sync_control.wglWaitForMscOML =
+ (GdkGLProc_wglWaitForMscOML) gdk_gl_get_proc_address ("wglWaitForMscOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglWaitForMscOML () - %s",
+ (_procs_WGL_OML_sync_control.wglWaitForMscOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_OML_sync_control.wglWaitForMscOML);
+}
+
+/* wglWaitForSbcOML */
+GdkGLProc
+gdk_gl_get_wglWaitForSbcOML (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_OML_sync_control.wglWaitForSbcOML == (GdkGLProc_wglWaitForSbcOML) -1)
+ _procs_WGL_OML_sync_control.wglWaitForSbcOML =
+ (GdkGLProc_wglWaitForSbcOML) gdk_gl_get_proc_address ("wglWaitForSbcOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglWaitForSbcOML () - %s",
+ (_procs_WGL_OML_sync_control.wglWaitForSbcOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_OML_sync_control.wglWaitForSbcOML);
+}
+
+/* Get WGL_OML_sync_control functions */
+GdkGL_WGL_OML_sync_control *
+gdk_gl_get_WGL_OML_sync_control (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_OML_sync_control");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglGetSyncValuesOML () != NULL);
+ supported &= (gdk_gl_get_wglGetMscRateOML () != NULL);
+ supported &= (gdk_gl_get_wglSwapBuffersMscOML () != NULL);
+ supported &= (gdk_gl_get_wglSwapLayerBuffersMscOML () != NULL);
+ supported &= (gdk_gl_get_wglWaitForMscOML () != NULL);
+ supported &= (gdk_gl_get_wglWaitForSbcOML () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_OML_sync_control () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_OML_sync_control;
+}
+
+/*
+ * WGL_I3D_digital_video_control
+ */
+
+static GdkGL_WGL_I3D_digital_video_control _procs_WGL_I3D_digital_video_control = {
+ (GdkGLProc_wglGetDigitalVideoParametersI3D) -1,
+ (GdkGLProc_wglSetDigitalVideoParametersI3D) -1
+};
+
+/* wglGetDigitalVideoParametersI3D */
+GdkGLProc
+gdk_gl_get_wglGetDigitalVideoParametersI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_digital_video_control.wglGetDigitalVideoParametersI3D == (GdkGLProc_wglGetDigitalVideoParametersI3D) -1)
+ _procs_WGL_I3D_digital_video_control.wglGetDigitalVideoParametersI3D =
+ (GdkGLProc_wglGetDigitalVideoParametersI3D) gdk_gl_get_proc_address ("wglGetDigitalVideoParametersI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetDigitalVideoParametersI3D () - %s",
+ (_procs_WGL_I3D_digital_video_control.wglGetDigitalVideoParametersI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_digital_video_control.wglGetDigitalVideoParametersI3D);
+}
+
+/* wglSetDigitalVideoParametersI3D */
+GdkGLProc
+gdk_gl_get_wglSetDigitalVideoParametersI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_digital_video_control.wglSetDigitalVideoParametersI3D == (GdkGLProc_wglSetDigitalVideoParametersI3D) -1)
+ _procs_WGL_I3D_digital_video_control.wglSetDigitalVideoParametersI3D =
+ (GdkGLProc_wglSetDigitalVideoParametersI3D) gdk_gl_get_proc_address ("wglSetDigitalVideoParametersI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglSetDigitalVideoParametersI3D () - %s",
+ (_procs_WGL_I3D_digital_video_control.wglSetDigitalVideoParametersI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_digital_video_control.wglSetDigitalVideoParametersI3D);
+}
+
+/* Get WGL_I3D_digital_video_control functions */
+GdkGL_WGL_I3D_digital_video_control *
+gdk_gl_get_WGL_I3D_digital_video_control (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_I3D_digital_video_control");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglGetDigitalVideoParametersI3D () != NULL);
+ supported &= (gdk_gl_get_wglSetDigitalVideoParametersI3D () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_I3D_digital_video_control () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_I3D_digital_video_control;
+}
+
+/*
+ * WGL_I3D_gamma
+ */
+
+static GdkGL_WGL_I3D_gamma _procs_WGL_I3D_gamma = {
+ (GdkGLProc_wglGetGammaTableParametersI3D) -1,
+ (GdkGLProc_wglSetGammaTableParametersI3D) -1,
+ (GdkGLProc_wglGetGammaTableI3D) -1,
+ (GdkGLProc_wglSetGammaTableI3D) -1
+};
+
+/* wglGetGammaTableParametersI3D */
+GdkGLProc
+gdk_gl_get_wglGetGammaTableParametersI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_gamma.wglGetGammaTableParametersI3D == (GdkGLProc_wglGetGammaTableParametersI3D) -1)
+ _procs_WGL_I3D_gamma.wglGetGammaTableParametersI3D =
+ (GdkGLProc_wglGetGammaTableParametersI3D) gdk_gl_get_proc_address ("wglGetGammaTableParametersI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetGammaTableParametersI3D () - %s",
+ (_procs_WGL_I3D_gamma.wglGetGammaTableParametersI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_gamma.wglGetGammaTableParametersI3D);
+}
+
+/* wglSetGammaTableParametersI3D */
+GdkGLProc
+gdk_gl_get_wglSetGammaTableParametersI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_gamma.wglSetGammaTableParametersI3D == (GdkGLProc_wglSetGammaTableParametersI3D) -1)
+ _procs_WGL_I3D_gamma.wglSetGammaTableParametersI3D =
+ (GdkGLProc_wglSetGammaTableParametersI3D) gdk_gl_get_proc_address ("wglSetGammaTableParametersI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglSetGammaTableParametersI3D () - %s",
+ (_procs_WGL_I3D_gamma.wglSetGammaTableParametersI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_gamma.wglSetGammaTableParametersI3D);
+}
+
+/* wglGetGammaTableI3D */
+GdkGLProc
+gdk_gl_get_wglGetGammaTableI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_gamma.wglGetGammaTableI3D == (GdkGLProc_wglGetGammaTableI3D) -1)
+ _procs_WGL_I3D_gamma.wglGetGammaTableI3D =
+ (GdkGLProc_wglGetGammaTableI3D) gdk_gl_get_proc_address ("wglGetGammaTableI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetGammaTableI3D () - %s",
+ (_procs_WGL_I3D_gamma.wglGetGammaTableI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_gamma.wglGetGammaTableI3D);
+}
+
+/* wglSetGammaTableI3D */
+GdkGLProc
+gdk_gl_get_wglSetGammaTableI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_gamma.wglSetGammaTableI3D == (GdkGLProc_wglSetGammaTableI3D) -1)
+ _procs_WGL_I3D_gamma.wglSetGammaTableI3D =
+ (GdkGLProc_wglSetGammaTableI3D) gdk_gl_get_proc_address ("wglSetGammaTableI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglSetGammaTableI3D () - %s",
+ (_procs_WGL_I3D_gamma.wglSetGammaTableI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_gamma.wglSetGammaTableI3D);
+}
+
+/* Get WGL_I3D_gamma functions */
+GdkGL_WGL_I3D_gamma *
+gdk_gl_get_WGL_I3D_gamma (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_I3D_gamma");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglGetGammaTableParametersI3D () != NULL);
+ supported &= (gdk_gl_get_wglSetGammaTableParametersI3D () != NULL);
+ supported &= (gdk_gl_get_wglGetGammaTableI3D () != NULL);
+ supported &= (gdk_gl_get_wglSetGammaTableI3D () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_I3D_gamma () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_I3D_gamma;
+}
+
+/*
+ * WGL_I3D_genlock
+ */
+
+static GdkGL_WGL_I3D_genlock _procs_WGL_I3D_genlock = {
+ (GdkGLProc_wglEnableGenlockI3D) -1,
+ (GdkGLProc_wglDisableGenlockI3D) -1,
+ (GdkGLProc_wglIsEnabledGenlockI3D) -1,
+ (GdkGLProc_wglGenlockSourceI3D) -1,
+ (GdkGLProc_wglGetGenlockSourceI3D) -1,
+ (GdkGLProc_wglGenlockSourceEdgeI3D) -1,
+ (GdkGLProc_wglGetGenlockSourceEdgeI3D) -1,
+ (GdkGLProc_wglGenlockSampleRateI3D) -1,
+ (GdkGLProc_wglGetGenlockSampleRateI3D) -1,
+ (GdkGLProc_wglGenlockSourceDelayI3D) -1,
+ (GdkGLProc_wglGetGenlockSourceDelayI3D) -1,
+ (GdkGLProc_wglQueryGenlockMaxSourceDelayI3D) -1
+};
+
+/* wglEnableGenlockI3D */
+GdkGLProc
+gdk_gl_get_wglEnableGenlockI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglEnableGenlockI3D == (GdkGLProc_wglEnableGenlockI3D) -1)
+ _procs_WGL_I3D_genlock.wglEnableGenlockI3D =
+ (GdkGLProc_wglEnableGenlockI3D) gdk_gl_get_proc_address ("wglEnableGenlockI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglEnableGenlockI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglEnableGenlockI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglEnableGenlockI3D);
+}
+
+/* wglDisableGenlockI3D */
+GdkGLProc
+gdk_gl_get_wglDisableGenlockI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglDisableGenlockI3D == (GdkGLProc_wglDisableGenlockI3D) -1)
+ _procs_WGL_I3D_genlock.wglDisableGenlockI3D =
+ (GdkGLProc_wglDisableGenlockI3D) gdk_gl_get_proc_address ("wglDisableGenlockI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglDisableGenlockI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglDisableGenlockI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglDisableGenlockI3D);
+}
+
+/* wglIsEnabledGenlockI3D */
+GdkGLProc
+gdk_gl_get_wglIsEnabledGenlockI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglIsEnabledGenlockI3D == (GdkGLProc_wglIsEnabledGenlockI3D) -1)
+ _procs_WGL_I3D_genlock.wglIsEnabledGenlockI3D =
+ (GdkGLProc_wglIsEnabledGenlockI3D) gdk_gl_get_proc_address ("wglIsEnabledGenlockI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglIsEnabledGenlockI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglIsEnabledGenlockI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglIsEnabledGenlockI3D);
+}
+
+/* wglGenlockSourceI3D */
+GdkGLProc
+gdk_gl_get_wglGenlockSourceI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglGenlockSourceI3D == (GdkGLProc_wglGenlockSourceI3D) -1)
+ _procs_WGL_I3D_genlock.wglGenlockSourceI3D =
+ (GdkGLProc_wglGenlockSourceI3D) gdk_gl_get_proc_address ("wglGenlockSourceI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGenlockSourceI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglGenlockSourceI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglGenlockSourceI3D);
+}
+
+/* wglGetGenlockSourceI3D */
+GdkGLProc
+gdk_gl_get_wglGetGenlockSourceI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglGetGenlockSourceI3D == (GdkGLProc_wglGetGenlockSourceI3D) -1)
+ _procs_WGL_I3D_genlock.wglGetGenlockSourceI3D =
+ (GdkGLProc_wglGetGenlockSourceI3D) gdk_gl_get_proc_address ("wglGetGenlockSourceI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetGenlockSourceI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglGetGenlockSourceI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglGetGenlockSourceI3D);
+}
+
+/* wglGenlockSourceEdgeI3D */
+GdkGLProc
+gdk_gl_get_wglGenlockSourceEdgeI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglGenlockSourceEdgeI3D == (GdkGLProc_wglGenlockSourceEdgeI3D) -1)
+ _procs_WGL_I3D_genlock.wglGenlockSourceEdgeI3D =
+ (GdkGLProc_wglGenlockSourceEdgeI3D) gdk_gl_get_proc_address ("wglGenlockSourceEdgeI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGenlockSourceEdgeI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglGenlockSourceEdgeI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglGenlockSourceEdgeI3D);
+}
+
+/* wglGetGenlockSourceEdgeI3D */
+GdkGLProc
+gdk_gl_get_wglGetGenlockSourceEdgeI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglGetGenlockSourceEdgeI3D == (GdkGLProc_wglGetGenlockSourceEdgeI3D) -1)
+ _procs_WGL_I3D_genlock.wglGetGenlockSourceEdgeI3D =
+ (GdkGLProc_wglGetGenlockSourceEdgeI3D) gdk_gl_get_proc_address ("wglGetGenlockSourceEdgeI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetGenlockSourceEdgeI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglGetGenlockSourceEdgeI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglGetGenlockSourceEdgeI3D);
+}
+
+/* wglGenlockSampleRateI3D */
+GdkGLProc
+gdk_gl_get_wglGenlockSampleRateI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglGenlockSampleRateI3D == (GdkGLProc_wglGenlockSampleRateI3D) -1)
+ _procs_WGL_I3D_genlock.wglGenlockSampleRateI3D =
+ (GdkGLProc_wglGenlockSampleRateI3D) gdk_gl_get_proc_address ("wglGenlockSampleRateI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGenlockSampleRateI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglGenlockSampleRateI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglGenlockSampleRateI3D);
+}
+
+/* wglGetGenlockSampleRateI3D */
+GdkGLProc
+gdk_gl_get_wglGetGenlockSampleRateI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglGetGenlockSampleRateI3D == (GdkGLProc_wglGetGenlockSampleRateI3D) -1)
+ _procs_WGL_I3D_genlock.wglGetGenlockSampleRateI3D =
+ (GdkGLProc_wglGetGenlockSampleRateI3D) gdk_gl_get_proc_address ("wglGetGenlockSampleRateI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetGenlockSampleRateI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglGetGenlockSampleRateI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglGetGenlockSampleRateI3D);
+}
+
+/* wglGenlockSourceDelayI3D */
+GdkGLProc
+gdk_gl_get_wglGenlockSourceDelayI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglGenlockSourceDelayI3D == (GdkGLProc_wglGenlockSourceDelayI3D) -1)
+ _procs_WGL_I3D_genlock.wglGenlockSourceDelayI3D =
+ (GdkGLProc_wglGenlockSourceDelayI3D) gdk_gl_get_proc_address ("wglGenlockSourceDelayI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGenlockSourceDelayI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglGenlockSourceDelayI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglGenlockSourceDelayI3D);
+}
+
+/* wglGetGenlockSourceDelayI3D */
+GdkGLProc
+gdk_gl_get_wglGetGenlockSourceDelayI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglGetGenlockSourceDelayI3D == (GdkGLProc_wglGetGenlockSourceDelayI3D) -1)
+ _procs_WGL_I3D_genlock.wglGetGenlockSourceDelayI3D =
+ (GdkGLProc_wglGetGenlockSourceDelayI3D) gdk_gl_get_proc_address ("wglGetGenlockSourceDelayI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetGenlockSourceDelayI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglGetGenlockSourceDelayI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglGetGenlockSourceDelayI3D);
+}
+
+/* wglQueryGenlockMaxSourceDelayI3D */
+GdkGLProc
+gdk_gl_get_wglQueryGenlockMaxSourceDelayI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_genlock.wglQueryGenlockMaxSourceDelayI3D == (GdkGLProc_wglQueryGenlockMaxSourceDelayI3D) -1)
+ _procs_WGL_I3D_genlock.wglQueryGenlockMaxSourceDelayI3D =
+ (GdkGLProc_wglQueryGenlockMaxSourceDelayI3D) gdk_gl_get_proc_address ("wglQueryGenlockMaxSourceDelayI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglQueryGenlockMaxSourceDelayI3D () - %s",
+ (_procs_WGL_I3D_genlock.wglQueryGenlockMaxSourceDelayI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_genlock.wglQueryGenlockMaxSourceDelayI3D);
+}
+
+/* Get WGL_I3D_genlock functions */
+GdkGL_WGL_I3D_genlock *
+gdk_gl_get_WGL_I3D_genlock (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_I3D_genlock");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglEnableGenlockI3D () != NULL);
+ supported &= (gdk_gl_get_wglDisableGenlockI3D () != NULL);
+ supported &= (gdk_gl_get_wglIsEnabledGenlockI3D () != NULL);
+ supported &= (gdk_gl_get_wglGenlockSourceI3D () != NULL);
+ supported &= (gdk_gl_get_wglGetGenlockSourceI3D () != NULL);
+ supported &= (gdk_gl_get_wglGenlockSourceEdgeI3D () != NULL);
+ supported &= (gdk_gl_get_wglGetGenlockSourceEdgeI3D () != NULL);
+ supported &= (gdk_gl_get_wglGenlockSampleRateI3D () != NULL);
+ supported &= (gdk_gl_get_wglGetGenlockSampleRateI3D () != NULL);
+ supported &= (gdk_gl_get_wglGenlockSourceDelayI3D () != NULL);
+ supported &= (gdk_gl_get_wglGetGenlockSourceDelayI3D () != NULL);
+ supported &= (gdk_gl_get_wglQueryGenlockMaxSourceDelayI3D () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_I3D_genlock () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_I3D_genlock;
+}
+
+/*
+ * WGL_I3D_image_buffer
+ */
+
+static GdkGL_WGL_I3D_image_buffer _procs_WGL_I3D_image_buffer = {
+ (GdkGLProc_wglCreateImageBufferI3D) -1,
+ (GdkGLProc_wglDestroyImageBufferI3D) -1,
+ (GdkGLProc_wglAssociateImageBufferEventsI3D) -1,
+ (GdkGLProc_wglReleaseImageBufferEventsI3D) -1
+};
+
+/* wglCreateImageBufferI3D */
+GdkGLProc
+gdk_gl_get_wglCreateImageBufferI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_image_buffer.wglCreateImageBufferI3D == (GdkGLProc_wglCreateImageBufferI3D) -1)
+ _procs_WGL_I3D_image_buffer.wglCreateImageBufferI3D =
+ (GdkGLProc_wglCreateImageBufferI3D) gdk_gl_get_proc_address ("wglCreateImageBufferI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglCreateImageBufferI3D () - %s",
+ (_procs_WGL_I3D_image_buffer.wglCreateImageBufferI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_image_buffer.wglCreateImageBufferI3D);
+}
+
+/* wglDestroyImageBufferI3D */
+GdkGLProc
+gdk_gl_get_wglDestroyImageBufferI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_image_buffer.wglDestroyImageBufferI3D == (GdkGLProc_wglDestroyImageBufferI3D) -1)
+ _procs_WGL_I3D_image_buffer.wglDestroyImageBufferI3D =
+ (GdkGLProc_wglDestroyImageBufferI3D) gdk_gl_get_proc_address ("wglDestroyImageBufferI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglDestroyImageBufferI3D () - %s",
+ (_procs_WGL_I3D_image_buffer.wglDestroyImageBufferI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_image_buffer.wglDestroyImageBufferI3D);
+}
+
+/* wglAssociateImageBufferEventsI3D */
+GdkGLProc
+gdk_gl_get_wglAssociateImageBufferEventsI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_image_buffer.wglAssociateImageBufferEventsI3D == (GdkGLProc_wglAssociateImageBufferEventsI3D) -1)
+ _procs_WGL_I3D_image_buffer.wglAssociateImageBufferEventsI3D =
+ (GdkGLProc_wglAssociateImageBufferEventsI3D) gdk_gl_get_proc_address ("wglAssociateImageBufferEventsI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglAssociateImageBufferEventsI3D () - %s",
+ (_procs_WGL_I3D_image_buffer.wglAssociateImageBufferEventsI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_image_buffer.wglAssociateImageBufferEventsI3D);
+}
+
+/* wglReleaseImageBufferEventsI3D */
+GdkGLProc
+gdk_gl_get_wglReleaseImageBufferEventsI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_image_buffer.wglReleaseImageBufferEventsI3D == (GdkGLProc_wglReleaseImageBufferEventsI3D) -1)
+ _procs_WGL_I3D_image_buffer.wglReleaseImageBufferEventsI3D =
+ (GdkGLProc_wglReleaseImageBufferEventsI3D) gdk_gl_get_proc_address ("wglReleaseImageBufferEventsI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglReleaseImageBufferEventsI3D () - %s",
+ (_procs_WGL_I3D_image_buffer.wglReleaseImageBufferEventsI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_image_buffer.wglReleaseImageBufferEventsI3D);
+}
+
+/* Get WGL_I3D_image_buffer functions */
+GdkGL_WGL_I3D_image_buffer *
+gdk_gl_get_WGL_I3D_image_buffer (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_I3D_image_buffer");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglCreateImageBufferI3D () != NULL);
+ supported &= (gdk_gl_get_wglDestroyImageBufferI3D () != NULL);
+ supported &= (gdk_gl_get_wglAssociateImageBufferEventsI3D () != NULL);
+ supported &= (gdk_gl_get_wglReleaseImageBufferEventsI3D () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_I3D_image_buffer () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_I3D_image_buffer;
+}
+
+/*
+ * WGL_I3D_swap_frame_lock
+ */
+
+static GdkGL_WGL_I3D_swap_frame_lock _procs_WGL_I3D_swap_frame_lock = {
+ (GdkGLProc_wglEnableFrameLockI3D) -1,
+ (GdkGLProc_wglDisableFrameLockI3D) -1,
+ (GdkGLProc_wglIsEnabledFrameLockI3D) -1,
+ (GdkGLProc_wglQueryFrameLockMasterI3D) -1
+};
+
+/* wglEnableFrameLockI3D */
+GdkGLProc
+gdk_gl_get_wglEnableFrameLockI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_swap_frame_lock.wglEnableFrameLockI3D == (GdkGLProc_wglEnableFrameLockI3D) -1)
+ _procs_WGL_I3D_swap_frame_lock.wglEnableFrameLockI3D =
+ (GdkGLProc_wglEnableFrameLockI3D) gdk_gl_get_proc_address ("wglEnableFrameLockI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglEnableFrameLockI3D () - %s",
+ (_procs_WGL_I3D_swap_frame_lock.wglEnableFrameLockI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_swap_frame_lock.wglEnableFrameLockI3D);
+}
+
+/* wglDisableFrameLockI3D */
+GdkGLProc
+gdk_gl_get_wglDisableFrameLockI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_swap_frame_lock.wglDisableFrameLockI3D == (GdkGLProc_wglDisableFrameLockI3D) -1)
+ _procs_WGL_I3D_swap_frame_lock.wglDisableFrameLockI3D =
+ (GdkGLProc_wglDisableFrameLockI3D) gdk_gl_get_proc_address ("wglDisableFrameLockI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglDisableFrameLockI3D () - %s",
+ (_procs_WGL_I3D_swap_frame_lock.wglDisableFrameLockI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_swap_frame_lock.wglDisableFrameLockI3D);
+}
+
+/* wglIsEnabledFrameLockI3D */
+GdkGLProc
+gdk_gl_get_wglIsEnabledFrameLockI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_swap_frame_lock.wglIsEnabledFrameLockI3D == (GdkGLProc_wglIsEnabledFrameLockI3D) -1)
+ _procs_WGL_I3D_swap_frame_lock.wglIsEnabledFrameLockI3D =
+ (GdkGLProc_wglIsEnabledFrameLockI3D) gdk_gl_get_proc_address ("wglIsEnabledFrameLockI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglIsEnabledFrameLockI3D () - %s",
+ (_procs_WGL_I3D_swap_frame_lock.wglIsEnabledFrameLockI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_swap_frame_lock.wglIsEnabledFrameLockI3D);
+}
+
+/* wglQueryFrameLockMasterI3D */
+GdkGLProc
+gdk_gl_get_wglQueryFrameLockMasterI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_swap_frame_lock.wglQueryFrameLockMasterI3D == (GdkGLProc_wglQueryFrameLockMasterI3D) -1)
+ _procs_WGL_I3D_swap_frame_lock.wglQueryFrameLockMasterI3D =
+ (GdkGLProc_wglQueryFrameLockMasterI3D) gdk_gl_get_proc_address ("wglQueryFrameLockMasterI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglQueryFrameLockMasterI3D () - %s",
+ (_procs_WGL_I3D_swap_frame_lock.wglQueryFrameLockMasterI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_swap_frame_lock.wglQueryFrameLockMasterI3D);
+}
+
+/* Get WGL_I3D_swap_frame_lock functions */
+GdkGL_WGL_I3D_swap_frame_lock *
+gdk_gl_get_WGL_I3D_swap_frame_lock (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_I3D_swap_frame_lock");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglEnableFrameLockI3D () != NULL);
+ supported &= (gdk_gl_get_wglDisableFrameLockI3D () != NULL);
+ supported &= (gdk_gl_get_wglIsEnabledFrameLockI3D () != NULL);
+ supported &= (gdk_gl_get_wglQueryFrameLockMasterI3D () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_I3D_swap_frame_lock () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_I3D_swap_frame_lock;
+}
+
+/*
+ * WGL_I3D_swap_frame_usage
+ */
+
+static GdkGL_WGL_I3D_swap_frame_usage _procs_WGL_I3D_swap_frame_usage = {
+ (GdkGLProc_wglGetFrameUsageI3D) -1,
+ (GdkGLProc_wglBeginFrameTrackingI3D) -1,
+ (GdkGLProc_wglEndFrameTrackingI3D) -1,
+ (GdkGLProc_wglQueryFrameTrackingI3D) -1
+};
+
+/* wglGetFrameUsageI3D */
+GdkGLProc
+gdk_gl_get_wglGetFrameUsageI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_swap_frame_usage.wglGetFrameUsageI3D == (GdkGLProc_wglGetFrameUsageI3D) -1)
+ _procs_WGL_I3D_swap_frame_usage.wglGetFrameUsageI3D =
+ (GdkGLProc_wglGetFrameUsageI3D) gdk_gl_get_proc_address ("wglGetFrameUsageI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglGetFrameUsageI3D () - %s",
+ (_procs_WGL_I3D_swap_frame_usage.wglGetFrameUsageI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_swap_frame_usage.wglGetFrameUsageI3D);
+}
+
+/* wglBeginFrameTrackingI3D */
+GdkGLProc
+gdk_gl_get_wglBeginFrameTrackingI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_swap_frame_usage.wglBeginFrameTrackingI3D == (GdkGLProc_wglBeginFrameTrackingI3D) -1)
+ _procs_WGL_I3D_swap_frame_usage.wglBeginFrameTrackingI3D =
+ (GdkGLProc_wglBeginFrameTrackingI3D) gdk_gl_get_proc_address ("wglBeginFrameTrackingI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglBeginFrameTrackingI3D () - %s",
+ (_procs_WGL_I3D_swap_frame_usage.wglBeginFrameTrackingI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_swap_frame_usage.wglBeginFrameTrackingI3D);
+}
+
+/* wglEndFrameTrackingI3D */
+GdkGLProc
+gdk_gl_get_wglEndFrameTrackingI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_swap_frame_usage.wglEndFrameTrackingI3D == (GdkGLProc_wglEndFrameTrackingI3D) -1)
+ _procs_WGL_I3D_swap_frame_usage.wglEndFrameTrackingI3D =
+ (GdkGLProc_wglEndFrameTrackingI3D) gdk_gl_get_proc_address ("wglEndFrameTrackingI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglEndFrameTrackingI3D () - %s",
+ (_procs_WGL_I3D_swap_frame_usage.wglEndFrameTrackingI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_swap_frame_usage.wglEndFrameTrackingI3D);
+}
+
+/* wglQueryFrameTrackingI3D */
+GdkGLProc
+gdk_gl_get_wglQueryFrameTrackingI3D (void)
+{
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (_procs_WGL_I3D_swap_frame_usage.wglQueryFrameTrackingI3D == (GdkGLProc_wglQueryFrameTrackingI3D) -1)
+ _procs_WGL_I3D_swap_frame_usage.wglQueryFrameTrackingI3D =
+ (GdkGLProc_wglQueryFrameTrackingI3D) gdk_gl_get_proc_address ("wglQueryFrameTrackingI3D");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_wglQueryFrameTrackingI3D () - %s",
+ (_procs_WGL_I3D_swap_frame_usage.wglQueryFrameTrackingI3D) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_WGL_I3D_swap_frame_usage.wglQueryFrameTrackingI3D);
+}
+
+/* Get WGL_I3D_swap_frame_usage functions */
+GdkGL_WGL_I3D_swap_frame_usage *
+gdk_gl_get_WGL_I3D_swap_frame_usage (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (wglGetCurrentContext () == NULL)
+ return NULL;
+
+ if (supported == -1)
+ {
+ supported = gdk_win32_gl_query_wgl_extension (glconfig, "WGL_I3D_swap_frame_usage");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_wglGetFrameUsageI3D () != NULL);
+ supported &= (gdk_gl_get_wglBeginFrameTrackingI3D () != NULL);
+ supported &= (gdk_gl_get_wglEndFrameTrackingI3D () != NULL);
+ supported &= (gdk_gl_get_wglQueryFrameTrackingI3D () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_WGL_I3D_swap_frame_usage () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_WGL_I3D_swap_frame_usage;
+}
+
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.h b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.h
new file mode 100644
index 00000000..b69a720e
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.h
@@ -0,0 +1,839 @@
+/* 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-gdkglwglext-h.pl".
+ */
+
+#ifndef __GDK_GL_WGLEXT_H__
+#define __GDK_GL_WGLEXT_H__
+
+#include <glib.h>
+
+#ifdef G_OS_WIN32
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#include <GL/gl.h>
+
+#include <gdk/gdkgldefs.h>
+#include <gdk/gdkglquery.h>
+#include <gdk/gdkglconfig.h>
+
+#undef __wglext_h_
+#undef WGL_WGLEXT_VERSION
+#include <gdk/glext/wglext.h>
+#include <gdk/glext/wglext-extra.h>
+
+G_BEGIN_DECLS
+
+/*
+ * WGL_ARB_buffer_region
+ */
+
+/* wglCreateBufferRegionARB */
+typedef HANDLE (WINAPI * GdkGLProc_wglCreateBufferRegionARB) (HDC hDC, int iLayerPlane, UINT uType);
+GdkGLProc gdk_gl_get_wglCreateBufferRegionARB (void);
+#define gdk_gl_wglCreateBufferRegionARB(proc, hDC, iLayerPlane, uType) \
+ ( ((GdkGLProc_wglCreateBufferRegionARB) (proc)) (hDC, iLayerPlane, uType) )
+
+/* wglDeleteBufferRegionARB */
+typedef VOID (WINAPI * GdkGLProc_wglDeleteBufferRegionARB) (HANDLE hRegion);
+GdkGLProc gdk_gl_get_wglDeleteBufferRegionARB (void);
+#define gdk_gl_wglDeleteBufferRegionARB(proc, hRegion) \
+ ( ((GdkGLProc_wglDeleteBufferRegionARB) (proc)) (hRegion) )
+
+/* wglSaveBufferRegionARB */
+typedef BOOL (WINAPI * GdkGLProc_wglSaveBufferRegionARB) (HANDLE hRegion, int x, int y, int width, int height);
+GdkGLProc gdk_gl_get_wglSaveBufferRegionARB (void);
+#define gdk_gl_wglSaveBufferRegionARB(proc, hRegion, x, y, width, height) \
+ ( ((GdkGLProc_wglSaveBufferRegionARB) (proc)) (hRegion, x, y, width, height) )
+
+/* wglRestoreBufferRegionARB */
+typedef BOOL (WINAPI * GdkGLProc_wglRestoreBufferRegionARB) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
+GdkGLProc gdk_gl_get_wglRestoreBufferRegionARB (void);
+#define gdk_gl_wglRestoreBufferRegionARB(proc, hRegion, x, y, width, height, xSrc, ySrc) \
+ ( ((GdkGLProc_wglRestoreBufferRegionARB) (proc)) (hRegion, x, y, width, height, xSrc, ySrc) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_ARB_buffer_region GdkGL_WGL_ARB_buffer_region;
+
+struct _GdkGL_WGL_ARB_buffer_region
+{
+ GdkGLProc_wglCreateBufferRegionARB wglCreateBufferRegionARB;
+ GdkGLProc_wglDeleteBufferRegionARB wglDeleteBufferRegionARB;
+ GdkGLProc_wglSaveBufferRegionARB wglSaveBufferRegionARB;
+ GdkGLProc_wglRestoreBufferRegionARB wglRestoreBufferRegionARB;
+};
+
+GdkGL_WGL_ARB_buffer_region *gdk_gl_get_WGL_ARB_buffer_region (GdkGLConfig *glconfig);
+
+/*
+ * WGL_ARB_extensions_string
+ */
+
+/* wglGetExtensionsStringARB */
+typedef const char * (WINAPI * GdkGLProc_wglGetExtensionsStringARB) (HDC hdc);
+GdkGLProc gdk_gl_get_wglGetExtensionsStringARB (void);
+#define gdk_gl_wglGetExtensionsStringARB(proc, hdc) \
+ ( ((GdkGLProc_wglGetExtensionsStringARB) (proc)) (hdc) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_ARB_extensions_string GdkGL_WGL_ARB_extensions_string;
+
+struct _GdkGL_WGL_ARB_extensions_string
+{
+ GdkGLProc_wglGetExtensionsStringARB wglGetExtensionsStringARB;
+};
+
+GdkGL_WGL_ARB_extensions_string *gdk_gl_get_WGL_ARB_extensions_string (GdkGLConfig *glconfig);
+
+/*
+ * WGL_ARB_pixel_format
+ */
+
+/* wglGetPixelFormatAttribivARB */
+typedef BOOL (WINAPI * GdkGLProc_wglGetPixelFormatAttribivARB) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
+GdkGLProc gdk_gl_get_wglGetPixelFormatAttribivARB (void);
+#define gdk_gl_wglGetPixelFormatAttribivARB(proc, hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues) \
+ ( ((GdkGLProc_wglGetPixelFormatAttribivARB) (proc)) (hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues) )
+
+/* wglGetPixelFormatAttribfvARB */
+typedef BOOL (WINAPI * GdkGLProc_wglGetPixelFormatAttribfvARB) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
+GdkGLProc gdk_gl_get_wglGetPixelFormatAttribfvARB (void);
+#define gdk_gl_wglGetPixelFormatAttribfvARB(proc, hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues) \
+ ( ((GdkGLProc_wglGetPixelFormatAttribfvARB) (proc)) (hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues) )
+
+/* wglChoosePixelFormatARB */
+typedef BOOL (WINAPI * GdkGLProc_wglChoosePixelFormatARB) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+GdkGLProc gdk_gl_get_wglChoosePixelFormatARB (void);
+#define gdk_gl_wglChoosePixelFormatARB(proc, hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats) \
+ ( ((GdkGLProc_wglChoosePixelFormatARB) (proc)) (hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_ARB_pixel_format GdkGL_WGL_ARB_pixel_format;
+
+struct _GdkGL_WGL_ARB_pixel_format
+{
+ GdkGLProc_wglGetPixelFormatAttribivARB wglGetPixelFormatAttribivARB;
+ GdkGLProc_wglGetPixelFormatAttribfvARB wglGetPixelFormatAttribfvARB;
+ GdkGLProc_wglChoosePixelFormatARB wglChoosePixelFormatARB;
+};
+
+GdkGL_WGL_ARB_pixel_format *gdk_gl_get_WGL_ARB_pixel_format (GdkGLConfig *glconfig);
+
+/*
+ * WGL_ARB_make_current_read
+ */
+
+/* wglMakeContextCurrentARB */
+typedef BOOL (WINAPI * GdkGLProc_wglMakeContextCurrentARB) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+GdkGLProc gdk_gl_get_wglMakeContextCurrentARB (void);
+#define gdk_gl_wglMakeContextCurrentARB(proc, hDrawDC, hReadDC, hglrc) \
+ ( ((GdkGLProc_wglMakeContextCurrentARB) (proc)) (hDrawDC, hReadDC, hglrc) )
+
+/* wglGetCurrentReadDCARB */
+typedef HDC (WINAPI * GdkGLProc_wglGetCurrentReadDCARB) (void);
+GdkGLProc gdk_gl_get_wglGetCurrentReadDCARB (void);
+#define gdk_gl_wglGetCurrentReadDCARB(proc) \
+ ( ((GdkGLProc_wglGetCurrentReadDCARB) (proc)) () )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_ARB_make_current_read GdkGL_WGL_ARB_make_current_read;
+
+struct _GdkGL_WGL_ARB_make_current_read
+{
+ GdkGLProc_wglMakeContextCurrentARB wglMakeContextCurrentARB;
+ GdkGLProc_wglGetCurrentReadDCARB wglGetCurrentReadDCARB;
+};
+
+GdkGL_WGL_ARB_make_current_read *gdk_gl_get_WGL_ARB_make_current_read (GdkGLConfig *glconfig);
+
+/*
+ * WGL_ARB_pbuffer
+ */
+
+/* wglCreatePbufferARB */
+typedef HPBUFFERARB (WINAPI * GdkGLProc_wglCreatePbufferARB) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+GdkGLProc gdk_gl_get_wglCreatePbufferARB (void);
+#define gdk_gl_wglCreatePbufferARB(proc, hDC, iPixelFormat, iWidth, iHeight, piAttribList) \
+ ( ((GdkGLProc_wglCreatePbufferARB) (proc)) (hDC, iPixelFormat, iWidth, iHeight, piAttribList) )
+
+/* wglGetPbufferDCARB */
+typedef HDC (WINAPI * GdkGLProc_wglGetPbufferDCARB) (HPBUFFERARB hPbuffer);
+GdkGLProc gdk_gl_get_wglGetPbufferDCARB (void);
+#define gdk_gl_wglGetPbufferDCARB(proc, hPbuffer) \
+ ( ((GdkGLProc_wglGetPbufferDCARB) (proc)) (hPbuffer) )
+
+/* wglReleasePbufferDCARB */
+typedef int (WINAPI * GdkGLProc_wglReleasePbufferDCARB) (HPBUFFERARB hPbuffer, HDC hDC);
+GdkGLProc gdk_gl_get_wglReleasePbufferDCARB (void);
+#define gdk_gl_wglReleasePbufferDCARB(proc, hPbuffer, hDC) \
+ ( ((GdkGLProc_wglReleasePbufferDCARB) (proc)) (hPbuffer, hDC) )
+
+/* wglDestroyPbufferARB */
+typedef BOOL (WINAPI * GdkGLProc_wglDestroyPbufferARB) (HPBUFFERARB hPbuffer);
+GdkGLProc gdk_gl_get_wglDestroyPbufferARB (void);
+#define gdk_gl_wglDestroyPbufferARB(proc, hPbuffer) \
+ ( ((GdkGLProc_wglDestroyPbufferARB) (proc)) (hPbuffer) )
+
+/* wglQueryPbufferARB */
+typedef BOOL (WINAPI * GdkGLProc_wglQueryPbufferARB) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
+GdkGLProc gdk_gl_get_wglQueryPbufferARB (void);
+#define gdk_gl_wglQueryPbufferARB(proc, hPbuffer, iAttribute, piValue) \
+ ( ((GdkGLProc_wglQueryPbufferARB) (proc)) (hPbuffer, iAttribute, piValue) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_ARB_pbuffer GdkGL_WGL_ARB_pbuffer;
+
+struct _GdkGL_WGL_ARB_pbuffer
+{
+ GdkGLProc_wglCreatePbufferARB wglCreatePbufferARB;
+ GdkGLProc_wglGetPbufferDCARB wglGetPbufferDCARB;
+ GdkGLProc_wglReleasePbufferDCARB wglReleasePbufferDCARB;
+ GdkGLProc_wglDestroyPbufferARB wglDestroyPbufferARB;
+ GdkGLProc_wglQueryPbufferARB wglQueryPbufferARB;
+};
+
+GdkGL_WGL_ARB_pbuffer *gdk_gl_get_WGL_ARB_pbuffer (GdkGLConfig *glconfig);
+
+/*
+ * WGL_ARB_render_texture
+ */
+
+/* wglBindTexImageARB */
+typedef BOOL (WINAPI * GdkGLProc_wglBindTexImageARB) (HPBUFFERARB hPbuffer, int iBuffer);
+GdkGLProc gdk_gl_get_wglBindTexImageARB (void);
+#define gdk_gl_wglBindTexImageARB(proc, hPbuffer, iBuffer) \
+ ( ((GdkGLProc_wglBindTexImageARB) (proc)) (hPbuffer, iBuffer) )
+
+/* wglReleaseTexImageARB */
+typedef BOOL (WINAPI * GdkGLProc_wglReleaseTexImageARB) (HPBUFFERARB hPbuffer, int iBuffer);
+GdkGLProc gdk_gl_get_wglReleaseTexImageARB (void);
+#define gdk_gl_wglReleaseTexImageARB(proc, hPbuffer, iBuffer) \
+ ( ((GdkGLProc_wglReleaseTexImageARB) (proc)) (hPbuffer, iBuffer) )
+
+/* wglSetPbufferAttribARB */
+typedef BOOL (WINAPI * GdkGLProc_wglSetPbufferAttribARB) (HPBUFFERARB hPbuffer, const int *piAttribList);
+GdkGLProc gdk_gl_get_wglSetPbufferAttribARB (void);
+#define gdk_gl_wglSetPbufferAttribARB(proc, hPbuffer, piAttribList) \
+ ( ((GdkGLProc_wglSetPbufferAttribARB) (proc)) (hPbuffer, piAttribList) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_ARB_render_texture GdkGL_WGL_ARB_render_texture;
+
+struct _GdkGL_WGL_ARB_render_texture
+{
+ GdkGLProc_wglBindTexImageARB wglBindTexImageARB;
+ GdkGLProc_wglReleaseTexImageARB wglReleaseTexImageARB;
+ GdkGLProc_wglSetPbufferAttribARB wglSetPbufferAttribARB;
+};
+
+GdkGL_WGL_ARB_render_texture *gdk_gl_get_WGL_ARB_render_texture (GdkGLConfig *glconfig);
+
+/*
+ * WGL_EXT_display_color_table
+ */
+
+/* wglCreateDisplayColorTableEXT */
+typedef GLboolean (WINAPI * GdkGLProc_wglCreateDisplayColorTableEXT) (GLushort id);
+GdkGLProc gdk_gl_get_wglCreateDisplayColorTableEXT (void);
+#define gdk_gl_wglCreateDisplayColorTableEXT(proc, id) \
+ ( ((GdkGLProc_wglCreateDisplayColorTableEXT) (proc)) (id) )
+
+/* wglLoadDisplayColorTableEXT */
+typedef GLboolean (WINAPI * GdkGLProc_wglLoadDisplayColorTableEXT) (const GLushort *table, GLuint length);
+GdkGLProc gdk_gl_get_wglLoadDisplayColorTableEXT (void);
+#define gdk_gl_wglLoadDisplayColorTableEXT(proc, table, length) \
+ ( ((GdkGLProc_wglLoadDisplayColorTableEXT) (proc)) (table, length) )
+
+/* wglBindDisplayColorTableEXT */
+typedef GLboolean (WINAPI * GdkGLProc_wglBindDisplayColorTableEXT) (GLushort id);
+GdkGLProc gdk_gl_get_wglBindDisplayColorTableEXT (void);
+#define gdk_gl_wglBindDisplayColorTableEXT(proc, id) \
+ ( ((GdkGLProc_wglBindDisplayColorTableEXT) (proc)) (id) )
+
+/* wglDestroyDisplayColorTableEXT */
+typedef VOID (WINAPI * GdkGLProc_wglDestroyDisplayColorTableEXT) (GLushort id);
+GdkGLProc gdk_gl_get_wglDestroyDisplayColorTableEXT (void);
+#define gdk_gl_wglDestroyDisplayColorTableEXT(proc, id) \
+ ( ((GdkGLProc_wglDestroyDisplayColorTableEXT) (proc)) (id) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_EXT_display_color_table GdkGL_WGL_EXT_display_color_table;
+
+struct _GdkGL_WGL_EXT_display_color_table
+{
+ GdkGLProc_wglCreateDisplayColorTableEXT wglCreateDisplayColorTableEXT;
+ GdkGLProc_wglLoadDisplayColorTableEXT wglLoadDisplayColorTableEXT;
+ GdkGLProc_wglBindDisplayColorTableEXT wglBindDisplayColorTableEXT;
+ GdkGLProc_wglDestroyDisplayColorTableEXT wglDestroyDisplayColorTableEXT;
+};
+
+GdkGL_WGL_EXT_display_color_table *gdk_gl_get_WGL_EXT_display_color_table (GdkGLConfig *glconfig);
+
+/*
+ * WGL_EXT_extensions_string
+ */
+
+/* wglGetExtensionsStringEXT */
+typedef const char * (WINAPI * GdkGLProc_wglGetExtensionsStringEXT) (void);
+GdkGLProc gdk_gl_get_wglGetExtensionsStringEXT (void);
+#define gdk_gl_wglGetExtensionsStringEXT(proc) \
+ ( ((GdkGLProc_wglGetExtensionsStringEXT) (proc)) () )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_EXT_extensions_string GdkGL_WGL_EXT_extensions_string;
+
+struct _GdkGL_WGL_EXT_extensions_string
+{
+ GdkGLProc_wglGetExtensionsStringEXT wglGetExtensionsStringEXT;
+};
+
+GdkGL_WGL_EXT_extensions_string *gdk_gl_get_WGL_EXT_extensions_string (GdkGLConfig *glconfig);
+
+/*
+ * WGL_EXT_make_current_read
+ */
+
+/* wglMakeContextCurrentEXT */
+typedef BOOL (WINAPI * GdkGLProc_wglMakeContextCurrentEXT) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+GdkGLProc gdk_gl_get_wglMakeContextCurrentEXT (void);
+#define gdk_gl_wglMakeContextCurrentEXT(proc, hDrawDC, hReadDC, hglrc) \
+ ( ((GdkGLProc_wglMakeContextCurrentEXT) (proc)) (hDrawDC, hReadDC, hglrc) )
+
+/* wglGetCurrentReadDCEXT */
+typedef HDC (WINAPI * GdkGLProc_wglGetCurrentReadDCEXT) (void);
+GdkGLProc gdk_gl_get_wglGetCurrentReadDCEXT (void);
+#define gdk_gl_wglGetCurrentReadDCEXT(proc) \
+ ( ((GdkGLProc_wglGetCurrentReadDCEXT) (proc)) () )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_EXT_make_current_read GdkGL_WGL_EXT_make_current_read;
+
+struct _GdkGL_WGL_EXT_make_current_read
+{
+ GdkGLProc_wglMakeContextCurrentEXT wglMakeContextCurrentEXT;
+ GdkGLProc_wglGetCurrentReadDCEXT wglGetCurrentReadDCEXT;
+};
+
+GdkGL_WGL_EXT_make_current_read *gdk_gl_get_WGL_EXT_make_current_read (GdkGLConfig *glconfig);
+
+/*
+ * WGL_EXT_pbuffer
+ */
+
+/* wglCreatePbufferEXT */
+typedef HPBUFFEREXT (WINAPI * GdkGLProc_wglCreatePbufferEXT) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+GdkGLProc gdk_gl_get_wglCreatePbufferEXT (void);
+#define gdk_gl_wglCreatePbufferEXT(proc, hDC, iPixelFormat, iWidth, iHeight, piAttribList) \
+ ( ((GdkGLProc_wglCreatePbufferEXT) (proc)) (hDC, iPixelFormat, iWidth, iHeight, piAttribList) )
+
+/* wglGetPbufferDCEXT */
+typedef HDC (WINAPI * GdkGLProc_wglGetPbufferDCEXT) (HPBUFFEREXT hPbuffer);
+GdkGLProc gdk_gl_get_wglGetPbufferDCEXT (void);
+#define gdk_gl_wglGetPbufferDCEXT(proc, hPbuffer) \
+ ( ((GdkGLProc_wglGetPbufferDCEXT) (proc)) (hPbuffer) )
+
+/* wglReleasePbufferDCEXT */
+typedef int (WINAPI * GdkGLProc_wglReleasePbufferDCEXT) (HPBUFFEREXT hPbuffer, HDC hDC);
+GdkGLProc gdk_gl_get_wglReleasePbufferDCEXT (void);
+#define gdk_gl_wglReleasePbufferDCEXT(proc, hPbuffer, hDC) \
+ ( ((GdkGLProc_wglReleasePbufferDCEXT) (proc)) (hPbuffer, hDC) )
+
+/* wglDestroyPbufferEXT */
+typedef BOOL (WINAPI * GdkGLProc_wglDestroyPbufferEXT) (HPBUFFEREXT hPbuffer);
+GdkGLProc gdk_gl_get_wglDestroyPbufferEXT (void);
+#define gdk_gl_wglDestroyPbufferEXT(proc, hPbuffer) \
+ ( ((GdkGLProc_wglDestroyPbufferEXT) (proc)) (hPbuffer) )
+
+/* wglQueryPbufferEXT */
+typedef BOOL (WINAPI * GdkGLProc_wglQueryPbufferEXT) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
+GdkGLProc gdk_gl_get_wglQueryPbufferEXT (void);
+#define gdk_gl_wglQueryPbufferEXT(proc, hPbuffer, iAttribute, piValue) \
+ ( ((GdkGLProc_wglQueryPbufferEXT) (proc)) (hPbuffer, iAttribute, piValue) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_EXT_pbuffer GdkGL_WGL_EXT_pbuffer;
+
+struct _GdkGL_WGL_EXT_pbuffer
+{
+ GdkGLProc_wglCreatePbufferEXT wglCreatePbufferEXT;
+ GdkGLProc_wglGetPbufferDCEXT wglGetPbufferDCEXT;
+ GdkGLProc_wglReleasePbufferDCEXT wglReleasePbufferDCEXT;
+ GdkGLProc_wglDestroyPbufferEXT wglDestroyPbufferEXT;
+ GdkGLProc_wglQueryPbufferEXT wglQueryPbufferEXT;
+};
+
+GdkGL_WGL_EXT_pbuffer *gdk_gl_get_WGL_EXT_pbuffer (GdkGLConfig *glconfig);
+
+/*
+ * WGL_EXT_pixel_format
+ */
+
+/* wglGetPixelFormatAttribivEXT */
+typedef BOOL (WINAPI * GdkGLProc_wglGetPixelFormatAttribivEXT) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
+GdkGLProc gdk_gl_get_wglGetPixelFormatAttribivEXT (void);
+#define gdk_gl_wglGetPixelFormatAttribivEXT(proc, hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues) \
+ ( ((GdkGLProc_wglGetPixelFormatAttribivEXT) (proc)) (hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues) )
+
+/* wglGetPixelFormatAttribfvEXT */
+typedef BOOL (WINAPI * GdkGLProc_wglGetPixelFormatAttribfvEXT) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
+GdkGLProc gdk_gl_get_wglGetPixelFormatAttribfvEXT (void);
+#define gdk_gl_wglGetPixelFormatAttribfvEXT(proc, hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues) \
+ ( ((GdkGLProc_wglGetPixelFormatAttribfvEXT) (proc)) (hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues) )
+
+/* wglChoosePixelFormatEXT */
+typedef BOOL (WINAPI * GdkGLProc_wglChoosePixelFormatEXT) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+GdkGLProc gdk_gl_get_wglChoosePixelFormatEXT (void);
+#define gdk_gl_wglChoosePixelFormatEXT(proc, hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats) \
+ ( ((GdkGLProc_wglChoosePixelFormatEXT) (proc)) (hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_EXT_pixel_format GdkGL_WGL_EXT_pixel_format;
+
+struct _GdkGL_WGL_EXT_pixel_format
+{
+ GdkGLProc_wglGetPixelFormatAttribivEXT wglGetPixelFormatAttribivEXT;
+ GdkGLProc_wglGetPixelFormatAttribfvEXT wglGetPixelFormatAttribfvEXT;
+ GdkGLProc_wglChoosePixelFormatEXT wglChoosePixelFormatEXT;
+};
+
+GdkGL_WGL_EXT_pixel_format *gdk_gl_get_WGL_EXT_pixel_format (GdkGLConfig *glconfig);
+
+/*
+ * WGL_EXT_swap_control
+ */
+
+/* wglSwapIntervalEXT */
+typedef BOOL (WINAPI * GdkGLProc_wglSwapIntervalEXT) (int interval);
+GdkGLProc gdk_gl_get_wglSwapIntervalEXT (void);
+#define gdk_gl_wglSwapIntervalEXT(proc, interval) \
+ ( ((GdkGLProc_wglSwapIntervalEXT) (proc)) (interval) )
+
+/* wglGetSwapIntervalEXT */
+typedef int (WINAPI * GdkGLProc_wglGetSwapIntervalEXT) (void);
+GdkGLProc gdk_gl_get_wglGetSwapIntervalEXT (void);
+#define gdk_gl_wglGetSwapIntervalEXT(proc) \
+ ( ((GdkGLProc_wglGetSwapIntervalEXT) (proc)) () )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_EXT_swap_control GdkGL_WGL_EXT_swap_control;
+
+struct _GdkGL_WGL_EXT_swap_control
+{
+ GdkGLProc_wglSwapIntervalEXT wglSwapIntervalEXT;
+ GdkGLProc_wglGetSwapIntervalEXT wglGetSwapIntervalEXT;
+};
+
+GdkGL_WGL_EXT_swap_control *gdk_gl_get_WGL_EXT_swap_control (GdkGLConfig *glconfig);
+
+/*
+ * WGL_NV_vertex_array_range
+ */
+
+/* wglAllocateMemoryNV */
+typedef void* (WINAPI * GdkGLProc_wglAllocateMemoryNV) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+GdkGLProc gdk_gl_get_wglAllocateMemoryNV (void);
+#define gdk_gl_wglAllocateMemoryNV(proc, size, readfreq, writefreq, priority) \
+ ( ((GdkGLProc_wglAllocateMemoryNV) (proc)) (size, readfreq, writefreq, priority) )
+
+/* wglFreeMemoryNV */
+typedef void (WINAPI * GdkGLProc_wglFreeMemoryNV) (void *pointer);
+GdkGLProc gdk_gl_get_wglFreeMemoryNV (void);
+#define gdk_gl_wglFreeMemoryNV(proc, pointer) \
+ ( ((GdkGLProc_wglFreeMemoryNV) (proc)) (pointer) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_NV_vertex_array_range GdkGL_WGL_NV_vertex_array_range;
+
+struct _GdkGL_WGL_NV_vertex_array_range
+{
+ GdkGLProc_wglAllocateMemoryNV wglAllocateMemoryNV;
+ GdkGLProc_wglFreeMemoryNV wglFreeMemoryNV;
+};
+
+GdkGL_WGL_NV_vertex_array_range *gdk_gl_get_WGL_NV_vertex_array_range (GdkGLConfig *glconfig);
+
+/*
+ * WGL_OML_sync_control
+ */
+
+/* wglGetSyncValuesOML */
+typedef BOOL (WINAPI * GdkGLProc_wglGetSyncValuesOML) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
+GdkGLProc gdk_gl_get_wglGetSyncValuesOML (void);
+#define gdk_gl_wglGetSyncValuesOML(proc, hdc, ust, msc, sbc) \
+ ( ((GdkGLProc_wglGetSyncValuesOML) (proc)) (hdc, ust, msc, sbc) )
+
+/* wglGetMscRateOML */
+typedef BOOL (WINAPI * GdkGLProc_wglGetMscRateOML) (HDC hdc, INT32 *numerator, INT32 *denominator);
+GdkGLProc gdk_gl_get_wglGetMscRateOML (void);
+#define gdk_gl_wglGetMscRateOML(proc, hdc, numerator, denominator) \
+ ( ((GdkGLProc_wglGetMscRateOML) (proc)) (hdc, numerator, denominator) )
+
+/* wglSwapBuffersMscOML */
+typedef INT64 (WINAPI * GdkGLProc_wglSwapBuffersMscOML) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
+GdkGLProc gdk_gl_get_wglSwapBuffersMscOML (void);
+#define gdk_gl_wglSwapBuffersMscOML(proc, hdc, target_msc, divisor, remainder) \
+ ( ((GdkGLProc_wglSwapBuffersMscOML) (proc)) (hdc, target_msc, divisor, remainder) )
+
+/* wglSwapLayerBuffersMscOML */
+typedef INT64 (WINAPI * GdkGLProc_wglSwapLayerBuffersMscOML) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
+GdkGLProc gdk_gl_get_wglSwapLayerBuffersMscOML (void);
+#define gdk_gl_wglSwapLayerBuffersMscOML(proc, hdc, fuPlanes, target_msc, divisor, remainder) \
+ ( ((GdkGLProc_wglSwapLayerBuffersMscOML) (proc)) (hdc, fuPlanes, target_msc, divisor, remainder) )
+
+/* wglWaitForMscOML */
+typedef BOOL (WINAPI * GdkGLProc_wglWaitForMscOML) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
+GdkGLProc gdk_gl_get_wglWaitForMscOML (void);
+#define gdk_gl_wglWaitForMscOML(proc, hdc, target_msc, divisor, remainder, ust, msc, sbc) \
+ ( ((GdkGLProc_wglWaitForMscOML) (proc)) (hdc, target_msc, divisor, remainder, ust, msc, sbc) )
+
+/* wglWaitForSbcOML */
+typedef BOOL (WINAPI * GdkGLProc_wglWaitForSbcOML) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
+GdkGLProc gdk_gl_get_wglWaitForSbcOML (void);
+#define gdk_gl_wglWaitForSbcOML(proc, hdc, target_sbc, ust, msc, sbc) \
+ ( ((GdkGLProc_wglWaitForSbcOML) (proc)) (hdc, target_sbc, ust, msc, sbc) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_OML_sync_control GdkGL_WGL_OML_sync_control;
+
+struct _GdkGL_WGL_OML_sync_control
+{
+ GdkGLProc_wglGetSyncValuesOML wglGetSyncValuesOML;
+ GdkGLProc_wglGetMscRateOML wglGetMscRateOML;
+ GdkGLProc_wglSwapBuffersMscOML wglSwapBuffersMscOML;
+ GdkGLProc_wglSwapLayerBuffersMscOML wglSwapLayerBuffersMscOML;
+ GdkGLProc_wglWaitForMscOML wglWaitForMscOML;
+ GdkGLProc_wglWaitForSbcOML wglWaitForSbcOML;
+};
+
+GdkGL_WGL_OML_sync_control *gdk_gl_get_WGL_OML_sync_control (GdkGLConfig *glconfig);
+
+/*
+ * WGL_I3D_digital_video_control
+ */
+
+/* wglGetDigitalVideoParametersI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGetDigitalVideoParametersI3D) (HDC hDC, int iAttribute, int *piValue);
+GdkGLProc gdk_gl_get_wglGetDigitalVideoParametersI3D (void);
+#define gdk_gl_wglGetDigitalVideoParametersI3D(proc, hDC, iAttribute, piValue) \
+ ( ((GdkGLProc_wglGetDigitalVideoParametersI3D) (proc)) (hDC, iAttribute, piValue) )
+
+/* wglSetDigitalVideoParametersI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglSetDigitalVideoParametersI3D) (HDC hDC, int iAttribute, const int *piValue);
+GdkGLProc gdk_gl_get_wglSetDigitalVideoParametersI3D (void);
+#define gdk_gl_wglSetDigitalVideoParametersI3D(proc, hDC, iAttribute, piValue) \
+ ( ((GdkGLProc_wglSetDigitalVideoParametersI3D) (proc)) (hDC, iAttribute, piValue) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_I3D_digital_video_control GdkGL_WGL_I3D_digital_video_control;
+
+struct _GdkGL_WGL_I3D_digital_video_control
+{
+ GdkGLProc_wglGetDigitalVideoParametersI3D wglGetDigitalVideoParametersI3D;
+ GdkGLProc_wglSetDigitalVideoParametersI3D wglSetDigitalVideoParametersI3D;
+};
+
+GdkGL_WGL_I3D_digital_video_control *gdk_gl_get_WGL_I3D_digital_video_control (GdkGLConfig *glconfig);
+
+/*
+ * WGL_I3D_gamma
+ */
+
+/* wglGetGammaTableParametersI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGetGammaTableParametersI3D) (HDC hDC, int iAttribute, int *piValue);
+GdkGLProc gdk_gl_get_wglGetGammaTableParametersI3D (void);
+#define gdk_gl_wglGetGammaTableParametersI3D(proc, hDC, iAttribute, piValue) \
+ ( ((GdkGLProc_wglGetGammaTableParametersI3D) (proc)) (hDC, iAttribute, piValue) )
+
+/* wglSetGammaTableParametersI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglSetGammaTableParametersI3D) (HDC hDC, int iAttribute, const int *piValue);
+GdkGLProc gdk_gl_get_wglSetGammaTableParametersI3D (void);
+#define gdk_gl_wglSetGammaTableParametersI3D(proc, hDC, iAttribute, piValue) \
+ ( ((GdkGLProc_wglSetGammaTableParametersI3D) (proc)) (hDC, iAttribute, piValue) )
+
+/* wglGetGammaTableI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGetGammaTableI3D) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
+GdkGLProc gdk_gl_get_wglGetGammaTableI3D (void);
+#define gdk_gl_wglGetGammaTableI3D(proc, hDC, iEntries, puRed, puGreen, puBlue) \
+ ( ((GdkGLProc_wglGetGammaTableI3D) (proc)) (hDC, iEntries, puRed, puGreen, puBlue) )
+
+/* wglSetGammaTableI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglSetGammaTableI3D) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
+GdkGLProc gdk_gl_get_wglSetGammaTableI3D (void);
+#define gdk_gl_wglSetGammaTableI3D(proc, hDC, iEntries, puRed, puGreen, puBlue) \
+ ( ((GdkGLProc_wglSetGammaTableI3D) (proc)) (hDC, iEntries, puRed, puGreen, puBlue) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_I3D_gamma GdkGL_WGL_I3D_gamma;
+
+struct _GdkGL_WGL_I3D_gamma
+{
+ GdkGLProc_wglGetGammaTableParametersI3D wglGetGammaTableParametersI3D;
+ GdkGLProc_wglSetGammaTableParametersI3D wglSetGammaTableParametersI3D;
+ GdkGLProc_wglGetGammaTableI3D wglGetGammaTableI3D;
+ GdkGLProc_wglSetGammaTableI3D wglSetGammaTableI3D;
+};
+
+GdkGL_WGL_I3D_gamma *gdk_gl_get_WGL_I3D_gamma (GdkGLConfig *glconfig);
+
+/*
+ * WGL_I3D_genlock
+ */
+
+/* wglEnableGenlockI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglEnableGenlockI3D) (HDC hDC);
+GdkGLProc gdk_gl_get_wglEnableGenlockI3D (void);
+#define gdk_gl_wglEnableGenlockI3D(proc, hDC) \
+ ( ((GdkGLProc_wglEnableGenlockI3D) (proc)) (hDC) )
+
+/* wglDisableGenlockI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglDisableGenlockI3D) (HDC hDC);
+GdkGLProc gdk_gl_get_wglDisableGenlockI3D (void);
+#define gdk_gl_wglDisableGenlockI3D(proc, hDC) \
+ ( ((GdkGLProc_wglDisableGenlockI3D) (proc)) (hDC) )
+
+/* wglIsEnabledGenlockI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglIsEnabledGenlockI3D) (HDC hDC, BOOL *pFlag);
+GdkGLProc gdk_gl_get_wglIsEnabledGenlockI3D (void);
+#define gdk_gl_wglIsEnabledGenlockI3D(proc, hDC, pFlag) \
+ ( ((GdkGLProc_wglIsEnabledGenlockI3D) (proc)) (hDC, pFlag) )
+
+/* wglGenlockSourceI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGenlockSourceI3D) (HDC hDC, UINT uSource);
+GdkGLProc gdk_gl_get_wglGenlockSourceI3D (void);
+#define gdk_gl_wglGenlockSourceI3D(proc, hDC, uSource) \
+ ( ((GdkGLProc_wglGenlockSourceI3D) (proc)) (hDC, uSource) )
+
+/* wglGetGenlockSourceI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGetGenlockSourceI3D) (HDC hDC, UINT *uSource);
+GdkGLProc gdk_gl_get_wglGetGenlockSourceI3D (void);
+#define gdk_gl_wglGetGenlockSourceI3D(proc, hDC, uSource) \
+ ( ((GdkGLProc_wglGetGenlockSourceI3D) (proc)) (hDC, uSource) )
+
+/* wglGenlockSourceEdgeI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGenlockSourceEdgeI3D) (HDC hDC, UINT uEdge);
+GdkGLProc gdk_gl_get_wglGenlockSourceEdgeI3D (void);
+#define gdk_gl_wglGenlockSourceEdgeI3D(proc, hDC, uEdge) \
+ ( ((GdkGLProc_wglGenlockSourceEdgeI3D) (proc)) (hDC, uEdge) )
+
+/* wglGetGenlockSourceEdgeI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGetGenlockSourceEdgeI3D) (HDC hDC, UINT *uEdge);
+GdkGLProc gdk_gl_get_wglGetGenlockSourceEdgeI3D (void);
+#define gdk_gl_wglGetGenlockSourceEdgeI3D(proc, hDC, uEdge) \
+ ( ((GdkGLProc_wglGetGenlockSourceEdgeI3D) (proc)) (hDC, uEdge) )
+
+/* wglGenlockSampleRateI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGenlockSampleRateI3D) (HDC hDC, UINT uRate);
+GdkGLProc gdk_gl_get_wglGenlockSampleRateI3D (void);
+#define gdk_gl_wglGenlockSampleRateI3D(proc, hDC, uRate) \
+ ( ((GdkGLProc_wglGenlockSampleRateI3D) (proc)) (hDC, uRate) )
+
+/* wglGetGenlockSampleRateI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGetGenlockSampleRateI3D) (HDC hDC, UINT *uRate);
+GdkGLProc gdk_gl_get_wglGetGenlockSampleRateI3D (void);
+#define gdk_gl_wglGetGenlockSampleRateI3D(proc, hDC, uRate) \
+ ( ((GdkGLProc_wglGetGenlockSampleRateI3D) (proc)) (hDC, uRate) )
+
+/* wglGenlockSourceDelayI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGenlockSourceDelayI3D) (HDC hDC, UINT uDelay);
+GdkGLProc gdk_gl_get_wglGenlockSourceDelayI3D (void);
+#define gdk_gl_wglGenlockSourceDelayI3D(proc, hDC, uDelay) \
+ ( ((GdkGLProc_wglGenlockSourceDelayI3D) (proc)) (hDC, uDelay) )
+
+/* wglGetGenlockSourceDelayI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGetGenlockSourceDelayI3D) (HDC hDC, UINT *uDelay);
+GdkGLProc gdk_gl_get_wglGetGenlockSourceDelayI3D (void);
+#define gdk_gl_wglGetGenlockSourceDelayI3D(proc, hDC, uDelay) \
+ ( ((GdkGLProc_wglGetGenlockSourceDelayI3D) (proc)) (hDC, uDelay) )
+
+/* wglQueryGenlockMaxSourceDelayI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglQueryGenlockMaxSourceDelayI3D) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
+GdkGLProc gdk_gl_get_wglQueryGenlockMaxSourceDelayI3D (void);
+#define gdk_gl_wglQueryGenlockMaxSourceDelayI3D(proc, hDC, uMaxLineDelay, uMaxPixelDelay) \
+ ( ((GdkGLProc_wglQueryGenlockMaxSourceDelayI3D) (proc)) (hDC, uMaxLineDelay, uMaxPixelDelay) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_I3D_genlock GdkGL_WGL_I3D_genlock;
+
+struct _GdkGL_WGL_I3D_genlock
+{
+ GdkGLProc_wglEnableGenlockI3D wglEnableGenlockI3D;
+ GdkGLProc_wglDisableGenlockI3D wglDisableGenlockI3D;
+ GdkGLProc_wglIsEnabledGenlockI3D wglIsEnabledGenlockI3D;
+ GdkGLProc_wglGenlockSourceI3D wglGenlockSourceI3D;
+ GdkGLProc_wglGetGenlockSourceI3D wglGetGenlockSourceI3D;
+ GdkGLProc_wglGenlockSourceEdgeI3D wglGenlockSourceEdgeI3D;
+ GdkGLProc_wglGetGenlockSourceEdgeI3D wglGetGenlockSourceEdgeI3D;
+ GdkGLProc_wglGenlockSampleRateI3D wglGenlockSampleRateI3D;
+ GdkGLProc_wglGetGenlockSampleRateI3D wglGetGenlockSampleRateI3D;
+ GdkGLProc_wglGenlockSourceDelayI3D wglGenlockSourceDelayI3D;
+ GdkGLProc_wglGetGenlockSourceDelayI3D wglGetGenlockSourceDelayI3D;
+ GdkGLProc_wglQueryGenlockMaxSourceDelayI3D wglQueryGenlockMaxSourceDelayI3D;
+};
+
+GdkGL_WGL_I3D_genlock *gdk_gl_get_WGL_I3D_genlock (GdkGLConfig *glconfig);
+
+/*
+ * WGL_I3D_image_buffer
+ */
+
+/* wglCreateImageBufferI3D */
+typedef LPVOID (WINAPI * GdkGLProc_wglCreateImageBufferI3D) (HDC hDC, DWORD dwSize, UINT uFlags);
+GdkGLProc gdk_gl_get_wglCreateImageBufferI3D (void);
+#define gdk_gl_wglCreateImageBufferI3D(proc, hDC, dwSize, uFlags) \
+ ( ((GdkGLProc_wglCreateImageBufferI3D) (proc)) (hDC, dwSize, uFlags) )
+
+/* wglDestroyImageBufferI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglDestroyImageBufferI3D) (HDC hDC, LPVOID pAddress);
+GdkGLProc gdk_gl_get_wglDestroyImageBufferI3D (void);
+#define gdk_gl_wglDestroyImageBufferI3D(proc, hDC, pAddress) \
+ ( ((GdkGLProc_wglDestroyImageBufferI3D) (proc)) (hDC, pAddress) )
+
+/* wglAssociateImageBufferEventsI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglAssociateImageBufferEventsI3D) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
+GdkGLProc gdk_gl_get_wglAssociateImageBufferEventsI3D (void);
+#define gdk_gl_wglAssociateImageBufferEventsI3D(proc, hDC, pEvent, pAddress, pSize, count) \
+ ( ((GdkGLProc_wglAssociateImageBufferEventsI3D) (proc)) (hDC, pEvent, pAddress, pSize, count) )
+
+/* wglReleaseImageBufferEventsI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglReleaseImageBufferEventsI3D) (HDC hDC, const LPVOID *pAddress, UINT count);
+GdkGLProc gdk_gl_get_wglReleaseImageBufferEventsI3D (void);
+#define gdk_gl_wglReleaseImageBufferEventsI3D(proc, hDC, pAddress, count) \
+ ( ((GdkGLProc_wglReleaseImageBufferEventsI3D) (proc)) (hDC, pAddress, count) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_I3D_image_buffer GdkGL_WGL_I3D_image_buffer;
+
+struct _GdkGL_WGL_I3D_image_buffer
+{
+ GdkGLProc_wglCreateImageBufferI3D wglCreateImageBufferI3D;
+ GdkGLProc_wglDestroyImageBufferI3D wglDestroyImageBufferI3D;
+ GdkGLProc_wglAssociateImageBufferEventsI3D wglAssociateImageBufferEventsI3D;
+ GdkGLProc_wglReleaseImageBufferEventsI3D wglReleaseImageBufferEventsI3D;
+};
+
+GdkGL_WGL_I3D_image_buffer *gdk_gl_get_WGL_I3D_image_buffer (GdkGLConfig *glconfig);
+
+/*
+ * WGL_I3D_swap_frame_lock
+ */
+
+/* wglEnableFrameLockI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglEnableFrameLockI3D) (void);
+GdkGLProc gdk_gl_get_wglEnableFrameLockI3D (void);
+#define gdk_gl_wglEnableFrameLockI3D(proc) \
+ ( ((GdkGLProc_wglEnableFrameLockI3D) (proc)) () )
+
+/* wglDisableFrameLockI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglDisableFrameLockI3D) (void);
+GdkGLProc gdk_gl_get_wglDisableFrameLockI3D (void);
+#define gdk_gl_wglDisableFrameLockI3D(proc) \
+ ( ((GdkGLProc_wglDisableFrameLockI3D) (proc)) () )
+
+/* wglIsEnabledFrameLockI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglIsEnabledFrameLockI3D) (BOOL *pFlag);
+GdkGLProc gdk_gl_get_wglIsEnabledFrameLockI3D (void);
+#define gdk_gl_wglIsEnabledFrameLockI3D(proc, pFlag) \
+ ( ((GdkGLProc_wglIsEnabledFrameLockI3D) (proc)) (pFlag) )
+
+/* wglQueryFrameLockMasterI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglQueryFrameLockMasterI3D) (BOOL *pFlag);
+GdkGLProc gdk_gl_get_wglQueryFrameLockMasterI3D (void);
+#define gdk_gl_wglQueryFrameLockMasterI3D(proc, pFlag) \
+ ( ((GdkGLProc_wglQueryFrameLockMasterI3D) (proc)) (pFlag) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_I3D_swap_frame_lock GdkGL_WGL_I3D_swap_frame_lock;
+
+struct _GdkGL_WGL_I3D_swap_frame_lock
+{
+ GdkGLProc_wglEnableFrameLockI3D wglEnableFrameLockI3D;
+ GdkGLProc_wglDisableFrameLockI3D wglDisableFrameLockI3D;
+ GdkGLProc_wglIsEnabledFrameLockI3D wglIsEnabledFrameLockI3D;
+ GdkGLProc_wglQueryFrameLockMasterI3D wglQueryFrameLockMasterI3D;
+};
+
+GdkGL_WGL_I3D_swap_frame_lock *gdk_gl_get_WGL_I3D_swap_frame_lock (GdkGLConfig *glconfig);
+
+/*
+ * WGL_I3D_swap_frame_usage
+ */
+
+/* wglGetFrameUsageI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglGetFrameUsageI3D) (float *pUsage);
+GdkGLProc gdk_gl_get_wglGetFrameUsageI3D (void);
+#define gdk_gl_wglGetFrameUsageI3D(proc, pUsage) \
+ ( ((GdkGLProc_wglGetFrameUsageI3D) (proc)) (pUsage) )
+
+/* wglBeginFrameTrackingI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglBeginFrameTrackingI3D) (void);
+GdkGLProc gdk_gl_get_wglBeginFrameTrackingI3D (void);
+#define gdk_gl_wglBeginFrameTrackingI3D(proc) \
+ ( ((GdkGLProc_wglBeginFrameTrackingI3D) (proc)) () )
+
+/* wglEndFrameTrackingI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglEndFrameTrackingI3D) (void);
+GdkGLProc gdk_gl_get_wglEndFrameTrackingI3D (void);
+#define gdk_gl_wglEndFrameTrackingI3D(proc) \
+ ( ((GdkGLProc_wglEndFrameTrackingI3D) (proc)) () )
+
+/* wglQueryFrameTrackingI3D */
+typedef BOOL (WINAPI * GdkGLProc_wglQueryFrameTrackingI3D) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
+GdkGLProc gdk_gl_get_wglQueryFrameTrackingI3D (void);
+#define gdk_gl_wglQueryFrameTrackingI3D(proc, pFrameCount, pMissedFrames, pLastMissedUsage) \
+ ( ((GdkGLProc_wglQueryFrameTrackingI3D) (proc)) (pFrameCount, pMissedFrames, pLastMissedUsage) )
+
+/* proc struct */
+
+typedef struct _GdkGL_WGL_I3D_swap_frame_usage GdkGL_WGL_I3D_swap_frame_usage;
+
+struct _GdkGL_WGL_I3D_swap_frame_usage
+{
+ GdkGLProc_wglGetFrameUsageI3D wglGetFrameUsageI3D;
+ GdkGLProc_wglBeginFrameTrackingI3D wglBeginFrameTrackingI3D;
+ GdkGLProc_wglEndFrameTrackingI3D wglEndFrameTrackingI3D;
+ GdkGLProc_wglQueryFrameTrackingI3D wglQueryFrameTrackingI3D;
+};
+
+GdkGL_WGL_I3D_swap_frame_usage *gdk_gl_get_WGL_I3D_swap_frame_usage (GdkGLConfig *glconfig);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_WGLEXT_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwin32.h b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwin32.h
new file mode 100644
index 00000000..958ccfdd
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwin32.h
@@ -0,0 +1,85 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_WIN32_H__
+#define __GDK_GL_WIN32_H__
+
+#include <gdk/gdkwin32.h>
+
+#ifndef STRICT
+#define STRICT /* We want strict type checks */
+#endif
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+
+#include <GL/gl.h>
+
+#include <gdk/win32/gdkglwglext.h>
+
+/* MinGW's wingdi.h bug. */
+#ifndef PFD_SWAP_LAYER_BUFFERS
+#define PFD_SWAP_LAYER_BUFFERS 0x00000800
+#endif
+
+G_BEGIN_DECLS
+
+gboolean gdk_win32_gl_query_wgl_extension (GdkGLConfig *glconfig,
+ const char *extension);
+
+GdkGLConfig *gdk_win32_gl_config_new_from_pixel_format (int pixel_format);
+
+PIXELFORMATDESCRIPTOR *gdk_win32_gl_config_get_pfd (GdkGLConfig *glconfig);
+
+GdkGLContext *gdk_win32_gl_context_foreign_new (GdkGLConfig *glconfig,
+ GdkGLContext *share_list,
+ HGLRC hglrc);
+
+HGLRC gdk_win32_gl_context_get_hglrc (GdkGLContext *glcontext);
+
+HDC gdk_win32_gl_drawable_hdc_get (GdkGLDrawable *gldrawable);
+void gdk_win32_gl_drawable_hdc_release (GdkGLDrawable *gldrawable);
+
+PIXELFORMATDESCRIPTOR *gdk_win32_gl_pixmap_get_pfd (GdkGLPixmap *glpixmap);
+int gdk_win32_gl_pixmap_get_pixel_format (GdkGLPixmap *glpixmap);
+
+PIXELFORMATDESCRIPTOR *gdk_win32_gl_window_get_pfd (GdkGLWindow *glwindow);
+int gdk_win32_gl_window_get_pixel_format (GdkGLWindow *glwindow);
+
+#ifdef INSIDE_GDK_GL_WIN32
+
+#define GDK_GL_CONFIG_PFD(glconfig) (&(GDK_GL_CONFIG_IMPL_WIN32 (glconfig)->pfd))
+#define GDK_GL_CONTEXT_HGLRC(glcontext) (GDK_GL_CONTEXT_IMPL_WIN32 (glcontext)->hglrc)
+#define GDK_GL_PIXMAP_PFD(glpixmap) (&(GDK_GL_PIXMAP_IMPL_WIN32 (glpixmap)->pfd))
+#define GDK_GL_PIXMAP_PIXEL_FORMAT(glpixmap) (GDK_GL_PIXMAP_IMPL_WIN32 (glpixmap)->pixel_format)
+#define GDK_GL_WINDOW_PFD(glwindow) (&(GDK_GL_WINDOW_IMPL_WIN32 (glwindow)->pfd))
+#define GDK_GL_WINDOW_PIXEL_FORMAT(glwindow) (GDK_GL_WINDOW_IMPL_WIN32 (glwindow)->pixel_format)
+
+#else
+
+#define GDK_GL_CONFIG_PFD(glconfig) (gdk_win32_gl_config_get_pfd (glconfig))
+#define GDK_GL_CONTEXT_HGLRC(glcontext) (gdk_win32_gl_context_get_hglrc (glcontext))
+#define GDK_GL_PIXMAP_PFD(glpixmap) (gdk_win32_gl_pixmap_get_pfd (glpixmap))
+#define GDK_GL_PIXMAP_PIXEL_FORMAT(glpixmap) (gdk_win32_gl_pixmap_get_pixel_format (glpixmap))
+#define GDK_GL_WINDOW_PFD(glwindow) (gdk_win32_gl_window_get_pfd (glwindow))
+#define GDK_GL_WINDOW_PIXEL_FORMAT(glwindow) (gdk_win32_gl_window_get_pixel_format (glwindow))
+
+#endif
+
+G_END_DECLS
+
+#endif /* __GDK_GL_WIN32_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwindow-win32.c b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwindow-win32.c
new file mode 100644
index 00000000..55fccec5
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwindow-win32.c
@@ -0,0 +1,442 @@
+/* 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.
+ */
+
+#include "gdkglwin32.h"
+#include "gdkglprivate-win32.h"
+#include "gdkglconfig-win32.h"
+#include "gdkglcontext-win32.h"
+#include "gdkglwindow-win32.h"
+
+static gboolean gdk_gl_window_impl_win32_make_context_current (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext);
+static gboolean gdk_gl_window_impl_win32_is_double_buffered (GdkGLDrawable *gldrawable);
+static void gdk_gl_window_impl_win32_swap_buffers (GdkGLDrawable *gldrawable);
+static void gdk_gl_window_impl_win32_wait_gl (GdkGLDrawable *gldrawable);
+static void gdk_gl_window_impl_win32_wait_gdk (GdkGLDrawable *gldrawable);
+/*
+static gboolean gdk_gl_window_impl_win32_gl_begin (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext);
+*/
+static void gdk_gl_window_impl_win32_gl_end (GdkGLDrawable *gldrawable);
+static GdkGLConfig *gdk_gl_window_impl_win32_get_gl_config (GdkGLDrawable *gldrawable);
+
+static void gdk_gl_window_impl_win32_class_init (GdkGLWindowImplWin32Class *klass);
+static void gdk_gl_window_impl_win32_finalize (GObject *object);
+static void gdk_gl_window_impl_win32_gl_drawable_interface_init (GdkGLDrawableClass *iface);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_window_impl_win32_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLWindowImplWin32Class),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_window_impl_win32_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLWindowImplWin32),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+ static const GInterfaceInfo gl_drawable_interface_info = {
+ (GInterfaceInitFunc) gdk_gl_window_impl_win32_gl_drawable_interface_init,
+ (GInterfaceFinalizeFunc) NULL,
+ NULL /* interface_data */
+ };
+
+ type = g_type_register_static (GDK_TYPE_GL_WINDOW,
+ "GdkGLWindowImplWin32",
+ &type_info, 0);
+ g_type_add_interface_static (type,
+ GDK_TYPE_GL_DRAWABLE,
+ &gl_drawable_interface_info);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_window_impl_win32_class_init (GdkGLWindowImplWin32Class *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_window_impl_win32_finalize;
+}
+
+void
+_gdk_gl_window_destroy (GdkGLWindow *glwindow)
+{
+ GdkGLWindowImplWin32 *impl = GDK_GL_WINDOW_IMPL_WIN32 (glwindow);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (impl->is_destroyed)
+ return;
+
+ /* Get DC. */
+ if (impl->hdc == NULL)
+ {
+ impl->hdc = GetDC (impl->hwnd);
+ if (impl->hdc == NULL)
+ return;
+ }
+
+ if (impl->hdc == wglGetCurrentDC ())
+ {
+ glFinish ();
+
+ GDK_GL_NOTE_FUNC_IMPL ("wglMakeCurrent");
+ wglMakeCurrent (NULL, NULL);
+ }
+
+ /* Release DC. */
+ if (impl->need_release_dc)
+ ReleaseDC (impl->hwnd, impl->hdc);
+ impl->hdc = NULL;
+
+ impl->hwnd = NULL;
+
+ impl->is_destroyed = TRUE;
+}
+
+static void
+gdk_gl_window_impl_win32_finalize (GObject *object)
+{
+ GdkGLWindowImplWin32 *impl = GDK_GL_WINDOW_IMPL_WIN32 (object);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ _gdk_gl_window_destroy (GDK_GL_WINDOW (object));
+
+ g_object_unref (G_OBJECT (impl->glconfig));
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gdk_gl_window_impl_win32_gl_drawable_interface_init (GdkGLDrawableClass *iface)
+{
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ iface->create_new_context = _gdk_win32_gl_context_new;
+ iface->make_context_current = gdk_gl_window_impl_win32_make_context_current;
+ iface->is_double_buffered = gdk_gl_window_impl_win32_is_double_buffered;
+ iface->swap_buffers = gdk_gl_window_impl_win32_swap_buffers;
+ iface->wait_gl = gdk_gl_window_impl_win32_wait_gl;
+ iface->wait_gdk = gdk_gl_window_impl_win32_wait_gdk;
+ iface->gl_begin = gdk_gl_window_impl_win32_make_context_current;
+ iface->gl_end = gdk_gl_window_impl_win32_gl_end;
+ iface->get_gl_config = gdk_gl_window_impl_win32_get_gl_config;
+ iface->get_size = _gdk_gl_window_get_size;
+}
+
+/*
+ * attrib_list is currently unused. This must be set to NULL or empty
+ * (first attribute of None). See GLX 1.3 spec.
+ */
+GdkGLWindow *
+gdk_gl_window_new (GdkGLConfig *glconfig,
+ GdkWindow *window,
+ const int *attrib_list)
+{
+ GdkGLWindow *glwindow;
+ GdkGLWindowImplWin32 *impl;
+
+ HWND hwnd;
+ DWORD wndclass_style;
+ gboolean need_release_dc;
+ HDC hdc = NULL;
+ PIXELFORMATDESCRIPTOR pfd;
+ int pixel_format;
+
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_WIN32 (glconfig), NULL);
+ g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
+
+ hwnd = (HWND) gdk_win32_drawable_get_handle (GDK_DRAWABLE (window));
+
+ /* Private DC? */
+ wndclass_style = GetClassLong (hwnd, GCL_STYLE);
+ if (wndclass_style & CS_OWNDC)
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- Private DC"));
+ need_release_dc = FALSE;
+ }
+ else
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- Common DC"));
+ need_release_dc = TRUE;
+ }
+
+ /* Get DC. */
+ hdc = GetDC (hwnd);
+ if (hdc == NULL)
+ {
+ g_warning ("cannot get DC");
+ goto FAIL;
+ }
+
+ /*
+ * Choose pixel format.
+ */
+
+ pfd = *(GDK_GL_CONFIG_PFD (glconfig));
+ /* Draw to window */
+ pfd.dwFlags &= ~PFD_DRAW_TO_BITMAP;
+ pfd.dwFlags |= PFD_DRAW_TO_WINDOW;
+
+ /* Request pfd.cColorBits should exclude alpha bitplanes. */
+ pfd.cColorBits = pfd.cRedBits + pfd.cGreenBits + pfd.cBlueBits;
+
+ GDK_GL_NOTE_FUNC_IMPL ("ChoosePixelFormat");
+
+ pixel_format = ChoosePixelFormat (hdc, &pfd);
+ if (pixel_format == 0)
+ {
+ g_warning ("cannot choose pixel format");
+ goto FAIL;
+ }
+
+ /*
+ * Set pixel format.
+ */
+
+ GDK_GL_NOTE_FUNC_IMPL ("SetPixelFormat");
+
+ if (!SetPixelFormat (hdc, pixel_format, &pfd))
+ {
+ g_warning ("cannot set pixel format");
+ goto FAIL;
+ }
+
+ DescribePixelFormat (hdc, pixel_format, sizeof (pfd), &pfd);
+
+ GDK_GL_NOTE (MISC, g_message (" -- impl->pixel_format = 0x%x", pixel_format));
+ GDK_GL_NOTE (MISC, _gdk_win32_gl_print_pfd (&pfd));
+
+ if (need_release_dc)
+ {
+ /* Release DC. */
+ ReleaseDC (hwnd, hdc);
+ hdc = NULL;
+ }
+
+ /*
+ * Instantiate the GdkGLWindowImplWin32 object.
+ */
+
+ glwindow = g_object_new (GDK_TYPE_GL_WINDOW_IMPL_WIN32, NULL);
+ impl = GDK_GL_WINDOW_IMPL_WIN32 (glwindow);
+
+ glwindow->drawable = GDK_DRAWABLE (window);
+ g_object_add_weak_pointer (G_OBJECT (glwindow->drawable),
+ (gpointer *) &(glwindow->drawable));
+
+ impl->hwnd = hwnd;
+
+ impl->pfd = pfd;
+ impl->pixel_format = pixel_format;
+
+ impl->glconfig = glconfig;
+ g_object_ref (G_OBJECT (impl->glconfig));
+
+ impl->hdc = hdc;
+ impl->need_release_dc = need_release_dc;
+
+ impl->is_destroyed = FALSE;
+
+ return glwindow;
+
+ FAIL:
+
+ /* Release DC. */
+ if (need_release_dc && hdc != NULL)
+ ReleaseDC (hwnd, hdc);
+
+ return NULL;
+}
+
+static gboolean
+gdk_gl_window_impl_win32_make_context_current (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext)
+{
+ GdkGLWindowImplWin32 *impl;
+ HDC hdc;
+ HGLRC hglrc;
+
+ g_return_val_if_fail (GDK_IS_GL_WINDOW_IMPL_WIN32 (draw), FALSE);
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_WIN32 (glcontext), FALSE);
+
+ if (GDK_GL_WINDOW_IS_DESTROYED (draw) ||
+ GDK_GL_CONTEXT_IS_DESTROYED (glcontext))
+ return FALSE;
+
+ impl = GDK_GL_WINDOW_IMPL_WIN32 (draw);
+
+ /* Get DC. */
+ hdc = GDK_GL_WINDOW_IMPL_WIN32_HDC_GET (impl);
+
+ /* Get GLRC. */
+ hglrc = GDK_GL_CONTEXT_HGLRC (glcontext);
+
+ GDK_GL_NOTE_FUNC_IMPL ("wglMakeCurrent");
+
+ if (!wglMakeCurrent (hdc, hglrc))
+ {
+ g_warning ("wglMakeCurrent() failed");
+ _gdk_gl_context_set_gl_drawable (glcontext, NULL);
+ /* currently unused. */
+ /* _gdk_gl_context_set_gl_drawable_read (glcontext, NULL); */
+ return FALSE;
+ }
+
+ _gdk_gl_context_set_gl_drawable (glcontext, draw);
+ /* currently unused. */
+ /* _gdk_gl_context_set_gl_drawable_read (glcontext, read); */
+
+ if (_GDK_GL_CONFIG_AS_SINGLE_MODE (impl->glconfig))
+ {
+ /* We do this because we are treating a double-buffered frame
+ buffer as a single-buffered frame buffer because the system
+ does not appear to export any suitable single-buffered
+ visuals (in which the following are necessary). */
+ glDrawBuffer (GL_FRONT);
+ glReadBuffer (GL_FRONT);
+ }
+
+ GDK_GL_NOTE (MISC, _gdk_gl_print_gl_info ());
+
+ /*
+ * Do *NOT* release DC.
+ *
+ * With some graphics card, DC owned by rendering thread will be needed.
+ */
+
+ return TRUE;
+}
+
+static gboolean
+gdk_gl_window_impl_win32_is_double_buffered (GdkGLDrawable *gldrawable)
+{
+ g_return_val_if_fail (GDK_IS_GL_WINDOW_IMPL_WIN32 (gldrawable), FALSE);
+
+ return gdk_gl_config_is_double_buffered (GDK_GL_WINDOW_IMPL_WIN32 (gldrawable)->glconfig);
+}
+
+static void
+gdk_gl_window_impl_win32_swap_buffers (GdkGLDrawable *gldrawable)
+{
+ GdkGLWindowImplWin32 *impl;
+ HDC hdc;
+
+ g_return_if_fail (GDK_IS_GL_WINDOW_IMPL_WIN32 (gldrawable));
+
+ if (GDK_GL_WINDOW_IS_DESTROYED (gldrawable))
+ return;
+
+ impl = GDK_GL_WINDOW_IMPL_WIN32 (gldrawable);
+
+ /* Get DC. */
+ hdc = GDK_GL_WINDOW_IMPL_WIN32_HDC_GET (impl);
+
+ GDK_GL_NOTE_FUNC_IMPL ("SwapBuffers");
+
+ SwapBuffers (hdc);
+
+ /* Release DC. */
+ GDK_GL_WINDOW_IMPL_WIN32_HDC_RELEASE (impl);
+}
+
+static void
+gdk_gl_window_impl_win32_wait_gl (GdkGLDrawable *gldrawable)
+{
+ GdkGLWindowImplWin32 *impl = GDK_GL_WINDOW_IMPL_WIN32 (gldrawable);
+
+ glFinish ();
+
+ /* Release DC. */
+ GDK_GL_WINDOW_IMPL_WIN32_HDC_RELEASE (impl);
+}
+
+static void
+gdk_gl_window_impl_win32_wait_gdk (GdkGLDrawable *gldrawable)
+{
+ GdkGLWindowImplWin32 *impl = GDK_GL_WINDOW_IMPL_WIN32 (gldrawable);
+
+ GdiFlush ();
+
+ /* Get DC. */
+ GDK_GL_WINDOW_IMPL_WIN32_HDC_GET (impl);
+}
+
+/*
+static gboolean
+gdk_gl_window_impl_win32_gl_begin (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext)
+{
+ return gdk_gl_window_impl_win32_make_context_current (draw, read, glcontext);
+}
+*/
+
+static void
+gdk_gl_window_impl_win32_gl_end (GdkGLDrawable *gldrawable)
+{
+ GdkGLWindowImplWin32 *impl = GDK_GL_WINDOW_IMPL_WIN32 (gldrawable);
+
+ /* Release DC. */
+ GDK_GL_WINDOW_IMPL_WIN32_HDC_RELEASE (impl);
+}
+
+static GdkGLConfig *
+gdk_gl_window_impl_win32_get_gl_config (GdkGLDrawable *gldrawable)
+{
+ g_return_val_if_fail (GDK_IS_GL_WINDOW_IMPL_WIN32 (gldrawable), NULL);
+
+ return GDK_GL_WINDOW_IMPL_WIN32 (gldrawable)->glconfig;
+}
+
+PIXELFORMATDESCRIPTOR *
+gdk_win32_gl_window_get_pfd (GdkGLWindow *glwindow)
+{
+ g_return_val_if_fail (GDK_IS_GL_WINDOW_IMPL_WIN32 (glwindow), NULL);
+
+ return &(GDK_GL_WINDOW_IMPL_WIN32 (glwindow)->pfd);
+}
+
+int
+gdk_win32_gl_window_get_pixel_format (GdkGLWindow *glwindow)
+{
+ g_return_val_if_fail (GDK_IS_GL_WINDOW_IMPL_WIN32 (glwindow), 0);
+
+ return GDK_GL_WINDOW_IMPL_WIN32 (glwindow)->pixel_format;
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwindow-win32.h b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwindow-win32.h
new file mode 100644
index 00000000..c1c2c588
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwindow-win32.h
@@ -0,0 +1,73 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_WINDOW_WIN32_H__
+#define __GDK_GL_WINDOW_WIN32_H__
+
+#include <gdk/gdkglwindow.h>
+#include <gdk/win32/gdkglwin32.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLWindowImplWin32 GdkGLWindowImplWin32;
+typedef struct _GdkGLWindowImplWin32Class GdkGLWindowImplWin32Class;
+
+#define GDK_TYPE_GL_WINDOW_IMPL_WIN32 (gdk_gl_window_impl_win32_get_type ())
+#define GDK_GL_WINDOW_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_WINDOW_IMPL_WIN32, GdkGLWindowImplWin32))
+#define GDK_GL_WINDOW_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_WINDOW_IMPL_WIN32, GdkGLWindowImplWin32Class))
+#define GDK_IS_GL_WINDOW_IMPL_WIN32(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_WINDOW_IMPL_WIN32))
+#define GDK_IS_GL_WINDOW_IMPL_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_WINDOW_IMPL_WIN32))
+#define GDK_GL_WINDOW_IMPL_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_WINDOW_IMPL_WIN32, GdkGLWindowImplWin32Class))
+
+struct _GdkGLWindowImplWin32
+{
+ GdkGLWindow parent_instance;
+
+ HWND hwnd;
+
+ PIXELFORMATDESCRIPTOR pfd;
+ int pixel_format;
+
+ GdkGLConfig *glconfig;
+
+ /*< private >*/
+ HDC hdc;
+
+ guint is_destroyed : 1;
+ guint need_release_dc : 1;
+};
+
+struct _GdkGLWindowImplWin32Class
+{
+ GdkGLWindowClass parent_class;
+};
+
+GType gdk_gl_window_impl_win32_get_type (void);
+
+#define GDK_GL_WINDOW_IMPL_WIN32_HDC_GET(impl) \
+ ( ((impl)->hdc != NULL) ? (impl)->hdc : ((impl)->hdc = GetDC ((impl)->hwnd)) )
+
+#define GDK_GL_WINDOW_IMPL_WIN32_HDC_RELEASE(impl) \
+ G_STMT_START { \
+ if ((impl)->need_release_dc && (impl)->hdc != NULL) \
+ { ReleaseDC ((impl)->hwnd, (impl)->hdc); (impl)->hdc = NULL; }; \
+ } G_STMT_END
+
+G_END_DECLS
+
+#endif /* __GDK_GL_WINDOW_WIN32_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.c b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.c
new file mode 100644
index 00000000..9be25b24
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.c
@@ -0,0 +1,957 @@
+/* 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.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include <string.h>
+
+#include "gdkglx.h"
+#include "gdkglprivate-x11.h"
+#include "gdkgloverlay-x11.h"
+#include "gdkglconfig-x11.h"
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+#include <gdk/gdkscreen.h>
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+#ifdef HAVE_LIBXMU
+
+#include <X11/Xatom.h> /* for XA_RGB_DEFAULT_MAP atom */
+
+#ifdef HAVE_XMU_STDCMAP_H
+#include <Xmu/StdCmap.h> /* for XmuLookupStandardColormap */
+#else
+#include <X11/Xmu/StdCmap.h> /* for XmuLookupStandardColormap */
+#endif
+
+#endif /* HAVE_LIBXMU */
+
+static void gdk_gl_config_impl_x11_class_init (GdkGLConfigImplX11Class *klass);
+static void gdk_gl_config_impl_x11_finalize (GObject *object);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_config_impl_x11_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLConfigImplX11Class),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_config_impl_x11_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLConfigImplX11),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+
+ type = g_type_register_static (GDK_TYPE_GL_CONFIG,
+ "GdkGLConfigImplX11",
+ &type_info, 0);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_config_impl_x11_class_init (GdkGLConfigImplX11Class *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_config_impl_x11_finalize;
+}
+
+static void
+gdk_gl_config_impl_x11_finalize (GObject *object)
+{
+ GdkGLConfigImplX11 *impl = GDK_GL_CONFIG_IMPL_X11 (object);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ XFree (impl->xvinfo);
+
+ g_object_unref (G_OBJECT (impl->colormap));
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/*
+ * Get standard RGB colormap
+ */
+
+#ifdef HAVE_GDK_X11_COLORMAP_FOREIGN_NEW
+
+static GdkColormap *
+gdk_gl_config_get_std_rgb_colormap (GdkScreen *screen,
+ XVisualInfo *xvinfo,
+ gboolean is_mesa_glx)
+{
+ GdkDisplay *display;
+ Display *xdisplay;
+ int screen_num;
+ Window xroot_window;
+ Status status;
+ Colormap xcolormap = None;
+ XStandardColormap *standard_cmaps;
+ int i, num_cmaps;
+ GdkVisual *visual;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ display = gdk_screen_get_display (screen);
+ xdisplay = GDK_DISPLAY_XDISPLAY (display);
+ screen_num = xvinfo->screen;
+ xroot_window = RootWindow (xdisplay, screen_num);
+
+ /*
+ * (ripped from GLUT)
+ * Hewlett-Packard supports a feature called "HP Color Recovery".
+ * Mesa has code to use HP Color Recovery. For Mesa to use this feature,
+ * the atom _HP_RGB_SMOOTH_MAP_LIST must be defined on the root window AND
+ * the colormap obtainable by XGetRGBColormaps for that atom must be set on
+ * the window. If that colormap is not set, the output will look stripy.
+ */
+
+ if (is_mesa_glx &&
+ xvinfo->visual->class == TrueColor &&
+ xvinfo->depth == 8)
+ {
+ Atom xa_hp_cr_maps;
+
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Try to find a standard RGB colormap with HP Color Recovery"));
+
+ xa_hp_cr_maps = gdk_x11_get_xatom_by_name_for_display (display,
+ "_HP_RGB_SMOOTH_MAP_LIST");
+
+ status = XGetRGBColormaps (xdisplay, xroot_window,
+ &standard_cmaps, &num_cmaps,
+ xa_hp_cr_maps);
+ if (status)
+ {
+ for (i = 0; i < num_cmaps; i++)
+ {
+ if (standard_cmaps[i].visualid == xvinfo->visualid)
+ {
+ xcolormap = standard_cmaps[i].colormap;
+ break;
+ }
+ }
+
+ XFree (standard_cmaps);
+
+ if (xcolormap != None)
+ {
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Colormap: standard RGB with HP Color Recovery"));
+
+ visual = gdk_x11_screen_lookup_visual (screen, xvinfo->visualid);
+ return gdk_x11_colormap_foreign_new (visual, xcolormap);
+ }
+ }
+ }
+
+#if defined(HAVE_LIBXMU) && !defined(_DISABLE_STANDARD_RGB_CMAP)
+
+ /*
+ * (ripped from GLUT)
+ * Solaris 2.4 and 2.5 have a bug in their XmuLookupStandardColormap
+ * implementations. Please compile your Solaris 2.4 or 2.5 version of
+ * GtkGLExt with -D_DISABLE_STANDARD_RGB_CMAP to work around this bug.
+ * The symptom of the bug is that programs will get a BadMatch error
+ * from XCreateWindow when creating a window because Solaris 2.4 and 2.5
+ * create a corrupted RGB_DEFAULT_MAP property. Note that this workaround
+ * prevents colormap sharing between applications, perhaps leading
+ * unnecessary colormap installations or colormap flashing. Sun fixed
+ * this bug in Solaris 2.6.
+ */
+
+ if (!_gdk_gl_config_no_standard_colormap)
+ {
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Try to find a standard RGB colormap"));
+
+ status = XmuLookupStandardColormap (xdisplay, screen_num,
+ xvinfo->visualid, xvinfo->depth,
+ XA_RGB_DEFAULT_MAP,
+ False, True);
+ if (status)
+ {
+ status = XGetRGBColormaps (xdisplay, xroot_window,
+ &standard_cmaps, &num_cmaps,
+ XA_RGB_DEFAULT_MAP);
+ if (status)
+ {
+ for (i = 0; i < num_cmaps; i++)
+ {
+ if (standard_cmaps[i].visualid == xvinfo->visualid)
+ {
+ xcolormap = standard_cmaps[i].colormap;
+ break;
+ }
+ }
+
+ XFree (standard_cmaps);
+
+ if (xcolormap != None)
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: standard RGB"));
+
+ visual = gdk_x11_screen_lookup_visual (screen, xvinfo->visualid);
+ return gdk_x11_colormap_foreign_new (visual, xcolormap);
+ }
+ }
+ }
+ }
+
+#endif /* defined(HAVE_LIBXMU) && !defined(_DISABLE_STANDARD_RGB_CMAP) */
+
+ return NULL;
+}
+
+#endif /* HAVE_GDK_X11_COLORMAP_FOREIGN_NEW */
+
+/*
+ * Setup colormap.
+ */
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+static GdkColormap *
+gdk_gl_config_setup_colormap (GdkScreen *screen,
+ XVisualInfo *xvinfo,
+ gboolean is_rgba,
+ gboolean is_mesa_glx)
+{
+ GdkColormap *colormap;
+ GdkVisual *visual;
+ GdkGLOverlayInfo overlay_info;
+ gboolean overlay_supported;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (is_rgba)
+ {
+ /*
+ * For RGBA mode.
+ */
+
+ /* Try default colormap. */
+
+ colormap = gdk_screen_get_default_colormap (screen);
+ visual = gdk_colormap_get_visual (colormap);
+ if (GDK_VISUAL_XVISUAL (visual)->visualid == xvinfo->visualid)
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: screen default"));
+ g_object_ref (G_OBJECT (colormap));
+ return colormap;
+ }
+
+ /* Try standard RGB colormap. */
+
+#ifdef HAVE_GDK_X11_COLORMAP_FOREIGN_NEW
+ colormap = gdk_gl_config_get_std_rgb_colormap (screen, xvinfo, is_mesa_glx);
+ if (colormap)
+ return colormap;
+#endif /* HAVE_GDK_X11_COLORMAP_FOREIGN_NEW */
+
+ /* New colormap. */
+
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: new"));
+ visual = gdk_x11_screen_lookup_visual (screen, xvinfo->visualid);
+ colormap = gdk_colormap_new (visual, FALSE);
+ return colormap;
+
+ }
+ else
+ {
+ /*
+ * For color index mode.
+ */
+
+ visual = gdk_x11_screen_lookup_visual (screen, xvinfo->visualid);
+
+ overlay_supported = _gdk_x11_gl_overlay_get_info (visual, &overlay_info);
+ if (overlay_supported &&
+ overlay_info.transparent_type == GDK_GL_OVERLAY_TRANSPARENT_PIXEL &&
+ overlay_info.value < (guint32) xvinfo->visual->map_entries)
+ {
+
+ /*
+ * On machines where zero (or some other value in the range
+ * of 0 through map_entries-1), BadAlloc may be generated
+ * when an AllocAll overlay colormap is allocated since the
+ * transparent pixel precludes all the cells in the colormap
+ * being allocated (the transparent pixel is pre-allocated).
+ * So in this case, use XAllocColorCells to allocate
+ * map_entries-1 pixels (that is, all but the transparent pixel).
+ */
+
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: new"));
+ colormap = gdk_colormap_new (visual, FALSE);
+ }
+ else
+ {
+
+ /*
+ * If there is no transparent pixel or if the transparent
+ * pixel is outside the range of valid colormap cells (HP
+ * can implement their overlays this smart way since their
+ * transparent pixel is 255), we can AllocAll the colormap.
+ * See note above.
+ */
+
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: new allocated writable"));
+ colormap = gdk_colormap_new (visual, TRUE);
+ }
+
+ return colormap;
+
+ }
+
+ /* not reached */
+ return NULL;
+}
+
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+static GdkColormap *
+gdk_gl_config_setup_colormap (GdkScreen *screen,
+ XVisualInfo *xvinfo,
+ gboolean is_rgba,
+ gboolean is_mesa_glx)
+{
+ GdkColormap *colormap;
+ GdkVisual *visual;
+ GdkGLOverlayInfo overlay_info;
+ gboolean overlay_supported;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (is_rgba)
+ {
+ /*
+ * For RGBA mode.
+ */
+
+ /* Try default colormap. */
+
+ colormap = gdk_colormap_get_system ();
+ visual = gdk_colormap_get_visual (colormap);
+ if (GDK_VISUAL_XVISUAL (visual)->visualid == xvinfo->visualid)
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: system default"));
+
+ g_object_ref (G_OBJECT (colormap));
+ return colormap;
+ }
+
+ /* New colormap. */
+
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: new"));
+
+ visual = gdkx_visual_get (xvinfo->visualid);
+ colormap = gdk_colormap_new (visual, FALSE);
+ return colormap;
+
+ }
+ else
+ {
+ /*
+ * For color index mode.
+ */
+
+ visual = gdkx_visual_get (xvinfo->visualid);
+
+ overlay_supported = _gdk_x11_gl_overlay_get_info (visual, &overlay_info);
+ if (overlay_supported &&
+ overlay_info.transparent_type == GDK_GL_OVERLAY_TRANSPARENT_PIXEL &&
+ overlay_info.value < xvinfo->visual->map_entries)
+ {
+
+ /*
+ * On machines where zero (or some other value in the range
+ * of 0 through map_entries-1), BadAlloc may be generated
+ * when an AllocAll overlay colormap is allocated since the
+ * transparent pixel precludes all the cells in the colormap
+ * being allocated (the transparent pixel is pre-allocated).
+ * So in this case, use XAllocColorCells to allocate
+ * map_entries-1 pixels (that is, all but the transparent pixel).
+ */
+
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: new"));
+ colormap = gdk_colormap_new (visual, FALSE);
+ }
+ else
+ {
+
+ /*
+ * If there is no transparent pixel or if the transparent
+ * pixel is outside the range of valid colormap cells (HP
+ * can implement their overlays this smart way since their
+ * transparent pixel is 255), we can AllocAll the colormap.
+ * See note above.
+ */
+
+ GDK_GL_NOTE (MISC, g_message (" -- Colormap: new allocated writable"));
+ colormap = gdk_colormap_new (visual, TRUE);
+ }
+
+ return colormap;
+
+ }
+
+ /* not reached */
+ return NULL;
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+static void
+gdk_gl_config_init_attrib (GdkGLConfig *glconfig)
+{
+ GdkGLConfigImplX11 *impl;
+ int value;
+
+ impl = GDK_GL_CONFIG_IMPL_X11 (glconfig);
+
+#define _GET_CONFIG(__attrib) \
+ glXGetConfig (impl->xdisplay, impl->xvinfo, __attrib, &value)
+
+ /* RGBA mode? */
+ _GET_CONFIG (GLX_RGBA);
+ glconfig->is_rgba = value ? TRUE : FALSE;
+
+ /* Layer plane. */
+ _GET_CONFIG (GLX_LEVEL);
+ glconfig->layer_plane = value;
+
+ /* Double buffering is supported? */
+ _GET_CONFIG (GLX_DOUBLEBUFFER);
+ glconfig->is_double_buffered = value ? TRUE : FALSE;
+
+ /* Stereo is supported? */
+ _GET_CONFIG (GLX_STEREO);
+ glconfig->is_stereo = value ? TRUE : FALSE;
+
+ /* Number of aux buffers */
+ _GET_CONFIG (GLX_AUX_BUFFERS);
+ glconfig->n_aux_buffers = value;
+
+ /* Has alpha bits? */
+ _GET_CONFIG (GLX_ALPHA_SIZE);
+ glconfig->has_alpha = value ? TRUE : FALSE;
+
+ /* Has depth buffer? */
+ _GET_CONFIG (GLX_DEPTH_SIZE);
+ glconfig->has_depth_buffer = value ? TRUE : FALSE;
+
+ /* Has stencil buffer? */
+ _GET_CONFIG (GLX_STENCIL_SIZE);
+ glconfig->has_stencil_buffer = value ? TRUE : FALSE;
+
+ /* Has accumulation buffer? */
+ _GET_CONFIG (GLX_ACCUM_RED_SIZE);
+ glconfig->has_accum_buffer = value ? TRUE : FALSE;
+
+ /* Number of multisample buffers (not supported yet) */
+ glconfig->n_sample_buffers = 0;
+
+#undef _GET_CONFIG
+}
+
+static GdkGLConfig *
+gdk_gl_config_new_common (GdkScreen *screen,
+ const int *attrib_list)
+{
+ GdkGLConfig *glconfig;
+ GdkGLConfigImplX11 *impl;
+
+ Display *xdisplay;
+ int screen_num;
+ XVisualInfo *xvinfo;
+ int is_rgba;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ xdisplay = GDK_SCREEN_XDISPLAY (screen);
+ screen_num = GDK_SCREEN_XNUMBER (screen);
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ xdisplay = gdk_x11_get_default_xdisplay ();
+ screen_num = gdk_x11_get_default_screen ();
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ GDK_GL_NOTE (MISC, _gdk_x11_gl_print_glx_info (xdisplay, screen_num));
+
+ /*
+ * Find an OpenGL-capable visual.
+ */
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXChooseVisual");
+
+ xvinfo = glXChooseVisual (xdisplay, screen_num, (int *) attrib_list);
+ if (xvinfo == NULL)
+ return NULL;
+
+ GDK_GL_NOTE (MISC,
+ g_message (" -- glXChooseVisual: screen number = %d", xvinfo->screen));
+ GDK_GL_NOTE (MISC,
+ g_message (" -- glXChooseVisual: visual id = 0x%lx", xvinfo->visualid));
+
+ /*
+ * Instantiate the GdkGLConfigImplX11 object.
+ */
+
+ glconfig = g_object_new (GDK_TYPE_GL_CONFIG_IMPL_X11, NULL);
+ impl = GDK_GL_CONFIG_IMPL_X11 (glconfig);
+
+ impl->xdisplay = xdisplay;
+ impl->screen_num = screen_num;
+ impl->xvinfo = xvinfo;
+
+ impl->screen = screen;
+
+ /* Using Mesa? */
+ if (strstr (glXQueryServerString (xdisplay, screen_num, GLX_VERSION), "Mesa"))
+ impl->is_mesa_glx = TRUE;
+ else
+ impl->is_mesa_glx = FALSE;
+
+ /*
+ * Get an appropriate colormap.
+ */
+
+ /* RGBA mode? */
+ glXGetConfig (xdisplay, xvinfo, GLX_RGBA, &is_rgba);
+
+ impl->colormap = gdk_gl_config_setup_colormap (impl->screen,
+ impl->xvinfo,
+ is_rgba,
+ impl->is_mesa_glx);
+
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Colormap: visual id = 0x%lx",
+ GDK_VISUAL_XVISUAL (impl->colormap->visual)->visualid));
+
+ /*
+ * Init configuration attributes.
+ */
+
+ gdk_gl_config_init_attrib (glconfig);
+
+ return glconfig;
+}
+
+/**
+ * gdk_gl_config_new:
+ * @attrib_list: a list of attribute/value pairs. The last attribute must
+ * be GDK_GL_ATTRIB_LIST_NONE.
+ *
+ * Returns an OpenGL frame buffer configuration that match the specified
+ * attributes.
+ *
+ * attrib_list is a int array that contains the attribute/value pairs.
+ * Available attributes are:
+ * GDK_GL_USE_GL, GDK_GL_BUFFER_SIZE, GDK_GL_LEVEL, GDK_GL_RGBA,
+ * GDK_GL_DOUBLEBUFFER, GDK_GL_STEREO, GDK_GL_AUX_BUFFERS,
+ * GDK_GL_RED_SIZE, GDK_GL_GREEN_SIZE, GDK_GL_BLUE_SIZE, GDK_GL_ALPHA_SIZE,
+ * GDK_GL_DEPTH_SIZE, GDK_GL_STENCIL_SIZE, GDK_GL_ACCUM_RED_SIZE,
+ * GDK_GL_ACCUM_GREEN_SIZE, GDK_GL_ACCUM_BLUE_SIZE, GDK_GL_ACCUM_ALPHA_SIZE.
+ *
+ * Return value: the new #GdkGLConfig.
+ **/
+GdkGLConfig *
+gdk_gl_config_new (const int *attrib_list)
+{
+ GdkScreen *screen;
+
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (attrib_list != NULL, NULL);
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ screen = gdk_screen_get_default ();
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ screen = NULL;
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ return gdk_gl_config_new_common (screen, attrib_list);
+}
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+/**
+ * gdk_gl_config_new_for_screen:
+ * @screen: target screen.
+ * @attrib_list: a list of attribute/value pairs. The last attribute must
+ * be GDK_GL_ATTRIB_LIST_NONE.
+ *
+ * Returns an OpenGL frame buffer configuration that match the specified
+ * attributes.
+ *
+ * Return value: the new #GdkGLConfig.
+ **/
+GdkGLConfig *
+gdk_gl_config_new_for_screen (GdkScreen *screen,
+ const int *attrib_list)
+{
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
+ g_return_val_if_fail (attrib_list != NULL, NULL);
+
+ return gdk_gl_config_new_common (screen, attrib_list);
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+/*
+ * XVisualInfo returned by this function should be freed by XFree ().
+ */
+static XVisualInfo *
+gdk_x11_gl_get_xvinfo (Display *xdisplay,
+ int screen_num,
+ VisualID xvisualid)
+{
+ XVisualInfo xvinfo_template;
+ XVisualInfo *xvinfo_list;
+ int nitems_return;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ xvinfo_template.visualid = xvisualid;
+ xvinfo_template.screen = screen_num;
+
+ xvinfo_list = XGetVisualInfo (xdisplay,
+ VisualIDMask | VisualScreenMask,
+ &xvinfo_template,
+ &nitems_return);
+
+ /* Returned XVisualInfo needs to be unique */
+ g_assert (xvinfo_list != NULL && nitems_return == 1);
+
+ return xvinfo_list;
+}
+
+static GdkGLConfig *
+gdk_x11_gl_config_new_from_visualid_common (GdkScreen *screen,
+ VisualID xvisualid)
+{
+ GdkGLConfig *glconfig;
+ GdkGLConfigImplX11 *impl;
+
+ Display *xdisplay;
+ int screen_num;
+ XVisualInfo *xvinfo;
+ int is_rgba;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ xdisplay = GDK_SCREEN_XDISPLAY (screen);
+ screen_num = GDK_SCREEN_XNUMBER (screen);
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ xdisplay = gdk_x11_get_default_xdisplay ();
+ screen_num = gdk_x11_get_default_screen ();
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ GDK_GL_NOTE (MISC,
+ g_message (" -- GLX_VENDOR : %s",
+ glXGetClientString (xdisplay, GLX_VENDOR)));
+ GDK_GL_NOTE (MISC,
+ g_message (" -- GLX_VERSION : %s",
+ glXGetClientString (xdisplay, GLX_VERSION)));
+ GDK_GL_NOTE (MISC,
+ g_message (" -- GLX_EXTENSIONS : %s",
+ glXGetClientString (xdisplay, GLX_EXTENSIONS)));
+
+ /*
+ * Get XVisualInfo.
+ */
+
+ xvinfo = gdk_x11_gl_get_xvinfo (xdisplay, screen_num, xvisualid);
+ if (xvinfo == NULL)
+ return NULL;
+
+ GDK_GL_NOTE (MISC,
+ g_message (" -- gdk_x11_gl_get_xvinfo: screen number = %d", xvinfo->screen));
+ GDK_GL_NOTE (MISC,
+ g_message (" -- gdk_x11_gl_get_xvinfo: visual id = 0x%lx", xvinfo->visualid));
+
+ /*
+ * Instantiate the GdkGLConfigImplX11 object.
+ */
+
+ glconfig = g_object_new (GDK_TYPE_GL_CONFIG_IMPL_X11, NULL);
+ impl = GDK_GL_CONFIG_IMPL_X11 (glconfig);
+
+ impl->xdisplay = xdisplay;
+ impl->screen_num = screen_num;
+ impl->xvinfo = xvinfo;
+
+ impl->screen = screen;
+
+ /* Using Mesa? */
+ if (strstr (glXQueryServerString (xdisplay, screen_num, GLX_VERSION), "Mesa"))
+ impl->is_mesa_glx = TRUE;
+ else
+ impl->is_mesa_glx = FALSE;
+
+ /*
+ * Get an appropriate colormap.
+ */
+
+ /* RGBA mode? */
+ glXGetConfig (xdisplay, xvinfo, GLX_RGBA, &is_rgba);
+
+ impl->colormap = gdk_gl_config_setup_colormap (impl->screen,
+ impl->xvinfo,
+ is_rgba,
+ impl->is_mesa_glx);
+
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Colormap: visual id = 0x%lx",
+ GDK_VISUAL_XVISUAL (impl->colormap->visual)->visualid));
+
+ /*
+ * Init configuration attributes.
+ */
+
+ gdk_gl_config_init_attrib (glconfig);
+
+ return glconfig;
+}
+
+/**
+ * gdk_x11_gl_config_new_from_visualid:
+ * @xvisualid: visual ID.
+ *
+ * Creates #GdkGLConfig from given visual ID that specifies the OpenGL-capable
+ * visual.
+ *
+ * Return value: the new #GdkGLConfig.
+ **/
+GdkGLConfig *
+gdk_x11_gl_config_new_from_visualid (VisualID xvisualid)
+{
+ GdkScreen *screen;
+
+ GDK_GL_NOTE_FUNC ();
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ screen = gdk_screen_get_default ();
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ screen = NULL;
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ return gdk_x11_gl_config_new_from_visualid_common (screen, xvisualid);
+}
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+/**
+ * gdk_x11_gl_config_new_from_visualid_for_screen:
+ * @screen: target screen.
+ * @xvisualid: visual ID.
+ *
+ * Creates #GdkGLConfig from given visual ID that specifies the OpenGL-capable
+ * visual.
+ *
+ * Return value: the new #GdkGLConfig.
+ **/
+GdkGLConfig *
+gdk_x11_gl_config_new_from_visualid_for_screen (GdkScreen *screen,
+ VisualID xvisualid)
+{
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
+
+ return gdk_x11_gl_config_new_from_visualid_common (screen, xvisualid);
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+/**
+ * gdk_gl_config_get_screen:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Gets #GdkScreen.
+ *
+ * Return value: the #GdkScreen.
+ **/
+GdkScreen *
+gdk_gl_config_get_screen (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), NULL);
+
+ return GDK_GL_CONFIG_IMPL_X11 (glconfig)->screen;
+}
+
+/**
+ * gdk_gl_config_get_attrib:
+ * @glconfig: a #GdkGLConfig.
+ * @attribute: the attribute to be returned.
+ * @value: returns the requested value.
+ *
+ * Gets information about a OpenGL frame buffer configuration.
+ *
+ * Return value: TRUE if it succeeded, FALSE otherwise.
+ **/
+gboolean
+gdk_gl_config_get_attrib (GdkGLConfig *glconfig,
+ int attribute,
+ int *value)
+{
+ GdkGLConfigImplX11 *impl;
+ int ret;
+
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), FALSE);
+
+ impl = GDK_GL_CONFIG_IMPL_X11 (glconfig);
+
+ ret = glXGetConfig (impl->xdisplay, impl->xvinfo, attribute, value);
+
+ return (ret == Success);
+}
+
+/**
+ * gdk_gl_config_get_colormap:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Gets the #GdkColormap that is appropriate for the OpenGL frame buffer
+ * configuration.
+ *
+ * Return value: the appropriate #GdkColormap.
+ **/
+GdkColormap *
+gdk_gl_config_get_colormap (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), NULL);
+
+ return GDK_GL_CONFIG_IMPL_X11 (glconfig)->colormap;
+}
+
+/**
+ * gdk_gl_config_get_visual:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Gets the #GdkVisual that is appropriate for the OpenGL frame buffer
+ * configuration.
+ *
+ * Return value: the appropriate #GdkVisual.
+ **/
+GdkVisual *
+gdk_gl_config_get_visual (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), NULL);
+
+ return gdk_colormap_get_visual (GDK_GL_CONFIG_IMPL_X11 (glconfig)->colormap);
+}
+
+/**
+ * gdk_gl_config_get_depth:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Gets the color depth of the OpenGL-capable visual.
+ *
+ * Return value: number of bits per pixel
+ **/
+gint
+gdk_gl_config_get_depth (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), 0);
+
+ return GDK_GL_CONFIG_IMPL_X11 (glconfig)->xvinfo->depth;
+}
+
+/**
+ * gdk_x11_gl_config_get_xdisplay:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Gets X Display.
+ *
+ * Return value: pointer to the Display.
+ **/
+Display *
+gdk_x11_gl_config_get_xdisplay (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), NULL);
+
+ return GDK_GL_CONFIG_IMPL_X11 (glconfig)->xdisplay;
+}
+
+/**
+ * gdk_x11_gl_config_get_screen_number:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Gets X screen number.
+ *
+ * Return value: the screen number.
+ **/
+int
+gdk_x11_gl_config_get_screen_number (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), 0);
+
+ return GDK_GL_CONFIG_IMPL_X11 (glconfig)->screen_num;
+}
+
+/**
+ * gdk_x11_gl_config_get_xvinfo:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Gets XVisualInfo data.
+ *
+ * Return value: pointer to the XVisualInfo data.
+ **/
+XVisualInfo *
+gdk_x11_gl_config_get_xvinfo (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), NULL);
+
+ return GDK_GL_CONFIG_IMPL_X11 (glconfig)->xvinfo;
+}
+
+/**
+ * gdk_x11_gl_config_is_mesa_glx:
+ * @glconfig: a #GdkGLConfig.
+ *
+ * Returns whether the server's GLX entension is Mesa.
+ *
+ * Return value: TRUE if Mesa GLX, FALSE otherwise.
+ **/
+gboolean
+gdk_x11_gl_config_is_mesa_glx (GdkGLConfig *glconfig)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), FALSE);
+
+ return GDK_GL_CONFIG_IMPL_X11 (glconfig)->is_mesa_glx;
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.h b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.h
new file mode 100644
index 00000000..2345e8c3
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.h
@@ -0,0 +1,61 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_CONFIG_X11_H__
+#define __GDK_GL_CONFIG_X11_H__
+
+#include <gdk/gdkglconfig.h>
+#include <gdk/x11/gdkglx.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLConfigImplX11 GdkGLConfigImplX11;
+typedef struct _GdkGLConfigImplX11Class GdkGLConfigImplX11Class;
+
+#define GDK_TYPE_GL_CONFIG_IMPL_X11 (gdk_gl_config_impl_x11_get_type ())
+#define GDK_GL_CONFIG_IMPL_X11(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_CONFIG_IMPL_X11, GdkGLConfigImplX11))
+#define GDK_GL_CONFIG_IMPL_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_CONFIG_IMPL_X11, GdkGLConfigImplX11Class))
+#define GDK_IS_GL_CONFIG_IMPL_X11(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_CONFIG_IMPL_X11))
+#define GDK_IS_GL_CONFIG_IMPL_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_CONFIG_IMPL_X11))
+#define GDK_GL_CONFIG_IMPL_X11_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_CONFIG_IMPL_X11, GdkGLConfigImplX11Class))
+
+struct _GdkGLConfigImplX11
+{
+ GdkGLConfig parent_instance;
+
+ Display *xdisplay;
+ int screen_num;
+ XVisualInfo *xvinfo;
+
+ GdkScreen *screen;
+
+ GdkColormap *colormap;
+
+ guint is_mesa_glx : 1;
+};
+
+struct _GdkGLConfigImplX11Class
+{
+ GdkGLConfigClass parent_class;
+};
+
+GType gdk_gl_config_impl_x11_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_CONFIG_X11_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.c b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.c
new file mode 100644
index 00000000..9f772cb0
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.c
@@ -0,0 +1,601 @@
+/* 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.
+ */
+
+#include <gdk/gdk.h> /* for gdk_error_trap_(push|pop) () */
+
+#include "gdkglx.h"
+#include "gdkglprivate-x11.h"
+#include "gdkgldrawable.h"
+#include "gdkglconfig-x11.h"
+#include "gdkglcontext-x11.h"
+
+static void gdk_gl_context_insert (GdkGLContext *glcontext);
+static void gdk_gl_context_remove (GdkGLContext *glcontext);
+static GdkGLContext *gdk_gl_context_lookup (GLXContext glxcontext);
+static guint gdk_gl_context_hash (GLXContext *glxcontext);
+static gboolean gdk_gl_context_equal (GLXContext *a,
+ GLXContext *b);
+
+static void gdk_gl_context_impl_x11_class_init (GdkGLContextImplX11Class *klass);
+static void gdk_gl_context_impl_x11_finalize (GObject *object);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_context_impl_x11_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLContextImplX11Class),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_context_impl_x11_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLContextImplX11),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+
+ type = g_type_register_static (GDK_TYPE_GL_CONTEXT,
+ "GdkGLContextImplX11",
+ &type_info, 0);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_context_impl_x11_class_init (GdkGLContextImplX11Class *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_context_impl_x11_finalize;
+}
+
+void
+_gdk_gl_context_destroy (GdkGLContext *glcontext)
+{
+ GdkGLContextImplX11 *impl = GDK_GL_CONTEXT_IMPL_X11 (glcontext);
+ Display *xdisplay;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (impl->is_destroyed)
+ return;
+
+ gdk_gl_context_remove (glcontext);
+
+ xdisplay = GDK_GL_CONFIG_XDISPLAY (impl->glconfig);
+
+ if (impl->glxcontext == glXGetCurrentContext ())
+ {
+ glXWaitGL ();
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXMakeCurrent");
+ glXMakeCurrent (xdisplay, None, NULL);
+ }
+
+ if (!impl->is_foreign)
+ {
+ GDK_GL_NOTE_FUNC_IMPL ("glXDestroyContext");
+ glXDestroyContext (xdisplay, impl->glxcontext);
+ impl->glxcontext = NULL;
+ }
+
+ if (impl->gldrawable != NULL)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (impl->gldrawable),
+ (gpointer *) &(impl->gldrawable));
+ impl->gldrawable = NULL;
+ }
+
+ /* currently unused. */
+ /*
+ if (impl->gldrawable_read != NULL)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (impl->gldrawable_read),
+ (gpointer *) &(impl->gldrawable_read));
+ impl->gldrawable_read = NULL;
+ }
+ */
+
+ impl->is_destroyed = TRUE;
+}
+
+static void
+gdk_gl_context_impl_x11_finalize (GObject *object)
+{
+ GdkGLContextImplX11 *impl = GDK_GL_CONTEXT_IMPL_X11 (object);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ _gdk_gl_context_destroy (GDK_GL_CONTEXT (object));
+
+ g_object_unref (G_OBJECT (impl->glconfig));
+
+ if (impl->share_list != NULL)
+ g_object_unref (G_OBJECT (impl->share_list));
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static GdkGLContext *
+gdk_gl_context_new_common (GdkGLConfig *glconfig,
+ GdkGLContext *share_list,
+ int render_type,
+ GLXContext glxcontext,
+ gboolean is_foreign)
+{
+ GdkGLContext *glcontext;
+ GdkGLContextImplX11 *impl;
+
+ Display *xdisplay;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ /*
+ * Instantiate the GdkGLContextImplX11 object.
+ */
+
+ glcontext = g_object_new (GDK_TYPE_GL_CONTEXT_IMPL_X11, NULL);
+ impl = GDK_GL_CONTEXT_IMPL_X11 (glcontext);
+
+ impl->glxcontext = glxcontext;
+
+ if (share_list != NULL && GDK_IS_GL_CONTEXT (share_list))
+ {
+ impl->share_list = share_list;
+ g_object_ref (G_OBJECT (impl->share_list));
+ }
+ else
+ {
+ impl->share_list = NULL;
+ }
+
+ xdisplay = GDK_GL_CONFIG_XDISPLAY (glconfig);
+ impl->is_direct = glXIsDirect (xdisplay, glxcontext) ? TRUE : FALSE;
+
+ impl->render_type = render_type;
+
+ impl->glconfig = glconfig;
+ g_object_ref (G_OBJECT (impl->glconfig));
+
+ impl->gldrawable = NULL;
+ impl->gldrawable_read = NULL;
+
+ impl->is_foreign = is_foreign;
+
+ impl->is_destroyed = FALSE;
+
+ /*
+ * Insert into the GL context hash table.
+ */
+
+ gdk_gl_context_insert (glcontext);
+
+ return glcontext;
+}
+
+/*< private >*/
+GdkGLContext *
+_gdk_x11_gl_context_new (GdkGLDrawable *gldrawable,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type)
+{
+ GdkGLConfig *glconfig;
+ GdkGLContextImplX11 *share_impl = NULL;
+ GLXContext share_glxcontext = NULL;
+
+ Display *xdisplay;
+ XVisualInfo *xvinfo;
+ GLXContext glxcontext;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ /*
+ * Create an OpenGL rendering context.
+ */
+
+ glconfig = gdk_gl_drawable_get_gl_config (gldrawable);
+
+ xdisplay = GDK_GL_CONFIG_XDISPLAY (glconfig);
+ xvinfo = GDK_GL_CONFIG_XVINFO (glconfig);
+
+ if (share_list != NULL && GDK_IS_GL_CONTEXT (share_list))
+ {
+ share_impl = GDK_GL_CONTEXT_IMPL_X11 (share_list);
+ share_glxcontext = share_impl->glxcontext;
+ }
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXCreateContext");
+
+ if (_gdk_gl_context_force_indirect)
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- Force indirect"));
+
+ glxcontext = glXCreateContext (xdisplay,
+ xvinfo,
+ share_glxcontext,
+ False);
+ }
+ else
+ {
+ glxcontext = glXCreateContext (xdisplay,
+ xvinfo,
+ share_glxcontext,
+ (direct == TRUE) ? True : False);
+ }
+ if (glxcontext == NULL)
+ return NULL;
+
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Context: screen number = %d", xvinfo->screen));
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Context: visual id = 0x%lx", xvinfo->visualid));
+
+ /*
+ * Instantiate the GdkGLContextImplX11 object.
+ */
+
+ return gdk_gl_context_new_common (glconfig,
+ share_list,
+ render_type,
+ glxcontext,
+ FALSE);
+}
+
+/**
+ * gdk_x11_gl_context_foreign_new:
+ * @glconfig: #GdkGLConfig that represents the visual the GLXContext uses.
+ * @share_list: the #GdkGLContext which shares display lists with the
+ * GLXContext, or NULL.
+ * @glxcontext: exsisting GLXContext.
+ *
+ * Creates #GdkGLContext from existing GLXContext.
+ *
+ * Return value: the newly-created #GdkGLContext wrapper.
+ **/
+GdkGLContext *
+gdk_x11_gl_context_foreign_new (GdkGLConfig *glconfig,
+ GdkGLContext *share_list,
+ GLXContext glxcontext)
+{
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), NULL);
+ g_return_val_if_fail (glxcontext != NULL, NULL);
+
+ /*
+ * Instantiate the GdkGLContextImplX11 object.
+ */
+
+ return gdk_gl_context_new_common (glconfig,
+ share_list,
+ (glconfig->is_rgba) ? GDK_GL_RGBA_TYPE : GDK_GL_COLOR_INDEX_TYPE,
+ glxcontext,
+ TRUE);
+}
+
+/**
+ * gdk_gl_context_copy:
+ * @glcontext: a #GdkGLContext.
+ * @src: the source context.
+ * @mask: which portions of @src state are to be copied to @glcontext.
+ *
+ * Copy state from @src rendering context to @glcontext.
+ *
+ * @mask contains the bitwise-OR of the same symbolic names that are passed to
+ * the glPushAttrib() function. You can use GL_ALL_ATTRIB_BITS to copy all the
+ * rendering state information.
+ *
+ * Return value: FALSE if it fails, TRUE otherwise.
+ **/
+gboolean
+gdk_gl_context_copy (GdkGLContext *glcontext,
+ GdkGLContext *src,
+ unsigned long mask)
+{
+ GLXContext dst_glxcontext, src_glxcontext;
+ GdkGLConfig *glconfig;
+
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_X11 (glcontext), FALSE);
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_X11 (src), FALSE);
+
+ dst_glxcontext = GDK_GL_CONTEXT_GLXCONTEXT (glcontext);
+ if (dst_glxcontext == NULL)
+ return FALSE;
+
+ src_glxcontext = GDK_GL_CONTEXT_GLXCONTEXT (src);
+ if (src_glxcontext == NULL)
+ return FALSE;
+
+ glconfig = GDK_GL_CONTEXT_IMPL_X11 (glcontext)->glconfig;
+
+ gdk_error_trap_push ();
+
+ glXCopyContext (GDK_GL_CONFIG_XDISPLAY (glconfig),
+ src_glxcontext, dst_glxcontext,
+ mask);
+
+ return gdk_error_trap_pop () == Success;
+}
+
+/*< private >*/
+void
+_gdk_gl_context_set_gl_drawable (GdkGLContext *glcontext,
+ GdkGLDrawable *gldrawable)
+{
+ GdkGLContextImplX11 *impl = GDK_GL_CONTEXT_IMPL_X11 (glcontext);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (impl->gldrawable == gldrawable)
+ return;
+
+ if (impl->gldrawable != NULL)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (impl->gldrawable),
+ (gpointer *) &(impl->gldrawable));
+ impl->gldrawable = NULL;
+ }
+
+ if (gldrawable != NULL && GDK_IS_GL_DRAWABLE (gldrawable))
+ {
+ impl->gldrawable = gldrawable;
+ g_object_add_weak_pointer (G_OBJECT (impl->gldrawable),
+ (gpointer *) &(impl->gldrawable));
+ }
+}
+
+/*< private >*/
+/* currently unused. */
+/*
+void
+_gdk_gl_context_set_gl_drawable_read (GdkGLContext *glcontext,
+ GdkGLDrawable *gldrawable_read)
+{
+ GdkGLContextImplX11 *impl = GDK_GL_CONTEXT_IMPL_X11 (glcontext);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (impl->gldrawable_read == gldrawable_read)
+ return;
+
+ if (impl->gldrawable_read != NULL)
+ {
+ g_object_remove_weak_pointer (G_OBJECT (impl->gldrawable_read),
+ (gpointer *) &(impl->gldrawable_read));
+ impl->gldrawable_read = NULL;
+ }
+
+ if (gldrawable_read != NULL && GDK_IS_GL_DRAWABLE (gldrawable_read))
+ {
+ impl->gldrawable_read = gldrawable_read;
+ g_object_add_weak_pointer (G_OBJECT (impl->gldrawable_read),
+ (gpointer *) &(impl->gldrawable_read));
+ }
+}
+*/
+
+/**
+ * gdk_gl_context_get_gl_drawable:
+ * @glcontext: a #GdkGLContext.
+ *
+ * Gets #GdkGLDrawable to which the @glcontext is bound.
+ *
+ * Return value: the #GdkGLDrawable or NULL if no #GdkGLDrawable is bound.
+ **/
+GdkGLDrawable *
+gdk_gl_context_get_gl_drawable (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_X11 (glcontext), NULL);
+
+ return GDK_GL_CONTEXT_IMPL_X11 (glcontext)->gldrawable;
+}
+
+/**
+ * gdk_gl_context_get_gl_config:
+ * @glcontext: a #GdkGLContext.
+ *
+ * Gets #GdkGLConfig with which the @glcontext is configured.
+ *
+ * Return value: the #GdkGLConfig.
+ **/
+GdkGLConfig *
+gdk_gl_context_get_gl_config (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_X11 (glcontext), NULL);
+
+ return GDK_GL_CONTEXT_IMPL_X11 (glcontext)->glconfig;
+}
+
+/**
+ * gdk_gl_context_get_share_list:
+ * @glcontext: a #GdkGLContext.
+ *
+ * Gets #GdkGLContext with which the @glcontext shares the display lists and
+ * texture objects.
+ *
+ * Return value: the #GdkGLContext.
+ **/
+GdkGLContext *
+gdk_gl_context_get_share_list (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_X11 (glcontext), NULL);
+
+ return GDK_GL_CONTEXT_IMPL_X11 (glcontext)->share_list;
+}
+
+/**
+ * gdk_gl_context_is_direct:
+ * @glcontext: a #GdkGLContext.
+ *
+ * Returns whether the @glcontext is a direct rendering context.
+ *
+ * Return value: TRUE if the @glcontext is a direct rendering contest.
+ **/
+gboolean
+gdk_gl_context_is_direct (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_X11 (glcontext), FALSE);
+
+ return GDK_GL_CONTEXT_IMPL_X11 (glcontext)->is_direct;
+}
+
+/**
+ * gdk_gl_context_get_render_type:
+ * @glcontext: a #GdkGLContext.
+ *
+ * Gets render_type of the @glcontext.
+ *
+ * Return value: GDK_GL_RGBA_TYPE or GDK_GL_COLOR_INDEX_TYPE.
+ **/
+int
+gdk_gl_context_get_render_type (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_X11 (glcontext), 0);
+
+ return GDK_GL_CONTEXT_IMPL_X11 (glcontext)->render_type;
+}
+
+/**
+ * gdk_gl_context_get_current:
+ *
+ * Returns the current #GdkGLContext.
+ *
+ * Return value: the current #GdkGLContext or NULL if there is no current
+ * context.
+ **/
+GdkGLContext *
+gdk_gl_context_get_current (void)
+{
+ static GdkGLContext *current = NULL;
+ GLXContext glxcontext;
+
+ GDK_GL_NOTE_FUNC ();
+
+ glxcontext = glXGetCurrentContext ();
+
+ if (glxcontext == NULL)
+ return NULL;
+
+ if (current && GDK_GL_CONTEXT_GLXCONTEXT (current) == glxcontext)
+ return current;
+
+ current = gdk_gl_context_lookup (glxcontext);
+
+ return current;
+}
+
+/**
+ * gdk_x11_gl_context_get_glxcontext:
+ * @glcontext: a #GdkGLContext.
+ *
+ * Gets GLXContext.
+ *
+ * Return value: the GLXContext.
+ **/
+GLXContext
+gdk_x11_gl_context_get_glxcontext (GdkGLContext *glcontext)
+{
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_X11 (glcontext), NULL);
+
+ return GDK_GL_CONTEXT_IMPL_X11 (glcontext)->glxcontext;
+}
+
+/*
+ * GdkGLContext hash table.
+ */
+
+static GHashTable *gl_context_ht = NULL;
+
+static void
+gdk_gl_context_insert (GdkGLContext *glcontext)
+{
+ GdkGLContextImplX11 *impl;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (gl_context_ht == NULL)
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- Create GL context hash table."));
+ gl_context_ht = g_hash_table_new ((GHashFunc) gdk_gl_context_hash,
+ (GEqualFunc) gdk_gl_context_equal);
+ }
+
+ impl = GDK_GL_CONTEXT_IMPL_X11 (glcontext);
+
+ g_hash_table_insert (gl_context_ht, &(impl->glxcontext), glcontext);
+}
+
+static void
+gdk_gl_context_remove (GdkGLContext *glcontext)
+{
+ GdkGLContextImplX11 *impl;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (gl_context_ht == NULL)
+ return;
+
+ impl = GDK_GL_CONTEXT_IMPL_X11 (glcontext);
+
+ g_hash_table_remove (gl_context_ht, &(impl->glxcontext));
+
+ if (g_hash_table_size (gl_context_ht) == 0)
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- Destroy GL context hash table."));
+ g_hash_table_destroy (gl_context_ht);
+ gl_context_ht = NULL;
+ }
+}
+
+static GdkGLContext *
+gdk_gl_context_lookup (GLXContext glxcontext)
+{
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (gl_context_ht == NULL)
+ return NULL;
+
+ return g_hash_table_lookup (gl_context_ht, &glxcontext);
+}
+
+static guint
+gdk_gl_context_hash (GLXContext *glxcontext)
+{
+ return (guint) *glxcontext;
+}
+
+static gboolean
+gdk_gl_context_equal (GLXContext *a,
+ GLXContext *b)
+{
+ return (*a == *b);
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.h b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.h
new file mode 100644
index 00000000..3e6c8b35
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.h
@@ -0,0 +1,64 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_CONTEXT_X11_H__
+#define __GDK_GL_CONTEXT_X11_H__
+
+#include <gdk/gdkglcontext.h>
+#include <gdk/x11/gdkglx.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLContextImplX11 GdkGLContextImplX11;
+typedef struct _GdkGLContextImplX11Class GdkGLContextImplX11Class;
+
+#define GDK_TYPE_GL_CONTEXT_IMPL_X11 (gdk_gl_context_impl_x11_get_type ())
+#define GDK_GL_CONTEXT_IMPL_X11(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_CONTEXT_IMPL_X11, GdkGLContextImplX11))
+#define GDK_GL_CONTEXT_IMPL_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_CONTEXT_IMPL_X11, GdkGLContextImplX11Class))
+#define GDK_IS_GL_CONTEXT_IMPL_X11(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_CONTEXT_IMPL_X11))
+#define GDK_IS_GL_CONTEXT_IMPL_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_CONTEXT_IMPL_X11))
+#define GDK_GL_CONTEXT_IMPL_X11_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_CONTEXT_IMPL_X11, GdkGLContextImplX11Class))
+
+struct _GdkGLContextImplX11
+{
+ GdkGLContext parent_instance;
+
+ GLXContext glxcontext;
+ GdkGLContext *share_list;
+ gboolean is_direct;
+ int render_type;
+
+ GdkGLConfig *glconfig;
+
+ GdkGLDrawable *gldrawable;
+ GdkGLDrawable *gldrawable_read; /* currently unused. */
+
+ guint is_destroyed : 1;
+ guint is_foreign : 1;
+};
+
+struct _GdkGLContextImplX11Class
+{
+ GdkGLContextClass parent_class;
+};
+
+GType gdk_gl_context_impl_x11_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_CONTEXT_X11_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgldrawable-x11.c b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgldrawable-x11.c
new file mode 100644
index 00000000..3a222864
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgldrawable-x11.c
@@ -0,0 +1,34 @@
+/* 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.
+ */
+
+#include "gdkglx.h"
+#include "gdkglprivate-x11.h"
+
+/*< private >*/
+void
+_gdk_gl_drawable_impl_x11_wait_gl (GdkGLDrawable *gldrawable)
+{
+ glXWaitGL ();
+}
+
+/*< private >*/
+void
+_gdk_gl_drawable_impl_x11_wait_gdk (GdkGLDrawable *gldrawable)
+{
+ glXWaitX ();
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglfont-x11.c b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglfont-x11.c
new file mode 100644
index 00000000..d4ec881f
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglfont-x11.c
@@ -0,0 +1,196 @@
+/* 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.
+ */
+
+#include <string.h>
+
+#include <pango/pangox.h>
+
+#include "gdkglx.h"
+#include "gdkglprivate-x11.h"
+#include "gdkglfont.h"
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+#include <gdk/gdkdisplay.h>
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+/*
+ * This code is ripped from gdk/x11/gdkfont-x11.c in GTK+.
+ */
+static char *
+gdk_gl_font_charset_for_locale (void)
+{
+ static char *charset_map[][2] = {
+ { "ANSI_X3.4-1968", "iso8859-1" },
+ { "US-ASCII", "iso8859-1" },
+ { "ISO-8859-1", "iso8859-1" },
+ { "ISO-8859-2", "iso8859-2" },
+ { "ISO-8859-3", "iso8859-3" },
+ { "ISO-8859-4", "iso8859-4" },
+ { "ISO-8859-5", "iso8859-5" },
+ { "ISO-8859-6", "iso8859-6" },
+ { "ISO-8859-7", "iso8859-7" },
+ { "ISO-8859-8", "iso8859-8" },
+ { "ISO-8859-9", "iso8859-9" },
+ { "UTF-8", "iso8859-1" }
+ };
+
+ const char *codeset;
+ char *result = NULL;
+ gsize i;
+
+ g_get_charset (&codeset);
+
+ for (i = 0; i < G_N_ELEMENTS (charset_map); i++)
+ if (strcmp (charset_map[i][0], codeset) == 0)
+ {
+ result = charset_map[i][1];
+ break;
+ }
+
+ if (result != NULL)
+ return g_strdup (result);
+ else
+ return g_strdup ("iso8859-1");
+}
+
+static PangoFont *
+gdk_gl_font_use_pango_font_common (PangoFontMap *font_map,
+ const PangoFontDescription *font_desc,
+ int first,
+ int count,
+ int list_base)
+{
+ PangoFont *font = NULL;
+ gchar *charset = NULL;
+ PangoXSubfont subfont_id;
+ gchar *xlfd = NULL;
+ PangoXFontCache *font_cache;
+ XFontStruct *fs;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ font = pango_font_map_load_font (font_map, NULL, font_desc);
+ if (font == NULL)
+ {
+ g_warning ("cannot load PangoFont");
+ goto FAIL;
+ }
+
+ charset = gdk_gl_font_charset_for_locale ();
+ if (!pango_x_find_first_subfont (font, &charset, 1, &subfont_id))
+ {
+ g_warning ("cannot find PangoXSubfont");
+ font = NULL;
+ goto FAIL;
+ }
+
+ xlfd = pango_x_font_subfont_xlfd (font, subfont_id);
+ if (xlfd == NULL)
+ {
+ g_warning ("cannot get XLFD");
+ font = NULL;
+ goto FAIL;
+ }
+
+ font_cache = pango_x_font_map_get_font_cache (font_map);
+
+ fs = pango_x_font_cache_load (font_cache, xlfd);
+
+ glXUseXFont (fs->fid, first, count, list_base);
+
+ pango_x_font_cache_unload (font_cache, fs);
+
+ FAIL:
+
+ if (charset != NULL)
+ g_free (charset);
+
+ if (xlfd != NULL)
+ g_free (xlfd);
+
+ return font;
+}
+
+/**
+ * gdk_gl_font_use_pango_font:
+ * @font_desc: a #PangoFontDescription describing the font to use.
+ * @first: the index of the first glyph to be taken.
+ * @count: the number of glyphs to be taken.
+ * @list_base: the index of the first display list to be generated.
+ *
+ * Creates bitmap display lists from a #PangoFont.
+ *
+ * Return value: the #PangoFont used, or NULL if no font matched.
+ **/
+PangoFont *
+gdk_gl_font_use_pango_font (const PangoFontDescription *font_desc,
+ int first,
+ int count,
+ int list_base)
+{
+ PangoFontMap *font_map;
+
+ g_return_val_if_fail (font_desc != NULL, NULL);
+
+ GDK_GL_NOTE_FUNC ();
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ font_map = pango_x_font_map_for_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ font_map = pango_x_font_map_for_display (gdk_x11_get_default_xdisplay ());
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ return gdk_gl_font_use_pango_font_common (font_map, font_desc,
+ first, count, list_base);
+}
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+/**
+ * gdk_gl_font_use_pango_font_for_display:
+ * @display: a #GdkDisplay.
+ * @font_desc: a #PangoFontDescription describing the font to use.
+ * @first: the index of the first glyph to be taken.
+ * @count: the number of glyphs to be taken.
+ * @list_base: the index of the first display list to be generated.
+ *
+ * Creates bitmap display lists from a #PangoFont.
+ *
+ * Return value: the #PangoFont used, or NULL if no font matched.
+ **/
+PangoFont *
+gdk_gl_font_use_pango_font_for_display (GdkDisplay *display,
+ const PangoFontDescription *font_desc,
+ int first,
+ int count,
+ int list_base)
+{
+ PangoFontMap *font_map;
+
+ g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
+ g_return_val_if_fail (font_desc != NULL, NULL);
+
+ GDK_GL_NOTE_FUNC ();
+
+ font_map = pango_x_font_map_for_display (GDK_DISPLAY_XDISPLAY (display));
+
+ return gdk_gl_font_use_pango_font_common (font_map, font_desc,
+ first, count, list_base);
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.c b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.c
new file mode 100644
index 00000000..191a719f
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.c
@@ -0,0 +1,1882 @@
+/* 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-c.pl".
+ */
+
+#include "gdkglx.h"
+#include "gdkglprivate-x11.h"
+#include "gdkglglxext.h"
+
+/*
+ * GLX_VERSION_1_3
+ */
+
+static GdkGL_GLX_VERSION_1_3 _procs_GLX_VERSION_1_3 = {
+ (GdkGLProc_glXGetFBConfigs) -1,
+ (GdkGLProc_glXChooseFBConfig) -1,
+ (GdkGLProc_glXGetFBConfigAttrib) -1,
+ (GdkGLProc_glXGetVisualFromFBConfig) -1,
+ (GdkGLProc_glXCreateWindow) -1,
+ (GdkGLProc_glXDestroyWindow) -1,
+ (GdkGLProc_glXCreatePixmap) -1,
+ (GdkGLProc_glXDestroyPixmap) -1,
+ (GdkGLProc_glXCreatePbuffer) -1,
+ (GdkGLProc_glXDestroyPbuffer) -1,
+ (GdkGLProc_glXQueryDrawable) -1,
+ (GdkGLProc_glXCreateNewContext) -1,
+ (GdkGLProc_glXMakeContextCurrent) -1,
+ (GdkGLProc_glXGetCurrentReadDrawable) -1,
+ (GdkGLProc_glXGetCurrentDisplay) -1,
+ (GdkGLProc_glXQueryContext) -1,
+ (GdkGLProc_glXSelectEvent) -1,
+ (GdkGLProc_glXGetSelectedEvent) -1
+};
+
+/* glXGetFBConfigs */
+GdkGLProc
+gdk_gl_get_glXGetFBConfigs (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXGetFBConfigs == (GdkGLProc_glXGetFBConfigs) -1)
+ _procs_GLX_VERSION_1_3.glXGetFBConfigs =
+ (GdkGLProc_glXGetFBConfigs) gdk_gl_get_proc_address ("glXGetFBConfigs");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetFBConfigs () - %s",
+ (_procs_GLX_VERSION_1_3.glXGetFBConfigs) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXGetFBConfigs);
+}
+
+/* glXChooseFBConfig */
+GdkGLProc
+gdk_gl_get_glXChooseFBConfig (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXChooseFBConfig == (GdkGLProc_glXChooseFBConfig) -1)
+ _procs_GLX_VERSION_1_3.glXChooseFBConfig =
+ (GdkGLProc_glXChooseFBConfig) gdk_gl_get_proc_address ("glXChooseFBConfig");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXChooseFBConfig () - %s",
+ (_procs_GLX_VERSION_1_3.glXChooseFBConfig) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXChooseFBConfig);
+}
+
+/* glXGetFBConfigAttrib */
+GdkGLProc
+gdk_gl_get_glXGetFBConfigAttrib (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXGetFBConfigAttrib == (GdkGLProc_glXGetFBConfigAttrib) -1)
+ _procs_GLX_VERSION_1_3.glXGetFBConfigAttrib =
+ (GdkGLProc_glXGetFBConfigAttrib) gdk_gl_get_proc_address ("glXGetFBConfigAttrib");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetFBConfigAttrib () - %s",
+ (_procs_GLX_VERSION_1_3.glXGetFBConfigAttrib) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXGetFBConfigAttrib);
+}
+
+/* glXGetVisualFromFBConfig */
+GdkGLProc
+gdk_gl_get_glXGetVisualFromFBConfig (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXGetVisualFromFBConfig == (GdkGLProc_glXGetVisualFromFBConfig) -1)
+ _procs_GLX_VERSION_1_3.glXGetVisualFromFBConfig =
+ (GdkGLProc_glXGetVisualFromFBConfig) gdk_gl_get_proc_address ("glXGetVisualFromFBConfig");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetVisualFromFBConfig () - %s",
+ (_procs_GLX_VERSION_1_3.glXGetVisualFromFBConfig) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXGetVisualFromFBConfig);
+}
+
+/* glXCreateWindow */
+GdkGLProc
+gdk_gl_get_glXCreateWindow (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXCreateWindow == (GdkGLProc_glXCreateWindow) -1)
+ _procs_GLX_VERSION_1_3.glXCreateWindow =
+ (GdkGLProc_glXCreateWindow) gdk_gl_get_proc_address ("glXCreateWindow");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCreateWindow () - %s",
+ (_procs_GLX_VERSION_1_3.glXCreateWindow) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXCreateWindow);
+}
+
+/* glXDestroyWindow */
+GdkGLProc
+gdk_gl_get_glXDestroyWindow (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXDestroyWindow == (GdkGLProc_glXDestroyWindow) -1)
+ _procs_GLX_VERSION_1_3.glXDestroyWindow =
+ (GdkGLProc_glXDestroyWindow) gdk_gl_get_proc_address ("glXDestroyWindow");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXDestroyWindow () - %s",
+ (_procs_GLX_VERSION_1_3.glXDestroyWindow) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXDestroyWindow);
+}
+
+/* glXCreatePixmap */
+GdkGLProc
+gdk_gl_get_glXCreatePixmap (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXCreatePixmap == (GdkGLProc_glXCreatePixmap) -1)
+ _procs_GLX_VERSION_1_3.glXCreatePixmap =
+ (GdkGLProc_glXCreatePixmap) gdk_gl_get_proc_address ("glXCreatePixmap");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCreatePixmap () - %s",
+ (_procs_GLX_VERSION_1_3.glXCreatePixmap) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXCreatePixmap);
+}
+
+/* glXDestroyPixmap */
+GdkGLProc
+gdk_gl_get_glXDestroyPixmap (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXDestroyPixmap == (GdkGLProc_glXDestroyPixmap) -1)
+ _procs_GLX_VERSION_1_3.glXDestroyPixmap =
+ (GdkGLProc_glXDestroyPixmap) gdk_gl_get_proc_address ("glXDestroyPixmap");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXDestroyPixmap () - %s",
+ (_procs_GLX_VERSION_1_3.glXDestroyPixmap) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXDestroyPixmap);
+}
+
+/* glXCreatePbuffer */
+GdkGLProc
+gdk_gl_get_glXCreatePbuffer (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXCreatePbuffer == (GdkGLProc_glXCreatePbuffer) -1)
+ _procs_GLX_VERSION_1_3.glXCreatePbuffer =
+ (GdkGLProc_glXCreatePbuffer) gdk_gl_get_proc_address ("glXCreatePbuffer");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCreatePbuffer () - %s",
+ (_procs_GLX_VERSION_1_3.glXCreatePbuffer) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXCreatePbuffer);
+}
+
+/* glXDestroyPbuffer */
+GdkGLProc
+gdk_gl_get_glXDestroyPbuffer (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXDestroyPbuffer == (GdkGLProc_glXDestroyPbuffer) -1)
+ _procs_GLX_VERSION_1_3.glXDestroyPbuffer =
+ (GdkGLProc_glXDestroyPbuffer) gdk_gl_get_proc_address ("glXDestroyPbuffer");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXDestroyPbuffer () - %s",
+ (_procs_GLX_VERSION_1_3.glXDestroyPbuffer) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXDestroyPbuffer);
+}
+
+/* glXQueryDrawable */
+GdkGLProc
+gdk_gl_get_glXQueryDrawable (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXQueryDrawable == (GdkGLProc_glXQueryDrawable) -1)
+ _procs_GLX_VERSION_1_3.glXQueryDrawable =
+ (GdkGLProc_glXQueryDrawable) gdk_gl_get_proc_address ("glXQueryDrawable");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXQueryDrawable () - %s",
+ (_procs_GLX_VERSION_1_3.glXQueryDrawable) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXQueryDrawable);
+}
+
+/* glXCreateNewContext */
+GdkGLProc
+gdk_gl_get_glXCreateNewContext (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXCreateNewContext == (GdkGLProc_glXCreateNewContext) -1)
+ _procs_GLX_VERSION_1_3.glXCreateNewContext =
+ (GdkGLProc_glXCreateNewContext) gdk_gl_get_proc_address ("glXCreateNewContext");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCreateNewContext () - %s",
+ (_procs_GLX_VERSION_1_3.glXCreateNewContext) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXCreateNewContext);
+}
+
+/* glXMakeContextCurrent */
+GdkGLProc
+gdk_gl_get_glXMakeContextCurrent (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXMakeContextCurrent == (GdkGLProc_glXMakeContextCurrent) -1)
+ _procs_GLX_VERSION_1_3.glXMakeContextCurrent =
+ (GdkGLProc_glXMakeContextCurrent) gdk_gl_get_proc_address ("glXMakeContextCurrent");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXMakeContextCurrent () - %s",
+ (_procs_GLX_VERSION_1_3.glXMakeContextCurrent) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXMakeContextCurrent);
+}
+
+/* glXGetCurrentReadDrawable */
+GdkGLProc
+gdk_gl_get_glXGetCurrentReadDrawable (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXGetCurrentReadDrawable == (GdkGLProc_glXGetCurrentReadDrawable) -1)
+ _procs_GLX_VERSION_1_3.glXGetCurrentReadDrawable =
+ (GdkGLProc_glXGetCurrentReadDrawable) gdk_gl_get_proc_address ("glXGetCurrentReadDrawable");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetCurrentReadDrawable () - %s",
+ (_procs_GLX_VERSION_1_3.glXGetCurrentReadDrawable) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXGetCurrentReadDrawable);
+}
+
+/* glXGetCurrentDisplay */
+GdkGLProc
+gdk_gl_get_glXGetCurrentDisplay (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXGetCurrentDisplay == (GdkGLProc_glXGetCurrentDisplay) -1)
+ _procs_GLX_VERSION_1_3.glXGetCurrentDisplay =
+ (GdkGLProc_glXGetCurrentDisplay) gdk_gl_get_proc_address ("glXGetCurrentDisplay");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetCurrentDisplay () - %s",
+ (_procs_GLX_VERSION_1_3.glXGetCurrentDisplay) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXGetCurrentDisplay);
+}
+
+/* glXQueryContext */
+GdkGLProc
+gdk_gl_get_glXQueryContext (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXQueryContext == (GdkGLProc_glXQueryContext) -1)
+ _procs_GLX_VERSION_1_3.glXQueryContext =
+ (GdkGLProc_glXQueryContext) gdk_gl_get_proc_address ("glXQueryContext");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXQueryContext () - %s",
+ (_procs_GLX_VERSION_1_3.glXQueryContext) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXQueryContext);
+}
+
+/* glXSelectEvent */
+GdkGLProc
+gdk_gl_get_glXSelectEvent (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXSelectEvent == (GdkGLProc_glXSelectEvent) -1)
+ _procs_GLX_VERSION_1_3.glXSelectEvent =
+ (GdkGLProc_glXSelectEvent) gdk_gl_get_proc_address ("glXSelectEvent");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXSelectEvent () - %s",
+ (_procs_GLX_VERSION_1_3.glXSelectEvent) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXSelectEvent);
+}
+
+/* glXGetSelectedEvent */
+GdkGLProc
+gdk_gl_get_glXGetSelectedEvent (void)
+{
+ if (_procs_GLX_VERSION_1_3.glXGetSelectedEvent == (GdkGLProc_glXGetSelectedEvent) -1)
+ _procs_GLX_VERSION_1_3.glXGetSelectedEvent =
+ (GdkGLProc_glXGetSelectedEvent) gdk_gl_get_proc_address ("glXGetSelectedEvent");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetSelectedEvent () - %s",
+ (_procs_GLX_VERSION_1_3.glXGetSelectedEvent) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_3.glXGetSelectedEvent);
+}
+
+/* Get GLX_VERSION_1_3 functions */
+GdkGL_GLX_VERSION_1_3 *
+gdk_gl_get_GLX_VERSION_1_3 (void)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = (gdk_gl_get_glXGetFBConfigs () != NULL);
+ supported &= (gdk_gl_get_glXChooseFBConfig () != NULL);
+ supported &= (gdk_gl_get_glXGetFBConfigAttrib () != NULL);
+ supported &= (gdk_gl_get_glXGetVisualFromFBConfig () != NULL);
+ supported &= (gdk_gl_get_glXCreateWindow () != NULL);
+ supported &= (gdk_gl_get_glXDestroyWindow () != NULL);
+ supported &= (gdk_gl_get_glXCreatePixmap () != NULL);
+ supported &= (gdk_gl_get_glXDestroyPixmap () != NULL);
+ supported &= (gdk_gl_get_glXCreatePbuffer () != NULL);
+ supported &= (gdk_gl_get_glXDestroyPbuffer () != NULL);
+ supported &= (gdk_gl_get_glXQueryDrawable () != NULL);
+ supported &= (gdk_gl_get_glXCreateNewContext () != NULL);
+ supported &= (gdk_gl_get_glXMakeContextCurrent () != NULL);
+ supported &= (gdk_gl_get_glXGetCurrentReadDrawable () != NULL);
+ supported &= (gdk_gl_get_glXGetCurrentDisplay () != NULL);
+ supported &= (gdk_gl_get_glXQueryContext () != NULL);
+ supported &= (gdk_gl_get_glXSelectEvent () != NULL);
+ supported &= (gdk_gl_get_glXGetSelectedEvent () != NULL);
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_VERSION_1_3 () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_VERSION_1_3;
+}
+
+/*
+ * GLX_VERSION_1_4
+ */
+
+static GdkGL_GLX_VERSION_1_4 _procs_GLX_VERSION_1_4 = {
+ (GdkGLProc_glXGetProcAddress) -1
+};
+
+/* glXGetProcAddress */
+GdkGLProc
+gdk_gl_get_glXGetProcAddress (void)
+{
+ if (_procs_GLX_VERSION_1_4.glXGetProcAddress == (GdkGLProc_glXGetProcAddress) -1)
+ _procs_GLX_VERSION_1_4.glXGetProcAddress =
+ (GdkGLProc_glXGetProcAddress) gdk_gl_get_proc_address ("glXGetProcAddress");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetProcAddress () - %s",
+ (_procs_GLX_VERSION_1_4.glXGetProcAddress) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_VERSION_1_4.glXGetProcAddress);
+}
+
+/* Get GLX_VERSION_1_4 functions */
+GdkGL_GLX_VERSION_1_4 *
+gdk_gl_get_GLX_VERSION_1_4 (void)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = (gdk_gl_get_glXGetProcAddress () != NULL);
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_VERSION_1_4 () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_VERSION_1_4;
+}
+
+/*
+ * GLX_ARB_get_proc_address
+ */
+
+static GdkGL_GLX_ARB_get_proc_address _procs_GLX_ARB_get_proc_address = {
+ (GdkGLProc_glXGetProcAddressARB) -1
+};
+
+/* glXGetProcAddressARB */
+GdkGLProc
+gdk_gl_get_glXGetProcAddressARB (void)
+{
+ if (_procs_GLX_ARB_get_proc_address.glXGetProcAddressARB == (GdkGLProc_glXGetProcAddressARB) -1)
+ _procs_GLX_ARB_get_proc_address.glXGetProcAddressARB =
+ (GdkGLProc_glXGetProcAddressARB) gdk_gl_get_proc_address ("glXGetProcAddressARB");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetProcAddressARB () - %s",
+ (_procs_GLX_ARB_get_proc_address.glXGetProcAddressARB) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_ARB_get_proc_address.glXGetProcAddressARB);
+}
+
+/* Get GLX_ARB_get_proc_address functions */
+GdkGL_GLX_ARB_get_proc_address *
+gdk_gl_get_GLX_ARB_get_proc_address (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_ARB_get_proc_address");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXGetProcAddressARB () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_ARB_get_proc_address () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_ARB_get_proc_address;
+}
+
+/*
+ * GLX_SGI_swap_control
+ */
+
+static GdkGL_GLX_SGI_swap_control _procs_GLX_SGI_swap_control = {
+ (GdkGLProc_glXSwapIntervalSGI) -1
+};
+
+/* glXSwapIntervalSGI */
+GdkGLProc
+gdk_gl_get_glXSwapIntervalSGI (void)
+{
+ if (_procs_GLX_SGI_swap_control.glXSwapIntervalSGI == (GdkGLProc_glXSwapIntervalSGI) -1)
+ _procs_GLX_SGI_swap_control.glXSwapIntervalSGI =
+ (GdkGLProc_glXSwapIntervalSGI) gdk_gl_get_proc_address ("glXSwapIntervalSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXSwapIntervalSGI () - %s",
+ (_procs_GLX_SGI_swap_control.glXSwapIntervalSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGI_swap_control.glXSwapIntervalSGI);
+}
+
+/* Get GLX_SGI_swap_control functions */
+GdkGL_GLX_SGI_swap_control *
+gdk_gl_get_GLX_SGI_swap_control (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGI_swap_control");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXSwapIntervalSGI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGI_swap_control () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGI_swap_control;
+}
+
+/*
+ * GLX_SGI_video_sync
+ */
+
+static GdkGL_GLX_SGI_video_sync _procs_GLX_SGI_video_sync = {
+ (GdkGLProc_glXGetVideoSyncSGI) -1,
+ (GdkGLProc_glXWaitVideoSyncSGI) -1
+};
+
+/* glXGetVideoSyncSGI */
+GdkGLProc
+gdk_gl_get_glXGetVideoSyncSGI (void)
+{
+ if (_procs_GLX_SGI_video_sync.glXGetVideoSyncSGI == (GdkGLProc_glXGetVideoSyncSGI) -1)
+ _procs_GLX_SGI_video_sync.glXGetVideoSyncSGI =
+ (GdkGLProc_glXGetVideoSyncSGI) gdk_gl_get_proc_address ("glXGetVideoSyncSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetVideoSyncSGI () - %s",
+ (_procs_GLX_SGI_video_sync.glXGetVideoSyncSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGI_video_sync.glXGetVideoSyncSGI);
+}
+
+/* glXWaitVideoSyncSGI */
+GdkGLProc
+gdk_gl_get_glXWaitVideoSyncSGI (void)
+{
+ if (_procs_GLX_SGI_video_sync.glXWaitVideoSyncSGI == (GdkGLProc_glXWaitVideoSyncSGI) -1)
+ _procs_GLX_SGI_video_sync.glXWaitVideoSyncSGI =
+ (GdkGLProc_glXWaitVideoSyncSGI) gdk_gl_get_proc_address ("glXWaitVideoSyncSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXWaitVideoSyncSGI () - %s",
+ (_procs_GLX_SGI_video_sync.glXWaitVideoSyncSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGI_video_sync.glXWaitVideoSyncSGI);
+}
+
+/* Get GLX_SGI_video_sync functions */
+GdkGL_GLX_SGI_video_sync *
+gdk_gl_get_GLX_SGI_video_sync (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGI_video_sync");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXGetVideoSyncSGI () != NULL);
+ supported &= (gdk_gl_get_glXWaitVideoSyncSGI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGI_video_sync () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGI_video_sync;
+}
+
+/*
+ * GLX_SGI_make_current_read
+ */
+
+static GdkGL_GLX_SGI_make_current_read _procs_GLX_SGI_make_current_read = {
+ (GdkGLProc_glXMakeCurrentReadSGI) -1,
+ (GdkGLProc_glXGetCurrentReadDrawableSGI) -1
+};
+
+/* glXMakeCurrentReadSGI */
+GdkGLProc
+gdk_gl_get_glXMakeCurrentReadSGI (void)
+{
+ if (_procs_GLX_SGI_make_current_read.glXMakeCurrentReadSGI == (GdkGLProc_glXMakeCurrentReadSGI) -1)
+ _procs_GLX_SGI_make_current_read.glXMakeCurrentReadSGI =
+ (GdkGLProc_glXMakeCurrentReadSGI) gdk_gl_get_proc_address ("glXMakeCurrentReadSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXMakeCurrentReadSGI () - %s",
+ (_procs_GLX_SGI_make_current_read.glXMakeCurrentReadSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGI_make_current_read.glXMakeCurrentReadSGI);
+}
+
+/* glXGetCurrentReadDrawableSGI */
+GdkGLProc
+gdk_gl_get_glXGetCurrentReadDrawableSGI (void)
+{
+ if (_procs_GLX_SGI_make_current_read.glXGetCurrentReadDrawableSGI == (GdkGLProc_glXGetCurrentReadDrawableSGI) -1)
+ _procs_GLX_SGI_make_current_read.glXGetCurrentReadDrawableSGI =
+ (GdkGLProc_glXGetCurrentReadDrawableSGI) gdk_gl_get_proc_address ("glXGetCurrentReadDrawableSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetCurrentReadDrawableSGI () - %s",
+ (_procs_GLX_SGI_make_current_read.glXGetCurrentReadDrawableSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGI_make_current_read.glXGetCurrentReadDrawableSGI);
+}
+
+/* Get GLX_SGI_make_current_read functions */
+GdkGL_GLX_SGI_make_current_read *
+gdk_gl_get_GLX_SGI_make_current_read (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGI_make_current_read");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXMakeCurrentReadSGI () != NULL);
+ supported &= (gdk_gl_get_glXGetCurrentReadDrawableSGI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGI_make_current_read () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGI_make_current_read;
+}
+
+/*
+ * GLX_SGIX_video_source
+ */
+
+#ifdef _VL_H
+
+static GdkGL_GLX_SGIX_video_source _procs_GLX_SGIX_video_source = {
+ (GdkGLProc_glXCreateGLXVideoSourceSGIX) -1,
+ (GdkGLProc_glXDestroyGLXVideoSourceSGIX) -1
+};
+
+/* glXCreateGLXVideoSourceSGIX */
+GdkGLProc
+gdk_gl_get_glXCreateGLXVideoSourceSGIX (void)
+{
+ if (_procs_GLX_SGIX_video_source.glXCreateGLXVideoSourceSGIX == (GdkGLProc_glXCreateGLXVideoSourceSGIX) -1)
+ _procs_GLX_SGIX_video_source.glXCreateGLXVideoSourceSGIX =
+ (GdkGLProc_glXCreateGLXVideoSourceSGIX) gdk_gl_get_proc_address ("glXCreateGLXVideoSourceSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCreateGLXVideoSourceSGIX () - %s",
+ (_procs_GLX_SGIX_video_source.glXCreateGLXVideoSourceSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_video_source.glXCreateGLXVideoSourceSGIX);
+}
+
+/* glXDestroyGLXVideoSourceSGIX */
+GdkGLProc
+gdk_gl_get_glXDestroyGLXVideoSourceSGIX (void)
+{
+ if (_procs_GLX_SGIX_video_source.glXDestroyGLXVideoSourceSGIX == (GdkGLProc_glXDestroyGLXVideoSourceSGIX) -1)
+ _procs_GLX_SGIX_video_source.glXDestroyGLXVideoSourceSGIX =
+ (GdkGLProc_glXDestroyGLXVideoSourceSGIX) gdk_gl_get_proc_address ("glXDestroyGLXVideoSourceSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXDestroyGLXVideoSourceSGIX () - %s",
+ (_procs_GLX_SGIX_video_source.glXDestroyGLXVideoSourceSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_video_source.glXDestroyGLXVideoSourceSGIX);
+}
+
+/* Get GLX_SGIX_video_source functions */
+GdkGL_GLX_SGIX_video_source *
+gdk_gl_get_GLX_SGIX_video_source (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGIX_video_source");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXCreateGLXVideoSourceSGIX () != NULL);
+ supported &= (gdk_gl_get_glXDestroyGLXVideoSourceSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGIX_video_source () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGIX_video_source;
+}
+
+#endif /* _VL_H */
+
+/*
+ * GLX_EXT_import_context
+ */
+
+static GdkGL_GLX_EXT_import_context _procs_GLX_EXT_import_context = {
+ (GdkGLProc_glXGetCurrentDisplayEXT) -1,
+ (GdkGLProc_glXQueryContextInfoEXT) -1,
+ (GdkGLProc_glXGetContextIDEXT) -1,
+ (GdkGLProc_glXImportContextEXT) -1,
+ (GdkGLProc_glXFreeContextEXT) -1
+};
+
+/* glXGetCurrentDisplayEXT */
+GdkGLProc
+gdk_gl_get_glXGetCurrentDisplayEXT (void)
+{
+ if (_procs_GLX_EXT_import_context.glXGetCurrentDisplayEXT == (GdkGLProc_glXGetCurrentDisplayEXT) -1)
+ _procs_GLX_EXT_import_context.glXGetCurrentDisplayEXT =
+ (GdkGLProc_glXGetCurrentDisplayEXT) gdk_gl_get_proc_address ("glXGetCurrentDisplayEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetCurrentDisplayEXT () - %s",
+ (_procs_GLX_EXT_import_context.glXGetCurrentDisplayEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_EXT_import_context.glXGetCurrentDisplayEXT);
+}
+
+/* glXQueryContextInfoEXT */
+GdkGLProc
+gdk_gl_get_glXQueryContextInfoEXT (void)
+{
+ if (_procs_GLX_EXT_import_context.glXQueryContextInfoEXT == (GdkGLProc_glXQueryContextInfoEXT) -1)
+ _procs_GLX_EXT_import_context.glXQueryContextInfoEXT =
+ (GdkGLProc_glXQueryContextInfoEXT) gdk_gl_get_proc_address ("glXQueryContextInfoEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXQueryContextInfoEXT () - %s",
+ (_procs_GLX_EXT_import_context.glXQueryContextInfoEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_EXT_import_context.glXQueryContextInfoEXT);
+}
+
+/* glXGetContextIDEXT */
+GdkGLProc
+gdk_gl_get_glXGetContextIDEXT (void)
+{
+ if (_procs_GLX_EXT_import_context.glXGetContextIDEXT == (GdkGLProc_glXGetContextIDEXT) -1)
+ _procs_GLX_EXT_import_context.glXGetContextIDEXT =
+ (GdkGLProc_glXGetContextIDEXT) gdk_gl_get_proc_address ("glXGetContextIDEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetContextIDEXT () - %s",
+ (_procs_GLX_EXT_import_context.glXGetContextIDEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_EXT_import_context.glXGetContextIDEXT);
+}
+
+/* glXImportContextEXT */
+GdkGLProc
+gdk_gl_get_glXImportContextEXT (void)
+{
+ if (_procs_GLX_EXT_import_context.glXImportContextEXT == (GdkGLProc_glXImportContextEXT) -1)
+ _procs_GLX_EXT_import_context.glXImportContextEXT =
+ (GdkGLProc_glXImportContextEXT) gdk_gl_get_proc_address ("glXImportContextEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXImportContextEXT () - %s",
+ (_procs_GLX_EXT_import_context.glXImportContextEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_EXT_import_context.glXImportContextEXT);
+}
+
+/* glXFreeContextEXT */
+GdkGLProc
+gdk_gl_get_glXFreeContextEXT (void)
+{
+ if (_procs_GLX_EXT_import_context.glXFreeContextEXT == (GdkGLProc_glXFreeContextEXT) -1)
+ _procs_GLX_EXT_import_context.glXFreeContextEXT =
+ (GdkGLProc_glXFreeContextEXT) gdk_gl_get_proc_address ("glXFreeContextEXT");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXFreeContextEXT () - %s",
+ (_procs_GLX_EXT_import_context.glXFreeContextEXT) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_EXT_import_context.glXFreeContextEXT);
+}
+
+/* Get GLX_EXT_import_context functions */
+GdkGL_GLX_EXT_import_context *
+gdk_gl_get_GLX_EXT_import_context (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_EXT_import_context");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXGetCurrentDisplayEXT () != NULL);
+ supported &= (gdk_gl_get_glXQueryContextInfoEXT () != NULL);
+ supported &= (gdk_gl_get_glXGetContextIDEXT () != NULL);
+ supported &= (gdk_gl_get_glXImportContextEXT () != NULL);
+ supported &= (gdk_gl_get_glXFreeContextEXT () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_EXT_import_context () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_EXT_import_context;
+}
+
+/*
+ * GLX_SGIX_fbconfig
+ */
+
+static GdkGL_GLX_SGIX_fbconfig _procs_GLX_SGIX_fbconfig = {
+ (GdkGLProc_glXGetFBConfigAttribSGIX) -1,
+ (GdkGLProc_glXChooseFBConfigSGIX) -1,
+ (GdkGLProc_glXCreateGLXPixmapWithConfigSGIX) -1,
+ (GdkGLProc_glXCreateContextWithConfigSGIX) -1,
+ (GdkGLProc_glXGetVisualFromFBConfigSGIX) -1,
+ (GdkGLProc_glXGetFBConfigFromVisualSGIX) -1
+};
+
+/* glXGetFBConfigAttribSGIX */
+GdkGLProc
+gdk_gl_get_glXGetFBConfigAttribSGIX (void)
+{
+ if (_procs_GLX_SGIX_fbconfig.glXGetFBConfigAttribSGIX == (GdkGLProc_glXGetFBConfigAttribSGIX) -1)
+ _procs_GLX_SGIX_fbconfig.glXGetFBConfigAttribSGIX =
+ (GdkGLProc_glXGetFBConfigAttribSGIX) gdk_gl_get_proc_address ("glXGetFBConfigAttribSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetFBConfigAttribSGIX () - %s",
+ (_procs_GLX_SGIX_fbconfig.glXGetFBConfigAttribSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_fbconfig.glXGetFBConfigAttribSGIX);
+}
+
+/* glXChooseFBConfigSGIX */
+GdkGLProc
+gdk_gl_get_glXChooseFBConfigSGIX (void)
+{
+ if (_procs_GLX_SGIX_fbconfig.glXChooseFBConfigSGIX == (GdkGLProc_glXChooseFBConfigSGIX) -1)
+ _procs_GLX_SGIX_fbconfig.glXChooseFBConfigSGIX =
+ (GdkGLProc_glXChooseFBConfigSGIX) gdk_gl_get_proc_address ("glXChooseFBConfigSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXChooseFBConfigSGIX () - %s",
+ (_procs_GLX_SGIX_fbconfig.glXChooseFBConfigSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_fbconfig.glXChooseFBConfigSGIX);
+}
+
+/* glXCreateGLXPixmapWithConfigSGIX */
+GdkGLProc
+gdk_gl_get_glXCreateGLXPixmapWithConfigSGIX (void)
+{
+ if (_procs_GLX_SGIX_fbconfig.glXCreateGLXPixmapWithConfigSGIX == (GdkGLProc_glXCreateGLXPixmapWithConfigSGIX) -1)
+ _procs_GLX_SGIX_fbconfig.glXCreateGLXPixmapWithConfigSGIX =
+ (GdkGLProc_glXCreateGLXPixmapWithConfigSGIX) gdk_gl_get_proc_address ("glXCreateGLXPixmapWithConfigSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCreateGLXPixmapWithConfigSGIX () - %s",
+ (_procs_GLX_SGIX_fbconfig.glXCreateGLXPixmapWithConfigSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_fbconfig.glXCreateGLXPixmapWithConfigSGIX);
+}
+
+/* glXCreateContextWithConfigSGIX */
+GdkGLProc
+gdk_gl_get_glXCreateContextWithConfigSGIX (void)
+{
+ if (_procs_GLX_SGIX_fbconfig.glXCreateContextWithConfigSGIX == (GdkGLProc_glXCreateContextWithConfigSGIX) -1)
+ _procs_GLX_SGIX_fbconfig.glXCreateContextWithConfigSGIX =
+ (GdkGLProc_glXCreateContextWithConfigSGIX) gdk_gl_get_proc_address ("glXCreateContextWithConfigSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCreateContextWithConfigSGIX () - %s",
+ (_procs_GLX_SGIX_fbconfig.glXCreateContextWithConfigSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_fbconfig.glXCreateContextWithConfigSGIX);
+}
+
+/* glXGetVisualFromFBConfigSGIX */
+GdkGLProc
+gdk_gl_get_glXGetVisualFromFBConfigSGIX (void)
+{
+ if (_procs_GLX_SGIX_fbconfig.glXGetVisualFromFBConfigSGIX == (GdkGLProc_glXGetVisualFromFBConfigSGIX) -1)
+ _procs_GLX_SGIX_fbconfig.glXGetVisualFromFBConfigSGIX =
+ (GdkGLProc_glXGetVisualFromFBConfigSGIX) gdk_gl_get_proc_address ("glXGetVisualFromFBConfigSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetVisualFromFBConfigSGIX () - %s",
+ (_procs_GLX_SGIX_fbconfig.glXGetVisualFromFBConfigSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_fbconfig.glXGetVisualFromFBConfigSGIX);
+}
+
+/* glXGetFBConfigFromVisualSGIX */
+GdkGLProc
+gdk_gl_get_glXGetFBConfigFromVisualSGIX (void)
+{
+ if (_procs_GLX_SGIX_fbconfig.glXGetFBConfigFromVisualSGIX == (GdkGLProc_glXGetFBConfigFromVisualSGIX) -1)
+ _procs_GLX_SGIX_fbconfig.glXGetFBConfigFromVisualSGIX =
+ (GdkGLProc_glXGetFBConfigFromVisualSGIX) gdk_gl_get_proc_address ("glXGetFBConfigFromVisualSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetFBConfigFromVisualSGIX () - %s",
+ (_procs_GLX_SGIX_fbconfig.glXGetFBConfigFromVisualSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_fbconfig.glXGetFBConfigFromVisualSGIX);
+}
+
+/* Get GLX_SGIX_fbconfig functions */
+GdkGL_GLX_SGIX_fbconfig *
+gdk_gl_get_GLX_SGIX_fbconfig (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGIX_fbconfig");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXGetFBConfigAttribSGIX () != NULL);
+ supported &= (gdk_gl_get_glXChooseFBConfigSGIX () != NULL);
+ supported &= (gdk_gl_get_glXCreateGLXPixmapWithConfigSGIX () != NULL);
+ supported &= (gdk_gl_get_glXCreateContextWithConfigSGIX () != NULL);
+ supported &= (gdk_gl_get_glXGetVisualFromFBConfigSGIX () != NULL);
+ supported &= (gdk_gl_get_glXGetFBConfigFromVisualSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGIX_fbconfig () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGIX_fbconfig;
+}
+
+/*
+ * GLX_SGIX_pbuffer
+ */
+
+static GdkGL_GLX_SGIX_pbuffer _procs_GLX_SGIX_pbuffer = {
+ (GdkGLProc_glXCreateGLXPbufferSGIX) -1,
+ (GdkGLProc_glXDestroyGLXPbufferSGIX) -1,
+ (GdkGLProc_glXQueryGLXPbufferSGIX) -1,
+ (GdkGLProc_glXSelectEventSGIX) -1,
+ (GdkGLProc_glXGetSelectedEventSGIX) -1
+};
+
+/* glXCreateGLXPbufferSGIX */
+GdkGLProc
+gdk_gl_get_glXCreateGLXPbufferSGIX (void)
+{
+ if (_procs_GLX_SGIX_pbuffer.glXCreateGLXPbufferSGIX == (GdkGLProc_glXCreateGLXPbufferSGIX) -1)
+ _procs_GLX_SGIX_pbuffer.glXCreateGLXPbufferSGIX =
+ (GdkGLProc_glXCreateGLXPbufferSGIX) gdk_gl_get_proc_address ("glXCreateGLXPbufferSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCreateGLXPbufferSGIX () - %s",
+ (_procs_GLX_SGIX_pbuffer.glXCreateGLXPbufferSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_pbuffer.glXCreateGLXPbufferSGIX);
+}
+
+/* glXDestroyGLXPbufferSGIX */
+GdkGLProc
+gdk_gl_get_glXDestroyGLXPbufferSGIX (void)
+{
+ if (_procs_GLX_SGIX_pbuffer.glXDestroyGLXPbufferSGIX == (GdkGLProc_glXDestroyGLXPbufferSGIX) -1)
+ _procs_GLX_SGIX_pbuffer.glXDestroyGLXPbufferSGIX =
+ (GdkGLProc_glXDestroyGLXPbufferSGIX) gdk_gl_get_proc_address ("glXDestroyGLXPbufferSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXDestroyGLXPbufferSGIX () - %s",
+ (_procs_GLX_SGIX_pbuffer.glXDestroyGLXPbufferSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_pbuffer.glXDestroyGLXPbufferSGIX);
+}
+
+/* glXQueryGLXPbufferSGIX */
+GdkGLProc
+gdk_gl_get_glXQueryGLXPbufferSGIX (void)
+{
+ if (_procs_GLX_SGIX_pbuffer.glXQueryGLXPbufferSGIX == (GdkGLProc_glXQueryGLXPbufferSGIX) -1)
+ _procs_GLX_SGIX_pbuffer.glXQueryGLXPbufferSGIX =
+ (GdkGLProc_glXQueryGLXPbufferSGIX) gdk_gl_get_proc_address ("glXQueryGLXPbufferSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXQueryGLXPbufferSGIX () - %s",
+ (_procs_GLX_SGIX_pbuffer.glXQueryGLXPbufferSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_pbuffer.glXQueryGLXPbufferSGIX);
+}
+
+/* glXSelectEventSGIX */
+GdkGLProc
+gdk_gl_get_glXSelectEventSGIX (void)
+{
+ if (_procs_GLX_SGIX_pbuffer.glXSelectEventSGIX == (GdkGLProc_glXSelectEventSGIX) -1)
+ _procs_GLX_SGIX_pbuffer.glXSelectEventSGIX =
+ (GdkGLProc_glXSelectEventSGIX) gdk_gl_get_proc_address ("glXSelectEventSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXSelectEventSGIX () - %s",
+ (_procs_GLX_SGIX_pbuffer.glXSelectEventSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_pbuffer.glXSelectEventSGIX);
+}
+
+/* glXGetSelectedEventSGIX */
+GdkGLProc
+gdk_gl_get_glXGetSelectedEventSGIX (void)
+{
+ if (_procs_GLX_SGIX_pbuffer.glXGetSelectedEventSGIX == (GdkGLProc_glXGetSelectedEventSGIX) -1)
+ _procs_GLX_SGIX_pbuffer.glXGetSelectedEventSGIX =
+ (GdkGLProc_glXGetSelectedEventSGIX) gdk_gl_get_proc_address ("glXGetSelectedEventSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetSelectedEventSGIX () - %s",
+ (_procs_GLX_SGIX_pbuffer.glXGetSelectedEventSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_pbuffer.glXGetSelectedEventSGIX);
+}
+
+/* Get GLX_SGIX_pbuffer functions */
+GdkGL_GLX_SGIX_pbuffer *
+gdk_gl_get_GLX_SGIX_pbuffer (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGIX_pbuffer");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXCreateGLXPbufferSGIX () != NULL);
+ supported &= (gdk_gl_get_glXDestroyGLXPbufferSGIX () != NULL);
+ supported &= (gdk_gl_get_glXQueryGLXPbufferSGIX () != NULL);
+ supported &= (gdk_gl_get_glXSelectEventSGIX () != NULL);
+ supported &= (gdk_gl_get_glXGetSelectedEventSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGIX_pbuffer () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGIX_pbuffer;
+}
+
+/*
+ * GLX_SGI_cushion
+ */
+
+static GdkGL_GLX_SGI_cushion _procs_GLX_SGI_cushion = {
+ (GdkGLProc_glXCushionSGI) -1
+};
+
+/* glXCushionSGI */
+GdkGLProc
+gdk_gl_get_glXCushionSGI (void)
+{
+ if (_procs_GLX_SGI_cushion.glXCushionSGI == (GdkGLProc_glXCushionSGI) -1)
+ _procs_GLX_SGI_cushion.glXCushionSGI =
+ (GdkGLProc_glXCushionSGI) gdk_gl_get_proc_address ("glXCushionSGI");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCushionSGI () - %s",
+ (_procs_GLX_SGI_cushion.glXCushionSGI) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGI_cushion.glXCushionSGI);
+}
+
+/* Get GLX_SGI_cushion functions */
+GdkGL_GLX_SGI_cushion *
+gdk_gl_get_GLX_SGI_cushion (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGI_cushion");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXCushionSGI () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGI_cushion () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGI_cushion;
+}
+
+/*
+ * GLX_SGIX_video_resize
+ */
+
+static GdkGL_GLX_SGIX_video_resize _procs_GLX_SGIX_video_resize = {
+ (GdkGLProc_glXBindChannelToWindowSGIX) -1,
+ (GdkGLProc_glXChannelRectSGIX) -1,
+ (GdkGLProc_glXQueryChannelRectSGIX) -1,
+ (GdkGLProc_glXQueryChannelDeltasSGIX) -1,
+ (GdkGLProc_glXChannelRectSyncSGIX) -1
+};
+
+/* glXBindChannelToWindowSGIX */
+GdkGLProc
+gdk_gl_get_glXBindChannelToWindowSGIX (void)
+{
+ if (_procs_GLX_SGIX_video_resize.glXBindChannelToWindowSGIX == (GdkGLProc_glXBindChannelToWindowSGIX) -1)
+ _procs_GLX_SGIX_video_resize.glXBindChannelToWindowSGIX =
+ (GdkGLProc_glXBindChannelToWindowSGIX) gdk_gl_get_proc_address ("glXBindChannelToWindowSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXBindChannelToWindowSGIX () - %s",
+ (_procs_GLX_SGIX_video_resize.glXBindChannelToWindowSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_video_resize.glXBindChannelToWindowSGIX);
+}
+
+/* glXChannelRectSGIX */
+GdkGLProc
+gdk_gl_get_glXChannelRectSGIX (void)
+{
+ if (_procs_GLX_SGIX_video_resize.glXChannelRectSGIX == (GdkGLProc_glXChannelRectSGIX) -1)
+ _procs_GLX_SGIX_video_resize.glXChannelRectSGIX =
+ (GdkGLProc_glXChannelRectSGIX) gdk_gl_get_proc_address ("glXChannelRectSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXChannelRectSGIX () - %s",
+ (_procs_GLX_SGIX_video_resize.glXChannelRectSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_video_resize.glXChannelRectSGIX);
+}
+
+/* glXQueryChannelRectSGIX */
+GdkGLProc
+gdk_gl_get_glXQueryChannelRectSGIX (void)
+{
+ if (_procs_GLX_SGIX_video_resize.glXQueryChannelRectSGIX == (GdkGLProc_glXQueryChannelRectSGIX) -1)
+ _procs_GLX_SGIX_video_resize.glXQueryChannelRectSGIX =
+ (GdkGLProc_glXQueryChannelRectSGIX) gdk_gl_get_proc_address ("glXQueryChannelRectSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXQueryChannelRectSGIX () - %s",
+ (_procs_GLX_SGIX_video_resize.glXQueryChannelRectSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_video_resize.glXQueryChannelRectSGIX);
+}
+
+/* glXQueryChannelDeltasSGIX */
+GdkGLProc
+gdk_gl_get_glXQueryChannelDeltasSGIX (void)
+{
+ if (_procs_GLX_SGIX_video_resize.glXQueryChannelDeltasSGIX == (GdkGLProc_glXQueryChannelDeltasSGIX) -1)
+ _procs_GLX_SGIX_video_resize.glXQueryChannelDeltasSGIX =
+ (GdkGLProc_glXQueryChannelDeltasSGIX) gdk_gl_get_proc_address ("glXQueryChannelDeltasSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXQueryChannelDeltasSGIX () - %s",
+ (_procs_GLX_SGIX_video_resize.glXQueryChannelDeltasSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_video_resize.glXQueryChannelDeltasSGIX);
+}
+
+/* glXChannelRectSyncSGIX */
+GdkGLProc
+gdk_gl_get_glXChannelRectSyncSGIX (void)
+{
+ if (_procs_GLX_SGIX_video_resize.glXChannelRectSyncSGIX == (GdkGLProc_glXChannelRectSyncSGIX) -1)
+ _procs_GLX_SGIX_video_resize.glXChannelRectSyncSGIX =
+ (GdkGLProc_glXChannelRectSyncSGIX) gdk_gl_get_proc_address ("glXChannelRectSyncSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXChannelRectSyncSGIX () - %s",
+ (_procs_GLX_SGIX_video_resize.glXChannelRectSyncSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_video_resize.glXChannelRectSyncSGIX);
+}
+
+/* Get GLX_SGIX_video_resize functions */
+GdkGL_GLX_SGIX_video_resize *
+gdk_gl_get_GLX_SGIX_video_resize (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGIX_video_resize");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXBindChannelToWindowSGIX () != NULL);
+ supported &= (gdk_gl_get_glXChannelRectSGIX () != NULL);
+ supported &= (gdk_gl_get_glXQueryChannelRectSGIX () != NULL);
+ supported &= (gdk_gl_get_glXQueryChannelDeltasSGIX () != NULL);
+ supported &= (gdk_gl_get_glXChannelRectSyncSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGIX_video_resize () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGIX_video_resize;
+}
+
+/*
+ * GLX_SGIX_dmbuffer
+ */
+
+#ifdef _DM_BUFFER_H_
+
+static GdkGL_GLX_SGIX_dmbuffer _procs_GLX_SGIX_dmbuffer = {
+ (GdkGLProc_glXAssociateDMPbufferSGIX) -1
+};
+
+/* glXAssociateDMPbufferSGIX */
+GdkGLProc
+gdk_gl_get_glXAssociateDMPbufferSGIX (void)
+{
+ if (_procs_GLX_SGIX_dmbuffer.glXAssociateDMPbufferSGIX == (GdkGLProc_glXAssociateDMPbufferSGIX) -1)
+ _procs_GLX_SGIX_dmbuffer.glXAssociateDMPbufferSGIX =
+ (GdkGLProc_glXAssociateDMPbufferSGIX) gdk_gl_get_proc_address ("glXAssociateDMPbufferSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXAssociateDMPbufferSGIX () - %s",
+ (_procs_GLX_SGIX_dmbuffer.glXAssociateDMPbufferSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_dmbuffer.glXAssociateDMPbufferSGIX);
+}
+
+/* Get GLX_SGIX_dmbuffer functions */
+GdkGL_GLX_SGIX_dmbuffer *
+gdk_gl_get_GLX_SGIX_dmbuffer (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGIX_dmbuffer");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXAssociateDMPbufferSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGIX_dmbuffer () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGIX_dmbuffer;
+}
+
+#endif /* _DM_BUFFER_H_ */
+
+/*
+ * GLX_SGIX_swap_group
+ */
+
+static GdkGL_GLX_SGIX_swap_group _procs_GLX_SGIX_swap_group = {
+ (GdkGLProc_glXJoinSwapGroupSGIX) -1
+};
+
+/* glXJoinSwapGroupSGIX */
+GdkGLProc
+gdk_gl_get_glXJoinSwapGroupSGIX (void)
+{
+ if (_procs_GLX_SGIX_swap_group.glXJoinSwapGroupSGIX == (GdkGLProc_glXJoinSwapGroupSGIX) -1)
+ _procs_GLX_SGIX_swap_group.glXJoinSwapGroupSGIX =
+ (GdkGLProc_glXJoinSwapGroupSGIX) gdk_gl_get_proc_address ("glXJoinSwapGroupSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXJoinSwapGroupSGIX () - %s",
+ (_procs_GLX_SGIX_swap_group.glXJoinSwapGroupSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_swap_group.glXJoinSwapGroupSGIX);
+}
+
+/* Get GLX_SGIX_swap_group functions */
+GdkGL_GLX_SGIX_swap_group *
+gdk_gl_get_GLX_SGIX_swap_group (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGIX_swap_group");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXJoinSwapGroupSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGIX_swap_group () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGIX_swap_group;
+}
+
+/*
+ * GLX_SGIX_swap_barrier
+ */
+
+static GdkGL_GLX_SGIX_swap_barrier _procs_GLX_SGIX_swap_barrier = {
+ (GdkGLProc_glXBindSwapBarrierSGIX) -1,
+ (GdkGLProc_glXQueryMaxSwapBarriersSGIX) -1
+};
+
+/* glXBindSwapBarrierSGIX */
+GdkGLProc
+gdk_gl_get_glXBindSwapBarrierSGIX (void)
+{
+ if (_procs_GLX_SGIX_swap_barrier.glXBindSwapBarrierSGIX == (GdkGLProc_glXBindSwapBarrierSGIX) -1)
+ _procs_GLX_SGIX_swap_barrier.glXBindSwapBarrierSGIX =
+ (GdkGLProc_glXBindSwapBarrierSGIX) gdk_gl_get_proc_address ("glXBindSwapBarrierSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXBindSwapBarrierSGIX () - %s",
+ (_procs_GLX_SGIX_swap_barrier.glXBindSwapBarrierSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_swap_barrier.glXBindSwapBarrierSGIX);
+}
+
+/* glXQueryMaxSwapBarriersSGIX */
+GdkGLProc
+gdk_gl_get_glXQueryMaxSwapBarriersSGIX (void)
+{
+ if (_procs_GLX_SGIX_swap_barrier.glXQueryMaxSwapBarriersSGIX == (GdkGLProc_glXQueryMaxSwapBarriersSGIX) -1)
+ _procs_GLX_SGIX_swap_barrier.glXQueryMaxSwapBarriersSGIX =
+ (GdkGLProc_glXQueryMaxSwapBarriersSGIX) gdk_gl_get_proc_address ("glXQueryMaxSwapBarriersSGIX");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXQueryMaxSwapBarriersSGIX () - %s",
+ (_procs_GLX_SGIX_swap_barrier.glXQueryMaxSwapBarriersSGIX) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SGIX_swap_barrier.glXQueryMaxSwapBarriersSGIX);
+}
+
+/* Get GLX_SGIX_swap_barrier functions */
+GdkGL_GLX_SGIX_swap_barrier *
+gdk_gl_get_GLX_SGIX_swap_barrier (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SGIX_swap_barrier");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXBindSwapBarrierSGIX () != NULL);
+ supported &= (gdk_gl_get_glXQueryMaxSwapBarriersSGIX () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SGIX_swap_barrier () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SGIX_swap_barrier;
+}
+
+/*
+ * GLX_SUN_get_transparent_index
+ */
+
+static GdkGL_GLX_SUN_get_transparent_index _procs_GLX_SUN_get_transparent_index = {
+ (GdkGLProc_glXGetTransparentIndexSUN) -1
+};
+
+/* glXGetTransparentIndexSUN */
+GdkGLProc
+gdk_gl_get_glXGetTransparentIndexSUN (void)
+{
+ if (_procs_GLX_SUN_get_transparent_index.glXGetTransparentIndexSUN == (GdkGLProc_glXGetTransparentIndexSUN) -1)
+ _procs_GLX_SUN_get_transparent_index.glXGetTransparentIndexSUN =
+ (GdkGLProc_glXGetTransparentIndexSUN) gdk_gl_get_proc_address ("glXGetTransparentIndexSUN");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetTransparentIndexSUN () - %s",
+ (_procs_GLX_SUN_get_transparent_index.glXGetTransparentIndexSUN) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_SUN_get_transparent_index.glXGetTransparentIndexSUN);
+}
+
+/* Get GLX_SUN_get_transparent_index functions */
+GdkGL_GLX_SUN_get_transparent_index *
+gdk_gl_get_GLX_SUN_get_transparent_index (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_SUN_get_transparent_index");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXGetTransparentIndexSUN () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_SUN_get_transparent_index () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_SUN_get_transparent_index;
+}
+
+/*
+ * GLX_MESA_copy_sub_buffer
+ */
+
+static GdkGL_GLX_MESA_copy_sub_buffer _procs_GLX_MESA_copy_sub_buffer = {
+ (GdkGLProc_glXCopySubBufferMESA) -1
+};
+
+/* glXCopySubBufferMESA */
+GdkGLProc
+gdk_gl_get_glXCopySubBufferMESA (void)
+{
+ if (_procs_GLX_MESA_copy_sub_buffer.glXCopySubBufferMESA == (GdkGLProc_glXCopySubBufferMESA) -1)
+ _procs_GLX_MESA_copy_sub_buffer.glXCopySubBufferMESA =
+ (GdkGLProc_glXCopySubBufferMESA) gdk_gl_get_proc_address ("glXCopySubBufferMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCopySubBufferMESA () - %s",
+ (_procs_GLX_MESA_copy_sub_buffer.glXCopySubBufferMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_MESA_copy_sub_buffer.glXCopySubBufferMESA);
+}
+
+/* Get GLX_MESA_copy_sub_buffer functions */
+GdkGL_GLX_MESA_copy_sub_buffer *
+gdk_gl_get_GLX_MESA_copy_sub_buffer (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_MESA_copy_sub_buffer");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXCopySubBufferMESA () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_MESA_copy_sub_buffer () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_MESA_copy_sub_buffer;
+}
+
+/*
+ * GLX_MESA_pixmap_colormap
+ */
+
+static GdkGL_GLX_MESA_pixmap_colormap _procs_GLX_MESA_pixmap_colormap = {
+ (GdkGLProc_glXCreateGLXPixmapMESA) -1
+};
+
+/* glXCreateGLXPixmapMESA */
+GdkGLProc
+gdk_gl_get_glXCreateGLXPixmapMESA (void)
+{
+ if (_procs_GLX_MESA_pixmap_colormap.glXCreateGLXPixmapMESA == (GdkGLProc_glXCreateGLXPixmapMESA) -1)
+ _procs_GLX_MESA_pixmap_colormap.glXCreateGLXPixmapMESA =
+ (GdkGLProc_glXCreateGLXPixmapMESA) gdk_gl_get_proc_address ("glXCreateGLXPixmapMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXCreateGLXPixmapMESA () - %s",
+ (_procs_GLX_MESA_pixmap_colormap.glXCreateGLXPixmapMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_MESA_pixmap_colormap.glXCreateGLXPixmapMESA);
+}
+
+/* Get GLX_MESA_pixmap_colormap functions */
+GdkGL_GLX_MESA_pixmap_colormap *
+gdk_gl_get_GLX_MESA_pixmap_colormap (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_MESA_pixmap_colormap");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXCreateGLXPixmapMESA () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_MESA_pixmap_colormap () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_MESA_pixmap_colormap;
+}
+
+/*
+ * GLX_MESA_release_buffers
+ */
+
+static GdkGL_GLX_MESA_release_buffers _procs_GLX_MESA_release_buffers = {
+ (GdkGLProc_glXReleaseBuffersMESA) -1
+};
+
+/* glXReleaseBuffersMESA */
+GdkGLProc
+gdk_gl_get_glXReleaseBuffersMESA (void)
+{
+ if (_procs_GLX_MESA_release_buffers.glXReleaseBuffersMESA == (GdkGLProc_glXReleaseBuffersMESA) -1)
+ _procs_GLX_MESA_release_buffers.glXReleaseBuffersMESA =
+ (GdkGLProc_glXReleaseBuffersMESA) gdk_gl_get_proc_address ("glXReleaseBuffersMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXReleaseBuffersMESA () - %s",
+ (_procs_GLX_MESA_release_buffers.glXReleaseBuffersMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_MESA_release_buffers.glXReleaseBuffersMESA);
+}
+
+/* Get GLX_MESA_release_buffers functions */
+GdkGL_GLX_MESA_release_buffers *
+gdk_gl_get_GLX_MESA_release_buffers (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_MESA_release_buffers");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXReleaseBuffersMESA () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_MESA_release_buffers () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_MESA_release_buffers;
+}
+
+/*
+ * GLX_MESA_set_3dfx_mode
+ */
+
+static GdkGL_GLX_MESA_set_3dfx_mode _procs_GLX_MESA_set_3dfx_mode = {
+ (GdkGLProc_glXSet3DfxModeMESA) -1
+};
+
+/* glXSet3DfxModeMESA */
+GdkGLProc
+gdk_gl_get_glXSet3DfxModeMESA (void)
+{
+ if (_procs_GLX_MESA_set_3dfx_mode.glXSet3DfxModeMESA == (GdkGLProc_glXSet3DfxModeMESA) -1)
+ _procs_GLX_MESA_set_3dfx_mode.glXSet3DfxModeMESA =
+ (GdkGLProc_glXSet3DfxModeMESA) gdk_gl_get_proc_address ("glXSet3DfxModeMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXSet3DfxModeMESA () - %s",
+ (_procs_GLX_MESA_set_3dfx_mode.glXSet3DfxModeMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_MESA_set_3dfx_mode.glXSet3DfxModeMESA);
+}
+
+/* Get GLX_MESA_set_3dfx_mode functions */
+GdkGL_GLX_MESA_set_3dfx_mode *
+gdk_gl_get_GLX_MESA_set_3dfx_mode (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_MESA_set_3dfx_mode");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXSet3DfxModeMESA () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_MESA_set_3dfx_mode () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_MESA_set_3dfx_mode;
+}
+
+/*
+ * GLX_OML_sync_control
+ */
+
+static GdkGL_GLX_OML_sync_control _procs_GLX_OML_sync_control = {
+ (GdkGLProc_glXGetSyncValuesOML) -1,
+ (GdkGLProc_glXGetMscRateOML) -1,
+ (GdkGLProc_glXSwapBuffersMscOML) -1,
+ (GdkGLProc_glXWaitForMscOML) -1,
+ (GdkGLProc_glXWaitForSbcOML) -1
+};
+
+/* glXGetSyncValuesOML */
+GdkGLProc
+gdk_gl_get_glXGetSyncValuesOML (void)
+{
+ if (_procs_GLX_OML_sync_control.glXGetSyncValuesOML == (GdkGLProc_glXGetSyncValuesOML) -1)
+ _procs_GLX_OML_sync_control.glXGetSyncValuesOML =
+ (GdkGLProc_glXGetSyncValuesOML) gdk_gl_get_proc_address ("glXGetSyncValuesOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetSyncValuesOML () - %s",
+ (_procs_GLX_OML_sync_control.glXGetSyncValuesOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_OML_sync_control.glXGetSyncValuesOML);
+}
+
+/* glXGetMscRateOML */
+GdkGLProc
+gdk_gl_get_glXGetMscRateOML (void)
+{
+ if (_procs_GLX_OML_sync_control.glXGetMscRateOML == (GdkGLProc_glXGetMscRateOML) -1)
+ _procs_GLX_OML_sync_control.glXGetMscRateOML =
+ (GdkGLProc_glXGetMscRateOML) gdk_gl_get_proc_address ("glXGetMscRateOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetMscRateOML () - %s",
+ (_procs_GLX_OML_sync_control.glXGetMscRateOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_OML_sync_control.glXGetMscRateOML);
+}
+
+/* glXSwapBuffersMscOML */
+GdkGLProc
+gdk_gl_get_glXSwapBuffersMscOML (void)
+{
+ if (_procs_GLX_OML_sync_control.glXSwapBuffersMscOML == (GdkGLProc_glXSwapBuffersMscOML) -1)
+ _procs_GLX_OML_sync_control.glXSwapBuffersMscOML =
+ (GdkGLProc_glXSwapBuffersMscOML) gdk_gl_get_proc_address ("glXSwapBuffersMscOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXSwapBuffersMscOML () - %s",
+ (_procs_GLX_OML_sync_control.glXSwapBuffersMscOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_OML_sync_control.glXSwapBuffersMscOML);
+}
+
+/* glXWaitForMscOML */
+GdkGLProc
+gdk_gl_get_glXWaitForMscOML (void)
+{
+ if (_procs_GLX_OML_sync_control.glXWaitForMscOML == (GdkGLProc_glXWaitForMscOML) -1)
+ _procs_GLX_OML_sync_control.glXWaitForMscOML =
+ (GdkGLProc_glXWaitForMscOML) gdk_gl_get_proc_address ("glXWaitForMscOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXWaitForMscOML () - %s",
+ (_procs_GLX_OML_sync_control.glXWaitForMscOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_OML_sync_control.glXWaitForMscOML);
+}
+
+/* glXWaitForSbcOML */
+GdkGLProc
+gdk_gl_get_glXWaitForSbcOML (void)
+{
+ if (_procs_GLX_OML_sync_control.glXWaitForSbcOML == (GdkGLProc_glXWaitForSbcOML) -1)
+ _procs_GLX_OML_sync_control.glXWaitForSbcOML =
+ (GdkGLProc_glXWaitForSbcOML) gdk_gl_get_proc_address ("glXWaitForSbcOML");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXWaitForSbcOML () - %s",
+ (_procs_GLX_OML_sync_control.glXWaitForSbcOML) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_OML_sync_control.glXWaitForSbcOML);
+}
+
+/* Get GLX_OML_sync_control functions */
+GdkGL_GLX_OML_sync_control *
+gdk_gl_get_GLX_OML_sync_control (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_OML_sync_control");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXGetSyncValuesOML () != NULL);
+ supported &= (gdk_gl_get_glXGetMscRateOML () != NULL);
+ supported &= (gdk_gl_get_glXSwapBuffersMscOML () != NULL);
+ supported &= (gdk_gl_get_glXWaitForMscOML () != NULL);
+ supported &= (gdk_gl_get_glXWaitForSbcOML () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_OML_sync_control () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_OML_sync_control;
+}
+
+/*
+ * GLX_MESA_agp_offset
+ */
+
+static GdkGL_GLX_MESA_agp_offset _procs_GLX_MESA_agp_offset = {
+ (GdkGLProc_glXGetAGPOffsetMESA) -1
+};
+
+/* glXGetAGPOffsetMESA */
+GdkGLProc
+gdk_gl_get_glXGetAGPOffsetMESA (void)
+{
+ if (_procs_GLX_MESA_agp_offset.glXGetAGPOffsetMESA == (GdkGLProc_glXGetAGPOffsetMESA) -1)
+ _procs_GLX_MESA_agp_offset.glXGetAGPOffsetMESA =
+ (GdkGLProc_glXGetAGPOffsetMESA) gdk_gl_get_proc_address ("glXGetAGPOffsetMESA");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXGetAGPOffsetMESA () - %s",
+ (_procs_GLX_MESA_agp_offset.glXGetAGPOffsetMESA) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_MESA_agp_offset.glXGetAGPOffsetMESA);
+}
+
+/* Get GLX_MESA_agp_offset functions */
+GdkGL_GLX_MESA_agp_offset *
+gdk_gl_get_GLX_MESA_agp_offset (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_MESA_agp_offset");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXGetAGPOffsetMESA () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_MESA_agp_offset () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_MESA_agp_offset;
+}
+
+/*
+ * GLX_NV_vertex_array_range
+ */
+
+static GdkGL_GLX_NV_vertex_array_range _procs_GLX_NV_vertex_array_range = {
+ (GdkGLProc_glXAllocateMemoryNV) -1,
+ (GdkGLProc_glXFreeMemoryNV) -1
+};
+
+/* glXAllocateMemoryNV */
+GdkGLProc
+gdk_gl_get_glXAllocateMemoryNV (void)
+{
+ if (_procs_GLX_NV_vertex_array_range.glXAllocateMemoryNV == (GdkGLProc_glXAllocateMemoryNV) -1)
+ _procs_GLX_NV_vertex_array_range.glXAllocateMemoryNV =
+ (GdkGLProc_glXAllocateMemoryNV) gdk_gl_get_proc_address ("glXAllocateMemoryNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXAllocateMemoryNV () - %s",
+ (_procs_GLX_NV_vertex_array_range.glXAllocateMemoryNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_NV_vertex_array_range.glXAllocateMemoryNV);
+}
+
+/* glXFreeMemoryNV */
+GdkGLProc
+gdk_gl_get_glXFreeMemoryNV (void)
+{
+ if (_procs_GLX_NV_vertex_array_range.glXFreeMemoryNV == (GdkGLProc_glXFreeMemoryNV) -1)
+ _procs_GLX_NV_vertex_array_range.glXFreeMemoryNV =
+ (GdkGLProc_glXFreeMemoryNV) gdk_gl_get_proc_address ("glXFreeMemoryNV");
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_glXFreeMemoryNV () - %s",
+ (_procs_GLX_NV_vertex_array_range.glXFreeMemoryNV) ? "supported" : "not supported"));
+
+ return (GdkGLProc) (_procs_GLX_NV_vertex_array_range.glXFreeMemoryNV);
+}
+
+/* Get GLX_NV_vertex_array_range functions */
+GdkGL_GLX_NV_vertex_array_range *
+gdk_gl_get_GLX_NV_vertex_array_range (GdkGLConfig *glconfig)
+{
+ static gint supported = -1;
+
+ if (supported == -1)
+ {
+ supported = gdk_x11_gl_query_glx_extension (glconfig, "GLX_NV_vertex_array_range");
+
+ if (supported)
+ {
+ supported &= (gdk_gl_get_glXAllocateMemoryNV () != NULL);
+ supported &= (gdk_gl_get_glXFreeMemoryNV () != NULL);
+ }
+ }
+
+ GDK_GL_NOTE (MISC,
+ g_message (" - gdk_gl_get_GLX_NV_vertex_array_range () - %s",
+ (supported) ? "supported" : "not supported"));
+
+ if (!supported)
+ return NULL;
+
+ return &_procs_GLX_NV_vertex_array_range;
+}
+
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.h b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.h
new file mode 100644
index 00000000..3a52548b
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.h
@@ -0,0 +1,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__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c
new file mode 100644
index 00000000..40356060
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c
@@ -0,0 +1,229 @@
+/* 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.
+ */
+
+#include "gdkglx.h"
+#include "gdkglprivate-x11.h"
+#include "gdkgloverlay-x11.h"
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+#include <gdk/gdkscreen.h>
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+#include <X11/Xmd.h>
+
+/*
+ * SERVER_OVERLAY_VISUALS property entry format
+ *
+ * format: 32
+ *
+ * <Name> <Type> <Description>
+ * overlay_visual VisualID Visual ID of visual.
+ * transparent_type CARD32 None (0).
+ * TransparentPixel (1).
+ * TransparentMask (2).
+ * value CARD32 Pixel value or transparency mask.
+ * layer INT32 The layer the visual resides in.
+ */
+
+/*
+ * SOV property.
+ * (format is 32: the returned data is represented as a long array)
+ */
+
+typedef struct
+{
+ long overlay_visual;
+ long transparent_type;
+ long value;
+ long layer;
+} __SOVProp;
+
+/* SOV properties data. */
+
+typedef struct
+{
+ __SOVProp *prop;
+ unsigned long num;
+} __SOVPropArray;
+
+static const gchar quark_sov_props_string[] = "gdk-gl-overlay-sov-props";
+static GQuark quark_sov_props = 0;
+
+static void
+sov_prop_array_destroy (__SOVPropArray *sov_props)
+{
+ if (sov_props->prop != NULL)
+ XFree (sov_props->prop);
+
+ g_free (sov_props);
+}
+
+static __SOVPropArray *
+gdk_gl_overlay_get_sov_props (GdkScreen *screen)
+{
+ __SOVPropArray *sov_props;
+ GdkWindow *root_window;
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ GdkDisplay *display;
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ Display *xdisplay;
+ Atom xa_sov;
+ Status status;
+ Atom actual_type;
+ int actual_format;
+ unsigned long nitems, bytes_after;
+ unsigned char *prop = NULL;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ root_window = gdk_screen_get_root_window (screen);
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ root_window = gdk_get_default_root_window ();
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ if (quark_sov_props == 0)
+ quark_sov_props = g_quark_from_static_string (quark_sov_props_string);
+
+ sov_props = g_object_get_qdata (G_OBJECT (root_window), quark_sov_props);
+ if (sov_props != NULL)
+ return sov_props;
+
+ sov_props = g_malloc (sizeof (__SOVPropArray));
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ display = gdk_screen_get_display (screen);
+ xdisplay = GDK_DISPLAY_XDISPLAY (display);
+ xa_sov = gdk_x11_get_xatom_by_name_for_display (display, "SERVER_OVERLAY_VISUALS");
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ xdisplay = gdk_x11_get_default_xdisplay ();
+ xa_sov = gdk_x11_get_xatom_by_name ("SERVER_OVERLAY_VISUALS");
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ status = XGetWindowProperty (xdisplay, GDK_WINDOW_XWINDOW (root_window),
+ xa_sov, 0L, 1000000L, False, AnyPropertyType,
+ &actual_type, &actual_format,
+ &nitems, &bytes_after, &prop);
+ if (status != Success ||
+ actual_type == None ||
+ actual_format != 32 ||
+ nitems < 4)
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- SERVER_OVERLAY_VISUALS: not supported"));
+
+ if (prop != NULL)
+ XFree (prop);
+
+ sov_props->prop = NULL;
+ sov_props->num = 0;
+ }
+ else
+ {
+ GDK_GL_NOTE (MISC, g_message (" -- SERVER_OVERLAY_VISUALS: supported"));
+
+ sov_props->prop = (__SOVProp *) prop;
+ sov_props->num = nitems / (sizeof (__SOVProp) / 4);
+ }
+
+ g_object_set_qdata_full (G_OBJECT (root_window), quark_sov_props, sov_props,
+ (GDestroyNotify) sov_prop_array_destroy);
+
+#ifdef G_ENABLE_DEBUG
+ if (gdk_gl_debug_flags & GDK_GL_DEBUG_MISC)
+ {
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ int screen_num = GDK_SCREEN_XNUMBER (screen);
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ int screen_num = gdk_x11_get_default_screen ();
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ int i;
+
+ g_message (" -- SERVER_OVERLAY_VISUALS: properties");
+ g_print ("screen\tvisual\ttype\tvalue\tlayer\n");
+ for (i = 0; i < sov_props->num; i++)
+ {
+ g_print ("%d\t0x%lx\t%lu\t%lu\t%ld\n",
+ screen_num,
+ (VisualID) (sov_props->prop[i].overlay_visual),
+ (CARD32) (sov_props->prop[i].transparent_type),
+ (CARD32) (sov_props->prop[i].value),
+ (INT32) (sov_props->prop[i].layer));
+ }
+ }
+#endif /* G_ENABLE_DEBUG */
+
+ return sov_props;
+}
+
+/* private at present... */
+gboolean
+_gdk_x11_gl_overlay_get_info (GdkVisual *visual,
+ GdkGLOverlayInfo *overlay_info)
+{
+ __SOVPropArray *sov_props;
+ VisualID xvisualid;
+ int i;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ g_return_val_if_fail (GDK_IS_VISUAL (visual), FALSE);
+ g_return_val_if_fail (overlay_info != NULL, FALSE);
+
+ /* Get SOV properties. */
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ sov_props = gdk_gl_overlay_get_sov_props (gdk_visual_get_screen (visual));
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ sov_props = gdk_gl_overlay_get_sov_props (NULL);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+ /* Look up SOV property for the visual. */
+
+ xvisualid = GDK_VISUAL_XVISUAL (visual)->visualid;
+
+ for (i = 0; i < sov_props->num; i++)
+ {
+ if ((VisualID) (sov_props->prop[i].overlay_visual) == xvisualid)
+ {
+ overlay_info->visual = visual;
+ overlay_info->transparent_type = sov_props->prop[i].transparent_type;
+ overlay_info->value = sov_props->prop[i].value;
+ overlay_info->layer = sov_props->prop[i].layer;
+
+ GDK_GL_NOTE (MISC, g_message (" -- overlay visual"));
+ GDK_GL_NOTE (MISC, g_print ("transparent_type = %d\n",
+ overlay_info->transparent_type));
+ GDK_GL_NOTE (MISC, g_print ("value = %u\n",
+ overlay_info->value));
+ GDK_GL_NOTE (MISC, g_print ("layer = %d\n",
+ overlay_info->layer));
+
+ return TRUE;
+ }
+ }
+
+ /* meaningless */
+ overlay_info->visual = visual;
+ overlay_info->transparent_type = GDK_GL_OVERLAY_TRANSPARENT_NONE;
+ overlay_info->value = 0;
+ overlay_info->layer = 0;
+
+ GDK_GL_NOTE (MISC, g_message (" -- not overlay visual"));
+
+ return FALSE;
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.h b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.h
new file mode 100644
index 00000000..ef136e00
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.h
@@ -0,0 +1,49 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_OVERLAY_X11_H__
+#define __GDK_GL_OVERLAY_X11_H__
+
+#include <gdk/x11/gdkglx.h>
+
+G_BEGIN_DECLS
+
+typedef enum
+{
+ GDK_GL_OVERLAY_TRANSPARENT_NONE,
+ GDK_GL_OVERLAY_TRANSPARENT_PIXEL,
+ GDK_GL_OVERLAY_TRANSPARENT_MASK
+} GdkGLOverlayTransparentType;
+
+typedef struct _GdkGLOverlayInfo GdkGLOverlayInfo;
+
+struct _GdkGLOverlayInfo
+{
+ GdkVisual *visual;
+ GdkGLOverlayTransparentType transparent_type;
+ guint32 value;
+ gint32 layer;
+};
+
+/* private at present... */
+gboolean _gdk_x11_gl_overlay_get_info (GdkVisual *visual,
+ GdkGLOverlayInfo *overlay_info);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_OVERLAY_X11_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.c b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.c
new file mode 100644
index 00000000..fcd8fb48
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.c
@@ -0,0 +1,387 @@
+/* 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.
+ */
+
+#include <string.h>
+
+#include "gdkglx.h"
+#include "gdkglprivate-x11.h"
+#include "gdkglconfig-x11.h"
+#include "gdkglcontext-x11.h"
+#include "gdkglpixmap-x11.h"
+
+static gboolean gdk_gl_pixmap_impl_x11_make_context_current (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext);
+static gboolean gdk_gl_pixmap_impl_x11_is_double_buffered (GdkGLDrawable *gldrawable);
+static void gdk_gl_pixmap_impl_x11_swap_buffers (GdkGLDrawable *gldrawable);
+/*
+static gboolean gdk_gl_pixmap_impl_x11_gl_begin (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext);
+*/
+static void gdk_gl_pixmap_impl_x11_gl_end (GdkGLDrawable *gldrawable);
+static GdkGLConfig *gdk_gl_pixmap_impl_x11_get_gl_config (GdkGLDrawable *gldrawable);
+
+static void gdk_gl_pixmap_impl_x11_class_init (GdkGLPixmapImplX11Class *klass);
+static void gdk_gl_pixmap_impl_x11_finalize (GObject *object);
+static void gdk_gl_pixmap_impl_x11_gl_drawable_interface_init (GdkGLDrawableClass *iface);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_pixmap_impl_x11_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLPixmapImplX11Class),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_pixmap_impl_x11_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLPixmapImplX11),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+ static const GInterfaceInfo gl_drawable_interface_info = {
+ (GInterfaceInitFunc) gdk_gl_pixmap_impl_x11_gl_drawable_interface_init,
+ (GInterfaceFinalizeFunc) NULL,
+ NULL /* interface_data */
+ };
+
+ type = g_type_register_static (GDK_TYPE_GL_PIXMAP,
+ "GdkGLPixmapImplX11",
+ &type_info, 0);
+ g_type_add_interface_static (type,
+ GDK_TYPE_GL_DRAWABLE,
+ &gl_drawable_interface_info);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_pixmap_impl_x11_class_init (GdkGLPixmapImplX11Class *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_pixmap_impl_x11_finalize;
+}
+
+void
+_gdk_gl_pixmap_destroy (GdkGLPixmap *glpixmap)
+{
+ GdkGLPixmapImplX11 *impl = GDK_GL_PIXMAP_IMPL_X11 (glpixmap);
+ Display *xdisplay;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (impl->is_destroyed)
+ return;
+
+ xdisplay = GDK_GL_CONFIG_XDISPLAY (impl->glconfig);
+
+ if (impl->glxpixmap == glXGetCurrentDrawable ())
+ {
+ glXWaitGL ();
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXMakeCurrent");
+ glXMakeCurrent (xdisplay, None, NULL);
+ }
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXDestroyGLXPixmap");
+ glXDestroyGLXPixmap (xdisplay, impl->glxpixmap);
+
+ impl->glxpixmap = None;
+
+ impl->is_destroyed = TRUE;
+}
+
+static void
+gdk_gl_pixmap_impl_x11_finalize (GObject *object)
+{
+ GdkGLPixmapImplX11 *impl = GDK_GL_PIXMAP_IMPL_X11 (object);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ _gdk_gl_pixmap_destroy (GDK_GL_PIXMAP (object));
+
+ g_object_unref (G_OBJECT (impl->glconfig));
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gdk_gl_pixmap_impl_x11_gl_drawable_interface_init (GdkGLDrawableClass *iface)
+{
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ iface->create_new_context = _gdk_x11_gl_context_new;
+ iface->make_context_current = gdk_gl_pixmap_impl_x11_make_context_current;
+ iface->is_double_buffered = gdk_gl_pixmap_impl_x11_is_double_buffered;
+ iface->swap_buffers = gdk_gl_pixmap_impl_x11_swap_buffers;
+ iface->wait_gl = _gdk_gl_drawable_impl_x11_wait_gl;
+ iface->wait_gdk = _gdk_gl_drawable_impl_x11_wait_gdk;
+ iface->gl_begin = gdk_gl_pixmap_impl_x11_make_context_current;
+ iface->gl_end = gdk_gl_pixmap_impl_x11_gl_end;
+ iface->get_gl_config = gdk_gl_pixmap_impl_x11_get_gl_config;
+ iface->get_size = _gdk_gl_pixmap_get_size;
+}
+
+/**
+ * gdk_gl_pixmap_new:
+ * @glconfig: a #GdkGLConfig.
+ * @pixmap: the #GdkPixmap to be used as the rendering area.
+ * @attrib_list: this must be set to NULL or empty (first attribute of None).
+ *
+ * Creates an off-screen rendering area.
+ * attrib_list is currently unused. This must be set to NULL or empty
+ * (first attribute of None). See GLX 1.3 spec.
+ *
+ * Return value: the new #GdkGLPixmap.
+ **/
+GdkGLPixmap *
+gdk_gl_pixmap_new (GdkGLConfig *glconfig,
+ GdkPixmap *pixmap,
+ const int *attrib_list)
+{
+ GdkGLPixmap *glpixmap;
+ GdkGLPixmapImplX11 *impl;
+
+ Display *xdisplay;
+ XVisualInfo *xvinfo;
+ Pixmap xpixmap;
+ GLXPixmap glxpixmap;
+
+ Window root_return;
+ int x_return, y_return;
+ unsigned int width_return, height_return;
+ unsigned int border_width_return;
+ unsigned int depth_return;
+
+ GdkGL_GLX_MESA_pixmap_colormap *mesa_ext;
+
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), NULL);
+ g_return_val_if_fail (GDK_IS_PIXMAP (pixmap), NULL);
+
+ xdisplay = GDK_GL_CONFIG_XDISPLAY (glconfig);
+ xvinfo = GDK_GL_CONFIG_XVINFO (glconfig);
+
+ /*
+ * Get X Pixmap.
+ */
+
+ xpixmap = GDK_DRAWABLE_XID (GDK_DRAWABLE (pixmap));
+
+ /*
+ * Check depth of the X pixmap.
+ */
+
+ if (!XGetGeometry (xdisplay, xpixmap,
+ &root_return,
+ &x_return, &y_return,
+ &width_return, &height_return,
+ &border_width_return,
+ &depth_return))
+ return NULL;
+
+ if (depth_return != (unsigned int) xvinfo->depth)
+ return NULL;
+
+ /*
+ * Create GLXPixmap.
+ */
+
+ mesa_ext = gdk_gl_get_GLX_MESA_pixmap_colormap (glconfig);
+ if (mesa_ext)
+ {
+ /* If GLX_MESA_pixmap_colormap is supported. */
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXCreateGLXPixmapMESA");
+
+ glxpixmap = mesa_ext->glXCreateGLXPixmapMESA (xdisplay,
+ xvinfo,
+ xpixmap,
+ GDK_GL_CONFIG_XCOLORMAP (glconfig));
+ }
+ else
+ {
+ GDK_GL_NOTE_FUNC_IMPL ("glXCreateGLXPixmap");
+
+ glxpixmap = glXCreateGLXPixmap (xdisplay,
+ xvinfo,
+ xpixmap);
+ }
+
+ if (glxpixmap == None)
+ return NULL;
+
+ /*
+ * Instantiate the GdkGLPixmapImplX11 object.
+ */
+
+ glpixmap = g_object_new (GDK_TYPE_GL_PIXMAP_IMPL_X11, NULL);
+ impl = GDK_GL_PIXMAP_IMPL_X11 (glpixmap);
+
+ glpixmap->drawable = GDK_DRAWABLE (pixmap);
+ g_object_add_weak_pointer (G_OBJECT (glpixmap->drawable),
+ (gpointer *) &(glpixmap->drawable));
+
+ impl->glxpixmap = glxpixmap;
+
+ impl->glconfig = glconfig;
+ g_object_ref (G_OBJECT (impl->glconfig));
+
+ impl->is_destroyed = FALSE;
+
+ return glpixmap;
+}
+
+static gboolean
+gdk_gl_pixmap_impl_x11_make_context_current (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext)
+{
+ GdkGLConfig *glconfig;
+ GLXPixmap glxpixmap;
+ GLXContext glxcontext;
+
+ g_return_val_if_fail (GDK_IS_GL_PIXMAP_IMPL_X11 (draw), FALSE);
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_X11 (glcontext), FALSE);
+
+ glconfig = GDK_GL_PIXMAP_IMPL_X11 (draw)->glconfig;
+ glxpixmap = GDK_GL_PIXMAP_IMPL_X11 (draw)->glxpixmap;
+ glxcontext = GDK_GL_CONTEXT_GLXCONTEXT (glcontext);
+
+ if (glxpixmap == None || glxcontext == NULL)
+ return FALSE;
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Pixmap: screen number = %d",
+ GDK_SCREEN_XNUMBER (gdk_drawable_get_screen (GDK_DRAWABLE (draw)))));
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Pixmap: visual id = 0x%lx",
+ GDK_VISUAL_XVISUAL (gdk_drawable_get_visual (GDK_DRAWABLE (draw)))->visualid));
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXMakeCurrent");
+
+ if (!glXMakeCurrent (GDK_GL_CONFIG_XDISPLAY (glconfig), glxpixmap, glxcontext))
+ {
+ g_warning ("glXMakeCurrent() failed");
+ _gdk_gl_context_set_gl_drawable (glcontext, NULL);
+ /* currently unused. */
+ /* _gdk_gl_context_set_gl_drawable_read (glcontext, NULL); */
+ return FALSE;
+ }
+
+ _gdk_gl_context_set_gl_drawable (glcontext, draw);
+ /* currently unused. */
+ /* _gdk_gl_context_set_gl_drawable_read (glcontext, read); */
+
+ if (_GDK_GL_CONFIG_AS_SINGLE_MODE (glconfig))
+ {
+ /* We do this because we are treating a double-buffered frame
+ buffer as a single-buffered frame buffer because the system
+ does not appear to export any suitable single-buffered
+ visuals (in which the following are necessary). */
+ glDrawBuffer (GL_FRONT);
+ glReadBuffer (GL_FRONT);
+ }
+
+ GDK_GL_NOTE (MISC, _gdk_gl_print_gl_info ());
+
+ return TRUE;
+}
+
+static gboolean
+gdk_gl_pixmap_impl_x11_is_double_buffered (GdkGLDrawable *gldrawable)
+{
+ g_return_val_if_fail (GDK_IS_GL_PIXMAP_IMPL_X11 (gldrawable), FALSE);
+
+ return gdk_gl_config_is_double_buffered (GDK_GL_PIXMAP_IMPL_X11 (gldrawable)->glconfig);
+}
+
+static void
+gdk_gl_pixmap_impl_x11_swap_buffers (GdkGLDrawable *gldrawable)
+{
+ Display *xdisplay;
+ GLXPixmap glxpixmap;
+
+ g_return_if_fail (GDK_IS_GL_PIXMAP_IMPL_X11 (gldrawable));
+
+ xdisplay = GDK_GL_CONFIG_XDISPLAY (GDK_GL_PIXMAP_IMPL_X11 (gldrawable)->glconfig);
+ glxpixmap = GDK_GL_PIXMAP_IMPL_X11 (gldrawable)->glxpixmap;
+
+ if (glxpixmap == None)
+ return;
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXSwapBuffers");
+
+ glXSwapBuffers (xdisplay, glxpixmap);
+}
+
+/*
+static gboolean
+gdk_gl_pixmap_impl_x11_gl_begin (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext)
+{
+ return gdk_gl_pixmap_impl_x11_make_context_current (draw, read, glcontext);
+}
+*/
+
+static void
+gdk_gl_pixmap_impl_x11_gl_end (GdkGLDrawable *gldrawable)
+{
+ /* do nothing */
+}
+
+static GdkGLConfig *
+gdk_gl_pixmap_impl_x11_get_gl_config (GdkGLDrawable *gldrawable)
+{
+ g_return_val_if_fail (GDK_IS_GL_PIXMAP_IMPL_X11 (gldrawable), NULL);
+
+ return GDK_GL_PIXMAP_IMPL_X11 (gldrawable)->glconfig;
+}
+
+/**
+ * gdk_x11_gl_pixmap_get_glxpixmap:
+ * @glpixmap: a #GdkGLPixmap.
+ *
+ * Gets GLXPixmap.
+ *
+ * Return value: the GLXPixmap.
+ **/
+GLXPixmap
+gdk_x11_gl_pixmap_get_glxpixmap (GdkGLPixmap *glpixmap)
+{
+ g_return_val_if_fail (GDK_IS_GL_PIXMAP_IMPL_X11 (glpixmap), None);
+
+ return GDK_GL_PIXMAP_IMPL_X11 (glpixmap)->glxpixmap;
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.h b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.h
new file mode 100644
index 00000000..4317f718
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.h
@@ -0,0 +1,57 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_PIXMAP_X11_H__
+#define __GDK_GL_PIXMAP_X11_H__
+
+#include <gdk/gdkglpixmap.h>
+#include <gdk/x11/gdkglx.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLPixmapImplX11 GdkGLPixmapImplX11;
+typedef struct _GdkGLPixmapImplX11Class GdkGLPixmapImplX11Class;
+
+#define GDK_TYPE_GL_PIXMAP_IMPL_X11 (gdk_gl_pixmap_impl_x11_get_type ())
+#define GDK_GL_PIXMAP_IMPL_X11(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_PIXMAP_IMPL_X11, GdkGLPixmapImplX11))
+#define GDK_GL_PIXMAP_IMPL_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_PIXMAP_IMPL_X11, GdkGLPixmapImplX11Class))
+#define GDK_IS_GL_PIXMAP_IMPL_X11(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_PIXMAP_IMPL_X11))
+#define GDK_IS_GL_PIXMAP_IMPL_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_PIXMAP_IMPL_X11))
+#define GDK_GL_PIXMAP_IMPL_X11_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_PIXMAP_IMPL_X11, GdkGLPixmapImplX11Class))
+
+struct _GdkGLPixmapImplX11
+{
+ GdkGLPixmap parent_instance;
+
+ GLXPixmap glxpixmap;
+
+ GdkGLConfig *glconfig;
+
+ guint is_destroyed : 1;
+};
+
+struct _GdkGLPixmapImplX11Class
+{
+ GdkGLPixmapClass parent_class;
+};
+
+GType gdk_gl_pixmap_impl_x11_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_PIXMAP_X11_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglprivate-x11.h b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglprivate-x11.h
new file mode 100644
index 00000000..766bd70a
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglprivate-x11.h
@@ -0,0 +1,58 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_PRIVATE_X11_H__
+#define __GDK_GL_PRIVATE_X11_H__
+
+#include <gdk/gdkprivate.h>
+
+#include <gdk/gdkglprivate.h>
+
+G_BEGIN_DECLS
+
+void _gdk_x11_gl_print_glx_info (Display *xdisplay,
+ int screen_num);
+
+GdkGLContext *_gdk_x11_gl_context_new (GdkGLDrawable *gldrawable,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type);
+
+void _gdk_gl_context_set_gl_drawable (GdkGLContext *glcontext,
+ GdkGLDrawable *gldrawable);
+/* currently unused. */
+/*
+void _gdk_gl_context_set_gl_drawable_read (GdkGLContext *glcontext,
+ GdkGLDrawable *gldrawable_read);
+*/
+
+void _gdk_gl_drawable_impl_x11_wait_gl (GdkGLDrawable *gldrawable);
+void _gdk_gl_drawable_impl_x11_wait_gdk (GdkGLDrawable *gldrawable);
+
+#define GDK_GL_CONTEXT_IS_DESTROYED(glcontext) \
+ ( ((GdkGLContextImplX11 *) (glcontext))->is_destroyed )
+
+#define GDK_GL_PIXMAP_IS_DESTROYED(glpixmap) \
+ ( ((GdkGLPixmapImplX11 *) (glpixmap))->is_destroyed )
+
+#define GDK_GL_WINDOW_IS_DESTROYED(glwindow) \
+ ( ((GdkGLWindowImplX11 *) (glwindow))->is_destroyed )
+
+G_END_DECLS
+
+#endif /* __GDK_GL_PRIVATE_X11_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglquery-x11.c b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglquery-x11.c
new file mode 100644
index 00000000..562ddf1f
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglquery-x11.c
@@ -0,0 +1,503 @@
+/* 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.
+ */
+
+#include <string.h>
+
+#ifdef __APPLE__
+#include <mach-o/dyld.h>
+#else /* __APPLE__ */
+#include <gmodule.h>
+#endif /* __APPLE__ */
+
+#include "gdkglx.h"
+#include "gdkglprivate-x11.h"
+#include "gdkglconfig-x11.h"
+#include "gdkglquery.h"
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+#include <gdk/gdkdisplay.h>
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+/**
+ * gdk_gl_query_extension:
+ *
+ * Indicates whether the window system supports the OpenGL extension
+ * (GLX, WGL, etc.).
+ *
+ * Return value: TRUE if OpenGL is supported, FALSE otherwise.
+ **/
+gboolean
+gdk_gl_query_extension (void)
+{
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ return glXQueryExtension (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
+ NULL, NULL);
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ return glXQueryExtension (gdk_x11_get_default_xdisplay (),
+ NULL, NULL);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+}
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+/**
+ * gdk_gl_query_extension_for_display:
+ * @display: the #GdkDisplay where the query is sent to.
+ *
+ * Indicates whether the window system supports the OpenGL extension
+ * (GLX, WGL, etc.).
+ *
+ * Return value: TRUE if OpenGL is supported, FALSE otherwise.
+ **/
+gboolean
+gdk_gl_query_extension_for_display (GdkDisplay *display)
+{
+ g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
+
+ return glXQueryExtension (GDK_DISPLAY_XDISPLAY (display),
+ NULL, NULL);
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+/**
+ * gdk_gl_query_version:
+ * @major: returns the major version number of the OpenGL extension.
+ * @minor: returns the minor version number of the OpenGL extension.
+ *
+ * Returns the version numbers of the OpenGL extension to the window system.
+ *
+ * In the X Window System, it returns the GLX version.
+ *
+ * In the Microsoft Windows, it returns the Windows version.
+ *
+ * Return value: FALSE if it fails, TRUE otherwise.
+ **/
+gboolean
+gdk_gl_query_version (int *major,
+ int *minor)
+{
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ return glXQueryVersion (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
+ major, minor);
+#else /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ return glXQueryVersion (gdk_x11_get_default_xdisplay (),
+ major, minor);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+}
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+
+/**
+ * gdk_gl_query_version_for_display:
+ * @display: the #GdkDisplay where the query is sent to.
+ * @major: returns the major version number of the OpenGL extension.
+ * @minor: returns the minor version number of the OpenGL extension.
+ *
+ * Returns the version numbers of the OpenGL extension to the window system.
+ *
+ * In the X Window System, it returns the GLX version.
+ *
+ * In the Microsoft Windows, it returns the Windows version.
+ *
+ * Return value: FALSE if it fails, TRUE otherwise.
+ **/
+gboolean
+gdk_gl_query_version_for_display (GdkDisplay *display,
+ int *major,
+ int *minor)
+{
+ g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
+
+ return glXQueryVersion (GDK_DISPLAY_XDISPLAY (display),
+ major, minor);
+}
+
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+/*
+ * This code is based on __glutIsSupportedByGLX().
+ */
+
+/**
+ * gdk_x11_gl_query_glx_extension:
+ * @glconfig: a #GdkGLConfig.
+ * @extension: name of GLX extension.
+ *
+ * Determines whether a given GLX extension is supported.
+ *
+ * Return value: TRUE if the GLX extension is supported, FALSE if not
+ * supported.
+ **/
+gboolean
+gdk_x11_gl_query_glx_extension (GdkGLConfig *glconfig,
+ const char *extension)
+{
+ static const char *extensions = NULL;
+ const char *start;
+ char *where, *terminator;
+ int major, minor;
+
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), FALSE);
+
+ /* Extension names should not have spaces. */
+ where = strchr (extension, ' ');
+ if (where || *extension == '\0')
+ return FALSE;
+
+ if (extensions == NULL)
+ {
+ /* Be careful not to call glXQueryExtensionsString if it
+ looks like the server doesn't support GLX 1.1.
+ Unfortunately, the original GLX 1.0 didn't have the notion
+ of GLX extensions. */
+
+ glXQueryVersion (GDK_GL_CONFIG_XDISPLAY (glconfig),
+ &major, &minor);
+
+ if ((major == 1 && minor < 1) || (major < 1))
+ return FALSE;
+
+ extensions = glXQueryExtensionsString (GDK_GL_CONFIG_XDISPLAY (glconfig),
+ GDK_GL_CONFIG_SCREEN_XNUMBER (glconfig));
+ }
+
+ /* It takes a bit of care to be fool-proof about parsing
+ the GLX extensions string. Don't be fooled by
+ sub-strings, etc. */
+ start = extensions;
+ for (;;)
+ {
+ where = strstr (start, extension);
+ if (where == NULL)
+ break;
+
+ terminator = where + strlen (extension);
+
+ if (where == start || *(where - 1) == ' ')
+ if (*terminator == ' ' || *terminator == '\0')
+ {
+ GDK_GL_NOTE (MISC, g_message (" - %s - supported", extension));
+ return TRUE;
+ }
+
+ start = terminator;
+ }
+
+ GDK_GL_NOTE (MISC, g_message (" - %s - not supported", extension));
+
+ return FALSE;
+}
+
+/**
+ * gdk_gl_get_proc_address:
+ * @proc_name: function name.
+ *
+ * Returns the address of the OpenGL, GLU, or GLX function.
+ *
+ * Return value: the address of the function named by @proc_name.
+ **/
+
+#ifdef __APPLE__
+
+#define _GDK_GL_LIBGL_PATH "/usr/X11R6/lib/libGL.1.dylib"
+#define _GDK_GL_LIBGLU_PATH "/usr/X11R6/lib/libGLU.1.dylib"
+
+GdkGLProc
+gdk_gl_get_proc_address (const char *proc_name)
+{
+ typedef GdkGLProc (*__glXGetProcAddressProc) (const GLubyte *);
+ static __glXGetProcAddressProc glx_get_proc_address = (__glXGetProcAddressProc) -1;
+ const char *image_name;
+ static const struct mach_header *libgl_image = NULL;
+ static const struct mach_header *libglu_image = NULL;
+ NSSymbol symbol;
+ char *symbol_name;
+ GdkGLProc proc_address;
+
+ GDK_GL_NOTE_FUNC ();
+
+ if (strncmp ("glu", proc_name, 3) != 0)
+ {
+ /* libGL */
+
+ if (libgl_image == NULL)
+ {
+ image_name = g_getenv ("GDK_GL_LIBGL_PATH");
+ if (image_name == NULL)
+ image_name = _GDK_GL_LIBGL_PATH;
+
+ GDK_GL_NOTE (MISC, g_message (" - Add Mach-O image %s", image_name));
+
+ libgl_image = NSAddImage (image_name, NSADDIMAGE_OPTION_RETURN_ON_ERROR);
+ if (libgl_image == NULL)
+ {
+ g_warning ("Cannot add Mach-O image %s", image_name);
+ return NULL;
+ }
+ }
+
+ if (glx_get_proc_address == (__glXGetProcAddressProc) -1)
+ {
+ /*
+ * Look up glXGetProcAddress () function.
+ */
+
+ symbol = NSLookupSymbolInImage (libgl_image,
+ "_glXGetProcAddress",
+ NSLOOKUPSYMBOLINIMAGE_OPTION_BIND |
+ NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR);
+ if (symbol == NULL)
+ {
+ symbol = NSLookupSymbolInImage (libgl_image,
+ "_glXGetProcAddressARB",
+ NSLOOKUPSYMBOLINIMAGE_OPTION_BIND |
+ NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR);
+ if (symbol == NULL)
+ {
+ symbol = NSLookupSymbolInImage (libgl_image,
+ "_glXGetProcAddressEXT",
+ NSLOOKUPSYMBOLINIMAGE_OPTION_BIND |
+ NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR);
+ }
+ }
+ GDK_GL_NOTE (MISC, g_message (" - glXGetProcAddress () - %s",
+ symbol ? "supported" : "not supported"));
+ if (symbol != NULL)
+ glx_get_proc_address = NSAddressOfSymbol (symbol);
+ else
+ glx_get_proc_address = NULL;
+ }
+
+ /* Try glXGetProcAddress () */
+
+ if (glx_get_proc_address != NULL)
+ {
+ proc_address = glx_get_proc_address (proc_name);
+ GDK_GL_NOTE (IMPL, g_message (" ** glXGetProcAddress () - %s",
+ proc_address ? "succeeded" : "failed"));
+ if (proc_address != NULL)
+ return proc_address;
+ }
+
+ /* Try Mach-O dyld */
+
+ symbol_name = g_strconcat ("_", proc_name, NULL);
+
+ symbol = NSLookupSymbolInImage (libgl_image,
+ symbol_name,
+ NSLOOKUPSYMBOLINIMAGE_OPTION_BIND |
+ NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR);
+ GDK_GL_NOTE (MISC, g_message (" - NSLookupSymbolInImage () - %s",
+ symbol ? "succeeded" : "failed"));
+
+ g_free (symbol_name);
+
+ if (symbol != NULL)
+ return NSAddressOfSymbol (symbol);
+ }
+ else
+ {
+ /* libGLU */
+
+ if (libglu_image == NULL)
+ {
+ image_name = g_getenv ("GDK_GL_LIBGLU_PATH");
+ if (image_name == NULL)
+ image_name = _GDK_GL_LIBGLU_PATH;
+
+ GDK_GL_NOTE (MISC, g_message (" - Add Mach-O image %s", image_name));
+
+ libglu_image = NSAddImage (image_name, NSADDIMAGE_OPTION_RETURN_ON_ERROR);
+ if (libglu_image == NULL)
+ {
+ g_warning ("Cannot add Mach-O image %s", image_name);
+ return NULL;
+ }
+ }
+
+ symbol_name = g_strconcat ("_", proc_name, NULL);
+
+ symbol = NSLookupSymbolInImage (libglu_image,
+ symbol_name,
+ NSLOOKUPSYMBOLINIMAGE_OPTION_BIND |
+ NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR);
+ GDK_GL_NOTE (MISC, g_message (" - NSLookupSymbolInImage () - %s",
+ symbol ? "succeeded" : "failed"));
+
+ g_free (symbol_name);
+
+ if (symbol != NULL)
+ return NSAddressOfSymbol (symbol);
+ }
+
+ return NULL;
+}
+
+#else /* __APPLE__ */
+
+GdkGLProc
+gdk_gl_get_proc_address (const char *proc_name)
+{
+ typedef GdkGLProc (*__glXGetProcAddressProc) (const GLubyte *);
+ static __glXGetProcAddressProc glx_get_proc_address = (__glXGetProcAddressProc) -1;
+ gchar *file_name;
+ GModule *module;
+ GdkGLProc proc_address = NULL;
+
+ GDK_GL_NOTE_FUNC ();
+
+ if (strncmp ("glu", proc_name, 3) != 0)
+ {
+ if (glx_get_proc_address == (__glXGetProcAddressProc) -1)
+ {
+ /*
+ * Look up glXGetProcAddress () function.
+ */
+
+ file_name = g_module_build_path (NULL, "GL");
+ GDK_GL_NOTE (MISC, g_message (" - Open %s", file_name));
+ module = g_module_open (file_name, G_MODULE_BIND_LAZY);
+ g_free (file_name);
+
+ if (module != NULL)
+ {
+ g_module_symbol (module, "glXGetProcAddress",
+ (gpointer) &glx_get_proc_address);
+ if (glx_get_proc_address == NULL)
+ {
+ g_module_symbol (module, "glXGetProcAddressARB",
+ (gpointer) &glx_get_proc_address);
+ if (glx_get_proc_address == NULL)
+ {
+ g_module_symbol (module, "glXGetProcAddressEXT",
+ (gpointer) &glx_get_proc_address);
+ }
+ }
+ GDK_GL_NOTE (MISC, g_message (" - glXGetProcAddress () - %s",
+ glx_get_proc_address ? "supported" : "not supported"));
+ g_module_close (module);
+ }
+ else
+ {
+ g_warning ("Cannot open %s", file_name);
+ glx_get_proc_address = NULL;
+ return NULL;
+ }
+ }
+
+ /* Try glXGetProcAddress () */
+
+ if (glx_get_proc_address != NULL)
+ {
+ proc_address = glx_get_proc_address (proc_name);
+ GDK_GL_NOTE (IMPL, g_message (" ** glXGetProcAddress () - %s",
+ proc_address ? "succeeded" : "failed"));
+ if (proc_address != NULL)
+ return proc_address;
+ }
+
+ /* Try g_module_symbol () */
+
+ /* libGL */
+ file_name = g_module_build_path (NULL, "GL");
+ GDK_GL_NOTE (MISC, g_message (" - Open %s", file_name));
+ module = g_module_open (file_name, G_MODULE_BIND_LAZY);
+ g_free (file_name);
+
+ if (module != NULL)
+ {
+ g_module_symbol (module, proc_name, (gpointer) &proc_address);
+ GDK_GL_NOTE (MISC, g_message (" - g_module_symbol () - %s",
+ proc_address ? "succeeded" : "failed"));
+ g_module_close (module);
+ }
+ else
+ {
+ g_warning ("Cannot open %s", file_name);
+ }
+
+ if (proc_address == NULL)
+ {
+ /* libGLcore */
+ file_name = g_module_build_path (NULL, "GLcore");
+ GDK_GL_NOTE (MISC, g_message (" - Open %s", file_name));
+ module = g_module_open (file_name, G_MODULE_BIND_LAZY);
+ g_free (file_name);
+
+ if (module != NULL)
+ {
+ g_module_symbol (module, proc_name, (gpointer) &proc_address);
+ GDK_GL_NOTE (MISC, g_message (" - g_module_symbol () - %s",
+ proc_address ? "succeeded" : "failed"));
+ g_module_close (module);
+ }
+ }
+ }
+ else
+ {
+ /* libGLU */
+ file_name = g_module_build_path (NULL, "GLU");
+ GDK_GL_NOTE (MISC, g_message (" - Open %s", file_name));
+ module = g_module_open (file_name, G_MODULE_BIND_LAZY);
+ g_free (file_name);
+
+ if (module != NULL)
+ {
+ g_module_symbol (module, proc_name, (gpointer) &proc_address);
+ GDK_GL_NOTE (MISC, g_message (" - g_module_symbol () - %s",
+ proc_address ? "succeeded" : "failed"));
+ g_module_close (module);
+ }
+ else
+ {
+ g_warning ("Cannot open %s", file_name);
+ }
+ }
+
+ return proc_address;
+}
+
+#endif /* __APPLE__ */
+
+/*< private >*/
+void
+_gdk_x11_gl_print_glx_info (Display *xdisplay,
+ int screen_num)
+{
+ static gboolean done = FALSE;
+
+ if (!done)
+ {
+ g_message (" -- Server GLX_VENDOR : %s",
+ glXQueryServerString (xdisplay, screen_num, GLX_VENDOR));
+ g_message (" -- Server GLX_VERSION : %s",
+ glXQueryServerString (xdisplay, screen_num, GLX_VERSION));
+ g_message (" -- Server GLX_EXTENSIONS : %s",
+ glXQueryServerString (xdisplay, screen_num, GLX_EXTENSIONS));
+
+ g_message (" -- Client GLX_VENDOR : %s",
+ glXGetClientString (xdisplay, GLX_VENDOR));
+ g_message (" -- Client GLX_VERSION : %s",
+ glXGetClientString (xdisplay, GLX_VERSION));
+ g_message (" -- Client GLX_EXTENSIONS : %s",
+ glXGetClientString (xdisplay, GLX_EXTENSIONS));
+
+ done = TRUE;
+ }
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.c b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.c
new file mode 100644
index 00000000..eb2701a7
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.c
@@ -0,0 +1,343 @@
+/* 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.
+ */
+
+#include <string.h>
+
+#include "gdkglx.h"
+#include "gdkglprivate-x11.h"
+#include "gdkglconfig-x11.h"
+#include "gdkglcontext-x11.h"
+#include "gdkglwindow-x11.h"
+
+#include <gdk/gdkglquery.h>
+
+static gboolean gdk_gl_window_impl_x11_make_context_current (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext);
+static gboolean gdk_gl_window_impl_x11_is_double_buffered (GdkGLDrawable *gldrawable);
+static void gdk_gl_window_impl_x11_swap_buffers (GdkGLDrawable *gldrawable);
+/*
+static gboolean gdk_gl_window_impl_x11_gl_begin (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext);
+*/
+static void gdk_gl_window_impl_x11_gl_end (GdkGLDrawable *gldrawable);
+static GdkGLConfig *gdk_gl_window_impl_x11_get_gl_config (GdkGLDrawable *gldrawable);
+
+static void gdk_gl_window_impl_x11_class_init (GdkGLWindowImplX11Class *klass);
+static void gdk_gl_window_impl_x11_finalize (GObject *object);
+static void gdk_gl_window_impl_x11_gl_drawable_interface_init (GdkGLDrawableClass *iface);
+
+static gpointer parent_class = NULL;
+
+GType
+gdk_gl_window_impl_x11_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type)
+ {
+ static const GTypeInfo type_info = {
+ sizeof (GdkGLWindowImplX11Class),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gdk_gl_window_impl_x11_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GdkGLWindowImplX11),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) NULL
+ };
+ static const GInterfaceInfo gl_drawable_interface_info = {
+ (GInterfaceInitFunc) gdk_gl_window_impl_x11_gl_drawable_interface_init,
+ (GInterfaceFinalizeFunc) NULL,
+ NULL /* interface_data */
+ };
+
+ type = g_type_register_static (GDK_TYPE_GL_WINDOW,
+ "GdkGLWindowImplX11",
+ &type_info, 0);
+ g_type_add_interface_static (type,
+ GDK_TYPE_GL_DRAWABLE,
+ &gl_drawable_interface_info);
+ }
+
+ return type;
+}
+
+static void
+gdk_gl_window_impl_x11_class_init (GdkGLWindowImplX11Class *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = gdk_gl_window_impl_x11_finalize;
+}
+
+void
+_gdk_gl_window_destroy (GdkGLWindow *glwindow)
+{
+ GdkGLWindowImplX11 *impl = GDK_GL_WINDOW_IMPL_X11 (glwindow);
+ Display *xdisplay;
+ GdkGL_GLX_MESA_release_buffers *mesa_ext;
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (impl->is_destroyed)
+ return;
+
+ xdisplay = GDK_GL_CONFIG_XDISPLAY (impl->glconfig);
+
+ if (impl->glxwindow == glXGetCurrentDrawable ())
+ {
+ glXWaitGL ();
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXMakeCurrent");
+ glXMakeCurrent (xdisplay, None, NULL);
+ }
+
+ /* If GLX_MESA_release_buffers is supported. */
+ mesa_ext = gdk_gl_get_GLX_MESA_release_buffers (impl->glconfig);
+ if (mesa_ext)
+ {
+ GDK_GL_NOTE_FUNC_IMPL ("glXReleaseBuffersMESA");
+ mesa_ext->glXReleaseBuffersMESA (xdisplay, impl->glxwindow);
+ }
+
+ impl->glxwindow = None;
+
+ impl->is_destroyed = TRUE;
+}
+
+static void
+gdk_gl_window_impl_x11_finalize (GObject *object)
+{
+ GdkGLWindowImplX11 *impl = GDK_GL_WINDOW_IMPL_X11 (object);
+
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ _gdk_gl_window_destroy (GDK_GL_WINDOW (object));
+
+ g_object_unref (G_OBJECT (impl->glconfig));
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gdk_gl_window_impl_x11_gl_drawable_interface_init (GdkGLDrawableClass *iface)
+{
+ GDK_GL_NOTE_FUNC_PRIVATE ();
+
+ iface->create_new_context = _gdk_x11_gl_context_new;
+ iface->make_context_current = gdk_gl_window_impl_x11_make_context_current;
+ iface->is_double_buffered = gdk_gl_window_impl_x11_is_double_buffered;
+ iface->swap_buffers = gdk_gl_window_impl_x11_swap_buffers;
+ iface->wait_gl = _gdk_gl_drawable_impl_x11_wait_gl;
+ iface->wait_gdk = _gdk_gl_drawable_impl_x11_wait_gdk;
+ iface->gl_begin = gdk_gl_window_impl_x11_make_context_current;
+ iface->gl_end = gdk_gl_window_impl_x11_gl_end;
+ iface->get_gl_config = gdk_gl_window_impl_x11_get_gl_config;
+ iface->get_size = _gdk_gl_window_get_size;
+}
+
+/*
+ * attrib_list is currently unused. This must be set to NULL or empty
+ * (first attribute of None). See GLX 1.3 spec.
+ */
+/**
+ * gdk_gl_window_new:
+ * @glconfig: a #GdkGLConfig.
+ * @window: the #GdkWindow to be used as the rendering area.
+ * @attrib_list: this must be set to NULL or empty (first attribute of None).
+ *
+ * Creates an on-screen rendering area.
+ * attrib_list is currently unused. This must be set to NULL or empty
+ * (first attribute of None). See GLX 1.3 spec.
+ *
+ * Return value: the new #GdkGLWindow.
+ **/
+GdkGLWindow *
+gdk_gl_window_new (GdkGLConfig *glconfig,
+ GdkWindow *window,
+ const int *attrib_list)
+{
+ GdkGLWindow *glwindow;
+ GdkGLWindowImplX11 *impl;
+
+ /* GLXWindow glxwindow; */
+ Window glxwindow;
+
+ GDK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GDK_IS_GL_CONFIG_IMPL_X11 (glconfig), NULL);
+ g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
+
+ /*
+ * Get X Window.
+ */
+
+ glxwindow = GDK_DRAWABLE_XID (GDK_DRAWABLE (window));
+
+ /*
+ * Instantiate the GdkGLWindowImplX11 object.
+ */
+
+ glwindow = g_object_new (GDK_TYPE_GL_WINDOW_IMPL_X11, NULL);
+ impl = GDK_GL_WINDOW_IMPL_X11 (glwindow);
+
+ glwindow->drawable = GDK_DRAWABLE (window);
+ g_object_add_weak_pointer (G_OBJECT (glwindow->drawable),
+ (gpointer *) &(glwindow->drawable));
+
+ impl->glxwindow = glxwindow;
+
+ impl->glconfig = glconfig;
+ g_object_ref (G_OBJECT (impl->glconfig));
+
+ impl->is_destroyed = FALSE;
+
+ return glwindow;
+}
+
+static gboolean
+gdk_gl_window_impl_x11_make_context_current (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext)
+{
+ GdkGLConfig *glconfig;
+ Window glxwindow;
+ GLXContext glxcontext;
+
+ g_return_val_if_fail (GDK_IS_GL_WINDOW_IMPL_X11 (draw), FALSE);
+ g_return_val_if_fail (GDK_IS_GL_CONTEXT_IMPL_X11 (glcontext), FALSE);
+
+ glconfig = GDK_GL_WINDOW_IMPL_X11 (draw)->glconfig;
+ glxwindow = GDK_GL_WINDOW_IMPL_X11 (draw)->glxwindow;
+ glxcontext = GDK_GL_CONTEXT_GLXCONTEXT (glcontext);
+
+ if (glxwindow == None || glxcontext == NULL)
+ return FALSE;
+
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Window: screen number = %d",
+ GDK_SCREEN_XNUMBER (gdk_drawable_get_screen (GDK_DRAWABLE (draw)))));
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+ GDK_GL_NOTE (MISC,
+ g_message (" -- Window: visual id = 0x%lx",
+ GDK_VISUAL_XVISUAL (gdk_drawable_get_visual (GDK_DRAWABLE (draw)))->visualid));
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXMakeCurrent");
+
+ if (!glXMakeCurrent (GDK_GL_CONFIG_XDISPLAY (glconfig), glxwindow, glxcontext))
+ {
+ g_warning ("glXMakeCurrent() failed");
+ _gdk_gl_context_set_gl_drawable (glcontext, NULL);
+ /* currently unused. */
+ /* _gdk_gl_context_set_gl_drawable_read (glcontext, NULL); */
+ return FALSE;
+ }
+
+ _gdk_gl_context_set_gl_drawable (glcontext, draw);
+ /* currently unused. */
+ /* _gdk_gl_context_set_gl_drawable_read (glcontext, read); */
+
+ if (_GDK_GL_CONFIG_AS_SINGLE_MODE (glconfig))
+ {
+ /* We do this because we are treating a double-buffered frame
+ buffer as a single-buffered frame buffer because the system
+ does not appear to export any suitable single-buffered
+ visuals (in which the following are necessary). */
+ glDrawBuffer (GL_FRONT);
+ glReadBuffer (GL_FRONT);
+ }
+
+ GDK_GL_NOTE (MISC, _gdk_gl_print_gl_info ());
+
+ return TRUE;
+}
+
+static gboolean
+gdk_gl_window_impl_x11_is_double_buffered (GdkGLDrawable *gldrawable)
+{
+ g_return_val_if_fail (GDK_IS_GL_WINDOW_IMPL_X11 (gldrawable), FALSE);
+
+ return gdk_gl_config_is_double_buffered (GDK_GL_WINDOW_IMPL_X11 (gldrawable)->glconfig);
+}
+
+static void
+gdk_gl_window_impl_x11_swap_buffers (GdkGLDrawable *gldrawable)
+{
+ Display *xdisplay;
+ Window glxwindow;
+
+ g_return_if_fail (GDK_IS_GL_WINDOW_IMPL_X11 (gldrawable));
+
+ xdisplay = GDK_GL_CONFIG_XDISPLAY (GDK_GL_WINDOW_IMPL_X11 (gldrawable)->glconfig);
+ glxwindow = GDK_GL_WINDOW_IMPL_X11 (gldrawable)->glxwindow;
+
+ if (glxwindow == None)
+ return;
+
+ GDK_GL_NOTE_FUNC_IMPL ("glXSwapBuffers");
+
+ glXSwapBuffers (xdisplay, glxwindow);
+}
+
+/*
+static gboolean
+gdk_gl_window_impl_x11_gl_begin (GdkGLDrawable *draw,
+ GdkGLDrawable *read,
+ GdkGLContext *glcontext)
+{
+ return gdk_gl_window_impl_x11_make_context_current (draw, read, glcontext);
+}
+*/
+
+static void
+gdk_gl_window_impl_x11_gl_end (GdkGLDrawable *gldrawable)
+{
+ /* do nothing */
+}
+
+static GdkGLConfig *
+gdk_gl_window_impl_x11_get_gl_config (GdkGLDrawable *gldrawable)
+{
+ g_return_val_if_fail (GDK_IS_GL_WINDOW_IMPL_X11 (gldrawable), NULL);
+
+ return GDK_GL_WINDOW_IMPL_X11 (gldrawable)->glconfig;
+}
+
+/**
+ * gdk_x11_gl_window_get_glxwindow:
+ * @glwindow: a #GdkGLWindow.
+ *
+ * Gets X Window.
+ *
+ * Return value: the Window.
+ **/
+Window
+gdk_x11_gl_window_get_glxwindow (GdkGLWindow *glwindow)
+{
+ g_return_val_if_fail (GDK_IS_GL_WINDOW_IMPL_X11 (glwindow), None);
+
+ return GDK_GL_WINDOW_IMPL_X11 (glwindow)->glxwindow;
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.h b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.h
new file mode 100644
index 00000000..f125e9db
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.h
@@ -0,0 +1,58 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_WINDOW_X11_H__
+#define __GDK_GL_WINDOW_X11_H__
+
+#include <gdk/gdkglwindow.h>
+#include <gdk/x11/gdkglx.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GdkGLWindowImplX11 GdkGLWindowImplX11;
+typedef struct _GdkGLWindowImplX11Class GdkGLWindowImplX11Class;
+
+#define GDK_TYPE_GL_WINDOW_IMPL_X11 (gdk_gl_window_impl_x11_get_type ())
+#define GDK_GL_WINDOW_IMPL_X11(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GL_WINDOW_IMPL_X11, GdkGLWindowImplX11))
+#define GDK_GL_WINDOW_IMPL_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GL_WINDOW_IMPL_X11, GdkGLWindowImplX11Class))
+#define GDK_IS_GL_WINDOW_IMPL_X11(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GL_WINDOW_IMPL_X11))
+#define GDK_IS_GL_WINDOW_IMPL_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GL_WINDOW_IMPL_X11))
+#define GDK_GL_WINDOW_IMPL_X11_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GL_WINDOW_IMPL_X11, GdkGLWindowImplX11Class))
+
+struct _GdkGLWindowImplX11
+{
+ GdkGLWindow parent_instance;
+
+ /* GLXWindow glxwindow; */
+ Window glxwindow;
+
+ GdkGLConfig *glconfig;
+
+ guint is_destroyed : 1;
+};
+
+struct _GdkGLWindowImplX11Class
+{
+ GdkGLWindowClass parent_class;
+};
+
+GType gdk_gl_window_impl_x11_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GDK_GL_WINDOW_X11_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglx.h b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglx.h
new file mode 100644
index 00000000..ebd2539a
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglx.h
@@ -0,0 +1,84 @@
+/* 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.
+ */
+
+#ifndef __GDK_GL_X_H__
+#define __GDK_GL_X_H__
+
+#include <gdk/gdkx.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+#include <GL/gl.h>
+#include <GL/glx.h>
+
+#include <gdk/x11/gdkglglxext.h>
+
+G_BEGIN_DECLS
+
+gboolean gdk_x11_gl_query_glx_extension (GdkGLConfig *glconfig,
+ const char *extension);
+
+#ifndef GDK_MULTIHEAD_SAFE
+GdkGLConfig *gdk_x11_gl_config_new_from_visualid (VisualID xvisualid);
+#endif /* GDK_MULTIHEAD_SAFE */
+#ifdef GDKGLEXT_MULTIHEAD_SUPPORT
+GdkGLConfig *gdk_x11_gl_config_new_from_visualid_for_screen (GdkScreen *screen,
+ VisualID xvisualid);
+#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */
+
+Display *gdk_x11_gl_config_get_xdisplay (GdkGLConfig *glconfig);
+int gdk_x11_gl_config_get_screen_number (GdkGLConfig *glconfig);
+XVisualInfo *gdk_x11_gl_config_get_xvinfo (GdkGLConfig *glconfig);
+gboolean gdk_x11_gl_config_is_mesa_glx (GdkGLConfig *glconfig);
+
+GdkGLContext *gdk_x11_gl_context_foreign_new (GdkGLConfig *glconfig,
+ GdkGLContext *share_list,
+ GLXContext glxcontext);
+
+GLXContext gdk_x11_gl_context_get_glxcontext (GdkGLContext *glcontext);
+
+GLXPixmap gdk_x11_gl_pixmap_get_glxpixmap (GdkGLPixmap *glpixmap);
+
+Window gdk_x11_gl_window_get_glxwindow (GdkGLWindow *glwindow);
+
+#ifdef INSIDE_GDK_GL_X11
+
+#define GDK_GL_CONFIG_XDISPLAY(glconfig) (GDK_GL_CONFIG_IMPL_X11 (glconfig)->xdisplay)
+#define GDK_GL_CONFIG_SCREEN_XNUMBER(glconfig) (GDK_GL_CONFIG_IMPL_X11 (glconfig)->screen_num)
+#define GDK_GL_CONFIG_XVINFO(glconfig) (GDK_GL_CONFIG_IMPL_X11 (glconfig)->xvinfo)
+#define GDK_GL_CONFIG_XCOLORMAP(glconfig) (GDK_COLORMAP_XCOLORMAP (GDK_GL_CONFIG_IMPL_X11 (glconfig)->colormap))
+#define GDK_GL_CONTEXT_GLXCONTEXT(glcontext) (GDK_GL_CONTEXT_IMPL_X11 (glcontext)->glxcontext)
+#define GDK_GL_PIXMAP_GLXPIXMAP(glpixmap) (GDK_GL_PIXMAP_IMPL_X11 (glpixmap)->glxpixmap)
+#define GDK_GL_WINDOW_GLXWINDOW(glwindow) (GDK_GL_WINDOW_IMPL_X11 (glwindow)->glxwindow)
+
+#else
+
+#define GDK_GL_CONFIG_XDISPLAY(glconfig) (gdk_x11_gl_config_get_xdisplay (glconfig))
+#define GDK_GL_CONFIG_SCREEN_XNUMBER(glconfig) (gdk_x11_gl_config_get_screen_number (glconfig))
+#define GDK_GL_CONFIG_XVINFO(glconfig) (gdk_x11_gl_config_get_xvinfo (glconfig))
+#define GDK_GL_CONFIG_XCOLORMAP(glconfig) (GDK_COLORMAP_XCOLORMAP (gdk_gl_config_get_colormap (glconfig)))
+#define GDK_GL_CONTEXT_GLXCONTEXT(glcontext) (gdk_x11_gl_context_get_glxcontext (glcontext))
+#define GDK_GL_PIXMAP_GLXPIXMAP(glpixmap) (gdk_x11_gl_pixmap_get_glxpixmap (glpixmap))
+#define GDK_GL_WINDOW_GLXWINDOW(glwindow) (gdk_x11_gl_window_get_glxwindow (glwindow))
+
+#endif
+
+G_END_DECLS
+
+#endif /* __GDK_GL_X_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gtk/gtkgl.h b/plugins/gtkui/gtkglext-gtk2/gtk/gtkgl.h
new file mode 100644
index 00000000..f30f3405
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gtk/gtkgl.h
@@ -0,0 +1,29 @@
+/* GtkGLExt - OpenGL Extension to GTK+
+ * 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.
+ */
+
+#ifndef __GTK_GL_H__
+#define __GTK_GL_H__
+
+#include <gdk/gdkgl.h>
+
+#include <gtk/gtkgldefs.h>
+#include <gtk/gtkglversion.h>
+#include <gtk/gtkglinit.h>
+#include <gtk/gtkglwidget.h>
+
+#endif /* __GTK_GL_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gtk/gtkgldebug.h b/plugins/gtkui/gtkglext-gtk2/gtk/gtkgldebug.h
new file mode 100644
index 00000000..9d23f72b
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gtk/gtkgldebug.h
@@ -0,0 +1,67 @@
+/* GtkGLExt - OpenGL Extension to GTK+
+ * 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.
+ */
+
+#ifndef __GTK_GL_DEBUG_H__
+#define __GTK_GL_DEBUG_H__
+
+#include <glib.h>
+
+#include <gtk/gtkgldefs.h>
+
+G_BEGIN_DECLS
+
+typedef enum {
+ GTK_GL_DEBUG_MISC = 1 << 0,
+ GTK_GL_DEBUG_FUNC = 1 << 1
+} GtkGLDebugFlag;
+
+#ifdef G_ENABLE_DEBUG
+
+#define GTK_GL_NOTE(type, action) G_STMT_START { \
+ if (gtk_gl_debug_flags & GTK_GL_DEBUG_##type) \
+ { action; }; } G_STMT_END
+
+#if __STDC_VERSION__ < 199901L
+# if __GNUC__ >= 2
+# define __func__ __FUNCTION__
+# else
+# define __func__ "<unknown>"
+# endif
+#endif
+
+#define GTK_GL_NOTE_FUNC() G_STMT_START { \
+ if (gtk_gl_debug_flags & GTK_GL_DEBUG_FUNC) \
+ g_message (" - %s ()", __func__); } G_STMT_END
+
+#define GTK_GL_NOTE_FUNC_PRIVATE() G_STMT_START { \
+ if (gtk_gl_debug_flags & GTK_GL_DEBUG_FUNC) \
+ g_message (" -- %s ()", __func__); } G_STMT_END
+
+#else /* !G_ENABLE_DEBUG */
+
+#define GTK_GL_NOTE(type, action)
+#define GTK_GL_NOTE_FUNC()
+#define GTK_GL_NOTE_FUNC_PRIVATE()
+
+#endif /* G_ENABLE_DEBUG */
+
+GTK_GL_VAR guint gtk_gl_debug_flags;
+
+G_END_DECLS
+
+#endif /* __GTK_GL_DEBUG_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gtk/gtkgldefs.h b/plugins/gtkui/gtkglext-gtk2/gtk/gtkgldefs.h
new file mode 100644
index 00000000..c917007c
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gtk/gtkgldefs.h
@@ -0,0 +1,38 @@
+/* GtkGLExt - OpenGL Extension to GTK+
+ * 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.
+ */
+
+#ifndef __GTK_GL_DEFS_H__
+#define __GTK_GL_DEFS_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+#ifdef G_OS_WIN32
+# ifdef GTK_GL_COMPILATION
+# define GTK_GL_VAR __declspec(dllexport)
+# else
+# define GTK_GL_VAR extern __declspec(dllimport)
+# endif
+#else
+# define GTK_GL_VAR extern
+#endif
+
+G_END_DECLS
+
+#endif /* __GTK_GL_DEFS_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.c b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.c
new file mode 100644
index 00000000..05117ee1
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.c
@@ -0,0 +1,234 @@
+/* GtkGLExt - OpenGL Extension to GTK+
+ * 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.
+ */
+
+#include <string.h>
+#include <stdlib.h>
+
+#include "gtkglprivate.h"
+#include "gtkglinit.h"
+
+static gboolean gtk_gl_initialized = FALSE;
+
+guint gtk_gl_debug_flags = 0; /* Global GtkGLExt debug flag */
+
+#ifdef G_ENABLE_DEBUG
+
+static const GDebugKey gtk_gl_debug_keys[] = {
+ {"misc", GTK_GL_DEBUG_MISC},
+ {"func", GTK_GL_DEBUG_FUNC}
+};
+
+static const guint gtk_gl_ndebug_keys = G_N_ELEMENTS (gtk_gl_debug_keys);
+
+#endif /* G_ENABLE_DEBUG */
+
+/**
+ * gtk_gl_parse_args:
+ * @argc: the number of command line arguments.
+ * @argv: the array of command line arguments.
+ *
+ * Parses command line arguments, and initializes global
+ * attributes of GtkGLExt.
+ *
+ * Any arguments used by GtkGLExt are removed from the array and
+ * @argc and @argv are updated accordingly.
+ *
+ * You shouldn't call this function explicitely if you are using
+ * gtk_gl_init(), or gtk_gl_init_check().
+ *
+ * Return value: %TRUE if initialization succeeded, otherwise %FALSE.
+ **/
+gboolean
+gtk_gl_parse_args (int *argc,
+ char ***argv)
+{
+ const gchar *env_string;
+
+ if (gtk_gl_initialized)
+ return TRUE;
+
+ /*
+ * If window manager doesn't watch the WM_COLORMAP_WINDOWS property on
+ * the top-level window, we have to set OpenGL window's colormap to the
+ * top-level window, especially in color index mode (color index mode
+ * uses own private colormap).
+ */
+ env_string = g_getenv ("GTK_GL_INSTALL_COLORMAP");
+ if (env_string != NULL)
+ {
+ _gtk_gl_widget_install_toplevel_cmap = (atoi (env_string) != 0);
+ env_string = NULL;
+ }
+
+#ifdef G_ENABLE_DEBUG
+ env_string = g_getenv ("GTK_GL_DEBUG");
+ if (env_string != NULL)
+ {
+ gtk_gl_debug_flags = g_parse_debug_string (env_string,
+ gtk_gl_debug_keys,
+ gtk_gl_ndebug_keys);
+ env_string = NULL;
+ }
+#endif /* G_ENABLE_DEBUG */
+
+ if (argc && argv)
+ {
+ gint i, j, k;
+
+ for (i = 1; i < *argc;)
+ {
+ if (strcmp ("--gtk-gl-install-colormap", (*argv)[i]) == 0)
+ {
+ _gtk_gl_widget_install_toplevel_cmap = TRUE;
+ (*argv)[i] = NULL;
+ }
+#ifdef G_ENABLE_DEBUG
+ else if ((strcmp ("--gtk-gl-debug", (*argv)[i]) == 0) ||
+ (strncmp ("--gtk-gl-debug=", (*argv)[i], 15) == 0))
+ {
+ gchar *equal_pos = strchr ((*argv)[i], '=');
+
+ if (equal_pos != NULL)
+ {
+ gtk_gl_debug_flags |= g_parse_debug_string (equal_pos+1,
+ gtk_gl_debug_keys,
+ gtk_gl_ndebug_keys);
+ }
+ else if ((i + 1) < *argc && (*argv)[i + 1])
+ {
+ gtk_gl_debug_flags |= g_parse_debug_string ((*argv)[i+1],
+ gtk_gl_debug_keys,
+ gtk_gl_ndebug_keys);
+ (*argv)[i] = NULL;
+ i += 1;
+ }
+ (*argv)[i] = NULL;
+ }
+ else if ((strcmp ("--gtk-gl-no-debug", (*argv)[i]) == 0) ||
+ (strncmp ("--gtk-gl-no-debug=", (*argv)[i], 18) == 0))
+ {
+ gchar *equal_pos = strchr ((*argv)[i], '=');
+
+ if (equal_pos != NULL)
+ {
+ gtk_gl_debug_flags &= ~g_parse_debug_string (equal_pos+1,
+ gtk_gl_debug_keys,
+ gtk_gl_ndebug_keys);
+ }
+ else if ((i + 1) < *argc && (*argv)[i + 1])
+ {
+ gtk_gl_debug_flags &= ~g_parse_debug_string ((*argv)[i+1],
+ gtk_gl_debug_keys,
+ gtk_gl_ndebug_keys);
+ (*argv)[i] = NULL;
+ i += 1;
+ }
+ (*argv)[i] = NULL;
+ }
+#endif /* G_ENABLE_DEBUG */
+ i += 1;
+ }
+
+ for (i = 1; i < *argc; i++)
+ {
+ for (k = i; k < *argc; k++)
+ if ((*argv)[k] != NULL)
+ break;
+
+ if (k > i)
+ {
+ k -= i;
+ for (j = i + k; j < *argc; j++)
+ (*argv)[j-k] = (*argv)[j];
+ *argc -= k;
+ }
+ }
+
+ }
+
+ /* Set the 'initialized' flag. */
+ gtk_gl_initialized = TRUE;
+
+ return TRUE;
+}
+
+/**
+ * gtk_gl_init_check:
+ * @argc: Address of the <parameter>argc</parameter> parameter of your
+ * <function>main()</function> function. Changed if any arguments
+ * were handled.
+ * @argv: Address of the <parameter>argv</parameter> parameter of
+ * <function>main()</function>. Any parameters understood by
+ * gtk_gl_init() are stripped before return.
+ *
+ * This function does the same work as gtk_gl_init() with only
+ * a single change: It does not terminate the program if the library can't be
+ * initialized. Instead it returns %FALSE on failure.
+ *
+ * This way the application can fall back to some other means of communication
+ * with the user - for example a curses or command line interface.
+ *
+ * Return value: %TRUE if the GUI has been successfully initialized,
+ * %FALSE otherwise.
+ **/
+gboolean
+gtk_gl_init_check (int *argc,
+ char ***argv)
+{
+ /* Init GdkGLExt library. */
+ if (!gdk_gl_init_check (argc, argv))
+ return FALSE;
+
+ /* Parse args and init GtkGLExt library. */
+ if (!gtk_gl_parse_args (argc, argv))
+ {
+ g_warning ("GtkGLExt library initialization fails.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * gtk_gl_init:
+ * @argc: Address of the <parameter>argc</parameter> parameter of your
+ * <function>main()</function> function. Changed if any arguments
+ * were handled.
+ * @argv: Address of the <parameter>argv</parameter> parameter of
+ * <function>main()</function>. Any parameters understood by
+ * gtk_gl_init() are stripped before return.
+ *
+ * Call this function before using any other GtkGLExt functions in your
+ * applications. It will initialize everything needed to operate the library
+ * and parses some standard command line options. @argc and
+ * @argv are adjusted accordingly so your own code will
+ * never see those standard arguments.
+ *
+ * <note><para>
+ * This function will terminate your program if it was unable to initialize
+ * the library for some reason. If you want your program to fall back to a
+ * textual interface you want to call gtk_gl_init_check() instead.
+ * </para></note>
+ **/
+void
+gtk_gl_init (int *argc,
+ char ***argv)
+{
+ if (!gtk_gl_init_check (argc, argv))
+ exit (1);
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.h b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.h
new file mode 100644
index 00000000..c34cbc94
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.h
@@ -0,0 +1,43 @@
+/* GtkGLExt - OpenGL Extension to GTK+
+ * 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.
+ */
+
+#ifndef __GTK_GL_INIT_H__
+#define __GTK_GL_INIT_H__
+
+#include <gdk/gdk.h>
+
+#include <gdk/gdkgl.h>
+
+G_BEGIN_DECLS
+
+/*
+ * Initialization routines.
+ */
+
+gboolean gtk_gl_parse_args (int *argc,
+ char ***argv);
+
+gboolean gtk_gl_init_check (int *argc,
+ char ***argv);
+
+void gtk_gl_init (int *argc,
+ char ***argv);
+
+G_END_DECLS
+
+#endif /* __GTK_GL_INIT_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gtk/gtkglprivate.h b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglprivate.h
new file mode 100644
index 00000000..9c23b970
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglprivate.h
@@ -0,0 +1,32 @@
+/* GtkGLExt - OpenGL Extension to GTK+
+ * 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.
+ */
+
+#ifndef __GTK_GL_PRIVATE_H__
+#define __GTK_GL_PRIVATE_H__
+
+#include <gtk/gtkgldefs.h>
+#include <gtk/gtkgldebug.h>
+
+G_BEGIN_DECLS
+
+/* Install colormap to top-level window. */
+extern gboolean _gtk_gl_widget_install_toplevel_cmap;
+
+G_END_DECLS
+
+#endif /* __GTK_GL_PRIVATE_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.c b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.c
new file mode 100644
index 00000000..8fa23c1a
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.c
@@ -0,0 +1,25 @@
+/* GtkGLExt - OpenGL Extension to GTK+
+ * 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.
+ */
+
+#include "gtkglversion.h"
+
+const guint gtkglext_major_version = GTKGLEXT_MAJOR_VERSION;
+const guint gtkglext_minor_version = GTKGLEXT_MINOR_VERSION;
+const guint gtkglext_micro_version = GTKGLEXT_MICRO_VERSION;
+const guint gtkglext_interface_age = GTKGLEXT_INTERFACE_AGE;
+const guint gtkglext_binary_age = GTKGLEXT_BINARY_AGE;
diff --git a/plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.h b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.h
new file mode 100644
index 00000000..fce10a0a
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.h
@@ -0,0 +1,58 @@
+/* GtkGLExt - OpenGL Extension to GTK+
+ * 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.
+ */
+
+#ifndef __GTK_GL_VERSION_H__
+#define __GTK_GL_VERSION_H__
+
+#include <glib.h>
+
+#include <gtk/gtkgldefs.h>
+
+G_BEGIN_DECLS
+
+/*
+ * Compile time version.
+ */
+#define GTKGLEXT_MAJOR_VERSION (1)
+#define GTKGLEXT_MINOR_VERSION (2)
+#define GTKGLEXT_MICRO_VERSION (0)
+#define GTKGLEXT_INTERFACE_AGE (0)
+#define GTKGLEXT_BINARY_AGE (0)
+
+/*
+ * Check whether a GtkGLExt version equal to or greater than
+ * major.minor.micro is present.
+ */
+#define GTKGLEXT_CHECK_VERSION(major, minor, micro) \
+ (GTKGLEXT_MAJOR_VERSION > (major) || \
+ (GTKGLEXT_MAJOR_VERSION == (major) && GTKGLEXT_MINOR_VERSION > (minor)) || \
+ (GTKGLEXT_MAJOR_VERSION == (major) && GTKGLEXT_MINOR_VERSION == (minor) && \
+ GTKGLEXT_MICRO_VERSION >= (micro)))
+
+/*
+ * Library version.
+ */
+GTK_GL_VAR const guint gtkglext_major_version;
+GTK_GL_VAR const guint gtkglext_minor_version;
+GTK_GL_VAR const guint gtkglext_micro_version;
+GTK_GL_VAR const guint gtkglext_interface_age;
+GTK_GL_VAR const guint gtkglext_binary_age;
+
+G_END_DECLS
+
+#endif /* __GTK_GL_VERSION_H__ */
diff --git a/plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.c b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.c
new file mode 100644
index 00000000..ecb41ef7
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.c
@@ -0,0 +1,507 @@
+/* GtkGLExt - OpenGL Extension to GTK+
+ * 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.
+ */
+
+#include <gtk/gtkmain.h>
+
+#include "gtkglprivate.h"
+#include "gtkglwidget.h"
+
+typedef struct
+{
+ GdkGLConfig *glconfig;
+ GdkGLContext *share_list;
+ gboolean direct;
+ int render_type;
+
+ GdkGLContext *glcontext;
+
+ gulong unrealize_handler;
+
+ guint is_realized : 1;
+
+} GLWidgetPrivate;
+
+static const gchar quark_gl_private_string[] = "gtk-gl-widget-private";
+static GQuark quark_gl_private = 0;
+
+gboolean _gtk_gl_widget_install_toplevel_cmap = FALSE;
+
+static void gtk_gl_widget_realize (GtkWidget *widget,
+ GLWidgetPrivate *private);
+static gboolean gtk_gl_widget_configure_event (GtkWidget *widget,
+ GdkEventConfigure *event,
+ GLWidgetPrivate *private);
+static void gtk_gl_widget_size_allocate (GtkWidget *widget,
+ GtkAllocation *allocation,
+ GLWidgetPrivate *private);
+static void gtk_gl_widget_unrealize (GtkWidget *widget,
+ GLWidgetPrivate *private);
+static void gtk_gl_widget_parent_set (GtkWidget *widget,
+ GtkObject *old_parent,
+ GdkColormap *colormap);
+static void gtk_gl_widget_style_set (GtkWidget *widget,
+ GtkStyle *previous_style,
+ gpointer user_data);
+
+static void gl_widget_private_destroy (GLWidgetPrivate *private);
+
+/*
+ * Signal handlers.
+ */
+
+static void
+gtk_gl_widget_realize (GtkWidget *widget,
+ GLWidgetPrivate *private)
+{
+ GdkGLWindow *glwindow;
+
+ GTK_GL_NOTE_FUNC_PRIVATE ();
+
+ /*
+ * Set OpenGL-capability to widget->window, then connect some signal
+ * handlers.
+ */
+
+ if (!gdk_window_is_gl_capable (widget->window))
+ {
+ glwindow = gdk_window_set_gl_capability (widget->window,
+ private->glconfig,
+ NULL);
+ if (glwindow == NULL)
+ {
+ g_warning ("cannot set OpenGL-capability to widget->window\n");
+ return;
+ }
+
+ /* Connect "unrealize" signal handler. */
+ if (private->unrealize_handler == 0)
+ private->unrealize_handler = g_signal_connect (G_OBJECT (widget), "unrealize",
+ G_CALLBACK (gtk_gl_widget_unrealize),
+ private);
+ }
+
+ private->is_realized = TRUE;
+}
+
+static gboolean
+gtk_gl_widget_configure_event (GtkWidget *widget,
+ GdkEventConfigure *event,
+ GLWidgetPrivate *private)
+{
+ GTK_GL_NOTE_FUNC_PRIVATE ();
+
+ if (!private->is_realized)
+ {
+ /* Realize if OpenGL-capable window is not realized yet. */
+ gtk_gl_widget_realize (widget, private);
+ }
+
+ return FALSE;
+}
+
+static void
+gtk_gl_widget_size_allocate (GtkWidget *widget,
+ GtkAllocation *allocation,
+ GLWidgetPrivate *private)
+{
+ GdkGLDrawable *gldrawable;
+
+ GTK_GL_NOTE_FUNC_PRIVATE ();
+
+ /*
+ * Synchronize OpenGL and window resizing request streams.
+ */
+
+ if (GTK_WIDGET_REALIZED (widget) && private->is_realized)
+ {
+ gldrawable = gdk_window_get_gl_drawable (widget->window);
+ gdk_gl_drawable_wait_gdk (gldrawable);
+ }
+}
+
+static void
+gtk_gl_widget_unrealize (GtkWidget *widget,
+ GLWidgetPrivate *private)
+{
+ GTK_GL_NOTE_FUNC_PRIVATE ();
+
+ /*
+ * Destroy OpenGL rendering context.
+ */
+
+ if (private->glcontext != NULL)
+ {
+ gdk_gl_context_destroy (private->glcontext);
+ private->glcontext = NULL;
+ }
+
+ /*
+ * Remove OpenGL-capability from widget->window.
+ */
+
+ if (GTK_WIDGET_REALIZED (widget))
+ gdk_window_unset_gl_capability (widget->window);
+
+ private->is_realized = FALSE;
+}
+
+static void
+gtk_gl_widget_parent_set (GtkWidget *widget,
+ GtkObject *old_parent,
+ GdkColormap *colormap)
+{
+ GtkWidget *toplevel;
+
+ GTK_GL_NOTE_FUNC_PRIVATE ();
+
+ /*
+ * Try to install colormap to the top-level window.
+ */
+
+ toplevel = gtk_widget_get_toplevel (widget);
+ if (GTK_WIDGET_TOPLEVEL (toplevel) && !GTK_WIDGET_REALIZED (toplevel))
+ {
+ GTK_GL_NOTE (MISC,
+ g_message (" - Install colormap to the top-level window."));
+
+ gtk_widget_set_colormap (toplevel, colormap);
+ }
+}
+
+static void
+gtk_gl_widget_style_set (GtkWidget *widget,
+ GtkStyle *previous_style,
+ gpointer user_data)
+{
+ GTK_GL_NOTE_FUNC_PRIVATE ();
+
+ /*
+ * Set a background of "None" on window to avoid AIX X server crash.
+ */
+
+ if (GTK_WIDGET_REALIZED (widget))
+ {
+ GTK_GL_NOTE (MISC,
+ g_message (" - window->bg_pixmap = %p",
+ ((GdkWindowObject *) (widget->window))->bg_pixmap));
+
+ gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
+
+ GTK_GL_NOTE (MISC,
+ g_message (" - window->bg_pixmap = %p",
+ ((GdkWindowObject *) (widget->window))->bg_pixmap));
+ }
+}
+
+static void
+gl_widget_private_destroy (GLWidgetPrivate *private)
+{
+ GTK_GL_NOTE_FUNC_PRIVATE ();
+
+ g_object_unref (G_OBJECT (private->glconfig));
+
+ if (private->share_list != NULL)
+ g_object_unref (G_OBJECT (private->share_list));
+
+ g_free (private);
+}
+
+/**
+ * gtk_widget_set_gl_capability:
+ * @widget: the #GtkWidget to be used as the rendering area.
+ * @glconfig: a #GdkGLConfig.
+ * @share_list: the #GdkGLContext with which to share display lists and texture
+ * objects. NULL indicates that no sharing is to take place.
+ * @direct: whether rendering is to be done with a direct connection to
+ * the graphics system.
+ * @render_type: GDK_GL_RGBA_TYPE or GDK_GL_COLOR_INDEX_TYPE (currently not
+ * used).
+ *
+ * Set the OpenGL-capability to the @widget.
+ * This function prepares the widget for its use with OpenGL.
+ *
+ * Return value: TRUE if it is successful, FALSE otherwise.
+ **/
+gboolean
+gtk_widget_set_gl_capability (GtkWidget *widget,
+ GdkGLConfig *glconfig,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type)
+{
+ GdkColormap *colormap;
+ GLWidgetPrivate *private;
+
+ GTK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+ g_return_val_if_fail (!GTK_WIDGET_NO_WINDOW (widget), FALSE);
+ g_return_val_if_fail (!GTK_WIDGET_REALIZED (widget), FALSE);
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
+
+ /*
+ * Init quark.
+ */
+
+ if (quark_gl_private == 0)
+ quark_gl_private = g_quark_from_static_string (quark_gl_private_string);
+
+ /*
+ * Already OpenGL-capable?
+ */
+
+ if (gtk_widget_is_gl_capable (widget))
+ return TRUE;
+
+ /*
+ * Set OpenGL-capable colormap.
+ */
+
+ colormap = gdk_gl_config_get_colormap (glconfig);
+
+ gtk_widget_set_colormap (widget, colormap);
+
+ /* Install colormap to the top-level window. */
+ if (_gtk_gl_widget_install_toplevel_cmap)
+ {
+ /*
+ * If window manager doesn't watch the WM_COLORMAP_WINDOWS property on
+ * the top-level window, we have to set OpenGL window's colormap to the
+ * top-level window, especially in color index mode (color index mode
+ * uses own private colormap).
+ */
+
+ /* Signal handler to set colormap to the top-level window. */
+ g_signal_connect (G_OBJECT (widget), "parent_set",
+ G_CALLBACK (gtk_gl_widget_parent_set),
+ colormap);
+
+ /* If given widget has the top-level window, colormap is set here. */
+ gtk_gl_widget_parent_set (widget, NULL, colormap);
+ }
+
+ /*
+ * Disable backing store feature of the widget.
+ */
+
+ gtk_widget_set_double_buffered (widget, FALSE);
+
+ /*
+ * "style_set" signal handler to set a background of "None" on window.
+ * (relates AIX X server crash)
+ */
+
+ g_signal_connect_after (G_OBJECT (widget), "style_set",
+ G_CALLBACK (gtk_gl_widget_style_set),
+ NULL);
+
+ /*
+ * Set GL widget's private data.
+ */
+
+ private = g_new (GLWidgetPrivate, 1);
+
+ private->glconfig = glconfig;
+ g_object_ref (G_OBJECT (private->glconfig));
+
+ if (share_list != NULL && GDK_IS_GL_CONTEXT (share_list))
+ {
+ private->share_list = share_list;
+ g_object_ref (G_OBJECT (private->share_list));
+ }
+ else
+ {
+ private->share_list = NULL;
+ }
+
+ private->direct = direct;
+ private->render_type = render_type;
+
+ private->glcontext = NULL;
+
+ private->unrealize_handler = 0;
+
+ private->is_realized = FALSE;
+
+ g_object_set_qdata_full (G_OBJECT (widget), quark_gl_private, private,
+ (GDestroyNotify) gl_widget_private_destroy);
+
+ /*
+ * Connect signal handlers to realize OpenGL-capable widget.
+ */
+
+ g_signal_connect (G_OBJECT (widget), "realize",
+ G_CALLBACK (gtk_gl_widget_realize),
+ private);
+
+ /* gtk_drawing_area sends configure_event when it is realized. */
+ g_signal_connect (G_OBJECT (widget), "configure_event",
+ G_CALLBACK (gtk_gl_widget_configure_event),
+ private);
+
+ /*
+ * Connect "size_allocate" signal handler to synchronize OpenGL and
+ * window resizing request streams.
+ */
+
+ g_signal_connect (G_OBJECT (widget), "size_allocate",
+ G_CALLBACK (gtk_gl_widget_size_allocate),
+ private);
+
+ return TRUE;
+}
+
+/**
+ * gtk_widget_is_gl_capable:
+ * @widget: a #GtkWidget.
+ *
+ * Returns whether the @widget is OpenGL-capable.
+ *
+ * Return value: TRUE if the @widget is OpenGL-capable, FALSE otherwise.
+ **/
+gboolean
+gtk_widget_is_gl_capable (GtkWidget *widget)
+{
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+
+ return (g_object_get_qdata (G_OBJECT (widget), quark_gl_private) != NULL);
+}
+
+/**
+ * gtk_widget_get_gl_config:
+ * @widget: a #GtkWidget.
+ *
+ * Returns the #GdkGLConfig referred by the @widget.
+ *
+ * Return value: the #GdkGLConfig.
+ **/
+GdkGLConfig *
+gtk_widget_get_gl_config (GtkWidget *widget)
+{
+ GLWidgetPrivate *private;
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+
+ private = g_object_get_qdata (G_OBJECT (widget), quark_gl_private);
+ if (private == NULL)
+ return NULL;
+
+ return private->glconfig;
+}
+
+/**
+ * gtk_widget_create_gl_context:
+ * @widget: a #GtkWidget.
+ * @share_list: the #GdkGLContext with which to share display lists and texture
+ * objects. NULL indicates that no sharing is to take place.
+ * @direct: whether rendering is to be done with a direct connection to
+ * the graphics system.
+ * @render_type: GDK_GL_RGBA_TYPE or GDK_GL_COLOR_INDEX_TYPE (currently not
+ * used).
+ *
+ * Creates a new #GdkGLContext with the appropriate #GdkGLDrawable
+ * for this widget. The GL context must be freed when you're
+ * finished with it. See also gtk_widget_get_gl_context().
+ *
+ * Return value: the new #GdkGLContext.
+ **/
+GdkGLContext *
+gtk_widget_create_gl_context (GtkWidget *widget,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type)
+{
+ GdkGLDrawable *gldrawable;
+ GdkGLContext *glcontext;
+
+ GTK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+ g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
+
+ gldrawable = gdk_window_get_gl_drawable (widget->window);
+ if (gldrawable == NULL)
+ return NULL;
+
+ /*
+ * Create OpenGL rendering context.
+ */
+
+ glcontext = gdk_gl_context_new (gldrawable,
+ share_list,
+ direct,
+ render_type);
+ if (glcontext == NULL)
+ {
+ g_warning ("cannot create GdkGLContext\n");
+ return NULL;
+ }
+
+ return glcontext;
+}
+
+/**
+ * gtk_widget_get_gl_context:
+ * @widget: a #GtkWidget.
+ *
+ * Returns the #GdkGLContext with the appropriate #GdkGLDrawable
+ * for this widget. Unlike the GL context returned by
+ * gtk_widget_create_gl_context(), this context is owned by the widget.
+ *
+ * #GdkGLContext is needed for the function gdk_gl_drawable_begin,
+ * or for sharing display lists (see gtk_widget_set_gl_capability()).
+ *
+ * Return value: the #GdkGLContext.
+ **/
+GdkGLContext *
+gtk_widget_get_gl_context (GtkWidget *widget)
+{
+ GLWidgetPrivate *private;
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+ g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
+
+ private = g_object_get_qdata (G_OBJECT (widget), quark_gl_private);
+ if (private == NULL)
+ return NULL;
+
+ if (private->glcontext == NULL)
+ private->glcontext = gtk_widget_create_gl_context (widget,
+ private->share_list,
+ private->direct,
+ private->render_type);
+
+ return private->glcontext;
+}
+
+/**
+ * gtk_widget_get_gl_window:
+ * @widget: a #GtkWidget.
+ *
+ * Returns the #GdkGLWindow owned by the @widget.
+ *
+ * Return value: the #GdkGLWindow.
+ **/
+GdkGLWindow *
+gtk_widget_get_gl_window (GtkWidget *widget)
+{
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+ g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
+
+ return gdk_window_get_gl_window (widget->window);
+}
diff --git a/plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.h b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.h
new file mode 100644
index 00000000..fd6ad2ae
--- /dev/null
+++ b/plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.h
@@ -0,0 +1,55 @@
+/* GtkGLExt - OpenGL Extension to GTK+
+ * 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.
+ */
+
+#ifndef __GTK_GL_WIDGET_H__
+#define __GTK_GL_WIDGET_H__
+
+#include <gdk/gdk.h>
+
+#include <gdk/gdkgl.h>
+
+#include <gtk/gtkwidget.h>
+
+G_BEGIN_DECLS
+
+gboolean gtk_widget_set_gl_capability (GtkWidget *widget,
+ GdkGLConfig *glconfig,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type);
+
+gboolean gtk_widget_is_gl_capable (GtkWidget *widget);
+
+
+GdkGLConfig *gtk_widget_get_gl_config (GtkWidget *widget);
+
+GdkGLContext *gtk_widget_create_gl_context (GtkWidget *widget,
+ GdkGLContext *share_list,
+ gboolean direct,
+ int render_type);
+
+GdkGLContext *gtk_widget_get_gl_context (GtkWidget *widget);
+
+GdkGLWindow *gtk_widget_get_gl_window (GtkWidget *widget);
+
+#define gtk_widget_get_gl_drawable(widget) \
+ GDK_GL_DRAWABLE (gtk_widget_get_gl_window (widget))
+
+G_END_DECLS
+
+#endif /* __GTK_GL_WIDGET_H__ */
diff --git a/scripts/static_build.sh b/scripts/static_build.sh
index f46ec8aa..7d50da31 100755
--- a/scripts/static_build.sh
+++ b/scripts/static_build.sh
@@ -11,7 +11,7 @@ cd ../../
./autogen.sh
export APBUILD_STATIC_LIBGCC=1
-CC=$AP/apgcc CXX=$AP/apgcc ./configure --enable-staticlink --disable-artwork-imlib2 --enable-ffmpeg --prefix=/opt/deadbeef
+CC=$AP/apgcc CXX=$AP/apgcc ./configure --enable-staticlink --disable-artwork-imlib2 --enable-ffmpeg --disable-cdda --prefix=/opt/deadbeef
sed -i 's/-lstdc++ -lm -lgcc_s -lc -lgcc_s/-lm -lc/g' libtool
sed -i 's/hardcode_into_libs=yes/hardcode_into_libs=no/g' libtool
make clean