From 291b82aa7b3617dc143c6c46da4064cd14a50245 Mon Sep 17 00:00:00 2001 From: Alexey Yakovenko Date: Sun, 20 Oct 2013 22:54:42 +0200 Subject: static build WIP; added gtkglext as static dependency for gtk2 --- .gitignore | 3 + PORTABLE_VERSION | 2 +- configure.ac | 2 +- plugins/gtkui/Makefile.am | 89 +- plugins/gtkui/actionhandlers.c | 1 + plugins/gtkui/gtkglext-gtk2/AUTHORS | 19 + plugins/gtkui/gtkglext-gtk2/COPYING | 340 + plugins/gtkui/gtkglext-gtk2/COPYING.LIB | 510 + plugins/gtkui/gtkglext-gtk2/README | 160 + plugins/gtkui/gtkglext-gtk2/gdk/gdkgl.h | 39 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c | 442 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.h | 135 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.c | 120 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.h | 73 + plugins/gtkui/gtkglext-gtk2/gdk/gdkgldebug.h | 73 + plugins/gtkui/gtkglext-gtk2/gdk/gdkgldefs.h | 40 + plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.c | 218 + plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.h | 93 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.c | 288 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.h | 47 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglext-config.h | 33 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglfont.h | 44 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.c | 24997 +++++++++++++++++++ plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.h | 9018 +++++++ plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.c | 245 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.h | 42 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.c | 803 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.h | 83 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglprivate.h | 56 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.c | 114 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.h | 52 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.c | 868 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.h | 60 + plugins/gtkui/gtkglext-gtk2/gdk/gdkgltokens.h | 298 + plugins/gtkui/gtkglext-gtk2/gdk/gdkgltypes.h | 42 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.c | 25 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.h | 58 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.c | 817 + plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.h | 83 + plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile | 464 + plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile.am | 25 + plugins/gtkui/gtkglext-gtk2/gdk/glext/README | 5 + .../gtkui/gtkglext-gtk2/gdk/glext/common-header.h | 18 + .../gtkglext-gtk2/gdk/glext/gen-gdkglglext-c.pl | 145 + .../gtkglext-gtk2/gdk/glext/gen-gdkglglext-h.pl | 159 + .../gtkglext-gtk2/gdk/glext/gen-gdkglglxext-c.pl | 154 + .../gtkglext-gtk2/gdk/glext/gen-gdkglglxext-h.pl | 218 + .../gtkglext-gtk2/gdk/glext/gen-gdkglwglext-c.pl | 137 + .../gtkglext-gtk2/gdk/glext/gen-gdkglwglext-h.pl | 149 + .../gtkui/gtkglext-gtk2/gdk/glext/glext-extra.h | 892 + plugins/gtkui/gtkglext-gtk2/gdk/glext/glext.h | 5545 ++++ .../gtkui/gtkglext-gtk2/gdk/glext/glxext-extra.h | 144 + plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext.h | 607 + plugins/gtkui/gtkglext-gtk2/gdk/glext/list-ext.pl | 42 + .../gtkui/gtkglext-gtk2/gdk/glext/wglext-extra.h | 116 + plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext.h | 608 + .../gtkglext-gtk2/gdk/win32/gdkglconfig-win32.c | 908 + .../gtkglext-gtk2/gdk/win32/gdkglconfig-win32.h | 59 + .../gtkglext-gtk2/gdk/win32/gdkglcontext-win32.c | 490 + .../gtkglext-gtk2/gdk/win32/gdkglcontext-win32.h | 63 + .../gtkglext-gtk2/gdk/win32/gdkgldrawable-win32.c | 63 + .../gtkglext-gtk2/gdk/win32/gdkglfont-win32.c | 109 + .../gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.c | 532 + .../gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.h | 75 + .../gtkglext-gtk2/gdk/win32/gdkglprivate-win32.h | 59 + .../gtkglext-gtk2/gdk/win32/gdkglquery-win32.c | 252 + .../gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.c | 2186 ++ .../gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.h | 839 + plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwin32.h | 85 + .../gtkglext-gtk2/gdk/win32/gdkglwindow-win32.c | 442 + .../gtkglext-gtk2/gdk/win32/gdkglwindow-win32.h | 73 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.c | 957 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.h | 61 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.c | 601 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.h | 64 + .../gtkglext-gtk2/gdk/x11/gdkgldrawable-x11.c | 34 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglfont-x11.c | 196 + plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.c | 1882 ++ plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.h | 893 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c | 229 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.h | 49 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.c | 387 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.h | 57 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglprivate-x11.h | 58 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglquery-x11.c | 503 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.c | 343 + .../gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.h | 58 + plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglx.h | 84 + plugins/gtkui/gtkglext-gtk2/gtk/gtkgl.h | 29 + plugins/gtkui/gtkglext-gtk2/gtk/gtkgldebug.h | 67 + plugins/gtkui/gtkglext-gtk2/gtk/gtkgldefs.h | 38 + plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.c | 234 + plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.h | 43 + plugins/gtkui/gtkglext-gtk2/gtk/gtkglprivate.h | 32 + plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.c | 25 + plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.h | 58 + plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.c | 507 + plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.h | 55 + scripts/static_build.sh | 2 +- 99 files changed, 63624 insertions(+), 17 deletions(-) create mode 100644 plugins/gtkui/gtkglext-gtk2/AUTHORS create mode 100644 plugins/gtkui/gtkglext-gtk2/COPYING create mode 100644 plugins/gtkui/gtkglext-gtk2/COPYING.LIB create mode 100644 plugins/gtkui/gtkglext-gtk2/README create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkgl.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglconfig.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglcontext.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkgldebug.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkgldefs.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkgldrawable.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglenumtypes.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglext-config.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglfont.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglglext.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglinit.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglpixmap.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglprivate.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglquery.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglshapes.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkgltokens.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkgltypes.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglversion.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/gdkglwindow.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/glext/Makefile.am create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/glext/README create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/glext/common-header.h create mode 100755 plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglext-c.pl create mode 100755 plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglext-h.pl create mode 100755 plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglxext-c.pl create mode 100755 plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglglxext-h.pl create mode 100755 plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglwglext-c.pl create mode 100755 plugins/gtkui/gtkglext-gtk2/gdk/glext/gen-gdkglwglext-h.pl create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/glext/glext-extra.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/glext/glext.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext-extra.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/glext/glxext.h create mode 100755 plugins/gtkui/gtkglext-gtk2/gdk/glext/list-ext.pl create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext-extra.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/glext/wglext.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglconfig-win32.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglconfig-win32.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglcontext-win32.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglcontext-win32.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkgldrawable-win32.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglfont-win32.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglpixmap-win32.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglprivate-win32.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglquery-win32.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwglext.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwin32.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwindow-win32.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/win32/gdkglwindow-win32.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglconfig-x11.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglcontext-x11.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgldrawable-x11.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglfont-x11.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglglxext.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkgloverlay-x11.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglpixmap-x11.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglprivate-x11.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglquery-x11.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglwindow-x11.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gdk/x11/gdkglx.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gtk/gtkgl.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gtk/gtkgldebug.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gtk/gtkgldefs.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gtk/gtkglinit.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gtk/gtkglprivate.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gtk/gtkglversion.h create mode 100644 plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.c create mode 100644 plugins/gtkui/gtkglext-gtk2/gtk/gtkglwidget.h 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 #include +#include #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 (°ÂÊ¡ ¾°Ê¸) + + +Contributors +============ + +Alif Wahid + * 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 + * 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. + + + Copyright (C) + + 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. + + , 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. + + + + Copyright (C) + + 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. + + , 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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 +#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 +#include + +#include + +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 +#include + +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 + +#include + +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__ "" +# 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 + +#include + +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 + +#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 +#include + +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 + +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 +#include + +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 + +#ifdef G_OS_WIN32 +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#include + +#include +#include + +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 +#include + +/* + * 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 +#include + +#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 argc parameter of your + * main() function. Changed if any arguments + * were handled. + * @argv: Address of the argv parameter of + * main(). 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 argc parameter of your + * main() function. Changed if any arguments + * were handled. + * @argv: Address of the argv parameter of + * main(). 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. + * + * + * 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. + * + **/ +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 +#include + +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 + +#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 +#include + +#include + +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 +#include +#include +#include +#include + +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 +#include + +#include "gdkglprivate.h" +#include "gdkglquery.h" + +#ifdef G_OS_WIN32 +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#include + +/* + * 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 +#include + +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 + +#include + +#include "gdkglprivate.h" +#include "gdkglshapes.h" + +#ifdef G_OS_WIN32 +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#include +#include + +/* + * 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 +#include + +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 + +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 + +#include + +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 + +#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 +#include + +#include + +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 +# + +@input_headers = ("glext.h", "glext-extra.h"); + +#--------------- +open(IN, "common-header.h") || die "cannot open common-header.h"; +print while (); +close(IN); + +print <) { + if (/#ifndef\s+GL_[a-zA-Z0-9]+_[a-z0-9_]+/) { + @line = split; + $_ = ; + if (/#define\s+$line[1]/) { + while () { + if (/#ifdef\s+GL_GLEXT_PROTOTYPES/) { + + $extension = $line[1]; + + # function prototypes + @functions = (); + while () { + last if (/#endif/); + ($func) = /(gl\w+)/; + push(@functions, $func); + } + + # typedefs + @typedefs = (); + while () { + 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 +# + +@input_headers = ("glext.h", "glext-extra.h"); + +#--------------- +open(IN, "common-header.h") || die "cannot open common-header.h"; +print while (); +close(IN); + +print < + +#ifdef G_OS_WIN32 +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#include + +#include +#include + +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 +#include + +EOF +#--------------- + +foreach $in (@input_headers) { + open(IN, $in) || die "cannot open $in"; + + while () { + if (/#ifndef\s+GL_[a-zA-Z0-9]+_[a-z0-9_]+/) { + @line = split; + $_ = ; + if (/#define\s+$line[1]/) { + while () { + if (/#ifdef\s+GL_GLEXT_PROTOTYPES/) { + + $extension = $line[1]; + + # function prototypes + @functions = (); + while () { + last if (/#endif/); + ($func) = /(gl\w+)/; + push(@functions, $func); + } + + # typedefs + @typedefs = (); + while () { + last if (/#endif/); + chomp; + push(@typedefs, $_); + } + + generate_code(); + + last; + + } elsif (/#endif/) { + last; + } + } + } + } + } + + close(IN); +} + +#--------------- +print < +# + +@input_headers = ("glxext.h", "glxext-extra.h"); + +#--------------- +open(IN, "common-header.h") || die "cannot open common-header.h"; +print while (); +close(IN); + +print <) { + if (/#ifndef\s+GLX_[a-zA-Z0-9]+_[a-z0-9_]+/) { + @line = split; + $_ = ; + if (/#define\s+$line[1]/) { + while () { + if (/#ifdef\s+GLX_GLXEXT_PROTOTYPES/) { + + $extension = $line[1]; + + # function prototypes + @functions = (); + while () { + last if (/#endif/); + ($func) = /(glX\w+)/; + push(@functions, $func); + } + + # typedefs + @typedefs = (); + while () { + 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 +# + +@input_headers = ("glxext.h", "glxext-extra.h"); + +#--------------- +open(IN, "common-header.h") || die "cannot open common-header.h"; +print while (); +close(IN); + +print < +#include + +#include +#include + +#include +#include +#include + +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 +#include + +EOF +#--------------- + +foreach $in (@input_headers) { + open(IN, $in) || die "cannot open $in"; + + while () { + if (/#ifndef\s+GLX_[a-zA-Z0-9]+_[a-z0-9_]+/) { + @line = split; + $_ = ; + if (/#define\s+$line[1]/) { + while () { + if (/#ifdef\s+GLX_GLXEXT_PROTOTYPES/) { + + $extension = $line[1]; + + # function prototypes + @functions = (); + while () { + last if (/#endif/); + ($func) = /(glX\w+)/; + push(@functions, $func); + } + + # typedefs + @typedefs = (); + while () { + last if (/#endif/); + chomp; + push(@typedefs, $_); + } + + generate_code(); + + last; + + } elsif (/#endif/) { + last; + } + } + } + } + } + + close(IN); +} + +#--------------- +print < +# + +@input_headers = ("wglext.h", "wglext-extra.h"); + +#--------------- +open(IN, "common-header.h") || die "cannot open common-header.h"; +print while (); +close(IN); + +print <) { + if (/#ifndef\s+WGL_[a-zA-Z0-9]+_[a-z0-9_]+/) { + @line = split; + $_ = ; + if (/#define\s+$line[1]/) { + while () { + if (/#ifdef\s+WGL_WGLEXT_PROTOTYPES/) { + + $extension = $line[1]; + + # function prototypes + @functions = (); + while () { + last if (/#endif/); + ($func) = /(wgl\w+)/; + push(@functions, $func); + } + + # typedefs + @typedefs = (); + while () { + 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 +# + +@input_headers = ("wglext.h", "wglext-extra.h"); + +#--------------- +open(IN, "common-header.h") || die "cannot open common-header.h"; +print while (); +close(IN); + +print < + +#ifdef G_OS_WIN32 +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#include + +#include +#include +#include + +#undef __wglext_h_ +#undef WGL_WGLEXT_VERSION +#include +#include + +G_BEGIN_DECLS + +EOF +#--------------- + +foreach $in (@input_headers) { + open(IN, $in) || die "cannot open $in"; + + while () { + if (/#ifndef\s+WGL_[a-zA-Z0-9]+_[a-z0-9_]+/) { + @line = split; + $_ = ; + if (/#define\s+$line[1]/) { + while () { + if (/#ifdef\s+WGL_WGLEXT_PROTOTYPES/) { + + $extension = $line[1]; + + # function prototypes + @functions = (); + while () { + last if (/#endif/); + ($func) = /(wgl\w+)/; + push(@functions, $func); + } + + # typedefs + @typedefs = (); + while () { + last if (/#endif/); + chomp; + push(@typedefs, $_); + } + + generate_code(); + + last; + + } elsif (/#endif/) { + last; + } + } + } + } + } + + close(IN); +} + +#--------------- +print < +#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 +#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 +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 +#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 +#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 + +#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 +# + +@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 () { + 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 +#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 +#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 +#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 +#include + +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 +#include + +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 + +#include "gdkglwin32.h" +#include "gdkglprivate-win32.h" +#include "gdkglfont.h" + +#ifdef GDKGLEXT_MULTIHEAD_SUPPORT +#include +#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 +#include + +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 + +#include +#include + +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 + +#include "gdkglwin32.h" +#include "gdkglprivate-win32.h" +#include "gdkglquery.h" + +#ifdef GDKGLEXT_MULTIHEAD_SUPPORT +#include +#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 + +#ifdef G_OS_WIN32 +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#include + +#include +#include +#include + +#undef __wglext_h_ +#undef WGL_WGLEXT_VERSION +#include +#include + +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 + +#ifndef STRICT +#define STRICT /* We want strict type checks */ +#endif +#define WIN32_LEAN_AND_MEAN 1 +#include + +#include + +#include + +/* 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 +#include + +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 + +#include "gdkglx.h" +#include "gdkglprivate-x11.h" +#include "gdkgloverlay-x11.h" +#include "gdkglconfig-x11.h" + +#ifdef GDKGLEXT_MULTIHEAD_SUPPORT +#include +#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */ + +#ifdef HAVE_LIBXMU + +#include /* for XA_RGB_DEFAULT_MAP atom */ + +#ifdef HAVE_XMU_STDCMAP_H +#include /* for XmuLookupStandardColormap */ +#else +#include /* 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 +#include + +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 /* 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 +#include + +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 + +#include + +#include "gdkglx.h" +#include "gdkglprivate-x11.h" +#include "gdkglfont.h" + +#ifdef GDKGLEXT_MULTIHEAD_SUPPORT +#include +#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 +#include + +#include +#include + +#include +#include +#include + +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 +#include + +/* + * 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 +#endif /* GDKGLEXT_MULTIHEAD_SUPPORT */ + +#include + +/* + * SERVER_OVERLAY_VISUALS property entry format + * + * format: 32 + * + * + * 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 + +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 + +#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 +#include + +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 + +#include + +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 + +#ifdef __APPLE__ +#include +#else /* __APPLE__ */ +#include +#endif /* __APPLE__ */ + +#include "gdkglx.h" +#include "gdkglprivate-x11.h" +#include "gdkglconfig-x11.h" +#include "gdkglquery.h" + +#ifdef GDKGLEXT_MULTIHEAD_SUPPORT +#include +#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 + +#include "gdkglx.h" +#include "gdkglprivate-x11.h" +#include "gdkglconfig-x11.h" +#include "gdkglcontext-x11.h" +#include "gdkglwindow-x11.h" + +#include + +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 +#include + +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 + +#include +#include + +#include +#include + +#include + +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 + +#include +#include +#include +#include + +#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 + +#include + +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__ "" +# 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 + +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 +#include + +#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 argc parameter of your + * main() function. Changed if any arguments + * were handled. + * @argv: Address of the argv parameter of + * main(). 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 argc parameter of your + * main() function. Changed if any arguments + * were handled. + * @argv: Address of the argv parameter of + * main(). 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. + * + * + * 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. + * + **/ +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 + +#include + +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 +#include + +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 + +#include + +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 + +#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 + +#include + +#include + +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 -- cgit v1.2.3